February 2024 Meetup
To give Matt a bit of a break, Sean presented this month’s news round-up
News Round-up
MicroPython v1.22.2 Patch release for rp2 DMA, UART and BLE; esp32 BLE; renesas-ra I2C
A few minor changes, from the release notes:
- py/compile: fix potential Py-stack overflow in try-finally with return
- extmod/asyncio: support gather of tasks that finish early
- extmod/modssl_mbedtls: fix cipher iteration in SSLContext.get_ciphers
- extmod/btstack: reset pending_value_handle before calling write-done cb
- extmod/btstack: reset pending_value_handle before calling read-done cb
- esp32/mpnimbleport: release the GIL while doing NimBLE port deinit
- esp32: increase NimBLE task stack size and overflow detection headroom
- mimxrt/modmachine: fix deepsleep wakeup pin ifdef
- renesas-ra/ra: fix SysTick clock source
- renesas-ra/boards/ARDUINO_PORTENTA_C33: fix the RTC clock source
- renesas-ra/ra/ra_i2c: fix 1 byte and 2 bytes read issue
- rp2/rp2_dma: fix fetching ‘write’ buffers for writing not reading
- rp2/machine_uart: fix event wait in uart.flush() and uart.read()
- rp2: change machine.I2S and rp2.DMA to use shared DMA IRQ handlers
Arduino Alvik
Arduino have announced a cute pocket-sized little robot, called Alvik
- Comes loaded with MicroPython out of the box
- Built-in Arduino Nano ESP32, using an ESP32-S3
- Comes with numerous sensors:
- line-following
- Time-of-Flight (distance)
- 6-axis accelerometer and gyroscope
- proximity
- colour
Using a Raspberry Pi Pico to Enhance a Vintage Radio Shack Microcomputer Kit
Can a vintage microcontroller from 1985 run MicroPython? Of course not! Especially not one with a 4-bit architecture and 512 bits of RAM. But, this All About Circuits project using the Radio Shack Science Fair Microcomputer Trainer coupled to a Raspberry Pi Pico serves as a great introduction to how simple computers work.
- Interesting intoduction to the Texas Instruments TMS1100, a very simple system-on-chip microcontroller (and claimed to be the first such chip)
MPRemote Visual Studio Code Extension
The goal of the MPRemote extension for Visual Studio Code is to give easy point and click access to many of the functions of the MicroPython project’s MPRemote command-line tool. Rather than typing commands in a separate window, you simply navigate to them using the VS Code user interface.
- Thanks to Dave, DavesCodeMusings on GitHub
- Have a look at the GitHub repo or detailed wiki page for more info
Driving a LEGO car with an Xbox controller
Laurens Valk has showed off driving a remote control car using LEGO Pybricks system attached to an Xbox controller
- We’re going to try and get this running in the session today! We’ll take photos if we get it working…
- Check out this video
- Pybricks is MicroPython and block coding for LEGO hubs
micropython-hexdump
Our own Matt Trentini has made a MicroPython library that implements hexdump
>>> from os import urandom
>>> from hexdump import hd, xxd
>>> data = urandom(100)
>>> hd(data)
00000000 4d 9a 16 3d 4c 87 c4 31 9e 95 36 e3 f8 49 4b 4b |M..=L..1..6..IKK|
00000010 98 12 6b b6 a6 a3 fd 1b 91 a5 21 95 73 ac 35 6f |..k.......!.s.5o|
00000020 dc b4 4d 0b 43 fb bb 36 d6 17 52 4d 40 b4 04 ed |..M.C..6..RM@...|
00000030 2b 7c 8b 30 84 a3 96 9a 71 e4 e5 69 d1 62 b7 06 |+|.0....q..i.b..|
00000040 fd 89 3a f7 b3 06 04 39 f9 70 62 33 d2 56 35 e2 |..:....9.pb3.V5.|
00000050 fc 7e 16 46 5f 35 1d 62 63 d4 5c 18 f3 de 6d 3c |.~.F_5.bc.\...m<|
00000060 a1 1f fa ed |....|
00000061
>>> xxd(data)
00000000: 4d 9a 16 3d 4c 87 c4 31 9e 95 36 e3 f8 49 4b 4b M..=L..1..6..IKK
00000010: 98 12 6b b6 a6 a3 fd 1b 91 a5 21 95 73 ac 35 6f ..k.......!.s.5o
00000020: dc b4 4d 0b 43 fb bb 36 d6 17 52 4d 40 b4 04 ed ..M.C..6..RM@...
00000030: 2b 7c 8b 30 84 a3 96 9a 71 e4 e5 69 d1 62 b7 06 +|.0....q..i.b..
00000040: fd 89 3a f7 b3 06 04 39 f9 70 62 33 d2 56 35 e2 ..:....9.pb3.V5.
00000050: fc 7e 16 46 5f 35 1d 62 63 d4 5c 18 f3 de 6d 3c .~.F_5.bc.\...m<
00000060: a1 1f fa ed ....
- Can be installed with
mip
- Check it out on GitHub
Crickets in (a northern hemisphere) February
Stewart C. Russell (scruss) has a new project guide on using some Raspberry Pi Picos to make sounds like crickets do, including adapting the chirp rate depending on the temperature
- Makes more sense when you know he lives in Canada! (it’s cold there in February…)
- Good as an introductory lesson on doing a simple algorithm in MicroPython and interfacing that to some hardware
Make Your Pet Hexapod
Who doesn’t want a 3D printed walking mechanical insect??
- YouTube video series on making a robotic insect with a Pimoroni Servo2040, from Make Your Pet
- Lots of information available, although doesn’t seem like it’s a full end-to-end guide – more of a starting point to customise your own creation
Notifications to water your pot plants
WizNet have published a quick project demo using one of their Ethernet boards to get Telegram messages when your pot plants need to be watered
- Uses the W5100S-EVB-Pico
- And an undisclosed moisture sensor
Build-A-Thon Nigeria
Nigerian government organised an educational event in conjunction with the Raspberry Pi Foundation
- 4-days program
- Over 500 senior secondary school students
- Introduction to embedded systems and maker culture using Raspberry Pi Pico and MicroPython
Bus Pirate 5!
Hackaday have written up a very detailed hand-on review of the new Bus Pirate 5
- Latest version of the Bus Pirate, a very handy protocol analyser and multi-tool
- Serial text-based interface, no special software needed (just a serial terminal)
- Has a display to show I/O configuration
- 1.2 V to 5.5 V I/O tolerance
- Programmable power supply, with current limiting
- Open source firmware, still in its infancy, but is under active development
- I want one! Seems like it’s US$38, from their website
Electrosmith Daisy Seed
The Daisy is an embedded system geared towards making music
- Stereo audio I/O – 96kHz / 24-bit audio hardware
- ARM Cortex-M7 MCU, running at 480MHz
- 64MB of SDRAM for up to 10 minute long audio buffers, 8MB external flash
- No specific MicroPython support, but the MCU is supported so shouldn’t be that hard to make a new port
- US$22, from the Electrosmith website
Waveshare RP2040-BLE
Combines a Raspberry Pi RP2040 microcontroller with an unnamed Bluetooth 5.1 dual-mode chip
- Raspberry Pi RP2040
- Bluetooth 5.1 dual-mode function (BLE and classic)
- Controlled by serial AT commands
- Has a wiki page with some examples
- Very inexpensive, like most Waveshare parts, US$6.50 from their online shop
Waveshare ESP32-H2-DEV-KIT-N4
RISC-V 32-bit single-core processor with a clock speed of up to 96MHz
- ESP32-H2-MINI-1 module
- 320 KB SRAM, 128 KB ROM, 4 KB LP memory, 4MB Flash memory
- Radios for Bluetooth, Zigbee, Thread
- Lots of information on the wiki page
- Only US$5.99 from their online shop
Closing Thought
At one point I was debugging a C extension to micropython in one vscode and debugging python code in another. It was at that point I realised what an amazing set of low cost tools we have access to