Main Content

Connect to Raspberry Pi Hardware Board in Simulink Online

Prepare your Raspberry Pi® hardware board to establish a connection from Simulink® Online™.

Prerequisites

  1. Check that your board and operating system are supported for a Simulink Online connection. The supported operating systems are Raspbian Stretch, Buster, and Bullseye. The supported boards are the Raspberry Pi 2 Model B, Raspberry Pi 3 Model B, 3 Model B+, and Raspberry Pi 4 Model B. It is a best practice to implement the security measures outlined in Securing your Raspberry Pi.

  2. Turn on your Raspberry Pi, and make sure it is connected to the Internet. Your device does not have to be connected to the same computer or the same network as the computer running Simulink Online.

  3. If you are using a version of Raspberry Pi OS with a desktop environment, you can open a shell to enter the installation commands. If your device boots into the command line, enter the installation commands there. You can also access your device via SSH or another remote access method, as described in Remote Access.

    Note

    Use a full version of the Raspberry Pi OS with a desktop environment when deploying Simulink models on the Raspberry Pi hardware in Simulink Online.

Set Up Raspberry Pi Hardware Board

  1. Install the Simulink package for Raspberry Pi by entering these commands in the Raspberry Pi shell.

    $sudo apt-get update
    $sudo apt-get install matlab-rpi

  2. Configure your Raspberry Pi to make it discoverable in Simulink Online. Follow the setup steps that appear in your command line.

    $sudo matlab-rpi-setup

    1. Give your device a name.

      Step 1: Provide a name for your Raspberry Pi in MATLAB Online.
      Name: myPi
      
    2. Choose to enable or disable peripheral features.

      Step 2: Enable/disable peripherals on Raspberry Pi.
      Do you want to enable I2C? (y/n): y
      Do you want to enable SPI? (y/n): y
      Do you want to enable camera? (y/n): y
      Do you want to enable UART? (y/n): y
      
    3. Choose to enable or disable deploying a MATLAB function or Simulink model to the Raspberry Pi.

      Step 3: Enable/disable deploying MATLAB Function/Simulink model to Raspberry Pi. 
      Do you want to enable deploy MATLAB function/Simulink model as a standalone executable? (y/n): y
      	
      Userland library is required to deploy MATLAB function/Simulink model to Raspberry Pi Hardware.
      Userland library is licensed to you by third parties under separate license terms 
      available in the GitHub repository, https://github.com/raspberrypi/userland/
      	
      Do you want to install userland? (y/n): y
      	
      Paho MQTT C library is required to deploy MATLAB function/Simulink model to Raspberry Pi Hardware.
      Paho MQTT C library is licensed to you by third parties under separate license terms 
      available in the GitHub repository, https://github.com/eclipse/paho.mqtt.c 
      	
      Do you want to install Paho MQTT? (y/n): y
      	
      "nnpy" library is required to deploy MATLAB function/Simulink model to Raspberry Pi Hardware.
      nnpy python ibrary is licensed to you by third parties under separate license terms 
      available in the GitHub repository, https://github.com/nanomsg/nnpy 
      	
      Do you want to install nnpy? (y/n): y
      

    4. Provide your MathWorks® Account credentials to authenticate the Simulink Online connection. Your user ID and email address associated with your account are both valid. This information is not stored locally on your Raspberry Pi.

      Step 4: Provide your MathWorks Account credentials. 
      Email Address or User ID: jsmith 
      Password: ***********

      If you are having problems logging in to your MathWorks Account, visit the MathWorks website. Enable the two-step verification for your MathWorks account for additional security. For specific authentication instructions if you have enabled the two-step verification, see Two-Step Verification Is Turned On.

    Note

    This login remains valid for six months until your credentials expire. Once they expire, you will not be able connect to your Raspberry Pi from Simulink Online. To reauthenticate your board, follow the steps in MathWorks Account Credentials Have Expired.

  3. Restart your Raspberry Pi to start listening for Simulink Online connections.

    $sudo reboot

    You can modify the settings at any time after the initial setup by using flags. You can provide these flags to the matlab-rpi-setup package installation command.

    DescriptionOption syntaxExample
    Set Raspberry Pi display name in Simulink Online.--name=namesudo matlab-rpi-setup --name myPi2
    -nsudo matlab-rpi-setup -n myPi2
    Set authentication credentials for Raspberry Pi in Simulink Online.--loginsudo matlab-rpi-setup --login
    -lsudo matlab-rpi-setup -l
    Enable or disable I2C feature on Raspberry Pi. Requires a reboot.--i2c={enable | disable}sudo matlab-rpi-setup --i2c enable
    -isudo matlab-rpi-setup -i enable

    Enable or disable SPI feature on Raspberry Pi. Requires a reboot.

    --spi={enable | disable}sudo matlab-rpi-setup --spi enable
    -ssudo matlab-rpi-setup -s enable
    Enable or disable camera feature on Raspberry Pi. Requires a reboot.--camera={enable | disable}sudo matlab-rpi-setup --camera enable
    -csudo matlab-rpi-setup -c enable
    Enable or disable UART feature on Raspberry Pi. Requires a reboot.--uart={enable | disable}sudo matlab-rpi-setup --uart enable
    -usudo matlab-rpi-setup -u enable
    Deploy a MATLAB function or Simulink model as a standalone executable on Raspberry Pi.--deploy={enable | disable}sudo matlab-rpi-setup --deploy enable
    -dsudo matlab-rpi-setup -d enable
    Display MATLAB and Raspberry Pi setup usage. --helpsudo matlab-rpi-setup --help
    -hsudo matlab-rpi-setup -h

    To see the full description of each flag in your shell, enter this command.

    $man matlab-rpi-setup

Connect to Raspberry Pi from Simulink Online

  1. Open a Simulink Online session at https://matlab.mathworks.com from any computer connected to the Internet. Log in with your MathWorks Account credentials.

    Note

    You must log in with the same account credentials you used during the Raspberry Pi setup.

  2. Scan for Raspberry Pi hardware configured with the same MathWorks Account credentials.

    raspilist
    ans =
    
      1x4 table
    
    
         Name        SerialNumber       PackageVersion          Status      
        ______    __________________    ______________    __________________
    
    
        "myPi"    "10000000675b0321"       "21.2.0"       "Ready to connect"

    The following table provides a list of the possible statuses for your Raspberry Pi.

    Ready to connectRaspberry Pi has installed the correct version of MATLAB Raspberry Pi Support Package. You can create a Simulink Online connection.
    ConnectedRaspberry Pi has installed the correct version of MATLAB Raspberry Pi Support Package. It is already connected in Simulink Online.
    Upgrade requiredRaspberry Pi has installed the correct version of MATLAB Raspberry Pi Support Package. For more instructions, see Simulink Package on Raspberry Pi Needs to Be Updated.
    Authentication requiredProvide your MathWorks Account credentials to reauthenticate the Simulink Online connection. This status appears two weeks before your login credentials expire. For more instructions, see MathWorks Account Credentials Have Expired.

  3. Use raspi without any inputs to reuse the settings from the most recent Raspberry Pi connection. If connecting for the first time, this function creates a connection to the first Raspberry Pi device designated as "Ready to connect" in the raspilist output.

    r = raspi
    r =
    
      raspi with properties:
    
             DeviceAddress: 'myPi'
              SerialNumber: '10000000675b0321'
                 BoardName: Raspberry Pi 3 Model B
             AvailableLEDs: {'led0'}
      AvailableDigitalPins: [4,5,6,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]
      AvailableSPIChannels: {'CE0','CE1'}
         AvailableI2CBuses: {'i2c-1'}
          AvailableWebcams: {'UVC Camera (046d:0809)'}
               I2CBusSpeed: 0

    Alternatively, you can specify the name or serialnumber of the Raspberry Pi from the raspilist output to connect to a certain device.

    r = raspi('myPi');
    r = raspi('10000000675b0321');

Communicate with Raspberry Pi Hardware Using Connected IO in Simulink Online

In Simulink Online, you can use connected IO to communicate with the input-output peripherals on the Raspberry Pi hardware board during normal mode simulation. For more information on connected IO, see Communicate with Hardware Using Connected IO.

This section demonstrates the connected IO workflow in the Get Started with Simulink Support Package for Raspberry Pi Hardware example. You can use the same steps for any example in the support package.

  1. In the MATLAB® Command Window, run this command to open the Simulink model.

    open_system('raspberrypi_gettingstarted')
  2. On the Modeling tab of the Simulink model, in the Setup section, click Model Settings.

  3. In the Configuration Parameters dialog box, ensure that the Hardware board parameter is set to Raspberry Pi.

  4. Select Target hardware resources > Board Parameters and enter the Device Name.

  5. In the Connected I/O section, ensure that the Communication Interface parameter is set to Internet.

  6. Click Apply > OK.

  7. On the Hardware tab of the Simulink model, in the Mode section, select Connected IO.

  8. In the Run on Computer section of the Simulink model, click Run with IO. During simulation, observe that the LED on the Raspberry Pi board blinks with a time period of 1 second.

Deploy Simulink Model on Raspberry Pi Hardware from Simulink Online

In Simulink Online, you can build and deploy a Simulink model on your Raspberry Pi hardware board.

This section demonstrates the deployment workflow in the Get Started with Simulink Support Package for Raspberry Pi Hardware example. You can use the same steps for any example in the support package.

  1. In the MATLAB Command Window, run this command to open the Simulink model.

    open_system('raspberrypi_gettingstarted')
  2. On the Modeling tab of the Simulink model, in the Setup section, click Model Settings.

  3. In the Configuration Parameters dialog box, ensure that the Hardware board parameter is set to Raspberry Pi.

  4. Select Target hardware resources > Board Parameters and enter the Device Name.

  5. Click Apply > OK.

  6. On the Hardware tab of the Simulink model, in the Mode section, select Run on board.

  7. In the Deploy section of the Simulink model, click Build, Deploy & Start. The generated code is built on the Raspberry Pi hardware and runs automatically. Observe that the LED on the board blinks with a time period of 1 second.

See Also

| | |

External Websites