June 2024 Meetup
Damien ports his keyboard to MicroPython(!). Matt delivers the News.
Links from Damien’s talk
- Splitkb make great keyboards
- Kyria v3
- qmk keyboard firmware
- zmk keyboard firmware (Zephyr, better BLE support)
- kmk firmware (CircuitPython)
News Round-up
Headlines
MicroPython v1.23 Release
On the last day of May, v1.23 was released!
Featuring dynamic USB devices, OpenAMP support, huge improvements to webassembly and much, much more.
However, development of MicroPython rarely pauses, and the v1.24 milestone already contains some exciting features!
ViperIDE
Volodymyr Shymanskyy, co-founder of Blynk, released ViperIDE.
It’s a browser-based IDE designed to work with MicroPython. It leverages WebUSB and WebBluetooth to establish connections to a device and uses the usual protocols from mpremote for file transfers. It’s also got a built-in mip-based package manager and a live REPL.
While generally pretty great, it’s a particularly fantastic tool on Chromebooks where it’s often not possible to install packages.
Les Pounder from Tom’s Hardware also interviewed Volodymyr about ViperIDE - but they also covered Blynk and an as-yet-unreleased library to connect MicroPython devices to Blynk.
PyCon AU: Call for proposals
PyCon AU opened up the call for proposals on the 1st June. It closes Sunday 21 July 2024 (before the next meetup!) so get those proposals submitted!
As well as the ‘main’ conference track, there are three specialist tracks this year are:
- Education
- Scientific Python
- DevOops
If there’s enough interest we may consider running a MicroPython Development Sprint around the time of the event. Let me know if you’re interested!
Teardown 2024
Crowd Supply’s Teardown is an annual conference “about the practice and the art of hardware…”.
As he shared in a Discussion
post, Ned Konz is
giving gave a talk of particular interest to us: Prototype to product with
MicroPython: faster and happier embedded systems
development
Videos from Teardown aren’t yet published but Ned’s slides looked great!
Programming ESP32: Learn MicroPython Coding and Electronics [book]
Dr Simon Monk has released Programming ESP32: Learn MicroPython Coding and Electronics.
Currently it’s available on Amazon but Dr Monk’s blog announcement indicates that it’ll soon also be released on MonkMakes.
[Hot tip: The Amazon link on the blog post doesn’t allow purchases in Australia, but Dr Monk was kind enough to source a different link that we can use Down Under!]
At the same blog post he also discusses his decision to use Thonny and the specific ESP32 boards used in the book. All the example code used in the book is available.
Is MicroPython better than Basic?
In Kevin McAleer’s latest video he reprograms some retro games using MicroPython instead of the original Basic:
Matt’s New Hardware
Waveshare? Nope. Next month!
Hardware News
LilyGo
LilyGo have another spate of new releases.
Here are a couple that are worth checking out, but the T-QT C6 and T-Camera Plus S3 will probably also be of interest!
T-Glass
- ESP32-S3 FN4R2
- 4MB Flash, 2MB PSRAM
- Microphone, RTC, touch button
- 294x126 AMOLED (JD9613)
- 6-axis IMU (BHI260AP)
US$41
T-Encoder Pro
- ESP32-S3 R8
- 16MB Flash, 8MB PSRAM
- Buzzer, 2xQwiic
- 1.2” 390x390 AMOLED (SH8601A-W16-T06)
- Rotary encoder
- Touch display (CHSC5816)
US$33
M5Stack
M5Stack CoreS3 SE released
- ESP32-S3, 16MB flash, 8MB RAM
- 2” cap touch display
- RTC
- I2S input and amplier, with 1W speaker
- Low power
Cheaper than the original M5Core S3, the SE drops the camera, prox sensor, IMU and magnetic compass. And it’s half the thickness, dropping the included DinBase of the original.
US$39
Software News
MicroPython on the Playdate
Quick update: pew-playdate v0.1 released by Christian. “First release that actually runs unmodified PewPew games.”
micropython-bleradio
Laurens Valk announced that he’d released a lightweight library - micropython-bleradio - to perform simple but low-level BLE comms. Uses only the BLE advertising packet, takes care to embed data in very few bytes.
MPDisplay
Brad Barnett has been doing some fantastic work with his GUI library MPDisplay. Read - and get involved with! - his discussion post that introduces MPDisplay.
From the post:
“MPDisplay is a display and event driver that works on CPython, CircuitPython and MicroPython. It enables you to develop your app’s UI on your deskop and the code immediately transfers to your microcontroller!”
Brad has been looking to bridge the MicroPython and LVGL worlds but this library appears to be even more ambitious!
Tim plays movies..and releases bitgraphics
Tim Hanewich has been looking at ways of rendering monochrome videos efficiently on the venerable - and very cheap - SSD-1306 OLED displays.
Tim has been keeping busy it seems; he’s also released bitgraphics, a MicroPython module for displaying images, text and other graphics on the SSD-1306. It’s a bit like dialing framebuf up to 11.
RISC-V QEMU port and emitter
Alessandro Gatti has been doing some interesting work with RISC-V.
Add a RISC-V RV32IMC native code emitter
Note that inline RISC-V assembly isn’t yet supported…but these PRs lay the necessary groundwork.
When a Mongoose met a MicroPython
An excellent write-up on how to integrate Cesanta’s popular open-source embedded C MQTT library - Mongoose - so you can use it from MicroPython. An excellent real-world example of how to implement user modules.
Framebuf for the Console
Owen Carter announced a framebuf driver for REPL console use. His discussion post has more details; it allows you to render output that would normally go to a display to the console instead. Handy! We’ve started discussing extending the idea…
MicroPython for the TC32
David Given ports MicroPython to a $3 Aliexpress-bought watch. I think the first line sets the scene: “I have a new watch. It’s terrible.”
It uses an obscure micro, the Telink TLSR8232. 512KB flash (good!) but 16KB RAM (ouch, tight!).
His video also made it to the front page of Hacker News. Twitter announcement
ESP32-C6 port
Update: AndrewL and dmfaria resolved the last known issue; ADC’s are fixed for the C6.
One feature of the C6 that I’d neglected to notice; although it’s a relatively affordable device, Espressif included support for CAN (TWAI).
Projects
Caravan motor home leveler
Luc Volders has been building a caravan/motor-home leveler with a six-part blog write-up! The neat thing about this project is that you can leave the device in the caravan and level the vehicle from the outside.
Part 2 covers the MicroPython software.
Ultimate Open Source Smart Sit-Stand Desk
Walid has built a smart sit-stand desk based on a broken, manual IKEA desk. All the MicroPython firmware is available and Walid would love feedback on it.
This was a beautiful build, Walid has clearly put a lot of time and effort into it and has put together a stunning video of the construction, from start to finish:
Balance droid
John Hylands is working on a Balance Droid, if you’re interested then follow his balanceDroid repository and join in the MicroPython Discord where he’s discussing implementation details.
Final Thoughts
Meetup alternative?
Meetup has disappointed me one too many times! Anyone have any good alternatives?
MicroMac
The MicroMac is an old-school Macintosh for under £5! Built out of one of our faves, the Raspberry Pi Pico.
How to train simple AIs to balance a double pendulum
An excellent video from Pezzza’s Work that explains how to train a neural network to balance a double pendulum.
Although an ideal ML application, before I watched the video I wouldn’t have been entirely sure it would be possible to balance a double pendulum using this method; they’re inherently very chaotic! Spoiler alert: It is, and now I can’t help but wonder if a 3x (or 10x pendulum? 1000x??) is possible…
It would be fascinating trying to build this with MicroPython and seeing how the real world would affect performance.