New Part Day: Pyboard D is Smaller, Wireless, and Has Expansion Modules

Historically, microcontrollers’ limited computing power and storage space meant software had to be written in low-level languages out of necessity. In recent years small affordable chips grew powerful enough that they could theoretically run higher level languages, sparking numerous efforts to turn that theory into reality. MicroPython delivered on this promise in a big way when their Kickstarter-funded pyboard was delivered along with its open source software. Several years have since passed, and now it is time for an upgraded pyboard: the D-series.

We’ve talked with [Damien George] back when the original Kickstarter was still underway. Since the launch of pyboard and release of MicroPython source code, we’ve played with ports running on an ESP8266 and on a BBC micro:bit. The software ecosystem has continued to grow, most recently we looked at LittlevGL graphics library. But just because all the flashy action has been happening on the software side doesn’t mean the hardware side has been sitting stagnant.

Pyboard-D upgraded from original pyboard’s STM32F4 to more capable STM32F7 chips. Witnessing the popularity of MicroPython on networked darlings ESP8266 and ESP32, there will be a pyboard D variant with a Murata 1DX on board for WiFi and Bluetooth connectivity. The new pyboard will be extremely compact with limited edge connections so a fine-pitched connector is required to bring out all the pins. To bring the new pyboard back to its educational and tinkerer roots, a breakout board will take those pins and spread them out in a breadboard friendly form factor. These breakout boards can also host small (12 mm x 12 mm) “tiles” to add individual features.

The wireless pyboard D will obviously invite comparison tests with an ESP32 running MicroPython, and its hardware expansion tiles invites comparison with Adafruit’s Wings. It’ll be interesting to see how they fare once widely available and we can get our hands on them. If you’ve picked up an earlier release at FOSDEM 2019, we invite you to share your experience in comments.

[via Adafruit blog]

LittlevGL Brings GUI Tools to Micropython

Microcontrollers are wonderfully useful things, but programming them can be a little daunting if you’re used to the simplicity of compiling for regular PCs. Over time though, this has become easier. Communities have strayed away from assembly code and created higher-level languages such as Micropython, to allow these devices to be programmed in a more accessible manner. Unfortunately, Micropython has historically lacked a decent high-level GUI library. Thankfully, that’s no longer the case, with [amirgon] porting LittlevGL to the platform.

Putting a GUI into a project with a screen seems simple, until one actually gets down to brass tacks. A simple button can consist of a background color, text, and a symbol – and that’s not even considering the use of shading or other visual effects. Having a library to handle the grunt work can massively cut down development time.

LittlevGL is the work of [kisvegabor], and is programmed in C, but this effort has made it possible to integrate it with Micropython code. It’s all object-oriented, and thus works well in the broader Python framework. [amirgon] notes that it’s particularly good for quick development, due to Python’s ability to run code without a slow compiling step.

There are other approaches to this problem, too – with MyOpenLab being a particularly versatile example.

Friday Hack Chat: Circuit Python

Back in the olden days, if you wanted to learn how to program a computer, you used the BASIC interpreter stored in ROM. This is how an entire generation of devs learned how to program. Now, home computers do not exist, there is no programming language stored in ROM, and no one should inflict JavaScript on 8-year-olds. What is the default, My First Programming Language™ today? Python. And now it’s on microcontrollers.

For this week’s Hack Chat on hackaday.io, we’re going to be talking all about Circuit Python. Circuit Python is based on the Open Source MicroPython, a Python 3 interpreter that implements a subset of the Python language on microcontrollers and other constrained environments. It is the spiritual successor of BASIC on every computer: MicroPython has an interactive prompt, arbitrary precision integers, closures, lists, and more. All of this fits on a microcontroller with 256 kB of code space and 16 k of RAM.

Our guests for this week’s Hack Chat will be [Scott Shawcroft] and [Dan Halbert] from Adafruit. [Scott] started working on MicroPython with Adafruit in September 2016 and has led the renamed CircuitPython effort ever since. [Dan] started working on CircuitPython in early 2017 and joined Adafruit in August of that year. [Dan], by the way, is the original author of the ‘more’ command in UNIX.

For this Hack Chat, we’re going to be talking about CircuitPython, its history, current boards that support the project, and the end goals for CircuitPython. We’ll be talking about future plans, what will be supported in the future, and asking any technical questions about CircuitPython.

join-hack-chat

Our Hack Chats are live community events on the Hackaday.io Hack Chat group messaging. This Hack Chat is going down Friday, February 2nd at noon, Pacific time. Time Zones got you down? Here’s a handy countdown timer!

Click that speech bubble to the left, and you’ll be taken directly to the Hack Chat group on Hackaday.io.

You don’t have to wait until Friday; join whenever you want and you can see what the community is talking about.

Two Factor Authentication with the ESP8266

Google Authenticator is a particularly popular smartphone application that can be used as a token for many two factor authentication (2FA) systems by generating a time-based one time password (referred to as TOTP). With Google Authenticator, the combination of your user name and password along with the single-use code generated by the application allows you to securely authenticate yourself in a way that would be difficult for an attacker to replicate.

That sounds great, but what if you don’t have a smartphone? That’s the situation that [Lady Ada] recently found herself in, and rather than going the easy route and buying a hardware 2FA token that’s compatible with Google Authenticator, she decided to build one herself based on the ESP8266. With the hardware and source documented on her site, the makings of an open source Google Authenticator hardware token are available for anyone who’s interested.

Generated codes can also be viewed via serial.

For the hardware, all you need is the ESP8266 and a display. Naturally [Lady Ada] uses her own particular spin on both devices which you can purchase if you want to create an identical device, but the concept will work the same on the generic hardware you’ve probably already got in the parts bin. Software wise, the code is written in CircuitPython, a derivative of MicroPython, which aims to make microcontroller development easier. If you haven’t tried MicroPython before, grab an ESP and give this a roll.

Conceptually, TOTP is relatively simple. You just need to know what time it is, and run an SHA1 hash. The time part is simple enough, as the ESP8266 can connect to the network and get the current time from NTP. The calculation of the TOTP is handled by the Python code once you’ve provided it with the “secret” pulled from the Google Authenticator application. It’s worth noting here that this means your 2FA secrets will be held in clear-text on the ESP8266’s flash, so try not to use this to secure any nuclear launch systems or anything, OK? Then again, if you ever lose it the beauty of 2-factor is you can invalidate the secret and generate a new one.

We’ve covered the ins and outs of 2FA applications before here at Hackaday if you’d like to know more about the concept, in addition to previous efforts to develop a hardware token for Google Authenticator.

Jean-Luc PYcARD is a Pocketable Python Development Platform

It’s a good thing that a ridiculous pun and a screenprint of Jean-Luc Picard on the bottom of the board is enough to qualify for the 2017 Hackaday Sci-Fi Contest, because [bobricius]’s Python-plus-Arduino card and environmental sensor potpourri is very cool.

The PCB design itself is great. It’s got a gigantic LED array, cutout for a wrist strap, and an onboard USB plug so you can program it just by sticking it in your computer; it shows up as a USB mass storage device when you plug it in. The files that show up on the “drive” are Micropython code that you can edit, save, and then run directly on the device. You can hardly beat that for convenience.

And there’s a full complement of sensors: not one but two temperature and humidity sensors, including our recent favorite BME280, which also reads barometric pressure. (We suspect that makes it a tri-corder.) There’s a real-time clock, a buzzer, and some buttons. Want to add more sensors? I2C ports are broken out for your convenience.

Besides having Star Trek flair, this board would give the various educational platforms a run for their money: Micro:bit, we’re looking at you. Very cool indeed!

Friday Hack Chat: CircuitPython with Adafruit Engineers

What the heck is CircuitPython? Get that question answered along with many more during this Friday’s Hack Chat. Three engineers from Adafruit join us as [Ladyada], [Tony DiCola], and [Scott Shawcoft] lead a CircuitPython discussion at Noon PST on 1/27/17.

CircuitPython is Adafruit’s new extension on the MicroPython codebase. It adds support for SAMD21 processors in MicroPython and reworks the API for better support across platforms and better documentation. Does this still sound like jibberish? The Python programming language has been extended to microcontrollers. CircuitPython is furthering that work and this Hack Chat is the perfect opportunity to talk with the people who are doing that work. They will also be doing a giveaway of five CircuitPlayground m0 Express boards (brand new, not yet released hardware).

Don’t miss this Hack Chat! Here’s a handy web tool to help convert Friday, January 27 at noon PST to your local time.

Here’s How to Take Part:

join-project-team-message-buttons
Buttons to join the project and enter Hack Chat

Hack Chats are live community events that take place in the Hackaday.io Hack Chat group messaging. Visit that page (make sure you are logged in) and look for the “Join this Project Button” in the upper right. Once you are part of the project, that button will change to “Team Messaging” which takes you to the Hack Chat.

You don’t have to wait for Friday, join Hack Chat whenever you like and see what the community is currently talking about.

ESP8266 MicroPython Contest Gives You the Excuse You Need

As if the prospect of having everyone’s favorite scripting language ported over weren’t enough to get you to install MicroPython on a spare ESP8266, there is now a contest for that. Over on Hackaday.io the MicroPython on ESP8266 contest is under way and you’ve only got until the end of August to submit your creation.

The prizes? First place gets an OpenMV camera board because [Radomir], who’s running the contest, has an extra one. OK, it’s not as lush as the corporate-sponsored goody-bag that we’ve got running in the Hackaday Prize, but there’s no reason that you can’t enter both. And if anyone wants to throw some more goodies into the pot, I’m sure they’d be welcome.

The rules are simple: use an ESP8266 or ESP8285 with MicroPython and post the project up on Hackaday.io. Bonus points are given for creating new libraries or hardware drivers. Basically, this just gives you an extra reason to get in there and play around. How cool is that?

If you need a start-up on MicroPython on the ESP8266, the official tutorial is great. We wrote up a first-look review of running MicroPython on the WeMos D1 hardware, but were plagued with (re-)flashing difficulties, so we’re going to have to give it another go.