IoT Recap (March 2020)
Welcome to the first issue of the yet to be officially named Internet of Things monthly recap. The plan is to cover things that have caught my eye each month and share my thoughts on them.
Community Picks
FPGA Bootcamp #0
I came across Al Williams’s FPGA Bootcamp which so far has four installments to the series that cover everything you might need to know as a beginner right up to working with actual FPGA hardware.
The bootcamp eventually makes use of the iCE40-HX1K iCEstick Eval Board which seems to be a good board for beginners to get started with.
Checkout the series out if it sparks your interest:
- Bootcamp 0 - Covers basic digital logic concepts with simulations
- Bootcamp 1 - Introduction to FPGA coding and simulation with combinatorial logic
- Bootcamp 2 - More FPGA coding and simulation with flip flops (sequential logic)
- Bootcamp 3 - Working with actual FPGA hardware
Introducing Amazon Common Software for Devices (Preview): Accelerate Your Adoption of Amazon Device SDKs
Technically this news was from Feburary but I wanted to include it anyway. Amazon Common Software (ACS) is open for preview. This framework promises to make integration of your devices with Amazon services much easier and more secure.
Components like FFS (Frustration Free Setup) also aim to make the onboarding process for end users to be much easier. A setup process of connecting a new device to the internet is part of this framework.
Watch this space going forward, I'm excited to try it out myself.
Pigweed: A collection of embedded libraries
Pigweed is a new open source project by Google that aims to make embedded development less clunky by having a simple set of modules developers can use on their 32-bit microcontrollers.
The module they've used to prove Pigweed is valuable is called pw_env_setup which bootstraps a new system with everything it might need for development (python3.8, clang, an ARM compiler etc..)
Some other interesting looking modules include:
- pw_string - Provides the flexibility, ease-of-use, and safety of C++-style string manipulation
- pw_presubmit - Provides an off-the-shelf integrated suite of linters, based on tools that you’ve probably already used.
- pw_bloat - A module to generate memory reports for output binaries empowering developers with information regarding the memory impact of any change.
There's a bunch more, and Google wants YOU to help contribute too! So check their blog post for more information.
Automate managing of STM32CubeMX + PlatformIO projects
stm32pio is a neat cross-platform Python tool that creates & manages PlatformIO projects STM32CubeMX .ioc
files.
You get the best of both words using STM32CubeMX to create the hardware abstraction layer (HAL) framework code alongside a PlatformIO project which makes things like dependency management and CI testing a lot easier.
Arduino CLI
Arduino released arduino-cli which was previously in beta. this tool chain greatly resembles what PlatformIO has been doing for a couple years now, so while I'm not super excited; I am happy to see the CLI workflows available for pure Arduino projects.
Preview the Debugger feature for the Arduino Pro IDE
The Arduino Pro IDE is another excellent step forward for the purists working on Arduino projects. One of the main features attracting people is the Debugger feature, which allows developers to set breakpoints and step through code while viewing the internal variables and callstack.
This functionality isn't unique and has been available in the competition projects for a very long time. However given the target audience of the Arduino, it's clear that these features were never priority (until now It seems).
Raspberry Pi 4 Revision Fixes USB-C Compatibility Problem
Ever since its release, the Raspberry Pi 4 has been plagued by a small issue with its USB-C compatibility. The issue meant that the Type-C port would not work with high-speed cables; making it a little bit of a hassle sometimes.
The latest revisions now selling have this issue resolved and your boards should not work with all cables.
Espressif's 240MHz ESP32-S2 SoCs, Modules, and Boards Enter Mass Production with RISC-V Coprocessor
ESP32-S2 SoC and its related modules ESP32-S2-WROVER, ESP32-S2-WROOM and development board ESP32-S2-Saola-1 have gone into mass production. This is excellent news as it means we'll likely see boards leveraging the ESP32-S2 SoC series starting to pop up.
Some of the stand out things the new chip includes are:
- an Ultra-low-power coprocessor
- RSA secure boot functionality
- AES-XTS encryption of flash memory
- PSRAM (pseudo-static RAM) and a number of other security features.
ESP AVS for AWS IoT SDK
More Espressif news as they also now provide a certified solution for Alexa built-in devices with the AVS for AWS IoT SDK protocol.
The board(s) provided are the ESP32-WROVER-E module and DSP Group’s DBMD5P Audio SoC, called the ESP32-Vaquita-DSPG.
Also included is an ESP SDK for AVS and a companion app called ESP Alexa
IBM Call For Code (COVID-19)
IBM has announced their yearly Call For Code hackathon will be shifted to target the COVID-19 pandemic. Given we’re all going to be spending a lot more time indoors it might be an interesting challenge to take on from an IoT perspective.
I’m interested in teaming up with anyone out there who has a great idea and maybe wants some technical hands. Hit me up on Twitter @nathangloverAUS.
DevOpStar Picks
Easy AWS IoT with ESP-IDF
When working on IoT projects its common that you will need to bake in libraries that allow you to interface with features on your embedded device. Espressif maintain the Espressif IoT Development Framework (ESP-IDF) which bundles all these libraries for you making it really easy to get started with projects.
In this post I spent some time exploring how to use the Espressif IoT Development Framework (ESP-IDF) with PlatformIO to make developing projects for AWS IoT even easier.