Skip to content
sweetlilmre edited this page May 25, 2017 · 11 revisions

Powering the Tapuino from USB and the C64 at the same time

Don't do this, ever.

MOTOR Sense issues

The Tapuino uses the MOTOR line from the C64 to determine if the tape is running i.e. if the TAP data should be played or paused. This is useful for multiload games and for pausing when the filename is initially displayed. If your Tapuino is stuck on 0 percent and is displaying a small 'm' character then the MOTOR sense line is not working correctly. Check that: * The MOTOR line is HIGH from the C64 to the Opto coupler and LOW from the Opto coupler to the Nano. * The datasette edge connector is firmly attached to the C64 and pushed completely in


When recording from a Datasette to the Tapuino in order to archive a real tape, be sure to set the Invert setting in the options menu to "1". This will invert the signal in software which will then correctly recognize the pulses sent from the Datasette. To record effectively it is essential that you use as fast an SD Card as possible.

Datassette to Tapuino * Tapuino option invert = 1 * Tapuino record (auto or manual) * Datassette play * At the end of the program the Tapuino must be stopped manually

Tapuino to Datassette * Tapuino option invert = 1 * Datassette record * Tapuino play * At the end of the program the Datasette must be stopped manually * 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

LCD Configuration

In order to get a working display, you will need to configure your LCD in the config-user.h file. The provided config-user.h.example file should give some indication of what to do, but here is some more detail.

Currently the Tapuino supports 3 I2C displays:

  • Standard 1602 LCD displays based on the Hitachi HD44780 controller

  • OLED displays based on SSD1306 controller

  • OLED displays based on the SSD131X controller

The appropriate display can be selected by uncommenting the relevant line config-user.h:

// #define LCD_USE_1602_LCD_MODULE

// #define LCD_USE_SSD1306_OLED_MODULE


Additionally, you will need to configure the I2C address of the display, this can be achieved by changing the value of the LCD_I2C_ADDR define:

// #define LCD_I2C_ADDR 0x27 // I2C address for the LCD

Change 0x27 to whatever the address of your display is (it could be something different, you will have to consult the datasheet that comes with your display)

Clone this wiki locally
You can’t perform that action at this time.