ParallelBuddy: DIY periphery add-on for everyone!

A project log for V-Tech Genius Leader / PreComputer Hacking

Turning a toy into a hardware tinkering platform

Bernhard Bernhard "HotKey" Slawik 09/06/2020 at 21:313 Comments

I've been using the past months to get a new focus for the project.

Hardware hacking is fine and dandy, but the practical use for the "average Joe/Jane" is quite limited. After all, manufacturing PCBs, sourcing 74-series logic and debugging everything is not for the faint of heart.

So I came up with a new goal: Lowering the entry bar for anyone trying to run own code on an old V-Tech computer. That means: allowing unmodified C programs to just work on the VTech without hassle. Just "make" to compile, "make emu" to simulate and "make burn" to burn a finished EEPROM.

There is no easy way of sticking your own EEPROM into the computer, yet. For now you have to "sacrifice" a working cartridge and properly attach your own EEPROM to it. But it's very doable.

EEPROM Adaptor
Custom EEPROM attached to a stock ROM cartridge using a piece of proto board and a ZIF socket

After having done this, you should be able to simply compile, test, burn and run your code on a 2000, 4000 or 6000 series V-Tech computer. This is already working fine using the latest version of the VGLDK.

So far, so good. But then what?

It would be soooo nice to have just a little bit more periphery to play with, like "real files", network, LEDs etc.

Following the same direction as my older "BusFicker" cartridge, I thought of the simplest way to extend the periphery by using just an Arduino. This time, instead of doctoring around with the Z80 bus, I re-visited my "Software Serial" code, completely re-wrote it in C and optimized the crap out of it. Not only is the new "Software UART" smaller than its assembly predecessor (C optimization ftw), it can even handle serial speeds of up to 19200 baud now!

Throw in an Arduino, an SD card and some wires and —voilá— say hello to the Parallel Buddy!

Parallel Buddy
Just connect 3 wires from the printer port to an Arduino for a world of endless possibilities!

What can it do? Well, I'm glad you asked☺In theory it can do whatever an Arduino can do. But to keep things neat and extendable, I opted to create the concept of file systems and mounts inside the VGLDK. So with the usual "fopen()" syntax, you can now access files baked into your ROM as well as accessing any remote file system mounted on the ParallelBuddy Arduino (the Arduino sketch actually uses the same source code for its own local file system).

So: Connect the Arduino, fire up the "monitor" ROM, "cd" into the ParallelBuddy mount, and from there into the SD card or anything else you decide to put in. Your monitor can simply "cat" or "run" files directly from there! "fopen()" doesn't know the difference! ☺

Browsing file systems
Running a program from an SD card connected to an Arduino. There are actually 4 different file system drivers in action to allow this.

I also added a rudimentary Ethernet file system through the use of a standard Ethernet shield. Just fopen("/pb/eth/") and you're golden!

Be warned that the ParallelBuddy code is quite big, so you'll have to disable some other functionality to make the monitor program fit a standard 8KB / 64 Kb EEPROM. The makefile will warn you if you run out of space.

Oh, uploading files from a computer to the monitor still works as before: After power-up the ParallelBuddy Arduino sketch will stay in "bootloader mode" for some seconds, simply passing all data between the VTech and your computer, before switching over to "ParallelBuddy mode". So you can also use the Arduino as a USB-serial converter.

So: Head over to the VGLDK GitHub and give it a try! You'll find the Arduino sketch "" inside the "tools" folder.



Evan Allen wrote 09/20/2020 at 22:03 point

I'd shelved this project a while ago and while I intend to get back to it eventually your comments made me think you may not know about these:

I got a pair of these some months ago and they work great.  I still don't have cases for them but it lets me play with cart roms and put diy code into the vtech pretty easily. 

  Are you sure? yes | no

Tom Nardi wrote 09/07/2020 at 01:24 point

Fantastic progress with this project, really appreciate how much thought you're giving this from the perspective of being useful to a larger audience instead of just a one-off hack. 

  Are you sure? yes | no

Bernhard "HotKey" Slawik wrote 09/08/2020 at 19:13 point

Thank you! This kind of appreciation is what drives me. So: I appreciate your appreciation ;-) Cheers!

  Are you sure? yes | no