Jump to content
IGNORED

SDrive-Simple - Yet Another Hardware Variation


mytek

Recommended Posts

Well what can I say other than I got very creative today and whipped out this little jewel, designed to be installed internally.

 

There's a Newer Design Available at: https://ataribits.weebly.com/sdrive.html

 

Board Top

SDrive-Simple_PCB_top.thumb.png.b2ea13be6afaab06ad85a7d3fea9c725.png

 

Board Bottom

SDrive-Simple_PCB_btm.thumb.png.cd342759f03f56253c569ef250f4b250.png

 

The board design is meant to fit directly above the SIO jack, with the only caveat being the need to cut a small slot in the A8's plastic case above the SIO jack to access the Micro-SD slot :ponder:

EDIT: If you want to be able to fully insert and extract the uSD card it'll require a bit more access to the card and likely require a bigger slot to be cut in the case, and/or an extended grip attached to the end of the uSD card. Also thinking it would be great if someone created a 3D printable tunnel.

 

Gerbers for PCB manufacture: SDrive-Simple_gerbers.zip

Go to the bottom of this post to see another option

 

Firmware in a form that the TL866II Plus XGpro Programming App can load: TL866II_PLUS_SDM_V1.3.bin

Uses the latest SDrive-Max V1.3 firmware ported over for direct out of circuit flashing into the ATMEGA328P chip

Updated: February 3rd 2022 MAX Screensaver Deactivated - caused delay in response & sometimes corrupted saves to disk

 

For other flashing programs you might need the binary file separated into independent FLASH Program Memory and EPROM aspects.

 

Split binary files...

SDM_V1.3_(FLASH).bin

SDM_V1.3_(EEPROM).bin

 

Split Intel HEX files...

SDM_V1.3_(FLASH).hex

SDM_V1.3_(EEPROM).hex

 

Fuse Settings for the TL866II Plus Programming App (set these after first loading the firmware).

TL866II_PLUS_SDM_V1.2_Fuses.thumb.png.9a33c5125140857ccbc4c045dd7554cb.png

 

Fuse Settings in HEX for other programmers.

1135728365_TL866II_PLUS_SDM_V1.2_Fuses(HEX).png.a1859cccdce2e30eb5eda260d4235775.png

 

 

The Schematic...

SDrive-Simple_schema.thumb.png.2dc5a5063eb52dcd6b23704236ac92b9.png

SDrive-Simple_schema.pdf

 

 

Here's the Micro-SD Breakout board I chose to go with on this project.

 

1366421432_AdaFruit254.thumb.jpg.3a6b774b53ef6bb712e0873f947fffed.jpg

AdaFruit P/N: 254

 

For those that wish to go with OSH Park on the PCB manufacture, here's a link to the shared project: https://oshpark.com/shared_projects/39XO8i67

You'll get 3 boards with Free International Shipping for $19

 

Boards coming out of the first sample run were successful in operation, therefore the gerbers and firmware downloads provided on this page are good to go.

 

Sorry, but no BOM. However it's a pretty simple project - just use the schematic to determine what's needed. Capacitors should have 0.2" (5.08mm) lead spacing. The resistor is a standard 1/4 watt 5% or better tolerance. And the diode is a Schottky in a DO35 case style (2 possible part numbers are provided in the schematic). Headers are 0.1" (2.54mm) male pin headers, with one already included when ordering the AdaFruit 254. The one for the SIO connections is purely optional, since the wires could be directly soldered to the pads instead. Oh yeah, the 16 Mhz crystal should be spec'ed as 20pf (Jameco Part no.: 325139).

 

This idea was born out of the discussion in this topic.

 

Edited by mytek
Updated firmware download files
  • Like 12
  • Thanks 2
Link to comment
Share on other sites

Using the DIP version of the ATMega328 also simplifies sharing of the SIO bus with other devices, with the DIP version of an Arduino R3 leaving a pin out of the socket(can't remember which one) eliminates the need for a buffering circuit. In the Arduino R3 this also disables flashing firmware via USB but not a concern for this device.

 

How is switching logical devices to D1: handled, the older SDrive designs use switches that aren't present in your schematic.

 

The original SDrive has 4 momentary contact switches for drive selection and reset, plus a 4 position DIP switch.

The SDrive NUXX has 4 momentary contact switches for drive selection and reset, plus a 3 position DIP and a SPST toogle switch.

 

 

I also wonder if older SDrives could be upgraded with an ATMega328(I looked at the datasheets and the ATMega328 appears to be pinout compatible?) and use the same firmware. I don't know if this is possible, but this could allow older SDrives to overcome limitations imposed by the ATMega8. 

 

These features are available in the SDrive MAX, but not in the ATMega8 SDrive firmware. 

Allow SD cards larger than 2GB, SD cards 2GB and smaller are hard to find.

Increase the number of emulated drives, could be hard to keep track of which is D1: though since there are only 4 drive LEDs.

Ablility to use ATX image files.

 

 

 

 

 

 

 

Edited by BillC
Link to comment
Share on other sites

2 hours ago, BillC said:

Using the DIP version of the ATMega328 also simplifies sharing of the SIO bus with other devices, with the DIP version of an Arduino R3 leaving a pin out of the socket(can't remember which one) eliminates the need for a buffering circuit. In the Arduino R3 this also disables flashing firmware via USB but not a concern for this device.

I mainly did it for two reasons. One was to allow for minimal component count by not requiring any onboard flashing provisions, which requires the ability to remove the chip. And the other was to make this a completely THT design when it comes to assembly, thus the reason to leverage the pre-made adafruit Micro-SD module.

 

2 hours ago, BillC said:

How is switching logical devices to D1: handled, the older SDrive designs use switches that aren't present in your schematic.

It appears to default to being D1 on boot-up as far as I can see. Haven't really tested it extensively at this point, since it was doing what I needed for another application I'm working on that only required a D1 boot drive. Basically this is an SDrive-Max without the touch screen display. And as such it can only do what an SDrive-Max would do without that touch screen input ability. So no Tape support, no drive swapping, ect.

 

It can be completely taken out of the picture by simply leaving out the SD Card on system boot, and thus allow the normal SIO connected devices to work unimpeded, which is good since this is hard-wired into SIO.

 

2 hours ago, BillC said:

The original SDrive has 4 momentary contact switches for drive selection and reset, plus a 4 position DIP switch.

The SDrive NUXX has 4 momentary contact switches for drive selection and reset, plus a 3 position DIP and a SPST toogle switch.

As I mentioned, with this based on the Max that functionality would normally come from the touch screen, which this doesn't have.

 

2 hours ago, BillC said:

I also wonder if older SDrives could be upgraded with an ATMega328(I looked at the datasheets and the ATMega328 appears to be pinout compatible?) and use the same firmware. I don't know if this is possible, but this could allow older SDrives to overcome limitations imposed by the ATMega8.

I don't see why not, since the SDrive-NG was able to go with the ATMEGA328, and also could go beyond the original limitations of having to be FAT16 and 2GB or less. The NG (next Generation) could use FAT32 and larger cards. However I did try to use that firmware in my earlier tests, and could never get it to recognize any card, even my 1GB ones at either FAT16 or FAT32. It would communicate just fine with the SIO, and even let me perform a memory dump, but I never could get it to see the card. So I eventually gave up and assumed it had something to do with my method of directly flashing the code into the chip (wasn't using the Arduino boot loader).

 

If someone wanted to take the SDrive-Max firmware approach with their older SDrive variants they would need to change from the original 14.318 Mhz crystal over to a 16 Mhz one, and also reroute the SIO command line from pin-6 to pin-28. And probably would lose functionality of the switches and LEDs in the process, unless that's still baked into the Max firmware (which i doubt).

 

 

EDIT: I should also mention that the SDrive-Simple PCB has dimensions of 2" x 1.9" for those that may wish to inquire with a manufacturer like JLCPCB to get some made. I will be using them myself to have a small sample run done, when I finish up another project so that I can combine the order to minimize shipping costs. So if people want to hold off until I do this, that would be advisable due to the untested nature at this point.

 

Edited by mytek
Link to comment
Share on other sites

5 hours ago, mytek said:

I don't see why not, since the SDrive-NG was able to go with the ATMEGA328, and also could go beyond the original limitations of having to be FAT16 and 2GB or less. The NG (next Generation) could use FAT32 and larger cards. However I did try to use that firmware in my earlier tests, and could never get it to recognize any card, even my 1GB ones at either FAT16 or FAT32. It would communicate just fine with the SIO, and even let me perform a memory dump, but I never could get it to see the card. So I eventually gave up and assumed it had something to do with my method of directly flashing the code into the chip (wasn't using the Arduino boot loader).

Thanks, I wasn't aware of the SDrive-NG.

As I have an SDrive NUXX I may purchase an ATmega328 and attempt this upgrade, it has a built-in LPT: ICSP interface.

Link to comment
Share on other sites

5 hours ago, orpheuswaking said:

I'll take two ?

Cool ? But you know I never sell anything, so this will likely be a DIY project for you, but immensely easier than assembling a 576NUC+ ;)

 

I know people might take issue with not having some of the regular features due to the lack of a touch screen or LEDs and buttons, but at least for my normal usage and requirements this will work just fine via the SDrive.atr Control Program. And I suspect that it'll suit a lot of other peoples needs as well. And there was also an SDrive-Micro that was very much like what I've put together, albeit for external use, which I recall sold very well.

 

SDrive_Micro.jpeg.b219b126b64d42fcd2f82e370cb4d6fb.jpeg

 

3 hours ago, BillC said:

Thanks, I wasn't aware of the SDrive-NG.

As I have an SDrive NUXX I may purchase an ATmega328 and attempt this upgrade, it has a built-in LPT: ICSP interface.

Here's a link for you to the latest and greatest: https://github.com/kbr-net/sdrive-ng-v2

 

Edited by mytek
  • Like 1
Link to comment
Share on other sites

15 hours ago, mytek said:

Cool ? But you know I never sell anything, so this will likely be a DIY project for you, but immensely easier than assembling a 576NUC+ ;)

 

I know people might take issue with not having some of the regular features due to the lack of a touch screen or LEDs and buttons, but at least for my normal usage and requirements this will work just fine via the SDrive.atr Control Program. And I suspect that it'll suit a lot of other peoples needs as well. And there was also an SDrive-Micro that was very much like what I've put together, albeit for external use, which I recall sold very well.

 

 

I actually have 4 different variants of the sDrive already I just don't have a small internal version. Only one of those variants has a screen and honestly I use the sDrive control program more often than not. 

  • Like 1
Link to comment
Share on other sites

3 hours ago, orpheuswaking said:

I actually have 4 different variants of the sDrive already I just don't have a small internal version. Only one of those variants has a screen and honestly I use the sDrive control program more often than not. 

Although the screen on the SDrive-Max looks super cool, I rarely ever use it, and just like you fall back on the Control program instead. This very thing led me to to figure out where the navigation keys were stored and then created a unique version aimed at the TK-II to utilize its better navigation abilities. For those that don't know about this, here's a link where you can download the TK-II variant of that SDrive Control program: https://ataribits.weebly.com/tk-ii-control.html

 

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

I got the boards from JLCPCB today, and they look great ?

 

I love the purple solder mask when you have power planes - really stands out.

SDrive_Simple_JLC.thumb.JPG.647dfef10712675e77180e951dad01ac.JPG

 

 

Since I didn't have any suitable mounting hardware for the adafruit uSD BreakOut board, I went with some double-sided industrial tape I already had laying around at my shop - It took 3 layers to get the correct height. This works quite fine, although I did provide 2 holes on my board that match up with the ones on the adafruit board, so you could in theory use screws, washers, and nuts.

1.thumb.JPG.01222c5958ea7045ed93d6c5ccfc2bd2.JPG

 

Here's the fully assembled unit (sorry for the poor lighting - you'll see it better later on).

2.thumb.JPG.6bce7c10faff587401a2a8b240ba0b9e.JPG

 

Next up was removing the caps on the CMD, DO, and DI signals connected to the SIO jack.

3.thumb.JPG.c1451bfe775b4db3fe943e0d97c37e2e.JPG

 

Then I made the SIO interface connection harness.

4.thumb.JPG.5a83c4734fb534b4640baed9a0fb3d24.JPG

 

And here's what it looks like all connected and the board mounted above the SIO jack

(I used some 4-40 standoffs, washers, and screws in the original SIO jack mounting ears).

5.thumb.JPG.e839b5cc3f5c694ed931e69122adb273.JPG

 

Had to cut-out a slot for the uSD card, and ran into a problem with the thickness of the case.

6.thumb.JPG.d475db1c5b1c55f57e9629521dd1baea.JPG

 

It's alive! ?

 

 

 

BTW, here's the XL HSIO Rom I used: XL_STOCKandHSIO.ROM

 

I programmed it into a 27C256 Eprom which is twice the normal size of the stock OS ROM. So I filled the lower half with the Stock OS, and then filled the upper half with the Hi-Speed Patched XL OS. Due to the way the Atari's OS socket is wired, it'll default to the HSIO version OS. If you want the Stock version, a switch can be installed from pin-27 to switch it between 5v and GND, with GND being the Stock OS selection (hint: TV Channel switch).

 

I don't plan on adding this to my website for a while, and also don't have a BOM made up either. Maybe in the future after I do create a BOM I might set up a page on my website. At any rate this board design is good and works. So the gerber files and OSH Park link I uploaded at the beginning of this topic are valid, and will get you a working board or two (or three, ect.) :)

 

Edited by mytek
  • Like 4
Link to comment
Share on other sites

Hi Bob :)

 

43 minutes ago, bob1200xl said:

What divisor does the OS use on high-speed SIO?

It's currently set to whatever the SDrive normally defaults to, which I believe is 6 (but I'm only guessing). It is possible to set it to the fastest speed setting (divisor 0), but this isn't always 100% reliable due to a slight baudrate mismatch between the SDrive UART and SIO. If left at the default, it truly is 100% reliable, and still quite fast as you can see in the video. So I normally leave it at the default setting.

 

Somewhere I recall a discussion about Hias rewriting the SDrive firmware to bit bang, thus better matching SIO, but I believe that was for the original hardware from way back. Not sure if that ever got rolled into the SDrive-Max firmware, which is what I am currently running. It needs to work with the ATMEGA328P with a 16Mhz crystal (original SDrive used a 14.3Mhz crystal).

 

Link to comment
Share on other sites

Since a simple slot being cut out for the uSD card didn't fly because of the thickness of the case plastic hindering pushing the card all the way in, I'm going to try something a bit different this afternoon. Basically I'm going to opt for a circular hole with a diameter just a tad over the width of the uSD card. I believe this will not only work much better for insertion of the card, but also for removal as well. And if done with a stepped drill bit, will be infinitely easier to do than trying to cut out a perfect slot in the first place.

 

Link to comment
Share on other sites

Yes going with a hole instead of a slot works much better for uSD card accessibility. It allows for my finger to easily push the card all the way into the socket, and almost lets my very short finger nails grab it for retrieval (I still think attaching a folded over piece of scotch tape would make this a cinch). The main advantage to using a hole besides the better access, is that a hole is much easier for the DIY person to make than a slot ;)

 

1.thumb.JPG.75785991102384a765706463f061a90a.JPG

 

2.thumb.JPG.dd5bf9baf68c219049161402167e98b4.JPG

 

3.thumb.JPG.c690e819a336f4a3a3f69279d9d399b3.JPG

 

4.thumb.JPG.2d02dff3c67509b35e7e78f483a2887a.JPG

 

- Michael

 

Edited by mytek
  • Like 3
Link to comment
Share on other sites

Hello Michael

 

This might be a stupid idea, but... if somebody would reduce the thickness of the case on the inside of the case, so the PCB(s) are closer to the outside of the case (and maybe even rest in a slot on the case), would that also make it possible to grab the mini-SD card?

 

Sincerely

 

Mathy

 

Link to comment
Share on other sites

everyone of these kits and pre mades always flush mount the sd cards, imho it's always stupid because every last one of the uno and sdrives end up recessed where you can't get to them and have to resort to tape, push pins, finger nails tweezers etc...

The edge should or the SD slot should at least protrude the thickness of the PCB it's stuck to at minimum

Edited by _The Doctor__
Link to comment
Share on other sites

2 hours ago, Mathy said:

This might be a stupid idea, but... if somebody would reduce the thickness of the case on the inside of the case, so the PCB(s) are closer to the outside of the case (and maybe even rest in a slot on the case), would that also make it possible to grab the mini-SD card?

Hi Mathy, no it's not a stupid idea, since that would make things more accessible, but for most DIY people there wouldn't be a practical way to do it.

 

1 hour ago, _The Doctor__ said:

everyone of these kits and pre mades always flush mount the sd cards, imho it's always stupid because every last one of the uno and sdrives end up recessed where you can't get to them and have to resort to tape, push pins, finger nails tweezers etc...

The edge should or the SD slot should at least protrude the thickness of the PCB it's stuck to at minimum

Hi Doc, yeah I agree, but it's just the way these breakouts and such are always built like you mentioned. As you can see in my pics I did bring it out as far as I could so that it's flush with the inside of the case, but even that's not going to overcome that the uSD slot needs to overhang the board.

 

On the plus side where its mounted, a round hole isn't going to be very noticeable being on the back side of the case. And speaking for myself only... I rarely find the need to change SD cards because of the immense storage they offer (I'll never fill one up).

 

You guys might notice that I always put things in the perspective of my needs being met. I do this mainly because it's true. All of my creations are really something I wanted, so I develop them with me in mind. I don't sell anything myself, nor get a cut of the money from others that do, so I'm not really all that motivated to meet others people's needs. But if I do say so myself (and I will ;)), I'm generous in the fact that I put all of my designs in the public domain at some point even though they may be flawed from someone else's perspective :)

 

So for instance I could have made this board using all discrete components, and thus placed the SD slot where it really worked best. However the one thing I do try to do for others, is to keep my designs if at all possible to utilize THT components to make it easier for the DIY crowd to assemble when they are later released. So in this design that meant using a SD breakout board which only required the absolute minimum soldering of a THT header.

 

Now I'm not totally self centered, so during the development stage if someone brings up a good idea, it usually will get implemented before the public release :)

 

EDIT: actually if there were an easy way to add a stronger spring to the uSD slot, it would be able to pop the card out far enough to be easily grabbed with the fingers. However I doubt that's practical to do.

Edited by mytek
  • Like 1
Link to comment
Share on other sites

1 hour ago, E474 said:

Could you not mount it upside down, so the micro sd card only needs a small notch cut out directly above the SIO port?

Normally that wouldn't be a bad idea if the board had been made with this in mind (the signals would need to be reversed - thus a new PCB layout), but if it's just a notch big enough for the SD card to pass through, then you wouldn't be able to push it all the way in without using some sort of tool or poker. This is the same problem I had when I first approached this and had made a nice perfect notch initially, but ended up having to use a paper clip to push it all the way in. The 15/32" diameter hole lets the tip of your finger enter and push it all the way home, no tool required.

 

However people are free to do whatever they want if they decide to install one of these into their Atari, so there may indeed be a better alternative way to approach this. And there is nothing forcing one to install it over the SIO jack as I did, although that is what I had in mind when I developed the board.

 

Maybe someone can devise a 3D printed tab with a slot that would fit snugly over the end of the uSD card, thus making it longer and giving a person the means to push it in, and to easily remove it as well. Then a relatively small rectangular slot cut-out would suffice. This solution would work equally well for the SDrive-Max which is also problematic in this regard. Unfortunately these darn tiny little versions of the SD cards have really taken over, with the standard SD cards getting very expensive as a result. Otherwise I would have just gone with a standard SD card jack and not have this issue. Sometimes the move to continually miniaturize electronics is not the best decision.

 

Edited by mytek
Link to comment
Share on other sites

in the picture it's just wires going to the device so flipping the whole(entire) assembly upside down shouldn't be an issue at all unless something is hiding and we can't see it. maybe the mount height would change in spacing... that's cake though really I'd think. Sure it's not clean with the wires doing some crossing but it may beat refactoring the pcb (which doesn't sound like something that anyone wants to do)

Edited by _The Doctor__
Link to comment
Share on other sites

1 hour ago, _The Doctor__ said:

in the picture it's just wires going to the device so flipping the whole(entire) assembly upside down shouldn't be an issue at all unless something is hiding and we can't see it. maybe the mount height would change in spacing... that's cake though really I'd think. Sure it's not clean with the wires doing some crossing but it may beat refactoring the pcb (which doesn't sound like something that anyone wants to do)

Opps you're right. My brain interpreted it as turning the adafruit uSD Breakout upside down relative to the SDrive Simple board during assembly which wouldn't work. But yes if someone wishes to turn the entire assembly over that wouldn't be an issue. However it still doesn't solve the thickness of the plastic on the rear of the case from interfering with insertion and extraction of the uSD card - so what's the point of doing that?

 

Link to comment
Share on other sites

it won't but it makes a clean notch easier for some folks making it less noticeable as well. I think is their goal.

 

....edit.....ah, and using one finger nail instead of pinching between the two fingernail depending on the SD car since the PCB firms things up more solidly than just the SD card slot tin.... I get it now...  I probably still would do the tape loop thing, but the SD card prolly won't be coming out once the contents take decent shape...

Edited by _The Doctor__
  • Like 1
Link to comment
Share on other sites

1 hour ago, _The Doctor__ said:

it won't but it makes a clean notch easier for some folks making it less noticeable as well. I think is their goal.

Yes I can see that as well. Much easier to create a slot like this...

uSD_Card_Slot_800XL.png.cd802917b04b49304f8a76717e57ed59.png

1 hour ago, _The Doctor__ said:

..ah, and using one finger nail instead of pinching between the two fingernail depending on the SD car since the PCB firms things up more solidly than just the SD card slot tin.... I get it now...

You'd still have to have to have some fairly long finger nails to make that work, because the card is recessed a pretty good amount.

 

fingernails.jpg.887dfdb970ded1499ec26c0317b22558.jpg

 

Quote

  I probably still would do the tape loop thing, but the SD card prolly won't be coming out once the contents take decent shape...

Yep either the tape loop, or as I also suggested maybe a 3D printed extended grip could be used instead.

 

Like this one...

 

uSD_Card_3Dprinted_grip.jpg.6d3edc185e44e1c9c538b3625ba02079.jpg

MicroSD card grip

An STL file is linked to on that page :)

 

You'd just need to make the notch in the Atari case a tiny bit larger to accommodate the grip.

 

Edited by mytek
  • Like 4
  • Thanks 1
Link to comment
Share on other sites

Hi,

 

   Yes, sorry, I meant mounting the whole assembly upside down. The micro SD card has a ridge on the edge, which would be on the underside if you mounted it upside down. I think you could increase the height of the notch to make it a bit less fiddly (and put spacers under the screws holding the board in place to raise it up a bit), but moving the sd board a few millimeters further away from the ATMega chip, so it hangs out over the edge of the main SDrive board might work better.

Link to comment
Share on other sites

1 minute ago, E474 said:

Yes, sorry, I meant mounting the whole assembly upside down. The micro SD card has a ridge on the edge, which would be on the underside if you mounted it upside down. I think you could increase the height of the notch to make it a bit less fiddly (and put spacers under the screws holding the board in place to raise it up a bit)

Yep figured that out thanks to Doc. Check out my previous post that details what you were suggesting.

 

1 minute ago, E474 said:

, but moving the sd board a few millimeters further away from the ATMega chip, so it hangs out over the edge of the main SDrive board might work better.

Moving the adafruit uSD Breakout board farther away from the ATMEGA chip to overhang the SDrive Simple carrier board really wouldn't solve anything unless you also make the notch the same width as the Breakout board (see photo below). Really what's needed, and was already mentioned, is a uSD Breakout that has only the socket overhanging the board. But I don't think any of them out there do it that way :(

 

AdaFruit 254.jpg

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...