Charge NiMH Batteries With Style, Panache And An RP2040

The increasing dominance of lithium cells in the market place leave our trusty NiMH cells in a rough spot. Sure, you can still get a chargers for the AAs in your life, but it’s old tech and not particularly stylish. That’s where [Maximilian Kern] comes in, whose SPINC project was recently featured in IEEE Spectrum— so you know it has to be good.

With the high-resolution LCD, the styling of this device reminds us a little bit of the Pi-Mac-Nano— and anything that makes you think of a classic Macintosh gets automatic style points. There’s something reminiscent of an ammunition clip in the way batteries are fed into the top and let out the bottom of the machine.

[Maximilian] thought of the, ah, less-detail-oriented amongst us with this one, as the dedicated charging IC he chose (why reinvent the wheel?) is connected to an H-bridge to allow the charger to be agnostic as to orientation. That’s a nice touch. An internal servo grabs each battery in turn to stick into the charging circuit, and deposits it into the bottom of the device once it is charged. The LCD screen lets you monitor the status of the battery as it charges, while doubling as a handy desk clock (that’s where the RP2040 comes in). It is, of course powered by a USB-C port as all things are these days, but [Maximilian] is just drawing from the 5V line instead of making proper use of USB-C Power Delivery. (An earlier draft of this article asserted incorrectly that the device used USB-C-PD.)  Fast-charging upto 1A is enabled, but you might want to go slower to keep your cells lasting as long as possible. Firmware, gerbers and STLs are available on GitHub under a GPL-3.0 license– so if you’re still using NiCads or want to bring this design into the glorious lithium future, you can consider yourself welcome to.

We recently featured a AA rundown, and for now, it looks like NiMH is still the best bang for your buck, which means this project will remain relevant for a few years yet. Of course, we didn’t expect the IEEE to steer us wrong.

Thanks to [George Graves] for the tip.

A circuit board in the shape of a business card is shown. The circuitry is confined to the left side of the board, and the rest is used for text.

(Neural) Networking With A Business Card

A PCB business card is a great way for electrical engineers to impress employers with their design skills, but the software they run can be just as impressive as the card itself. As a programmer with an interest in embedded machine learning, [Dave McKinnon] wanted a card that showcased his skills, so he designed one that runs voice recognition.

[Dave] specifically wanted to run a neural network on his card, but needed to make it small enough to run on a microcontroller. Voice recognition looked like a good fit for this, since audio can be represented with relatively little data, a microphone is cheap and easy to add to a circuit board, and there was already an example of someone running such a voice recognition network on an Arduino. To fit the neural network into 46 kB, it only distinguishes the words “one” through “nine,” and displays its guess on an LED seven-segment display. [Dave] first prototyped the system with an Arduino, then designed the circuit board around an RP2040.

Continue reading “(Neural) Networking With A Business Card”

DIY RP2040 Dev Board

RP2040 From Scratch: Roll Your Own Dev Board Magic

Have you ever looked at a small development board like an Arduino or an ESP8266 board and thought you’d like one with just a few different features? Well, [Kai] has put out a fantastic guide on how to make an RP2040 dev board that’s all your own.

Development boards are super useful for prototyping a project, and some are quite simple, but there’s often some hidden complexity that needs to be considered before making your own. The RP2040 is a great chip to start your dev-board development journey, thanks to its excellent documentation and affordable components. [Kai] started this project using KiCad, which has all the features needed to go from schematics to final PCB Gerber files. In the write-up, [Kai] goes over how to implement USB-C in your design and how to add flash memory to your board, providing a place for your program to live. Once the crystal oscillator circuit is defined, decoupling capacitors added, and the GPIO pins you want to use are defined, it’s time to move to the PCB layout.

In the PCB design, it starts with an outside-in approach, first defining the board size, then adding the pins that sit along the edges of that board, followed by the USB connector, and then moving on to the internal components. Some components, such as the crystal oscillator, need to be placed near the RP2040 chip, and the same goes for some of the decoupling capacitors. There is a list of good practices around routing traces that [Kai] included for best results, which are useful to keep in mind once you have this many connections in a tight space. Not all traces are the same; for instance, the USB-C signal lines are a differential pair where it’s important that D+ and D- are close to the same length.

Finally, there is a walk-through on the steps needed to have your boards not only made at a board house but also assembled there if you choose to do so. Thanks [Kai] for taking the time to lay out the entire process for others to learn from; we look forward to seeing future dev-board designs. Be sure to check out some of our other awesome RP2040 projects.

Bit-banged 100 MBit/s Ethernet Transmission On Raspberry Pi Pico

The Raspberry Pi Pico is a very capable board, but it’s still a surprise to see bit-banged 100 MBit/s Fast Ethernet implemented on one. [Steve]’s Pico-100BASE-TX library allows an RP2040 (or RP2350) microcontroller to stream data at roughly 11 Mbyte/s, enough to implement 100 MBit/s Fast Ethernet transmission.

We’ve seen 10BASE-T implemented on a Pico, but it takes a lot more than just shoveling bits faster to get 100BASE-T working. 10BASE-T uses two voltage levels and Manchester encoding, but 100BASE-T uses three voltage levels, which [Steve] cleverly implemented on the Pico with two GPIOs, and far more complex encoding. Check out the repository’s README for details as well as a couple example applications.

[Steve] tells us that to the best of his knowledge, this is the first bit-banged 100 MBit/s Ethernet implementation using a microcontroller. It’s transmit-only — reception being an entirely different beast — but it’s possible some enterprising soul might find a solution. If you do, be sure to let us know all about it!

Test Pattern Generator For SCART And RGB TVs

CRTs don’t last forever, and neither do the electronics that drive them. When you have a screen starting to go wonky, then you need a way to troubleshoot which is at fault. A great tool for that is a pattern generator, but they’re not the easiest to come by these days. [baritonomarchetto] needed a pattern generator to help repair his favourite arcade machine, and decided to make his own DIY Portable RGB CRT Test Pattern Generator.

One of the test patterns available from the device. This TV appears to be in good working order.

While he does cite [Nicholas Murray]’s RP2040 test pattern generator as a starting point (which itself builds on the PicoVGA library once featured here), he couldn’t just build one. That worthy project only outputs VGA and because [baritonomarchetto] is in Europe, he needed a SCART connector. Since he’s working on arcade machines, he needed non-SCART RGB signals, too. The arcade signals need to be at higher voltages (TLL level) than the RGB signal you’d find in SCART and VGA.

The upshot is while he’s using [Nicholas]’s code for the RP2040, he’s rolled his own PCB, including a different resistor ladders to provide the correct voltages depending on if he’s dealing with a home TV or arcade CRT. To make life easier, the whole thing runs off a 9V battery.

If you’re wondering what the point of these test patterns is, check out this 1981-vintage pattern generator for some context from the era. If a digital replica doesn’t float your boat, it is possible to recreate the original analog circuitry that generated these patterns back when the CRT was king.

RP2040 Assembly Language Mix And Match

[David] is building a project with an OLED, a keyboard, and an RP2040. He’s perfected a scanning routine in C to work with the keyboard, but he still had some places he wanted to use even lower-level instructions. That was as good an excuse as any to experiment with inline assembly language inside the C program.

The goal was to grab the keyboard’s input and stick it into a memory address register so the data at that address could be shown on the display. However, there was a complication because memory access of this type has to be word-aligned.

Sure, you could mask the low bits of the address, do the read, and then set an index to pick the specific byte, but assembly is easy, and it is good to know how to put it in your code, anyway.

Continue reading “RP2040 Assembly Language Mix And Match”

Carry Your Grayscale Memories With This Tiny Game Boy Photo Frame

While we cannot be certain this is the world’s smallest digital photo frame, [Raphaël Boichot]’s Pico Slide Show is probably in the running. Since the 0.85″ TFT display would be wasted on multi-megapixel images, [Raphael] has dedicated this project to images from the Game Boy Camera.

It’s a good fit: the tiny square display has a resolution of 128 pixels per side, while the Game Boy Camera produces files measuring 128 x 112. That allows for pixel-perfect rendering of the grainy images from everyone’s favorite early digicam with just a little letter boxing.

While perfect for all your on-the-go Game Boy slideshow needs, an enclosure might be a good idea for hauling around that battery.

The brains of the operation are an RP2040, provided via the RP2040-zero breakout from Waveshare. Since everything is through-hole or on breakouts, this wouldn’t be a bad project for a beginner solderer.

Since it would make no sense not to have this tiny unit to be portable, power is provided with a 503035 LiPo pouch on the back. It’s only 500 mAh, but this device isn’t going to be chugging power, so we’d expect a reasonable runtime.

Alas, no link cable functionality is currently included, and files must be transferred via PC. Images are saved to the Pico’s flash memory, and [Raphaël] says any format from any Game Boy Printer emulator will work, provided it has a four-color palette. The flash memory on the chip has room for 540 images, which seems like more than enough. Regardless of the novelty of the tiny screen and retro format, nobody wants to see that many holiday snaps in one go.

The Game Boy Camera has been popular with hackers literally for decades now, and we’ve seen it everywhere from wedding photo booths to the heart of a custom DSLR, and even on Zoom calls.