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.
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.
FreeBSD 10.0 RC3 – so close: It’s so close, FreeBSD 10.0 that it, with the third release candidate for 10.0 being made available from the various FreeBSD mirrors. And while you are looking, remember that the FreeBSD Foundation is in the final part of 2013’s fund raising drive looking to get a million dollars (currently at $648,622 with 1499 donors) to power the group through 2014.
Ruboto – JRuby on Android 1.0.0: The developers of Ruboto have, with the release of 1.0, declared their port of JRuby on Android “ready for general consumption” with all the “important parts” of the Android API available and stabalised and performing reasonably and enough documentation to work with.
ODroid U3 powers up: LinuxGizmos.com notes the upcoming availablity of Hardkernel’s Odroid U3, a quad core Exynos 4412 ARM based board which looks to pack a lot of power into a $59 board. It’s already been added to Codepope’s shopping list, especially with the option to use 8-64GB of faster eMMC memory to host either Linux (Xubuntu) or Android. Stay tuned for when it arrives here for a close look… in the meantime, we have an Xmos StartKIT which is pining for attention.
Facebook Rocks: Another database open sourced by Facebook? Yup, and demonstrating that the term “database” covers a lot of ground, Facebook’s latest is RocksDB, an embedded key-value store for those userfacing situations where you need a lot of woosh, little latency. Lead developer, Dhurba Borthakur, explains in a blog posting that RocksDB is based on Google’s LevelDB and is tuned to run on many-core servers which making efficient use of storage to cut down on write wear. It’s implemented as a C++ library with arbitrary byte streams for keys and values and all the major components are pluggable and replaceable. It’s published under a BSD licence and comes with an additional patent licence.
OSI gets a GM: The Open Source Initiative has long been a purely volunteer organisation and that has limited what it has been able to do. But that’s changing with the appointment of the first employee, Patrick Masson, who’s taken on the post of General Manager at the OSI. Masson has introduced himself to the membership and is setting out on his tasks of running working groups, expanding membership and updating the OSI’s communications. It’ll be interesting to see what a difference it makes.
Cosmic Sans Neue: Who doesn’t like programmer fonts with their mono-spaced elegance? But maybe you want something a tiny bit quirkier. Check out Cosmic Sans Neue Mono, which has a tiny bit of quirkyness, not only in it’s name but in some of the character shapes. You can also find it on GitHub and it’s available under the SIL Open Font Licence
JavaFX on Android and iOS: One of Oracle’s ongoing projects is getting JavaFX onto the two big smartphone platforms. An update from Richard Bair (Chief Architect Client Java at Oracle) says the work is now at “a good prototype stage”. There’s “funky” code swapping JavaFX text fields for native components and the plan is to build a more layered system for better native look and feel without Swing style theming. But Bair also notes that currently its all hands on deck for Java 8. If you are wondering about whether there’s a JVM on iOS, things point towards the open source RoboVM which compiles Java bytecode the ARM or x86.
Firefox’s Java Blackout: And if you are having trouble (or your users are) with Java applications that work with Firefox, then the short story is that Mozilla have marked the Java plugin as unsafe by default. You’ll find the bug and angry comments in the Mozilla Bugzilla and you’ll want to refer to “How to enable Java if it’s been blocked“. Unfortunately, Mozilla’s security UI design is “special” and so you’ll need to look at the red “lego brick” icon in the address bar to allow Java to run. And remember to UPDATE YOUR JAVA now – Latest versions is Java 7 update 45. And if you don’t use applets or Web Start, leave it disabled. Mozilla’s policy good, fire^h^h^h^h Mozilla’s communication skills bad.
Amazon Audio Transcode: Amazon’s Elastic Transcoder now does audio as well as video. Save content up on S3, select presets, let rip and let the results land back on the S3 storage service. The free AWS tier gives you the ability to transcode 20 minutes a month for free, though this does appear to be a little mean – for video you get 20 minutes of SD content a month which, paid for in the EU data centre, costs $0.017 per minute, while audio costs $0.00522 per minute. Still, equine dental hygiene inspection is unbecoming and they do support transcoding audio to AAC, MP3 and Vorbis.
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.
NetBSD 6.1.2 released: The second security/bug-fix release for NetBSD 6.1 is now available with one security fix and fixes for KVM shutdown, USB device enumeration, networking with npf, udf file systems and pthreads. There’s also updated timezone data, a corrected regression for some X apps and a fix for some Emacs 24 crashes.
A Lua JVM?: An intriguing experiment has appeared in the form of luje, a “toy” Java virtual machine written in Lua. It on-the-fly compiles the Java byte code into Lua scripts and then runs them with LuaJIT. “Right now it excels at anything which involves tight loops and float or doubles in local variables” say the developer, David Given, noting it can beat the Hotspot/JIT in those cases, but it does badly with longs and many other things. The code is a 0.1 release, is fragile and incompletly implemented, but if interesting JIT tricks are your thing, this is one to look at.
MariaDB’s heading to Debian: Colin Charles passes on the news that Debian’s MySQL package team have a plan for MariaDB 5.5, that it’s been uploaded to Debian unstable and should appear in unstable in due course.
Arduino has been working with both Intel and TI to create two new boards, both of which are quite interesting departures from their previous designs. Both run Linux, in different ways but while one tries to replace the AVR microcontroller of the classic Arduino, the other hugs the classic Arduino deep into its design.
The first board announced was the Arduino Galileo which is powered by Intel’s Quark SoC X1000 running at 400Mhz and in due to be available in November and, according to some reports, will be “less than $80”. The processor is a 32-bit “Pentium-class” chip and the datasheet(pdf) details how the board has a set of 3.3V (or jumper settable 5V) connectors which are Arduino Uno R3 pin compatible. There’s also 10/100 Ethernet, a PCI Express mini card slot, micro-SD slot and USB client and USB host connectors on the board. This is very much an Intel rendering of what an Arduino would be with Intel’s Quark at its core; note, for example, that for a board of its spec, there’s no video out of any form, despite being closer to the Raspberry Pi and BeagleBone Black in pricing and that from the higher side. It’s an interesting iteration which gets Intel into the emerging market of small embeddable devices, but will it play with the makers – it doesn’t look easy to go from a Galileo to a production device.
The other board may be more exciting for makers, even if it is not available till next Spring and being shown now only as a sneak peek. Designed as part of a collaboration between Arduino and the BeagleBoard.org foundation, the Arduino Tre is a double processor sandwich with a 1GHz TI Sitara AM335x processor running Linux wrapped around a Atmega32u4 based Arduino – yes, the BeagleBone Black and Arduino have had a love-child and the Tre is the result; an ARM based Linux running processor to do the heavy compute lifting and networking and a classic Arduino to do the interfacing. The Tre is covered in connectors to wire up to, with the Arduino shield pins in the centre and the BeagleBone style cape connectors still on the board but separated by a whole Arduino now.
How this’ll work in practice, who knows, but it opens up a range of opportunities, especially as the Tre, unlike the Galileo, has HDMI video out too. Again no official pricing and this is down for a Spring landing so a bit of a wait. Till then, if you haven’t got one, get yourself a BeagleBone Black and interface it to your Arduino to simulate at least some of the experience.
Which reminds me… (he said getting his BeagleBone Black out)…
Eclipse erects Mosquitto net: The MQTT broker Mosquitto is being proposed as a new open source project at Eclipse. It not only implements the TCP based MQTT but has support for MQTT-SN, a connectionless version for UDP and other networks. The plan is to merge Mosquitto and RSMB, a previously closed source MQTT broker implementation, at Eclipse. If, or more when, this proposal is accepted, it will mean that the Eclipse M2M initiative will have a full MQTT cross platform stack under their wing. If you want a low-nonsense, low-overhead publish and subscribe messaging system, you will want to look at MQTT.
Firefox memory saves: Sometimes memory saving is marginal. Other times, like this it can be huge. A combination of two fixes applied to the Firefox code base have take peak memory use on image heavy pages down from, in an example, 3GB in Firefox 23 to “a couple of hundred megabytes” in Firefox 26 (Aurora). Excellent work from the Firefox Memshrink team; this wasn’t just a matter of closing leaks but working out what was and wasn’t onscreen and what could have been likely to be on screen.
Apache OpenOffice updates: Apache OpenOffice 4.0 has just had its first update in the shape of version 4.0.1. Along with bug fixes, there’s 9 new translations (Basque, Khmer, Lithuanian, Polish, Serbian Cyrillic, Swedish, Traditional Chinese, Turkish and Vietnamese) getting OpenOffice up to 32 languages supported, and a number of performance improvements including speeding up Excel spreadsheet saving by 230% in “one common scenario”. Release notes also show updated translations and updated English (US and proper), Gaelic, French, Italian and Spanish dictionaries. And if you are wondering what this has to do with code; remember you can use OpenOffice headless as a document processing service (start it with the -headless parameter).
ARM64 and iPhone explained: A useful look at what is actually changing with Apple’s A7 and ARM64 architecture from Mike Ash’s blog. Worth a read especially for the repurposed isa pointer.
GNU Hurd Updates: On the 30th anniversary of the GNU project, the Hurd developers released an update to the project’s operating system along with an update to GNU Mach and RPC translator GNU MIG.
GNU APL 1.0 Lands: APL is one of the venerable languages dating back to 1964 which has classically been associated with number crunching. And now, after some time in development, Jürgen Sauermann has announced the availability of GNU APL 1.0.