An Arduino And A CD-ROM Drive Makes A CD Player

In an age of streaming media it’s easy to forget the audio CD, but they still remain as a physical format from the days when the “Play” button was not yet the “Pay” button. A CD player may no longer be the prized possession it once was, but it’s still possible to dabble in the world of 120 mm polycarbonate discs if you have a fancy for it. It’s something [Daniel1111] has done with his Arduino CD player, which uses the little microcontroller board to control a CD-ROM drive via its IDE bus.

The project draws heavily from the work of previous experimenters, notably ATAPIDUINO, but it extends them by taking its audio from the drive’s S/PDIF output. A port expander drives the IDE interface, while a Cirrus Logic WM8805 S/PDIF transceiver handles the digital audio and converts it to an I2S stream. That in turn is fed to a Texas Instruments PCM5102 DAC, which provides a line-level audio output. All the code and schematic can be found in a GitHub repository.

To anyone who worked in the CD-ROM business back in the 1990s this project presses quite a few buttons, though perhaps not enough to dig out all those CDs again. It would be interesting to see whether the I2S stream could be lifted from inside the drive directly, or even if the audio data could be received via the IDE bus. If you’d like to know a bit more about I2S , we have an article for you.

Build An 8-bit CPU To Know “But How Do It Know?”

Sometime around 2009, [J. Clark Scott] published a book aimed to demystify computers for everyone by walking through construction of an 8-bit CPU from scratch. The book had a catchy, but somewhat confusing title But How Do It Know?. The back story on the title goes something like this: Joe is a very nice fellow, but has always been a little slow. He goes into a store where a salesman is standing on a soapbox in front of a group of people. The salesman is pitching the miracle new invention, the Thermos bottle. He is saying, “It keeps hot food hot, and cold food cold….” Joe thinks about this a minute, amazed by this new invention that is able to make a decision about which of two different things it is supposed to do depending on what kind of food you put in it. He can’t contain his curiosity, he is jumping up and down, waving his arm in the air, saying “but, but, but, but…” Finally he blurts out his burning question “But how do it know?” Joe looked at what this Thermos bottle could do, and decided that it must be capable of sensing something about its contents, and then performing a heating or cooling operation accordingly. Joe’s concept of how the bottle worked was far more complicated than the truth. With that introductory opening, [J. Clark Scott] goes on to cover basic number theory, leading on to logic gates, and finally the 8-bit CPU.

[Patrick LeBoutillier] decided to build a hardware version of the CPU/computer as described in [John Clark Scott]’s book. In order to keep size and cost within reasonable bounds, he choose a hybrid construction using a combination of micro-controllers and SN74HC logic IC’s. When used as a companion project alongside reading the book, he hopes people can get their hands dirty and try it out for themselves. He has published a series of 14 videos covering construction of the CPU and the first Introductory video is embedded after the break below. For the micro-controller part of the project, he is using four Arduino Nanos, the code and install instructions for which are available at his Git repo. The Fritzing schematic, also available at the repo, might look a bit daunting at first look, but when you follow along his video series, it becomes easier. You can preview the first three chapters of the book at the “But How Do It Know?” website.

If FPGA’s are more of a thing for you, or you’d like to dip your feet learning FPGA, then [Patrick] has another series of 17 videos (embedded below) where he goes through the same process using a Digilent BASYS3 FPGA development board. These aren’t your only options — if you just want to understand how it works, without having to build the hardware, then check out the online, browser based implementation of the [Clark Scott] CPU.

If it seems the breadboard build of this 8-bit CPU looks complex, then this
Home Made 8-bit CPU Is A Wiry Blinky Build and a veritable rats nest of jumper wires.

Continue reading “Build An 8-bit CPU To Know “But How Do It Know?””

Robotic Melodica Student Is Enthusiastic But Terrible

Anyone who has through the process of learning to play a musical instrument for the first time, or listening to someone attempting to do so will know that it can be a rather painful and frustrating experience. [Alessandro Perini] apparently couldn’t get enough of the sound of a first-time musician, so he created a robot to play the melodica badly for hours on end, as demonstrated in the video after the break.

The project is appropriately named “AI’ve just started to learn to play”, and attempts to copy every melody it hears in real-time. The robot consists of the cartridge carriage from an old printer, mounted on a wooden frame to hold the melodica. The original carriage used a DC motor with an encoder for accurate movement, but since position accuracy was not desirable, [Alessandro] ditched the encoder. Two small trolley wheels are mounted on the cartridge holder to push down on the melodica’s key. A bistable solenoid valve controls airflow to the melodica from an air compressor. The DC motor and solenoid valve is controlled by an Arduino via a pair of LM298 motor drivers.

A host computer running software written in Cycling ’74 MAX listens to the melody it’s trying to imitate, and send serial commands to the Arduino to move the carriage and open the solenoid to try and match the notes. Of course, it keeps hitting a series of wrong notes in the process. The Arduino code and build instructions have been published, but the main Max software is only described briefly. [Alessandro] demonstrated the robot at a local festival, where it played YouTube tutorial snippets and jammed with a local band for a full 24 hours. You have to respect that level of endurance.

If listening to less error-prone electronically controlled instruments is more to your taste, listen to this building-sized pipe organ play MIDI files.

Continue reading “Robotic Melodica Student Is Enthusiastic But Terrible”

Ambience Lamp Ripples Like Water

After the year humanity has endured, we could all use a little more relaxation in our lives. This atmosphere lamp is just the thing to set a relaxing ambience for work, studying, or hanging out. Just touch the surface and the light ripples to life, resembling the concentric circles that form on the surface of still water when it is touched. When the light settles, it looks like an inviting pool that’s ready for a nighttime swim.

There aren’t really any surprises inside — the lamp is operated via capsense by touching the center of the top. Three NeoPixel rings and an RGB LED strip provide the lighting, and an Arduino UNO runs the show. [Qttting_F] used an inexpensive ceramic bowl with a piece of acrylic for a lid, but this could just as easily be printed in white PLA or something. Check it out in action after the break.

Ambience is nice, but sometimes you need something more functional. Those types of lamps can be printed, too.

Continue reading “Ambience Lamp Ripples Like Water”

Co41D 2020 MIDI Theremin Sounds Pretty Sick

As the pandemic rages on, so does the desire to spend the idle hours tinkering. [knaylor1] spent the second UK lockdown making a sweet Theremin-inspired noise machine with a low parts count that looks like a ton of fun.

It works like this: either shine some light on the photocells, cover them up, or find some middle ground between the two. No matter what you do, you’re going to get cool sounds out of this thing.

The photocells behave like potentiometers that are set up in a voltage divider. An Arduino UNO takes readings in from the photocells, does some MIDI math, and sends the serial data to a program called Hairless MIDI, which in turn sends it to Ableton live.

[knaylor1] is using a plugin called TAL Noisemaker on top of that to produce the dulcet acid house tones that you can hear in the video after the break.

If you’ve never played with light-dependent resistors before, do yourself a favor and spend a little bit of that Christmas cash on a variety pack of these things. You don’t even need an Arduino to make noise, you can use them as the pots in an Atari Punk console or make farty square waves with a hex inverting oscillator chip like the CD40106. Our own [Elliot Williams] once devoted an entire column to making chiptunes.

Continue reading “Co41D 2020 MIDI Theremin Sounds Pretty Sick”

Big Time Character LCD Clock

While the SSD1306 OLED has somewhat become the go-to display for up-to-date projects, the good old character displays with their Hitachi HD44780 controller don’t seem to be disappearing just yet either. And why would they, especially if you want to show just text, having a built-in font has certainly its perk compared to worrying about integrating your own characters — which you can still do on top as well. Or perhaps you can combine both worlds, which is what [oldmaninSC] did with his digital clock that takes an entire 16×2 LCD to show each single digit.

The whole clock uses 16 individual, upright rotated 16×2 LCDs that are arranged in two rows of eight LCDs each, turning the entire construct sort of into a giant 8×2 display itself. For some additional information such as the date, there’s also a smaller font available that uses only half the height, allowing up to four total rows of information. To communicate with each LCD via I2C, two TCA9548A I2C multiplexers are connected to an Arduino, along with an RTC to keep track of the time and date itself.

As the TCA9548A has three pins dedicated to define its own address, the entire clock could be scaled up to a total of 64 LCDs — so how about a 16×4 display made out of 16×4 displays? Sure, adding smooth scrolling might become a bit tricky at some point, but imagine playing Tetris on that one!

A Tiny LED Matrix Is Better With Friends

When we last heard from [lixielabs] he was building Nixie tube replacements out of etched acrylic and LEDs. Well he’s moved forward a few decades to bring us the Pixie, a chainable, addressable backpack for tiny LED matrix displays.

Each Pixie module is designed to host two gorgeous little Lite-On LTP-305G/HR 5×7 LED dot matrix displays, which we suspect have been impulse purchases in many a shopping cart. Along with the displays there is a small matrix controller and an ATTINY45 to expose a friendly electrical interface. Each module is designed to be mounted edge to edge and daisy chained out to 12 or more (with two displays each) for a flexible display any size you need. But to address the entire array only two control pins are required (data and clock).

[lixielabs] has done the legwork to make using those pins as easy as possible. He is careful to point out the importance of a good SDK and provides handy Arduino libraries for common microcontrollers and a reference implementation for the Raspberry Pi that should be easy to crib from to support new platforms. To go with that library support is superb documentation in the form of a datasheet (complete with dimensions and schematic!) and well stocked GitHub repo with examples and more.

To get a sense of their graphical capabilities, check out a video of 6 Pixie’s acting as a VU meter after the break. The Pixie looks like what you get when a hacker gets frustrated at reinventing LED dot matrix control for every project and decided to solve it once and for all. The design is clean, well documented, and extremely functional. We’re excited to see what comes next! Continue reading “A Tiny LED Matrix Is Better With Friends”