A way to transfer MZF files quickly to your Sharp MZ using an Arduino board. The source and other tools are provided on as-is basis: don’t blame me if you foul your beloved 8-bit workhorse.


To use MZduino you need the following pieces of software and hardware:

Sharp joystick port pins


Download the latest MZduino package (see below), unpack it and go through the following steps:

  1. Upload mzduino.pde to the Arduino board. After this you can quit Arduino since the code will stay on the board even if you unplug it.
  2. Compile (if needed) the host software and copy it somewhere in the path.
  3. Upload the transfer software to your Sharp. I’ve provided an MZF of it, which can be recorded onto a tape or played back directly to the cassette port using appropriate tools. Alternatively, you can type the bytes in using the standard Sharp monitor commands. See sharp/mzduino.txt for instructions.

Uploading files

At this point we should be set up and ready to go. If you load the transfer program from a cassette, it’ll automatically start waiting for a file to arrive. Whenever you want to get back to the transfer mode, you can reset the Sharp (it won’t wipe out the program) and type either:

On the host computer type mzduino blahblah.mzf to upload it to Sharp. At that point you should have started the receiver already. Usually there should be no reason to touch the Arduino board at all. If your Arduino isn’t in the default address, you can either give the port as the second parameter: mzduino blahblah.mzf /dev/ttyACM1, or edit the source and recompile. The host software will print some useful data when sending the file, most notably the parameters for the monitor’s save command.

There’s a simple checksum to catch transmission errors. If the checksum wasn’t ok the machine will reset. The program will still remain in the memory, don’t worry.

If you intend to use MZduino for software development, it’s a good idea to end your program with a JP $CF00. That way you can immediately upload and run an improved version of your program without extra typing.

Troubleshooting and improvements

There are plenty of caveats and things that could be improved. Here’ s a few that come to my mind right now:


MZduino 0.04. The first public release.