Tapuino / Tape Emulation Mods: Difference between revisions
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 == | ||
* '''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 == | ||
{| 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 == | ||
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 == | ||
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 == | ||
* 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 == | ||
* '''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 == | ||
* 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
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.