by Steven B. Combs, Ph.D. tags: commodore - datasette - cassette - retro-computing - arduino - plus4/4 - c16 - ted - tap
As part of my Commodore Plus/4 series, chapter three of the user’s manual includes a section on using a Commodore Datasette and a 1541 Diskette Drive. In a previous post, I assembled the modern replacement for the disk drive; now it’s time to build a Datasette replacement called, the Tapuino.
“What’s a Tapuino,” you ask? It’s a cool Arduino-based replacement for the Commodore Datasette. For this project I use an Arduino, in this case the inexpensive Arduino Nano version, along with some easy to source electronic components. You can learn all about the Tapuino on the Sweetlilmre’s 1337 beef: Building the Tapuino R2 blog post.
NOTE: While this post focuses on the Tapuino for a Commodore Plus/4, this build will also work with a C16 or other 264 series Commodore computer. If you want to use the Tapuino with a VIC-20, C64, or C128, you only need to replace the 7 pin DIN connector with this C2N Power Adapter that will also allow you to tap power from those computers for other projects.
Sweetlilmre’s (is that pronounced, “Sweet Lil Marie?”) original blog post was written in 2015 and things have changed. His build uses veroboard to assemble and connect the Tapuino components. I will use a breadboard. Later, I will move my working Tapuino to a solderable breadboard and create a custom 3D printed case. I’m looking forward to that project!
This post and the companion video includes updates to build materials, layout, imagery, parts sourcing, and processes. Before you read this blog post, watch the video below. It shares my build process and first use of the Tapuino. Hopefully you will have a little fun along the way.
In the video below, I breadboard and operate a Tapuino connected to a Commodore Plus/4:
Let’s start the project by listing all the materials necessary.
The list below includes everything you need and the most inexpensive/convenient way I’ve found to source them. The problem is that you simply can’t purchase some items as a single unit. Not a problem for someone like me who has several projects on the bench at a time, but if you want the cheapest way to a Tapuino, I recommend you purchase a kit or a completed unit.
Below is my list of materials:
Makers or electronic hobbyist probably have many of these items (I did!) and only need to purchase a few. I did splurge for this project with the purchase of the multi-color momentary switches and the all-in-one LCD display with I2C backpack (I had them as separate items). I did not have a 4n25 optocoupler.
The first step in my process was to use a regular breadboard to build the Tapuino based on Sweetlilmre’s original Fritzing file, as shown below:
Afterward, I played around with the layout to streamline, and or, update part locations. Very little changed from the original because it was already efficient; however, I was able to locate updated Fritzing parts and took a different approach to labeling the cable connection. A Fritzing image of my layout is below as well as a download link for the original .fzz file.
I demonstrate how to build the Tapuino in the video; however, below are additional thoughts and tips:
I’d not used an 4n25 optocoupler; or opto-isolator (which is why it took me a few times to say it correctly in the video). It’s an interesting device. Sweetlilmre’s site doesn’t explain what it does, so I did a bit of research. Wikipedia says an optocoupler:
is an electronic component that transfers electrical signals between two isolated circuits by using light. Opto-isolators prevent high voltages from affecting the system receiving the signal.” Here’s the data sheet if you’d like to learn more.
That concludes my additional Tapuino build tips and thoughts. I’ll add others as I think of them or use the Tapuino. Additions will be date-stamped. Leave comments below if you think I should include other comments or have questions.
While I could include these in comments in the section above, this inclusion was substantial enough to warrant its own section. First, a shout-out to AWSM.de for providing this wonderful tape connector conversion reference image:
I originally tried to use a diagram from another site and after a first attempt, I wired the cable incorrectly. Everything was mirrored. I discovered the error when I noticed that the Tapuino powered on, but the display was blank. When I placed a volt/ohm meter on the breadboard’s positive and ground rails, I discovered the Commodore Plus/4 was sending -5v to the Tapuino. Aha!
I fixed the polarity by swapping the wires on the rails. The Tapuino display was correct but the unit still wasn’t working properly. It would recognize the Tapuino was trying to send or save a Plus/4 program, but it would never release the Plus/4. That lead me to believe that there were other incorrect connections.
After a few checks against the image above, I found all the pins, minus the sense pin, were mirrored. The good news, I didn’t have desolder the connector or the wires on the header pins. I slipped the pins out of the header holes and reordered them. “Presto-changeo!”
This is another process that deserves its own section. Once the Tapuino is built, it’s a simple matter to download and install the software. I demonstrate each step in the accompanying video; however, below are additional thoughts and tips:
tapuino.inofile won’t be able to find and upload the support files.
config-user.h.exampleconfiguration file to
Modify the configuration file to match the hardware and language. Below is my file:
//*****************************************/ // User selectable configuration settings // /******************************************/ /******************************************/ // LCD Definitions /******************************************/ // uncomment one of these sets for your specific LCD #define LCD_USE_1602_LCD_MODULE #define LCD_I2C_ADDR 0x27 // I2C address for the LCD // #define LCD_USE_SSD1306_OLED_MODULE // #define LCD_I2C_ADDR 0x3C // I2C address for the OLED // #define LCD_SSD1306_BIG_FONTS // define this for ... bigger fonts... // choose one of these depending on your display // #define LCD_SSD1306_128x64 // #define LCD_SSD1306_128x32 // #define LCD_USE_SSD131X_OLED_MODULE // #define LCD_I2C_ADDR 0x3C // I2C address for the OLED /********************************************/ // Language Definitions /********************************************/ // uncomment one of these for your language #define TAPUINO_LANGUAGE_EN // #define TAPUINO_LANGUAGE_IT // #define TAPUINO_LANGUAGE_TR // #define TAPUINO_LANGUAGE_ES // #define TAPUINO_LANGUAGE_DE
tapuino.inofile - the Arduino IDE will load all associated project files.
Once you’ve done all of that, it should be a simple matter of connecting the Arduino to your PC and clicking on the Upload
(→) button in the toolbar.
You will need the smallest microSD card you can find. I only had a 32Gb card and this is overkill! If I could find a 1, 2, 4, or 8Gb that would be fine, but you can no longer purchase them in these capacities.
Format the card as FAT32. You can place directories on the microSD but keep them 16 characters or less. In my demonstration, I have a games folder with three
.tap files with long names. The Tapuino will scroll longer file and folder names.
UPDATE 2020-07-22: The animated .gif below is a short “copying .tap files to the microSD card” demonstration:
When you save a file from a Commodore computer using the
SAVE command, the Tapuino will create its own recordings folder. As far as I know, there is no way to delete these files using a Commodore computer. You will need to remove the microSD and perform that function on a modern computer.
Looking for Plus/4
.tap files? I recommend you check out Plus4world’s tape index. I imagine any program released on cassette is archived but be careful, you have to select the right video version (PAL or NTSC). PAL specific programs will not work on an NTSC computer and vice-versa and that’s a real problem. If you own an NTSC Plus/4, like I do, you will find that you can’t enjoy the majority of Plus/4 games. Most titles were PAL only since the computer was more popular across the pond.
Once the microSD is prepared, ensure the Tapuino power is off and place the microSD into the card reader. You can now turn on power to the Plus/4. The Plus/4 will provide power the Tapuino.
The Tapuino includes four buttons used to navigate the Tapuino interface as shown in the table below:
To display the contents of a directory, navigate to the directory name on the Tapuino display and push button 1 (Select). If you need to stop a program from saving or loading, push button 2 (Abort). The navigation is intuitive after a few uses.
On an early drawing of the custom case I am designing, I have these buttons labeled. I’m not sure this is necessary after a day or two of use, but it will be helpful for new users.
NOTE: There is one menu item on the Tapuino you must select in order to use with a Plus/4 (or other 264 series Commodore). Select Options / Machine / C16. This configures the Tapuino to act as a 1531 Datasette. I do not understand what this option does to make the Tapuino operate differently. If anyone knows, please drop a comment below.
I LOVE this project so much. It checks off all my favorite retro-computing topics; Commodore retro-computing (✓), physical computing (✓), and electronics kits (✓). Now that the Tapuino built and operational, it will also check off one last hobby; 3D modeling and printing. Stay tuned for that post and video.
I’m not sure how often I will use the Tapuino since the Pi1541 is faster, but if there is a random
.tap file out there, at least I know I can load it. With the Tapuino, I can also return to my Plus/4 User’s Manual series since I can now cover chapter 3 which requires a cartridge, disk drive, and casette drive.
Huge thanks to Sweetlilmre for the original instructions. This would not have been possible with our their amazing original work. I hope I have added something to the build instructions that makes this project even easier for someone else.
Here’s the list of references:
One of the reason’s I choose to use a solderable breadboard was to provide a permanent platform for the electronic so I could design a 3D printed case. I’ve already started thinking about this and have some rough designs. More on that in a future post and video. For now, leave you comments and questions below or in the comments under the YouTube video. I’ll do my best to answer them.comments powered by Disqus