Published On: May, 8, 2020 By: Greg Sheridan | Updated: May 22, 2024 by Greg Sheridan
The OSD32MP1-BRK is a flexible prototyping platform for the OSD32MP15x System-in-Package, featuring the STM32MP1 microprocessor from STMicroelectronics. It gives you direct access to 107 I/O on the device allowing you ultimate flexibility in how to use the device. With direct access to so many I/O without additional overhead the OSD32MP1-BRK gives you the ability to easily prototype a system that will be very similar to your end design.
This Application note will give a brief overview of the board, its features, and how to begin using the board to prototype your applications. If you have any questions not answered in this guide, please ask us in the OSD32MP1-BRK forum.
1 Introduction
2 Overview
3 Software
3.1 Pre-built Software Images
3.1.1 OpenSTLinx
3.1.2 Octavo Systems Debian
4 Pinout and Default Functions
4.1 Modifying the Default Functionality
5 Getting Started
5.1 Required Equipment
5.2 Downloading the Image and Preparing the microSD Card
5.3 Booting the OSD32MP1-BRK
5.4 Running the Demo Applications
5.4.1 Controlling LEDs
5.4.1.1 Command Line Tools
5.4.1.2 Web Interface
5.4.2 OpenSTLinux Specific Example Applications
6 Connecting the OSD32MP1-BRK to the Internet
7 Troubleshooting
8 Conclusion
9 Revision History
In the OSD32MP1-BRK Box you will find 2 items a Getting Started Card and the OSD32MP1-BRK in an anti-static bag.
The getting started card provides links to this page, the forum, and the product pages.
The OSD32MP1-BRK is a small Open Source prototyping platform about the size of a business card. It features:
OSD32MP157C-512M-BAA
The Altium design files can be found here. A PDF version of the schematics can be found here.
The OSD32MP1-BRK is completely compatible with all software for the STM32MP1 MPU. This includes OpenST Linux and the STM32Cube Ecosysem of Tools. We have a tutorial on using STM32CubeMX with the OSD32MP1.
While you are free to build and run your own software images on the OSD32MP1-BRK we have provided 2 pre-built images to help speed up your development. Both images have been configured for the OSD32MP1-BRK and set the default functions of the headers. By default these images support the following features:
Please see Pinout and Default Functions section for the default configuration of the headers.
We have provided a version of the OpenSTLinux Starter image that has been configured to run on the OSD32MP1-BRK.
This image should be used if you are planning on using OpenSTLinux and Yocto as your development platform.
You can download the latest image here:
We have also created Debian Linux Distribution for the OSD32MP1-BRK. This image is developed and maintained by Octavo Systems to support our development boards.
Debian is one of the oldest operating systems based on the Linux Kernel. It is very user friendly and has many software packages available to download through different software repositories.
The Octavo Systems’ Debian Image is a great place to start if you want to quickly prototype and test new functionality. You can leverage the online repositories and the package manager to load new software without needing to be familiar with YOCTO.
You can download the latest image here:
The software images provided by Octavo Systems set the default functions of headers to something that can be utilized by a wide range of applications. The Image below outlines the pin out of the OSD32MP1-BRK along with the default functions supported by the provided software images.
While we have chosen this set of functions you are free to modify it to fit your needs. Any function that is mapped to that specific OSD32MP1 pin can be used. You will need to modify the device tree to make that function available. Please refer to the STM32MP1 datasheet for information on the alternate functions that are supported by the specific pins.
The rest of this guide will focus on getting you started using the OSD32MP1-BRK. We will go through the following steps:
To get started using the OSD32MP1-BRK you will need:
The first thing you will need to do is select a prepared Linux image as described Software section. We will then use Etcher to flash the image onto the microSD card.
Now that we have a microSD card with a Linux image on it we are ready to boot the board and begin communicating with it. We are going to use a USB port on a PC to supply power to the board and to communicate with it.
ssh root@192.168.7.1
ssh debian@192.168.7.1
Now that you have connected to the board you are able to run programs that are already installed on the particular image you chose. This section will show you how to run some initial programs on the OSD32MP1-BRK.
There are 4 LEDs on the OSD32MP1-BRK, one is used as the Heartbeat but the other 3 are available for the user. Both Linux Images provide command line tools and a web interface to manipulate the LEDs.
The LEDs are controlled by setting the brightness value in the /sys/class/leds file structure. Each LED has its own directory outlined below:
LED # | LED Color | /sys/class/leds Directory |
D1 | Green | LED1_GRN |
D2 | Red | LED2_RED |
D2 | Green | LED2_GRN |
Since we are setting the brightness of the LED a value of 255 turns it on and a value of 0 turns it off.
The following command turns on the D1 Green LED:
OpenSTLinux
echo 255 > /sys/class/leds/LED1_GRN/brightness
Octavo Systems Debian
sudo sh -c "echo 255 > /sys/class/leds/LED1_GRN/brightness"
Note: You need to use sudo when writing to the /sys/class/leds directories since Debian does not log in as root by default. If permission is still denied, use sudo su command to switch to root user and write to /sys/class/leds.
The LED should now be on.
To turn the LED off run this command:
OpenSTLinux
echo 0 > /sys/class/leds/LED1_GRN/brightness
Octavo Systems Debian
sudo sh -c "echo 0 > /sys/class/leds/LED1_GRN/brightness"
Note: You need to use sudo when writing to the /sys/class/leds directories since Debian does not log in as root by default. If permission is still denied, use sudo su command to switch to root user and write to /sys/class/leds.
Try to turn on and off the other LEDs yourself!
Because we are running Linux on the OSD32MP1-BRK we also have access to high level programming languages and powerful tools. To help demonstrate this we have included a simple Webserver written in Python that will control the LEDs. Once you start the server you will be able to use a browser on your host PC to load the webpage and control the LEDs.
cd /usr/local/demo/LEDWebDemo
python3 LEDWebServer.py
Octavo Systems Debian
sudo python3 LEDWebServer.py
Note: You need to use sudo to use the gpioset tool since Debian does not log in as root by default
ST provides extensive documentation on their OpenSTLinux distribution. See the Executing Basic Commands section of the ST Wiki for some basic information to test out the image.
Note that some of the commands mentioned in the ST Documentation is specific to the STM32MP1 Discovery Kit 2. The output of the commands may differ (For Example the GPU is disabled by default on the OSD32MP1-BRK)
Now that we have connected to the OSD32MP1-BRK through ethernet over USB we can connect the OSD32MP1-BRK to the internet via the same interface. This will require us to share our internet connection on the PC with the OSD32MP1-BRK.
route add default gw 192.168.7.XX
(where XX is the same number you used in step 4)Octavo Systems Debian
sudo route add default gw 192.168.7.XX
(where XX is the same number you used in step 4)
ping google.com
Octavo Systems Debian
sudo ping google.com
This section will provide solutions to potential minor roadblocks might come across while getting started with OSD32MP1-BRK.
If OSD32MP1-BRK does not show up as Remote NDIS Compatible Device under Network Connections, look for new devices under Device Manager. You may find OSD32MP1-BRK under “Other Devices”. To resolve this issue:
You are now ready to start using the OSD32MP1-BRK. Don’t hesitate to reach out to us in the Forums if you have any additional questions or run into any problems.
We are constantly updating our documentation to make sure they have the most accurate, update, and clear information. Sign up for our Documentation Update Notifications to make sure you have the latest information.
"*" indicates required fields
Revision Number | Revision Date | Changes | Author |
1 | 05/08/2020 | Initial Release | G. Sheridan |
2 | 09/17/2020 | Added Clarifying Comments | G. Sheridan |
3 | 12/03/2020 | Added Troubleshooting Section | E. Basu |
4 | 04/26/2022 | Updated Command Line LED commands to work with latest distribution images | G. Sheridan |
5 | 03/28/2023 | Updated OSD32MP1-BRK LEDs and OSD32MP1-BRK Heartbeat LED pictures. Added info on sudo su usage to write to /sys/class/leds. | E. Basu |
6 | 05/22/2024 | Updated a couple of typos in the Controlling LED Section | E. Welsh |
Octavo Systems LLC all rights reserved
OCTAVO is registered in the U.S. Patent and Trademark Office. OSD, C-SiP, and the Octavo Logo are trademarks of Octavo Systems LLC.
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields