ESP32s and Python and more

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 released, an OS in JS and Papilio’s FPGA power – Snippets

Snippets
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.

Os.js: Every generation is doomed to reinvent the previous generation and here we have OS.js which looks to implement an entire desktop environment, within the browser, in JavaScript. Thats not to say its not interesting as the idea of having a desktop to your cloud isn’t without merit, especially so if the desktop is portable. There’s already a lot in the alpha version of the platform and it seems way more developed than similar projects I’ve encountered in the past. Window and file management, a GUI library, multi-user support, theming and applications such as Draw, Preview, Textpad and Writer make this a project worth looking at. There’s a demo online too and its all under what appears to be a BSD 2-clause licence.

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.

FreeBSD 10.0 so close, Ruboto goes 1.0, ODroid U3 coming – Snippets

snippets03

  • 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.

  • Readables: About Obfuscator-LLVM, Dual-Use tools and Acdemic Ethics – one of the elements of the fall out of the evasi0n iOS7 jailbreak clown-car-crash…

Facebook Rocks, Open Source Managers and Funner Fonts – Snippets

snippets03

  • 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 phones, Java blocks in Firefox, Amazon audio and extras – Snippets

Snippets

  • 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.

Game On! with Gameduino 2

beautySay 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, Lua JVM, Meego/Symbian’s long walk and MariaDB/Debian – Snippets

Snippets.png

  • 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.
  • Crunch time for Meego/Symbian: It looks like the end for Nokia’s support of Meego and Symbian support of devices through the company’s store is coming with the blocking of new app publication from 1 January 2014.
  • 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.