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.

An SAO For Hams

Generally speaking, the Hackaday Supercon badge will always have a place for SAO (rebranded as “Supercon add-ons”), and that makes sense. We did originate them, after all. This year, though, we’ve gone all in on SAO, and, in particular, we’ve asked to see more SAOs with communication capabilities. The standard has always had an I2C bus, but few people use them. I decided I wanted to set an example and cook up a badge for Supercon. Was it hard? Yes and no. I’ll share with you a little about the board’s genesis and the issues I found. At the end, I’ll make you a special offer, if you are going to Supercon.

The Idea

The front of the SAOGNR — the SAO connector is, of course, on the back

I’ve been a ham radio operator for a very long time. In fact, July was my 47th anniversary in the radio hobby. Well, that’s not true. It was my 47th year with a license. I had been listening to shortwave long before then. So, I wanted to do something with Morse code. You don’t have to know Morse code to get a license these days, but a lot of hams enjoy it.

I set out to do a simple board that would play some Morse code messages. But that’s just another blinking light LED with a buzzer on it, too. So, naturally, I decided it would also provide Morse code output for the I2C host. That is, the SAO could be used to convert ASCII to Morse code. Sounds simple, right? Sure.

Getting Started

I wanted to use a Raspberry Pi Pico but didn’t want to violate the SAO size requirements. Luckily, there’s an RP2040-Zero module that is quite tiny and looks more or less like a normal Pico. The two big differences are plusses: they have a reset button, and instead of a normal LED, they have a WS2812b-style LED.

Continue reading “An SAO For Hams”

Easily Program RP2040 Boards With Your Android Device

You could write your microcontroller code on your desktop PC, or you could do it on your laptop on the go. Or, if you want to get really portable about things, you could write your embedded code on your phone. Enter DroidScript.

Basically, DroidScript is a JavaScript and Python IDE for Android phones and tablets. Simple enough. You can use it to write apps for your phone or tablet. But its party piece? You can now also use it to program for embedded devices—namely, a range of those based on the RP2040 microcontroller. For example, the Adafruit QT-Py RP2040, the Pimoroni TinyFX, or the Pimoroni Yukon. They run MicroPython and CircuitPython, and you can program them from DroidScript. Easy.

A decade ago, this would have been a royal pain in the butt. But today? It’s easy, because the smartphones and devboards both use USB-C connectors. All you need is a regular USB-C cable and you can hook straight up to the board and burn your code.

You can get the app on the Google Play Store if you’re so inclined. We’ve seen some other neat smartphone programming projects over the years, too. Meanwhile, if you’ve found any other nifty ways to get your code on to a dev board, don’t hesitate to let us know!

Supercon 2023: Ben Combee And The Hacker’s Guide To Audio/Video Formats

Media formats have come a long way since the early days of computing. Once upon a time, the very idea of even playing live audio was considered a lofty goal, with home computers instead making do with simple synthesizer chips instead. Eventually, though, real audio became possible, and in turn, video as well.

But what of the formats in which we store this media? Today, there are so many—from MP3s to MP4s, old-school AVIs to modern *.h264s. Senior software engineer Ben Combee came down to the 2023 Hackaday Supercon to give us all a run down of modern audio and video formats, and how they’re best employed these days.

Continue reading “Supercon 2023: Ben Combee And The Hacker’s Guide To Audio/Video Formats”

A client uses an Augmented Alternative Communication board that speaks.

Tactile Communication Board Speaks The Truth

Sometimes, simple things can make a world of difference. Take for example a non-verbal person who can’t necessarily control a touch screen in order to tell someone else what they need or want or think.

The switches of the AAC board, plus the smaller version. This is where Augmentative and Alternative Communication (AAC) devices come in. Recently tasked with building such a device, [Thornhill!] came up with a great design that houses 160 different phrases in a fairly small package and runs on CircuitPython.

Basically, the client presses the appropriate snap-dome button button and the corresponding phrase is spoken through the speaker. The 10×16 grid of buttons is covered with a membrane that both feels nice and gives a bit of protection from spills.

The buttons can achieve high actuation forces and have a crisp tactile response, which means they’re probably gonna go a long way to keep the user from getting frustrated.

This handy AAC board is built on the Adafruit RP2040 Prop-Maker Feather and two keypad matrices. If this weren’t useful enough as it is, [Thornhill!] also built an even smaller version with 16 buttons for the client to wear around their neck.

Did you know? AAC boards aren’t just for humans.

Embedded Python: MicroPython Toolkits

Last time, I talked about how MicroPython is powerful and deserving of a place in your toolkit, and it made for a lively discussion. I’m glad to see that overall, MicroPython has indeed been getting the recognition it deserves – I’ve built a large number of wonderful projects with it, and so have people I’ve shown it to!

Sometimes I see newcomers dissatisfied with MicroPython, because the helper tools they initially pick don’t suit it well. For instance, they try and start out with a regular serial terminal application that doesn’t fit the MicroPython constraints, or a general IDE that requires a fair bit of clicking around every time you need to run your code. In particular, I’d make sure that you know your options no matter whether you prefer GUI or commandline – both have seriously nice tools for MicroPython use!

The main problem to be solved with MicroPython is that you have a single serial port that everything happens through – both file upload and also debugging. For ESP8266/32-based boards, it’s a physical serial port, and for chips like RP2040 and ESP32-S* where a hardware USB peripheral is available, it’s a virtual one – which makes things harder because the virtual port might get re-enumerated every now and then, possibly surprising your terminal application. If you want to upload a program of yours, you need to free up the serial port, and to see the program’s output, you will need to reopen that port immediately after – not a convenient thing to do if you’re using something like PuTTy.

So, using MicroPython-friendly software is a must for a comfortable hacking experience. What are your options? Continue reading “Embedded Python: MicroPython Toolkits”

Illustrated Kristina with an IBM Model M keyboard floating between her hands.

Keebin’ With Kristina: The One With The Tasty Snacks Board

A pocket cyberdeck-looking thing with a screen and a thumb keyboard.
Image by [MakerM0] via Hackaday.IO
[MakerM0]’s LangCard is an entry into our 2024 Business Card Challenge that just so happens to fit the Keebin’ bill as well.

You might label this a pocket cyberdeck, and that’s just fine with me. The idea here is to have a full-keyboard development board for learning programming languages like CircuitPython, MicroPython, C++, and so on, wherever [MakerM0] happens to be at a given moment.

Open up the LangCard and you’ll find an RP2040 and a slim LiPo battery. I’m not sure what display that is, but there are probably a few that would work just fine were you to make one of these fun learning devices for yourself.

Continue reading “Keebin’ With Kristina: The One With The Tasty Snacks Board”