Baby Keyboard Is Really Three Boards

Just when we think we’ve peeped all the cool baby keebs out there, another think comes along. This bad boy built by [andyclymer] can be configured three different ways, depending on what kind of control you’re after.

As designed, the PCB can be used as a six-switch macro keyboard, or a rotary encoder with two switches, or a pair of rotary encoders. It’s meant to be controlled with Trinket M0, which means it can be programmed with Arduino or CircuitPython.

This could really only be cooler if the key switch PCB holes had sockets for hot-swapping the switches, because then you could use this thing as a functional switch tester. But hey, you can always add those yourself.

If you’re in the market for purpose-built add-on input device, but either don’t have the purpose nailed down just yet, or aren’t sure you want to design the thing yourself, this board would be a great place to start. Usually, all it takes is using someone else’s design to get used to using such a thing, at which point it’s natural to start thinking of ways to customize it. [andyclymer] is selling these boards over on Tindie, or you can roll your own from the repo.

Need just a few more inputs? We’ve got you covered.

Scott Shawcroft Is Programming Game Boys With CircuitPython

Some people like to do things the hard way. Maybe they drive a manual transmission, or they bust out the wire wrap tool instead of a soldering iron, or they code in assembly to stay close to the machine. Doing things the hard way certainly has its merits, and we are not here to argue about that. Scott Shawcroft — project lead for CircuitPython — on the other hand, makes a great case for doing things the easy way in his talk at the 2019 Hackaday Superconference.

In fact, he proved how easy it is right off the bat. There he stood at the podium, presenting in front of a room full of people, poised at an unfamiliar laptop with only the stock text editor. Yet with a single keystroke and a file save operation, Scott was able make the LEDs on his Adafruit Edge Badge — one of the other pieces of hackable hardware in the Supercon swag bag — go from off to battery-draining bright.

Code + Community

As Scott explains, CircuitPython prides itself on being equal parts code and community. In other words, it’s friendly and inviting all the way around. Developing in CircuitPython is easy because the entire environment — the code, toolchain, and the devices — are all extremely portable. Interacting with sensors and other doodads is easy because of the import and library mechanics Python is known for, both of which are growing within the CircuitPython ecosystem all the time.

CircuitPython is so friendly that it can even talk to old hardware relatively easily without devolving into a generational battle. To demonstrate this point, Scott whipped out an original Nintendo Game Boy and a custom cartridge, which he can use to play fun sounds via the Game Boy’s CPU.

Now You’re Playing With Python

It’s interesting to see the platforms on which Scott has used the power of CircuitPython. The Game Boy brings the hardware for sound and pixel generation along with some logic, but he says it’s the code on the cartridge that does the interesting stuff.

The CPU communicates with carts at a rate of 1MHz. As long as you can keep this rate up and the CPU understands your instructions, you can get it to do anything you want.

Scott’s custom cart has a 120MHz SAMD51. He spends a second explaining how he gets from Python libraries down to the wire that goes to the Game Boy’s brain — basically, the C code underneath CircuitPython accesses direct structs defined within the SAMD to do Direct Memory Access (DMA), which allows for jitter-free communication at 1MHz.

He’s using the chip’s lookup tables to generate a 1MHz signal out of clock, read, and A15 in order to send music-playing instructions to the sound register of the Game Boy’s CPU. It sounds like a lot of work, but CircuitPython helps to smooth over the dirty details, leaving behind a simpler interface.

If you want easy access to hardware no matter how new or nostalgic, the message is clear: snake your way in there with CircuitPython.

Continue reading “Scott Shawcroft Is Programming Game Boys With CircuitPython”

CircuitPython Slithers Into 100th Board — The OHS 2020 Badge

CircuitPython reached a major milestone last week as it welcomed its 100th board into the fold: the wristwatch form factored badge designed for the 10th annual Open Source Hardware Summit, which takes place March 13th in New York City. Although CircuitPython — an open source derivative of MicroPython — was born at Adafruit, more than half of the boards on this list were produced outside of the company. That just goes to show the strength of the community in support of the snake.

The OSHW 2020 badge joins a litany of familiar boards happy to drop you into a Python interpreter. Among them there’s the Adafruit Feather ecosystem, the ItsyBitsy, specialized boards like the Edge Badge that was in some goodie bags at Supercon, and the CircuitPlayground — that Swiss army knife of sensors which now comes in a Bluetooth version. The first 100 boards were rounded out in strong fashion with [Joey Castillo]’s OpenBook e-reader and the Teensy 4.0. Continue reading “CircuitPython Slithers Into 100th Board — The OHS 2020 Badge”

CircuitPython Now Working On Teensy 4.0

Python is often touted as a great language for beginner coders to learn. Until recently, however, it simply wasn’t a viable choice in the embedded space. That’s begun to change with projects like CircuitPython, and now it’s available on the Teensy 4.0!

This milestone is thanks in part to [arturo182], who did the ground work of getting CircuitPython to run on the iMX RT series of microcontrollers. This was built upon by [tannewt], who is the lead in charge of the CircuitPython project.

There are some bugs to work out; currently, the project is in a very early stage of development. [Paul Stoffregen], who heads Teensy development, has already pointed out that there needs to be allowance for the 4096 byte recovery partition in the Teensy 4.0’s storage, for example. Development continues at a rapid pace, and those with ideas about where the project should go can weigh in online.

It’s an exciting development, which brings easy Python development to one of the more powerful embedded development platforms on the market. We look forward to seeing many more projects take advantage of the power of the Teensy 4.0 moving forward. If you’re eager to see what can be done with CircuitPython, be sure to check out projects we’ve featured before. Video after the break.

Continue reading “CircuitPython Now Working On Teensy 4.0”

DIY CircuitPython Brain Snakes Into Small Spaces

Whether you’re new to electronics and programming, or you were bit-banging bare metal long before hair metal, CircuitPython is a great tool for getting a project up and working without all the fuss. The boards show up as mass storage devices, and programming consists of editing the Python file and saving it back to the board.

The only hard part about CircuitPython is trying to cram those official boards into small projects. [Kevin Neubauer] got tired of making his own board every time and came up with a slim system-on-module that has all the core functionality of CircuitPython. CircuitBrains Deluxe has regular holes for using headers, but also has castellated pads so he can solder these modules directly to a larger project PCB. [Kevin] says these are still in the testing and cost-optimization phase, but we would totally buy a few of them.

[Kevin] probably has a programming method for this module in mind already. But if you find yourself mystified by castellated pads, take a look at this pogo pin programmer built for ESP8266s. If your problem is pitch-related, maybe you can save the day with a breakout board.

Thanks to [Drew Fustini] for the tip!

CircuitPython Sculpture Clock Adds Character To Any Desk

We can probably all relate to the origin story of this one. [Alex] was working on a bigger, more involved clock project when this cute little desk clock idea caught his mind’s eye. Who wouldn’t want a clock with character and a little bit of an attitude?

This little guy’s brain is an ItsyBitsy M0 Express, and he gets his time data from an Adalogger FeatherWing RTC. Those antennae aren’t just for looks – [Alex] chose the ItsyBitsy because it can easily do capacitive touch out of the box without extra components. In the brief demo after the break, [Alex] shows how touching them triggers either an animated face or a still face before switching to the clock face.

We love functional circuit sculptures, especially ones with this much character. [Alex] was inspired by [Mohit Bhoite]’s breathtaking circuit sculptures and seems to follow his great example of laying it all out on paper first. Incidentally, our last HackChat before Supercon starred [Mohit] and his circuit sculptures. Missed it? Read the transcript here.

Continue reading “CircuitPython Sculpture Clock Adds Character To Any Desk”

Building An Open Hardware EBook Reader

On the whole, hackers aren’t overly fond of other people telling them what they can and cannot do with the hardware or software they’ve purchased. Unfortunately, it’s becoming more and more difficult to avoid DRM and other Draconian rules and limitations as time goes on. Digital “eBooks” and the devices that are used to view them are often the subject of such scrutiny, which is why [Joey Castillo] has made it his mission to develop a open hardware eReader that truly belongs to the user.

[Joey] has been working on what he calls the “The Open Book Project” for a few months now, and he’s just recently announced that the first reader has been successfully assembled and powered up. As is usually the case, a few hardware issues were identified with this initial prototype. But it sounds like the device was largely functional, and only a few relatively minor tweaks to the board layout and components should be necessary before the hardware is ready for the masses.

An earlier prototype, using the Adafruit Feather

If you’re feeling a bit of déjà vu seeing this, don’t worry. The Open Book Project has taken a somewhat circuitous path to get to this first prototype, and [Joey] had previously developed and built the “eBook Feather Wing”. While they look very similar, that earlier incarnation required an Adafruit Feather to operate and was used to help refine the firmware and design concepts that would go into the final hardware.

The Open Book is powered by a ATSAMD51N19A processor with a GD25Q16 2MB flash chip to hold the CircuitPython code, and a microSD slot to store the actual book files. It also features support for audio output via a standard 3.5 mm headset jack, an RGB status LED, and expansion ports that tap into the I2C interface for adding whatever other hardware you can dream up.

One of the most interesting aspects of this Creative Commons licensed reader is the extensive self documentation [Joey] has included on the silkscreen. Every major component on the back of the PCB has a small description of its purpose and in some cases even a breakdown of the pin assignments. The idea being that it not only makes the device easier to assemble and debug, but that it can also explain to the curious user what everything on the board does and why it’s necessary. It’s a concept that makes perfect sense given the goals of the Open Book Project, and something that we frankly would love to see more of.

[Marc Juul] presented his work on a FOSS operating system for older-model Kindles at HOPE XII as a way to avoid Orwellian monitoring of the user’s reading habits, so it’s interesting to see somebody take this idea to the next level with completely libre reader hardware. Unfortunately none of this addresses the limited availability of DRM-free eBooks, but one step at a time.