Arduino, Atari, Retro

Atari SDrive-Max

SDrive-Max

SDrive-Max

Well this has been an interesting little project. I would say, if you didn’t have to cobble together all manner of snippets from all over the interwebs, and then make loads of stupid mistakes (*cough*) then you could probably have the Atari SDrive-Max up and running in mere minutes. An hour tops.

So let’s try and make this as easy as possible. I’ll tell you what you need, where to find it and what to do with it!

But what is it?!

Well I’m glad you asked! Basically, the Atari SDrive-Max is a modern-day replacement for the Atari 8-bit computer disk and tape drives. Hook it up to the SIO port and load your games straight from a micro sd card.

What do I need?

Another excellent question! Here’s a list of the essentials:

  • An Arduino Uno R3 – linky
  • A 2.4″ or 2.8″ lcd touchscreen – for the least painful experience it should use the ILI9341 display drivers – linky (you can probably get these even cheaper if you shop around)
  • Some jumper cables – 5 should suffice
  • A soldering iron and some solder
  • A micro sd card – 4gb should be enough
  • An 8-bit Atari computer – duh!

All-in-all, I reckon you can do it for less than £20, maybe £15. You can buy the whole thing ready-made for lots more monies on the ebays, but where’s the fun in that?

The installation and setup instructions here will be for PC users, but there’s plenty of guff out there for Mac and Linux too.

What software do I need?

What now?

First up, unzip the XLoader and sdrive-max-v11 files you just downloaded.

Now the fun begins. Attach your lcd screen to your Arduino, it should just plug straight in:

Arduino Uno R3
Arduino Uno R3
Touchscreen
Line the pins up and plug it in!
Yeah, I can do videos too!

Now attach your Arduino to your PC. It should have come with an appropriate USB cable to do this.

Once attached, run XLoader and choose the following settings:

Device: Uno(ATmega328)
COM Port: Select whatever is in the dropdown, it should only be one item as you’ve only got one Arduino plugged in. Mine happens to be COM5.
Baud Rate: Just leave this untouched.

XLoader
XLoader

As for Hex file – navigate to this folder, wherever it may be on your PC. It’s from the sdrive-max-v11 zip file you downloaded earlier:

This folder!
This folder!

Now. This is important:
First, select the eeprom_writer.hex file and click on Upload.
Now wait, you should see the touchscreen light up and some progress bars while it installs the file. When it says done you can continue.
Second, select the SDrive.hex file and click on Upload.

Hex Files
Hex Files – I want to believe!

When it’s all done, the touchscreen will refresh itself and a some crosshairs will appear in the corner. This is the calibration screen. Tap on the crosshairs each time they appear – you should get one in each corner. When done you should see something similar to this screen:

Atari SDrive-Max
Atari SDrive-Max

Now, insert your micro sd card into the computer – by whichever means you have – and copy the SDrive-Max.atr file to the root directory.

Stick some games on the card too. I stuck mine in a folder called “Games” because I have such a wild imagination. When you’re done, insert the micro sd card into the slot under the touchscreen.

You told me I could use a soldering iron?

Correct! Now’s your chance to shine. Or, if you’re anything like me, now’s your chance to do some seriously bad soldering and not realise that you’ve soldered 2 pins together!

Remove the touchscreen from the Arduino and insert the header pins that came with it. Solder them in place. I inserted these from underneath and soldered on top. I wanted as much of the header pins as possible to connect my jumper wires to.

Header Pins
No, YOU soldered one set of pins on at a funny angle!

Now, I didn’t want to destroy an existing Atari SIO cable, and I didn’t want to order another one from somewhere. I don’t have access to a 3D printer, so I wasn’t going to make one either. So I just took a bog-standard jumper wire and took the plastic cap off one end:

Jumper Wire
Jumper Wire

Attach the other ends of the jumper wires to the Arduino, like so:

Wiring
Attaching the jumper wires

So, blue is ground; red is +5v; green is data input; purple is data output; yellow is command. You can find out everything about the SDrive-Max and some much clearer diagrams here: https://atari8bit.net/everything-sdrive-max

My intention in this blog is to give you the simplest possible method to get the thing up and running!

Now, connect the other ends of these wires to the SIO port on the back of your Atari, like so:

Atari SDrive-Max SIO Port Connections
SIO Port Connections

So looking at the image above, there are 6 pins at the top, and seven at the bottom.

Top row: 2nd pin blue, 5th pin red
Bottom row: 2nd pin green, 3rd pin purple, 4th pin yellow

The wires will take a bit of persuasion to fit on, but they will fit!

That’s it!

Honest! All you need to do now is hook the Atari up to the TV, and switch it on!

If you’re very very lucky, and you haven’t messed it all up (more on that later), then your Atari SDrive-Max will start up and you should see the following on your TV screen:

File Manager for the Atari SDrive-Max
It lives!

So what’s happened here? Well, if you take a glance at the touchscreen, you can see D0: is lit up in blue. The SDrive-Max.atr image file is always loaded first under D0: – unless you change the config file, but we’re not doing anything like that right now.

This image file is what loads up first when you switch the Atari on, and this is what gives you the file menu pictured above.

So now you can navigate the file list using the arrow keys and enter, or the joystick and fire button, to mount whichever game you choose to D1: – you can also use the touchscreen to choose the file you want.

Once happy, hold down the Option key (if you’re using a machine with built-in Basic) and press Reset. Let go of Option once you hear the disk loading. You should also see some flashing lights on the Arduino/Touchscreen to confirm that a file is loading.

Again, you can find much more detailed instructions here: https://atari8bit.net/everything-sdrive-max/#using

If everything has gone to plan, your game should load. Look, even I managed it!!

Ballblazer
Ballblazer
BC's Quest for Tires
BC’s Quest for Tires
One of my favourites! Pharoahs Curse
One of my favourites! Pharoahs Curse

So what can go wrong?

Well, first up, I couldn’t get my touchscreen to work. I ordered this kit from Banggood, which included 2 screens and an Arduino Uno R3. It is a bargain, but I don’t know if I just got unlucky with the screens. There’s another one coming, so I’ll update this blog if it works.

The bigger screen just didn’t have any drivers that matched the SDrive-Max options. The smaller screen should have worked, but the touch part of it was broken, so there was no way to get past the calibration screen!

Then, I discovered I’d accidentally soldered 2 pins together on the Arduino! D’oh! Nothing was going to work that way.

My final, and most major issue with the Atari SDrive-Max, was that the computer utterly refused to boot to the file menu. I could force load disks by mounting them to D1: and saving the image before rebooting, but that’s not quite what I wanted.

I kept getting an SIO Timeout error on the lcd screen, so you’d assume it couldn’t read from the micro sd card quick enough. After trying several cards and getting nowhere, I finally discovered it was down to the SDrive-Max.atr image file. Once I replaced that with the one in the link at the top of this blog, everything worked perfectly!

Further improvements

Well, first off, you could use a proper SIO cable and solder it to the Arduino board. I reckon you could also use an intact cable and maybe push the jumper wires in to the pin holes.

Then, as you can see from the other links I’ve put up, you can also externally power the Atari SDrive-Max and (with a little modification) you can daisy chain it with original hardware, such as the 1050 disk drive or the 1010 tape deck.

You can also get some nice 3D printed cases for it. But I’m happy with what I’ve got for not too much outlay.

I suspect that you could also use the whole thing without actually having a touchscreen and just use the file menu on the Atari. I did stumble across a batch file that did the job of XLoader and left out the calibration part of the software, but I can’t remember where I found it now! Edit: Found it, here. If you use this one, you’ll probably need to make sure the Arduino IDE is installed too.

In fact, I think, I can take this a step further. How about an Arduino nano, no screen, and mounted inside the case, with access somewhere to the micro sd slot? Watch this space…

Finally

I hope this blog has been of some use to you. I’ve tried to make it as easy as possible to follow, and help you avoid the various pitfalls that had me stumped for a while. So go and build the Atari SDrive-Max and take a trip down memory lane!

Links

Original site and instructions from kbr, the creator of the SDrive-Max: http://www.kbrnet.de/projekte/sdrive-max/index.html

Github: https://github.com/kbr-net/sdrive-max

Atari Wiki: https://atariwiki.org/wiki/Wiki.jsp?page=SDrive-MAX

Atari8bit.net’s Everything SD-Max Guide:
https://atari8bit.net/everything-sdrive-max/

Leave a Reply