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.

2025 One Hertz Challenge: Drop The Beat (But Only At 60 BPM)

Mankind has been using water to mark the passage of time for thousands of years. From dripping stone pots in Ancient Egypt to the more mechanically-complicated Greco-Roman Clepsydrae, the history of timekeeping is a wet one — and it makes sense. As an incompressible fluid, water flows in very predictable patterns. If you fill a leaky pot with water and it takes an hour to drain, it will also take an hour the next time you try. One Hertz Challenge entrant [johnowhitaker] took this idea in a different direction, however, with an electromechanical clock that uses dripping water as an indicator.

This clock uses a solenoid to briefly pop the plunger out of a water-filled syringe. This allows a drop to fall from the tip, into a waiting beaker. In addition to the satisfying audio indication this produces, [johnowhitaker] added a bit of food coloring to the dripping water for visual flair. The entire thing is controlled by a Raspberry Pi Pico and a motor driver board, so if you’ve got some spare parts lying about and would like to build your own be sure to head over to the project page and grab the source code.

While this clock isn’t exactly here for a long time (either the syringe will eventually empty or the beaker will overflow), it’s certainly here for a good time. [John] and commenters on his project even have ideas for the next steps: a 1/60 Hz beaker changer, and a 1/600 Hz spill cleaner. Even so, the first couple of drops hitting the beaker produce a lovely lava lamp-esque cloud that is a joy to watch and has us thinking about other microfluidics projects we’ve seen.

And remember — it’s not too late to enter the 2025 One Hertz Challenge!

PicoGUS Adds CD-ROM Emulation To ISA Bus

Everything fails eventually, but moving parts fail fastest of all– and optical drives seemingly more than others, at least in our experience. Even when they work, vintage drives often have trouble with CD-R, and original media isn’t always easy to find. That’s why it’s so wonderful that [polpo]’s RP2040 ISA card, the PicoGUS 2.0, now supports CD-ROM emulation.

We covered PicoGUS when it first appeared as an ISA sound card,  and make no mistake, it can still emulate sound cards for retro-PC beeps and boops. It’s not just the Gravis Ultrasound (GUS) from which the project took its name, but Sound Blaster 2.0, MPU-401 for MIDI, Tandy 3-voice, and CMS/GameBlaster are all soft options. Like most sound cards back in the day, PicoGUS provides game port support as well.

Continue reading “PicoGUS Adds CD-ROM Emulation To ISA Bus”

Ploppy knob

Open-Source Knob Packed With Precision

The world of custom mechanical keyboards is vibrant, with new designs emerging weekly. However, keyboards are just one way we interact with computers. Ploopy, an open-source hardware company, focuses on innovative user interface devices. Recently, [Colin] from Ploopy introduced their latest creation: the Ploopy Knob, a compact and thoughtfully designed control device.

At first glance, the Ploopy Knob’s low-profile design may seem unassuming. Housed in a 3D-printed enclosure roughly the size of a large wristwatch, it contains a custom PCB powered by a USB-C connection. At its core, an RP2040 chip runs QMK firmware, enabling users to easily customize the knob’s functions.

The knob’s smooth rotation is achieved through a 6705ZZ bearing, which connects the top and bottom halves and spans nearly the device’s full width to eliminate wobble. Unlike traditional designs, the Ploopy Knob uses no mechanical encoder or potentiometer shaft. Instead, an AS5600 magnetic encoder detects movement with remarkable precision. This 12-bit rotary encoder can sense rotations as fine as 0.088 degrees, offering 4096 distinct positions for highly accurate control.

True to Ploopy’s philosophy, the Knob is fully open-source. On its GitHub Page, you’ll find everything from 3D-printed case files to RP2040 firmware, along with detailed guides for assembly and programming. This transparency empowers users to modify and build their own versions. Thanks to [Colin] for sharing this innovative device—we’re excited to see more open-source hardware from Ploopy. For those curious about other unique human-machine interfaces, check out our coverage of similar projects. Ploopy also has designs for trackballs (jump up a level on GitHub and you’ll see they have many interesting designs).