Probably The Cheapest Mac Emulation Hardware

There are many ways to build your own Macintosh clone, and while the very latest models remain a little inaccessible, there are plenty of Intel-based so-called “Hackintoshes” which deliver an almost up-to-date experience. But the Mac has been around for a very long time now, and its earliest incarnation only has 128k of RAM and a 68000 processor. What can emulate one of those? Along comes [Matt Evans], with a working Mac 128k emulated on a Raspberry Pi Pico. Such is the power of a modern microcontroller that an RP2040 can now be a Mac!

The granddaddy of all Macs might have been a computer to lust after four decades ago, but the reality was that even at the time the demands of a GUI quickly made it under-powered. The RP2040 has plenty of processing power compared to the 68000 and over twice the Mac’s memory, so it seemed as though emulating the one with the other might be possible. This proved to be the case, using the Musashi 68000 interpreter and a self-built emulator which has been spun into a project of its own called umac. With monochrome VGA and USB for keyboard and mouse, there’s MacPaint on a small LCD screen looking a lot like the real thing.

If you want a 1980s Mac for anything without the joy of reviving original hardware, this represents an extremely cheap way to achieve it. If it can be compiled for microcontrollers with more available memory we could see it would even make for a more useful Mac, though your Mac mileage may vary.

Of course, this isn’t the only take on an early Mac we’ve brought you.

A business card-sized love detector in a 3D-printed package.

2024 Business Card Challenge: Who Do You Love?

When you hand your new acquaintance one of your cards, there’s a chance you might feel an instant connection. But what if you could know almost instantly whether they felt the same way? With the Dr. Love card, you can erase all doubt.

As you may have guessed, the card uses Galvanic Skin Response. That’s the fancy term for the fact that your skin’s electrical properties change when you sweat, making it easier for electricity to pass through it. There are two sensors, one on each short end of the card where you would both naturally touch it upon exchange. Except this time, if you want to test the waters, you’ll have to wait 10-15 seconds while Dr. Love assesses your chemistry.

The doctor in this case is an RP2040-LCD-0.96, which is what it sounds like — a Raspberry Pi Pico with a small LCD attached. For the sensors, [Un Kyu Lee] simply used 8mm-wide strips of nickel. If you want to build your own, be sure to check out the build guide and watch the video after the break for a demonstration of Dr. Love in action.

Continue reading “2024 Business Card Challenge: Who Do You Love?”

Schematic of the Pi Pico wireup, showing the various outputs that the firmware will generate on the GPIOs

A Scope Test Tool You Can Build With Just A Pico

Ever wanted to see how well your oscilloscope adheres to its stated capabilities? What if you buy a new scope and need a quick way to test it lest one of its channels its broken, like [Paul Wasserman] had happen to him? Now you only need a Pi Pico and a few extra components to make a scope test board with a large variety of signals it can output, thanks to [Paul]’s Sig Gen Pi Pico firmware.

description of the signals generated by the software, that can be read in detail on the project websiteDespite the name it’s not a signal generator as we know it, as it’s not flexible in the signals it generates. Instead, it creates a dozen signals at more or less the same time — from square waves of various frequencies and duty cycles, to a PWM-driven DAC driving eight different waveforms, to Manchester-encoded data I2C/SPI/UART transfers for all your protocol decoder testing.

Everything is open source under the BSD 3-Clause license, and there’s even two PDFs with documentation and a user manual, not to mention the waveform screenshots for your own reference.

It’s seriously impressive how many features [Paul] has fit into a single firmware. Thanks to his work, whenever you have some test equipment in need of being tested, just grab your Pico and a few passive components.

Flute Now Included On List Of Human Interface Devices

For decades now, we’ve been able to quickly and reliably interface musical instruments to computers. These tools have generally made making and recording music much easier, but they’ve also opened up a number of other out-of-the-box ideas we might not otherwise see or even think about. For example, [Joren] recently built a human interface device that lets him control a computer’s cursor using a flute instead of the traditional mouse.

Rather than using a MIDI interface, [Joren] is using an RP2040 chip to listen to the flute, process the audio, and interpret that audio before finally sending relevant commands to control the computer’s mouse pointer. The chip is capable of acting as a mouse on its own, but it did have a problem performing floating point calculations to the audio. This was solved by converting these calculations into much faster fixed point calculations instead. With a processing improvement of around five orders of magnitude, this change allows the small microcontroller to perform all of the audio processing.

[Joren] also built a Chrome browser extension that lets a flute player move a virtual cursor of sorts (not the computer’s actual cursor) from within the browser, allowing those without physical hardware to try out their flute-to-mouse skills. If you prefer your human interface device to be larger, louder, and more trombone-shaped we also have a trombone-based HID for those who play the game Trombone Champ.

The board in question, with a Pi Pico soldered on, with old PCBs for macropads being used as captouch electrodes

Give Your Pi Pico Captouch Inputs For All Your Music Needs

Unlike many modern microcontrollers, RP2040 doesn’t come with a native capacitive touch peripheral. This doesn’t mean you can’t do it – the usual software-driven way works wonderfully, and only requires an external pullup resistor! In case you wanted a demonstration or you have a capacitive touch project in mind, this lighthearted video by [Jeremy Cook] is a must watch, and he’s got a healthy amount of resources for you in store, too!

In this video, [Jeremy] presents you with a KiCad schematic and an PCB design you can use to quickly add whole 23 capacitive touch sensing inputs to a Pi Pico! The board is flexible mechanically, easy to assemble as [Jeremy] demonstrates, and all the pins involved can still be used as regular GPIOs if you’d like. Plus, it’s fully open-source, can easily be assembled on your own, and available on Tindie too!

Of course, such a board doesn’t get created for no reason – [Jeremy] has a healthy amount of musical creations and nifty ideas to show off. We quite liked the trick of using old PCBs as capacitive touch sensing, using copper fills as electrodes – which has helped create an amusing “macropad of macropads”, and, there’s quite a bit more to see.

If capacitive touch projects ever struck a chord with you and you enjoy music-related hacking, [Jeremy]’s got a whole YouTube channel you ought to check out. Oh, and if one of the musical projects in the video caught your eye, it might just be the one we’ve featured previously! Continue reading “Give Your Pi Pico Captouch Inputs For All Your Music Needs”

RP2040 Boot Loader Is A Worm

[Hunter Adams] has written a secondary bootloader for the RP2040 that uses an IR link and can be extended to behave like a polite worm virus. This allows the easy updating of a large cluster of co-located RP2040-based controllers. This could be handy in applications like swarm robotics or virtual cattle fencing. The project he demonstrates in the two videos ( below the break ) uses a pair of IR transmitters/receivers. But he purposely wrote the boot loader to be independent of the serial link, which could be infrared, radio, audio, or just wires.

Not only did [Hunter] make a boot loader, but he documented the entire boot process of the RP2040 chip. Whether or not you need a secondary bootloader, this is an excellent resource for understanding how the RP2040 responds to power cycling and resets. The boot loader code is available at his GitHub repository.

You may recall that [Hunter] is the lecturer of Cornell University’s Designing with Microcontroller classes, whom we’ve mentioned before. We’ve also covered some of his students’ projects as well, like these air drums and this CoreXY pen plotter.

Continue reading “RP2040 Boot Loader Is A Worm”

A graph from the article, showing dead zones and error bars for the ESP32 ADC

RP2040, ESP32, And An Atmega Have An ADC-Off

[Simon Monk] got frustrated with bad ADC performance when tinkering with an ESP32 board, and decided to put three of the nowadays-iconic boards to the test – a classic ESP32 devboard, a Pi Pico with an RP2040, and an Arduino Uno R3 with an ATmega328P. To do that, he took a bench PSU, added a filter circuit to it, went through the entire ADC range for each board, took a large number of samples at different points and plotted the results. The plots show us both linearity and precision, as well as ADC dead zones, and the results are quite surprising.

The ESP32 doesn’t only have the most limited ADC with maximum 1V input, it also produces the worst results out of all three, with large error bars and sizeable dead zones at both ends. The Pi Pico, despite being colloquially known for its subpar ADC, produces better results than the ESP32. However, both of them are dwarfed by the ATMega328P’s performance. If you need a dedicated ADC, it might just be a good idea to put an ATMega328P on your board.

The example code is provided, and we are wondering whether there are methodology errors. For instance, the ATMega328P code is written in Arduino-supplied C++, but ESP32 and RP2040 in particular used MicroPython, which does more than just running the code, and MicroPython for ESP32 in particular creates a WiFi access point – something known to induce noise into ADC readings. Nevertheless, this is a fun comparison, and we like when hackers do microcontroller standoffs like that – for instance, check out this review from 2017 which pits a dozen microcontrollers of the time against each other!