Jump to content

Tapuino / Tape Emulation Mods: Difference between revisions

From RetroTechCollection
No edit summary
 
Line 14: Line 14:
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.
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 ==
== History ==
* '''2014-04 – Tapuino v1.0''' published on GitHub; Arduino Pro Mini + 16×2 LCD shield, push-buttons and SD-module.
* '''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.
* '''2015-02 – Hackaday write-up''' brings wider attention; hundreds of DIY units are built.
Line 21: Line 21:
* '''2022 – Tapuino v2.x''' firmware rewrites the loader to support '''Turbo-TAPE''' fast-loaders and arbitrary sample rates up to 100 kHz.
* '''2022 – Tapuino v2.x''' firmware rewrites the loader to support '''Turbo-TAPE''' fast-loaders and arbitrary sample rates up to 100 kHz.


== 🔧 Hardware Overview ==
== Hardware Overview ==
{| class="wikitable"
{| class="wikitable"
! Variant !! MCU / Clock !! Display !! Media !! Notable Features
! Variant !! MCU / Clock !! Display !! Media !! Notable Features
Line 48: Line 48:
Opto-isolation is optional; most PCBs use 74HC14/LM311 to shape the READ line back to digital logic levels.
Opto-isolation is optional; most PCBs use 74HC14/LM311 to shape the READ line back to digital logic levels.


== 💾 Firmware & File Support ==
== Firmware & File Support ==
Current stock firmware (v2.xx) recognises:
Current stock firmware (v2.xx) recognises:


Line 58: Line 58:
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.
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 ==
== Building Your Own ==
A DIY Tapuino can be completed for '''US$15–20''' in parts:
A DIY Tapuino can be completed for '''US$15–20''' in parts:


Line 75: Line 75:
Gerbers for multiple boards (Reloaded, Mini, Slim) are on GitHub under CERN-OHL-S or GPL-2.0 licences.
Gerbers for multiple boards (Reloaded, Mini, Slim) are on GitHub under CERN-OHL-S or GPL-2.0 licences.


== 🚀 Usage Tips ==
== Usage Tips ==
* Hold '''Play''' at power-on to enter fast-loader patch mode – needed for some turbo loaders that poll the keyboard.   
* 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.   
* Keep SD cards formatted as FAT32 with 8.3 filenames; deep directory trees slow the directory parser.   
Line 81: Line 81:
* For VIC-20, set *AUTO-PRG offset* to $1201 so PRG files auto-run after load.   
* For VIC-20, set *AUTO-PRG offset* to $1201 so PRG files auto-run after load.   


== ⚖️ Alternatives & Related Projects ==
== Alternatives & Related Projects ==
* '''Tapecart Micro-SD''' – cartridge-sized STM32 design streaming PRGs at 38 kBaud.
* '''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.   
* '''Casduino / ArduiTape''' – WAV player on Arduino Nano feeding READ line with pure analogue audio.   
Line 87: Line 87:
* '''Pi1541 “Tape Mode”''' – Raspberry Pi emulates both IEC disk and cassette via GPIO add-on.
* '''Pi1541 “Tape Mode”''' – Raspberry Pi emulates both IEC disk and cassette via GPIO add-on.


== ⚠️ Limitations ==
== Limitations ==
* Will not power a '''real''' Datasette motor; cannot be daisy-chained.   
* Will not power a '''real''' Datasette motor; cannot be daisy-chained.   
* SAVE speed is limited to original 300 baud even in v2 firmware.   
* SAVE speed is limited to original 300 baud even in v2 firmware.   

Latest revision as of 14:42, 22 January 2026

Tapuino / Tape-Port Emulation Mods
Caption Tapuino OLED v1.5 assembled on a single 5 × 7 cm PCB
Type External solid-state replacement for Commodore Datasette
Designer Andrew Beer (“Sweetlilmre”) – original Tapuino design
Community forks: Arananet Reloaded, OpenC64 Tapuino, Tapuino OLED, Tapuino W, etc.
Manufacturer Unknown
First released April 2014 – public GitHub release of Tapuino v1.0 firmware
Latest revision Tapuino firmware v2.01 (Feb 2023)
Operating voltage 5 V DC (drawn from cassette port pin 2)
Layers / PCB
Compatibility Commodore 64, 64C, SX-64, VIC-20, C16/+4, PET* (with adaptor) – any IEC-less CBM 8-bit that uses the 1530/1531 Datasette interface
Features
Model No.

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.
[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.

See Also

[edit | edit source]