Tapuino, the $20 C64 Tape Emulator

  • Thread starter Thread starter sweetlilmre
  • Start date Start date
  • Replies Replies 1059
  • Views Views 299318
@c64new I will update the FAQ. The sense lines are all wired together so that is taken care of. To record to the Tapuino you might need start a load on the c64. I can remember!

Can anyone help out? I can't test at the moment.

Spcbm: vcc and gnd alone won't do anything. This confused me in the beginning!

-(e)
 
@ spcbm
By connecting only + and - you do not see anything.
There is no backlight like LCD 16x2
 
@spcbm just to confirm, I managed to get another of these displays from a friend today and it worked out of the box using the config I suggested.

-(e)
 
@ sweetlilmre @ spcbm (and other users of this forum)

Again on the connector 'EDGE' PCB 1.71 ...
Datassette 'play' ---> Tapuino 'record' (inverted mode on)
It works WITHOUT the C64 with 'load' or 'save', but the tape NO stops at the end of the program.
If I put the C64 with 'play or record', it is not working and the tape always runs.
Other question: it is possible to change the firmware so that it automatically selects 'inverted on' when using the 'record' mode?
It is much more comfortable and do not forget every time to set it! :)
 
Last edited:
The OLED display is working:thumbsup2::thumbsup2:

Thanks Peter & c64new, it took me a while and also OLED connections are SDA SCL GND VCC while lcd are SCL SDA VCC GND.
 
Again on the connector 'EDGE' PCB 1.71 ...
Datassette 'play' ---> Tapuino 'record' (inverted mode on)
It works WITHOUT the C64 with 'load' or 'save', but the tape NO stops at the end of the program.
If I put the C64 with 'play or record', it is not working and the tape always runs.

That's normal. Nothing can be done about this.

Other question: it is possible to change the firmware so that it automatically selects 'inverted on' when using the 'record' mode?
It is much more comfortable and do not forget every time to set it! :)

You don't want that :-)
If you're going to save something from the computer to the Tapuino, you need the uninverted signal.
But i think it could be done differently, that is, instead of having an option to invert the signal, we could have 2 different recording commands labelled (for example) "Record from computer" and "Record from Datassette". It would be much more straightforward and the inversion would be handled automatically.
 
I filed 2 issues on the Tapuino GitHub page. Here's the text.


1) Datassette calibration function

Very simple: a function which samples pulses and shows a percentage or something like that. It may work like this:

  • Capture all the pulses occurring in a given time frame and store them only once each. If the number of unique pulses reaches a given maximum, assume no data or very bad alignment.
  • See how many different pulses we got. In a hypothetical perfectly aligned tape, we wouldn't get more than 2 or 3 pulselengths in total. The more pulselengths, the worse the alignment. So at this point, we may show a percentage or some description such as "Good", "Bad", and so on.
  • Repeat until "Stop" pressed.


2) Automatic inversion handling

As I wrote on the forum, what about discarding the invert option and splitting the record command into "Record from Datassette" and "Record from computer", each of which handling the inversion of the signal automatically?
 
Last edited:
@ Quagliarulo
1) If it is normal that the recording does not stop, how do you understand that the registration is completed? Then you have to listen to the buzzer?
Therefore Tapuino acts only as an sampler, but does not recognize the signals of start and stop ... :(
2) It's fine for '2 different recording commands labelled (for example) "Record from computer" and "Record from Datassette" '.
I noticed that you have opened 2 Issue on Github, i hope they sweetlilmre make a remedy ... :)
 
1) If it is normal that the recording does not stop, how do you understand that the registration is completed? Then you have to listen to the buzzer?
Therefore Tapuino acts only as an sampler, but does not recognize the signals of start and stop ... :(

There are no such signals. The tape just contains a train of pulses. When the computer loads from tape, it executes code that tells it when to stop the motor and/or run the loaded program. Tapuino doesn't run such code, hence it's up to you to correctly start/stop the recording. You may rely on the buzzer if you know how to interpret the noise and you can cut out the useless parts at the beginning and end of the .TAP file using PC programs.

2) It's fine for '2 different recording commands labelled (for example) "Record from computer" and "Record from Datassette" '.
I noticed that you have opened 2 Issue on Github, i hope they sweetlilmre make a remedy ... :)

Let's see if it can be done without too much hassle. It already works fine as it is after all, but my proposal seems more user friendly.
 
Is there a wiki on how to record from datasette? I have a boxed 1.5 using the latest version of the software. I've checked that the tapes load on my C64. I set the invert to 1. Start the record and when the tape stops I press the stop/abort button on the Tapuino but none of the Taps work when I play them back.
 
Was it so that invert needs to be 0, when recording from tape to tap and 1, when recording from tap to tape?
 
Is there a wiki on how to record from datasette? I have a boxed 1.5 using the latest version of the software. I've checked that the tapes load on my C64. I set the invert to 1. Start the record and when the tape stops I press the stop/abort button on the Tapuino but none of the Taps work when I play them back.
I have the PCB 1.7 (updated to 1.71) of Tapuino and it works fine in this way:
Datassette to Tapuino
- Tapuino option invert = 1
- Tapuino record (auto or manual)
- Datassette play
- At the end of the program must be stopped manually Tapuino
Tapuino to Datassette
- Tapuino option invert = 1
- Datassette record
- Tapuino play
- Commodore is only turned on (no play or record)
----------------------------------------------------------- EDIT updating ------------------------------------
I think that for version 1.5 of PCB at least should be able to record from the Commodore to the Tapuino in this way:
- Tapuino option invert = 1
- Tapuino record (auto or manual)
- Commodore save
IMPORTANT: You must remember to set option invert = 0 before you (re)load a program from Tapuino to Commodore!
----------------------------------------------------------- Last updating --------------------------------------
You are right ...
Even I can not save from the Commodore into Tapuino-memorySD: empty file.
 
Last edited:
----------------------------------------------------------- EDIT updating ------------------------------------
I think that for version 1.5 of PCB (without the connector EDGE for Datassette) at least should be able to record from the Commodore to the Tapuino in this way:
- Tapuino option invert = 1
- Tapuino record (auto or manual)
- Commodore save
IMPORTANT: You must remember to set option invert = 0 before you (re)load a program from Tapuino to Commodore!
----------------------------------------------------------- Last updating --------------------------------------
You are right ...
Even I can not save from the Commodore into Tapuino-memorySD: empty file.

I always record from C64 to Tapuino with invert = 0.
 
Thanks also to Quagliarulo I can write this wiki-tapuino-pedia :) to record, duplicate, load with Tapuino PCB 'base', PCB 1.5, PCB 1.71.
--------------------------------------------------------------->
About RECORDING
Datassette to Tapuino
- Tapuino option invert = 1
- Tapuino record (auto or manual)
- Datassette play
- At the end of the program must be stopped manually Tapuino
Tapuino to Datassette
- Tapuino option invert = 1
- Datassette record
- Tapuino play
- At the end of the program must be stopped manually Datassette
- N.B.: Commodore is only turned on (no play or record)
Commodore to Tapuino
Tapuino option invert = 0
- Commodore save
- Tapuino record
- N.B.: At the end of the program the recording on the microSD stop automatically

About LOADING
IMPORTANT: You must remember to set option invert = 0 before you (re)load a program from Tapuino to Commodore!
------------------------------------------------------------------------->
I hope it's liked this little reminder and I would appreciate if others can contribute or hotfix this small guide ... and also my not good English :lol:
 
Last edited:
That is what I've been doing but the resulting TAP file doesn't load correctly.
Does the tape work correctly from Datassette to C64? If not, you could have a misaligned R/W head or a bad tape. Also check that the SD card is fast enough and the level conversion circuit is suited (that is, not made of just resistors). Also consider that recording accuracy isn't perfect yet.
 
Back
Top Bottom