Cassette-Duinos Ongoing
“CassetteDuino” is a term I use to refer to a modified cassette recorder. My interest in these started last fall, where I got to experiment with multitracking on a portastudio. Given my history of interest in circuit bending, I got ahold of some cassette recorders from ebay, flea markets and thrift stores. Pretty much anywhere I could find them for cheap. Many were damaged or destroyed in the research process, but a handful have turned out very well, as instruments for my own work and as gifts to friends.
Analog CassetteDuinos
Mark 0
Walkman-style recorder from ebay. 1 linear pot controlling speed mod. All functions remain intact. By swapping out different potentiometer values, I could have more or less control, with more or less worble depending on the value.
Conceptually the design is pretty simple. I wired the motor’s negative end to the middle pin, and found 2 points on the PCB (one to ground, one to VCC), thereby injecting more or less power (= speed) to the motor!
Dated January 30, 2025
Mark 0-2
Another walkman style recorder, an old GE from Ebay. The entrails on this player are exposed to allow for hand-bending, and can be adjusted via finger pressure and position on the board.
Dated August 30, 2025
Cassette-Duino MK1
Mark 1
The first successful attempt at hooking up the motor to an arduino. In this case, I used an ESP-32 for the controller, an L298N motor controller, and a linear slide pot to control the speed.
I also added an audio out jack, as well as an OLED display (because who doesnt love a good display?).
It runs off of C batteries.
The code is available here!
Mark Mark-1-SOIL
Second arduinoified cassette recorder. Using the same design, however in this case I used the ESP-NOW protocol to connect a separate sensor to the player.
A generic, capacitive soil moisture sensor was hooked up to the “SENDER” ESP, whose reading would then be received at the cassette player, and change the motor speed accordingly.
I added a bigger OLED, and attempted a menu with a rotary encoder to navigate it.. that did not go so well, but the core function worked!