May Newsletter

Hello Subscriber, welcome to the May 2022 edition.

The Raspberry Pi RP2040 exists in the form of the Arduino Nano RP2040 Connect. It features dual Cortex-M0+ running at 133MHz with 264KB of SRAM and 16MB of QSPI Flash memory. It also has Direct Memory Access (DMA), 4 State Machines that make Programmable IO (PIO) possible, as well as 2 I2C, 2 SPI, and 2 UART.

 

A few things set this board apart from the Pico:

  • an omnidirectional microphone
  • a 6-axis inertial measurement unit (IMU)
  • WiFi and Bluetooth connectivity

 

All of these extras cause the price-point of the board to be around $28. That is 14 times what the Pico costs! However, there is a lot going on for this board.

 

The IMU (LSM6DSOX from STMicroelectronics) has a datasheet that is 199 pages long. Upon closer inspection, you will find that the IMU has ML capabilities embedded within the chip. STMicroelectronics calls this Machine Learning Core. The ML uses decision tree classifiers that make it possible to train models for gesture recognition and activity recognition. You can find an example repo from STMicroelectronics.

 

When it's time to prototype your IoT projects, the MCU is ready to connect to Arduino Cloud so you can move your data from the device to the cloud. You can also update the device firmware from the cloud.

 

Learning Content

  • AWS IoT: Developing and Deploying an Internet of Things. This course will take you through the fundamentals of routing data from embedded systems to AWS IoT Core. If you get an error message about a missing page just log into Coursera before browsing to the URL.

Recent Events

  • I recently held a webinar on the Arduino Nano RP2040 Connect and the Pico. I touched on the RP2040 processor core, and then went on to demonstrate how to work with both the Pico and the Arduino using both MicroPython and the Arduino IDe.

More on LSM6DSOX

Knowing that the LSM6DSOX 6-axis IMU supports Machine Learning (even if it's only decision trees) means I can't just mention it in passing. I tried out an example from STMicroelectronics and Arduino that tells you if the device is stationary, experiencing mild vibrations, or experiencing serious vibrations. You can find all the files you need in my repo. The example is in MicroPython, and you can easily set up your board for MicroPython programming by viewing the webinar above.

 

The decision tree model is contained in a Unico configuration file (.ucf). You might not be able to inspect the configuration file, but an equivalent h file is made available. By inspecting the h file, you will see that the model is a bunch of weights stored in a number of registers. It is embedded, after all.

 

STMicroelectronics provides a repo with various models for different applications of ML on the IMU. You will also find support for other IMUs besides the LSM6DSOX.

 

If you are already wondering whether you can train your own models, the short answer is yes! You will need:

  • an evaluation board, such as the STEVAL-MKI109V3, featuring the STM32F401VE MCU with an Arm Cortex-M4 ($91),
  • an adapter board, such as the STEVAL-MKI217V1, featuring the LSM6DSOX ($18). There are other adapter boards available for other sensors.
  • the Unico GUI.

 

The decision tree can be trained using any software of your choice, and that includes using Python.

 

Data capture and labeling are done using Unico GUI, which outputs an arff file that can be read easily using scipy and converted into a Pandas DataFrame. The final decision tree can then be imported into Unico GUI for the generation of the final configuration file.

 

I don't have an evaluation kit at the moment, but I will try to get my hands on one in another two months. When I do, you will get a walkthrough video!

In the absence of the evaluation kit, don't forget that you can connect your Arduino Nano RP2040 Connect to Edge Impulse and train an ML model. If you don't know how to do that then give me a shoutout on Twitter and I will create an example video.

What's New in Embedded

  • If you work with the Oracle Cloud then you should check out this blog post on working with Arm Virtual Hardware. There is also an Oracle for Startups program link at the bottom of the article. Keep an eye out for the OCI Arm Accelerator link for possible cloud credits.
  • Ready Robotics makes it possible to acquire data from hundreds of industrial robots so you can train models for ML on the edge. You can read about how you can use the Edge Impulse platform to train models using this data.
  • If you are interested in prototyping wearables then you should check out the Hexiwear from Mikroe.

I would like to invite you to join the IoT and Embedded Development Meetup group so you can get notifications of any upcoming webinars or physical event.

Meetup
Twitter
Facebook
YouTube

Thanks for reading and don't forget to subscribe if you haven't already. Until next time.

Not yet subscribed? Sign up now!
Subscribe

Share on social

Share on FacebookShare on X (Twitter)

Check out my website  
This email was created with Wix.‌ Discover More