An edifying weekend saw me looking at a whole load of ESP32 based boards – The WiPy 2.0, the Sparkfun ESP32 Thing and the Huzzah32… and in turn a whole set of MicroPython variants… MicroPython is a shrunk down Python 3 for embedded devices and it can fit in some pretty small spaces – there’s a version for the MicroBit even. Anyway, I wanted to find out if I could do a particular projects proof of concept using MicroPython. Let battle commence…
First up was – Pycom’s MicroPython for the WiPy 2.0 is well packaged and relatively complete; it includes RTC support and enough other drivers that I was able to build my proof of concept device. The VS Code integration was neatly done and so much more useful than previous attempts… But the board is literally just the processor. Supply power on the pins and bring your own USB or use their expansion boards. That was already bumping the costs up…. before I went further prototyping (as the rig was already syncing clocks, reading RFID cards and posting to REST endpoints) I thought I’d have a look around.
Next up was Adafruit’s Huzzah32 Feather.
It’s a lovely little Feather board – I do like the Feather form factor and with the new Express boards bringing CircuitPython into play things look interesting. CircuitPython is Adafruit’s fork which tries to simplify the whole thing with embedded hardware where lots of physical features turn into code for particular boards and stop things being portable. Great idea. Turns out the Huzzah32 doesn’t have a CircuitPython port yet though… CircuitPython is an interesting fork but it needs a target board with a bit of WiFi. The Huzzah32 does have the USB and LiPoly support so theoretically it could run MicroPython… let’s try straight MicroPython on an ESP32…
Specifically, lets go back to MicroPython and run from the fork for ESP32. This was to run on the Sparkfun ESP32 Thing, which is a super practical hacking board at a decent price and complete with USB and LiPo battery support. It’s not a small board, but it’s easy to shoehorn in. Then there’s the current MicroPython for ESP32 – like pretty much every API for the ESP32 it’s a work in progress, but this work in progress hurt hardest when I found no RTC clock support in MicroPython at the moment.
The weird part is… writing the Python code was pretty plain sailing for this embedded environment, so I’m guessing it can only get better.
Meanwhile for the proof of concept project…. Heading back to the Arduino framework was no less fruitful. Again, missing RTC support lead the problem set. So I’m back on the WiPy 2.0 to finish the PoC and wondering if I really want to get all C++y to use the Espressif native tool chain. At least there’s be no lack of drivers…
But, and I didn’t think I’d say this…. but I cant wait for Python to harden up in the embedded space.
Qt 5.3: The folks at Digia seem to be keeping the Qt development pace up, and not forgetting to take a breather and getting the stability story right. The latest release, Qt 5.3 appears to be one of those breather releases with lots of fixes for the desktop platforms and a supported beta for the Windows 8 Runtime. There’s some new additions too; a QtQuickWidget lets Qt Quick UIs be embedded into older Qt Widget based applications for a smoother transition between the old to new development style and there’s now WebSockets support for plugging into more web applications. You’ll find all the open source tools and downloads on the Qt Project website.
Papilio:Just turning up on my radar, and I’m late to the party, is Papilio, a single board controller which looks like a turboed up Arduino but at its heart is not an Atmel chip but an FPGA chip. That FPGA can be configured with a soft clone of the AtMega chips and driven with the Arduino IDE or it can run a “ZPUino” configuration which works like an “Arduino on steroids” at 100Mhz.
The compatibility with Arduino isn’t the driver for the project though, its more of a stepping stone into FPGA programming. Videos on the site show the Papilo programmed to emulate the Pacman and Frogger motherboards with FPGA emulations of Z80s and other classic CPUs or getting the Papilo to emulate the SID chip from the Commodore 64. The chip, on the Pro version at least, is a Xilinx Spartan 6 LX FPGA – There’s a couple of boards and the UK supplier, SK Pang, offers the newer Pro for £80 inc VAT (and a slightly older, cheaper Paplio One 500K for around £65). A list of other regional distributors is also availble.
There’s also an expansions, such as the LogicStart MegaWing for getting into FPGA/VHDL development, the Arcade MegaWing for game emulation, the Retrocade MegaWing for audio/midi work and [and numerous single purpose “wings. It looks like there’s already a whole ecosystem for the budding FPGA hacker to dive into.
Say you wanted to build a games machine with an Arduino at its core, you’d might be a trifle stuck with a stock Arduino. You could do a lot of the interfacing to controllers or the logic, but what about the display and sound. Well, previously you may have got a Gameduino which gave you 400×300 512 colour VGA output, hardware sprites and audio in a nifty Arduino shield. It is pure 8 bit epicness.
But that was back in 2011 and now the sequel is being kickstarted, Gameduino 2, and its a little cracker. With a smarter graphics engine, the FT800, it handles full 32 bit colour, JPEG loading in hardware and has what is described as an “OpenGL” style command set. Now it displays 480×272 in 24 bit colour and can handle 2000 sprites, rotated and scaled. It has 256KB of RAM and 6 sizes of font, 8 musical instruments and 10 percussion sounds already loaded into its ROM.
But where would you find a display for this device? As part of the Gameduino 2, there’s a 4.3″ touchscreen so you have that display and control surface you need for a modern game. It also has a 3 axis accelerometer for orientation-oriented gaming, a headphone jack for audio out and a microSD slot. It basically looks splendid and may even be the missing link in getting more kids into Arduinos – show them this playing games, then take it apart and show them how they can take control. Did I mention how the hardware and software is all open source too (BSD licensed), so ripe for hacking!
I’ll admit I’ve already backed the project – it has passed its $6700 goal and still has 28 days of kickstarter time to go. Now, who’s going to make a handheld case and power kit for this beast.