Tapuino, the $20 C64 Tape Emulator

@ozayturay those look awesome! Unfortunately I can't add them with the Commodore logo as that is copyright.


Ahhh, I didn't think of that. I removed the logo and made a few corrections to pin orders (like SD pinout to match popular MicroSD modules) and tagged it as TapuinoMini Type A - Version 1.01


I have also made a new version which integrates my above schematic for read and write leds to the design (as pin headers) and tagged it as TapuinoMini Type A - Version 1.02


Here are the pictures and desing files of both TapuinoMini versions:

View attachment 85974 View attachment 85975 View attachment 85976

Design Files For GitHub: https://dl.dropboxusercontent.com/u/18575245/Tapuino/TapuinoMini-GitHub.zip


I will also made a TapuinoMini Type B PCB (both 1.01 and 1.02 versions) for using a cheaper Arduino ProMini clone of which A4 and A5 pins are on a different location. What I call Type A and Type B Arduino Pro Minis are linked below:


Type A: http://www.ebay.com/itm/New-Pro-Min...mega128-Arduino-Compatible-Nano-/200957063666
Type B: http://www.ebay.com/itm/New-design-...mega128-Arduino-Compatible-Nano-/400762710802

Also here are links for a 1602 LCD with I2C builtin and a MicroSD module:

http://www.ebay.com/itm/iic-i2c-twi...haracter-lcd-module-display-blue/310565065847
http://www.ebay.com/itm/new-micro-s...spi-level-conversion-for-arduino/201128314754

And a shopping list from may favourite seller alice1101983:

http://www.ebay.com/cln/ozay.turay/TapuinoMini-Shopping-List/104084938018

You can create a new link with these PCB on http://dirtypcbs.com ?
Thank you
 
Last edited:
Hi All,
I built up a tapuino using a bare 328p chip which i programmed on a breadboard through ICSP.

I can load taps fine but i have a strange problem.

When i select a tap file it starts running immediately , that is it doesnt wait for the C64 to turn on the motor signal.That is on the LCD it display a capital "M" and the counter clocks up despite being on the C64 basic screen.

Heres the kicker though , If i put the c64 in the "PRESS PLAY ON TAPE" state 1st , THEN start the tapuino playing it finds the tap file and pauses the load at the header (motor off) correctly and then starts the motor signal and loads the rest of the tap successfully.

My question is this, Is the tapuino designed to be able to start playing back a tap without having a motor on signal ? or should it wait ???

Im using a 4n25 wired as per the verobaord except going top a bare 328.

Any help much appreciated....

Also , Are those small pcbs for the minis going to be available ??
 
Last edited:
You can create a new link with these PCB on http://dirtypcbs.com ?
Thank you
It was on my previous post on page 50: http://dirtypcbs.com/view.php?share=5882&accesskey=9034a92e8f01f9ab8ebd4e87a2a446f7
But don't forget, they are not tested yet.
Ah true! Is already version 1.02. i did not see ...
@ozayturay / @c64new who's going to send me a board? ;-)
Of course I have to send it ... you're the protagonist of the project! :bowdown:
 
Last edited:
Check your motor and sense signals twice.

Deffo 6v on motor signal, SENSE seems to be ok too, Odd thing is the SENSE/MOTOR works fine when it finds the header.

My problem only seems to be when sitting at the basic screen ;/

So to check:

  • MOTOR is going to the OPTO via R1 (430 / 300 Ohm)?
  • You flashed this via the IDE using an ICSP programmer?
  • Output of the MOTOR line should be LOW on power on, conversely the output of the 4N25 should be HIGH
  • What does the SENSE line read on power on (should be HIGH IIRC)?


The firmware is going to set SENSE to LOW as soon as you start playing the tap. This should get the C64 to put the MOTOR line HIGH, dropping the 4N25 LOW (display goes to M indicating MOTOR on).
(C64 turns the MOTOR on/off based on SENSE)

braincell1973 said:
When i select a tap file it starts running immediately , that is it doesnt wait for the C64 to turn on the motor signal.That is on the LCD it display a capital "M" and the counter clocks up despite being on the C64 basic screen.

This isn't how it works :) If the display is 'M' then the Tapuino thinks the MOTOR is ON, i.e. MOTOR line is HIGH and 4N25 is LOW.

HTH
-(e)
 
Also: I just wanted to say that it's amazingly humbling to see all of the incredible designs and implementations that you all come up with. I'm blown away by the inventiveness and awesome attitudes of everyone that I've met through this project.

Thank you!
 
When the C64 is first turned on, even before you type LOAD the Tapuino will begin loading a TAP if you select one.

This is the same behaviour as with a Datasette, pressing play on a tape will still start the motor going before you give it the load command.

Correct usage should be to type LOAD or use Shift>Runstop, THEN select the tap file.

Regards
 
Hi

really enjoying the tapuiono, thanks again! But I do have a note about browsing a folder, which is in turn full of other folders

\taps

containing #, and folders A-Z
\#
\A
\B
\C
\D

etc

is is possible for the tapuino to list these alphabetically? it seems to display them in order of, I guess, creation? anyone else seen this?

Mine seems to list in some other order, but not alphanumeric.

and, is there any option to speed up the title scrolling or pause between button clicks to next file? assuming thats tweakable in the arduino software before I write it to arduino?

tia :)

cheers!
 
Last edited:
@iainjh unfortunately there is not enough ram to sort the directory entries, so they will be displayed in creation order. I think there is a utility I saw somewhere that can order an SD card for you. Either that or wipe the card and copy over again, though Explorer is well known to seemingly randomly order the copy. Perhaps use something like Total Commander.

The timeout/delay settings are configurable for default values in the config.h file and in settings on the Tapuino IIRC (don't have access to check).
 
When the C64 is first turned on, even before you type LOAD the Tapuino will begin loading a TAP if you select one.

This is the same behaviour as with a Datasette, pressing play on a tape will still start the motor going before you give it the load command.

Correct usage should be to type LOAD or use Shift>Runstop, THEN select the tap file.

Regards
Of course! Thank you for reading/interpreting the post properly. 'select' a tap actually meant 'start' a tap. Braincell1973 had me well confused there for a bit. Good catch!
 
Last edited:
When the C64 is first turned on, even before you type LOAD the Tapuino will begin loading a TAP if you select one.

This is the same behaviour as with a Datasette, pressing play on a tape will still start the motor going before you give it the load command.

Correct usage should be to type LOAD or use Shift>Runstop, THEN select the tap file.

Regards
Of course! Thank you for reading/interpreting the post properly. 'select' a tap actually meant 'start' a tap. Braincell1973 had me well confused there for a bit. Good catch!

Ah , Thats all i wanted to clarify , In that case the build is good :D

Have ordered some of the boards from dirty pcbs and plan too wedge one into the 64's shell.

Many thanks for all your help
 
I have openend now an issue on github. But i dont know if i did it correctly, this site is confusing me a little bit. Have to explore it another time after good sleeping :cool:
 
Version Tapuino without container (just a plan isolated under PCB):

- the display above PCB
- membrane keys to select
- micro SD reader directly connected to the PCB

The only problem is that the membrane keys are exchanged 1 <-> 2 and 3 <-> 4.
I solved by re-wiring the tracks under the PCB.

P.S:
@ spcbm if you want you can put the jumpers to obtain the exchange of the buttons on a next version of the PCB :)
and/or
@ sweetlilmre maybe can do it through software :D


IMG_combo-tile.jpg
 
Last edited:
Wow cool build! It would be very easy to change the keys in code. I'm pretty sure all it would take is a change in config.h.

In fact I've just checked on github and all you need to change is this:

#define KEY_SELECT_PIN 3
#define KEY_ABORT_PIN 2
#define KEY_PREV_PIN 1
#define KEY_NEXT_PIN 0

-(e)

@sven1973: the github issue look fine :) not sure when I'll get to it but now it's there to bug me! :)
 
Last edited:
Wow cool build! It would be very easy to change the keys in code. I'm pretty sure all it would take is a change in config.h.

In fact I've just checked on github and all you need to change is this:

#define KEY_SELECT_PIN 3
#define KEY_ABORT_PIN 2
#define KEY_PREV_PIN 1
#define KEY_NEXT_PIN 0

-(e)

Alè! When the software is worth more hardware ...
... and here the protagonist of the software is always him ...
sweetlilmre !
Thank you very much.

- - - Updated - - -

I have openend now an issue on github. But i dont know if i did it correctly, this site is confusing me a little bit. Have to explore it another time after good sleeping :cool:

I do not know if I can explain. I do not know English well, unfortunately ...
The 4 buttons on the pcb Tapuino, do not correspond to the logic of the buttons of C2N or a generic cassette player.
Also on C2N button record, is only pressed together with the play button and this is like a security to avoid inadvertently erase the tape with one single gesture.
On the Tapuino, record function, is selected in the menu.
In conclusion the 4 buttons on Tapuino are used mostly to navigate in the menu or/and to confirm a function of the display, as if on an MP3 player.
 
Last edited:
@c64new
The issue i opened was only set there to remember sweetlilmre trying to implement 2 more buttons in future/later.
For now the software is written for 4 buttons, but my tapuino is built with 6 buttons...
Eventually some other people want to build tapuino same like mine in an original 1531 housing.


There is no real issue, its only a mark to remember :D (sweetlilmre asked me to do this ;))
 
Back
Top Bottom