Tapuino / Tape Emulation Mods
The Tapuino is an open-hardware, Arduino-based device that emulates Commodore’s 1530 Datasette mechanism, allowing cassette images (*.TAP*, *.PRG*, *.TCRT*) stored on a micro-SD card to be loaded, saved, and fast-forwarded with perfect digital fidelity. Because it plugs into the cassette port rather than the serial IEC bus, Tapuino is an attractive solution for VIC-20 owners and for C64 software that was never released on disk.
History
[edit | edit source]- 2014-04 – Tapuino v1.0 published on GitHub; Arduino Pro Mini + 16×2 LCD shield, push-buttons and SD-module.
- 2015-02 – Hackaday write-up brings wider attention; hundreds of DIY units are built.
- 2016-17 – “Reloaded” & OLED forks replace the LCD with a 128×32 I²C OLED and move to an Arduino Nano for native USB flashing.
- 2019 – Tapuino-W adds ESP-8266 Wi-Fi so images can be pushed over the network.
- 2022 – Tapuino v2.x firmware rewrites the loader to support Turbo-TAPE fast-loaders and arbitrary sample rates up to 100 kHz.
Hardware Overview
[edit | edit source]| Variant | MCU / Clock | Display | Media | Notable Features |
|---|---|---|---|---|
| Tapuino v1.0 | Atmega328P @ 16 MHz | 16×2 HD44780 LCD | micro-SD | Through-hole shield stack |
| Tapuino OLED | Atmega328P | 128×32 OLED | micro-SD | Smaller 5 × 7 cm PCB, rotary encoder option |
| Tapuino Reloaded | Atmega328P (Nano) | 128×32 OLED | micro-SD | All-SMD, USB update, protected 5 V regulator |
| Tapuino-W | ESP-8266 (NodeMCU) | 128×64 OLED | micro-SD / Wi-Fi | HTTP file upload, OTA firmware |
| OpenC64 Datasette Saver | STM32F103 | 0.96" IPS | micro-SD | Adds over-current & brown-out protection |
Electrical Interface
[edit | edit source]The Tapuino connects to the six-pin cassette port:
- +5 V (pin 2) – powers the MCU (≈70 mA peak with OLED).
- GND (pin 1)
- MOTOR output (pin 5) – emulated by polling; Tapuino ignores the line or gates file play.
- READ (pin 4) – 0/+5 V pulse stream generated by DAC/bit-bang at original 300 baud or turbo rates.
- WRITE (pin 3) – edge-captured and stored as WAV-like data when user presses “Record”.
- SENSE (pin 6) – always pulled low (tape present).
Opto-isolation is optional; most PCBs use 74HC14/LM311 to shape the READ line back to digital logic levels.
Firmware & File Support
[edit | edit source]Current stock firmware (v2.xx) recognises:
- .TAP v0/v1 images up to 64 MB.
- .PRG files auto-wrapped in a minimal TAP header.
- .TCRT (Tapecart) container – load *instantaneously* via turbo @ 38 kBaud.
- Partial experimental support for TurboTape, SpeedDOS, Vorpal timing.
Menu navigation is via four push-buttons (Next, Prev, Play, Stop) or a rotary encoder; long-press on STOP enters settings where motor-sense polarity, turbo-boost and LCD contrast can be tweaked.
Building Your Own
[edit | edit source]A DIY Tapuino can be completed for US$15–20 in parts:
- Mandatory
- * Arduino Nano (ATmega328P)
- * micro-SD module (5 V tolerant)
- * 0.96″ monochrome OLED (I²C)
- * 74HC14 Schmitt trigger + 2N3904 for READ shaping
- * 6-pin edge connector or sacrificial Datasette cable
- Optional
- * Level-shifting buffer for WRITE
- * Protective polyfuse on +5 V line
- * 3D-printed enclosure
Gerbers for multiple boards (Reloaded, Mini, Slim) are on GitHub under CERN-OHL-S or GPL-2.0 licences.
Usage Tips
[edit | edit source]- Hold Play at power-on to enter fast-loader patch mode – needed for some turbo loaders that poll the keyboard.
- Keep SD cards formatted as FAT32 with 8.3 filenames; deep directory trees slow the directory parser.
- You can record real tapes: insert blank SD, press ➤⏺ combo and start the physical tape in the Datasette.
- For VIC-20, set *AUTO-PRG offset* to $1201 so PRG files auto-run after load.
Alternatives & Related Projects
[edit | edit source]- Tapecart Micro-SD – cartridge-sized STM32 design streaming PRGs at 38 kBaud.
- Casduino / ArduiTape – WAV player on Arduino Nano feeding READ line with pure analogue audio.
- Super‐SCP TapeCart Deluxe – CPLD-based loader with 2 MB internal flash.
- Pi1541 “Tape Mode” – Raspberry Pi emulates both IEC disk and cassette via GPIO add-on.
Limitations
[edit | edit source]- Will not power a real Datasette motor; cannot be daisy-chained.
- SAVE speed is limited to original 300 baud even in v2 firmware.
- Very long turbo loaders (>100 kB/s) may exceed the 16 MHz timer resolution.
- C16/+4 require a €3 1531-to-1530 passive adaptor due to different pin-out.