Jump to content
Farb

SDrive-MAX ATX support

Recommended Posts

Just to put a bow on this side issue, in case someone has a similar problem in the future and runs into a similar issue, at Michael St. Pierre's suggestion, I substituted a small 1N5819 Schottky diode for the suggested 1N4818 and voila, problem solved! My SDrive-MAX works now with my 1088XEL and allows use of other SIO drives at the same time. Whew!

 

There appears to be discussion on this very topic on the abbuc board with the apparently unsurprising recommendation of using a Schottky diode. I just checked the 1N5819s I've got handy and they show only a .16 drop so I'll be using these for my builds.

Share this post


Link to post
Share on other sites

So I haven't gotten any Electronic Arts ATX files to load, though I haven't tried them all yet. But still, some is better than none!

 

I believe Electronic Arts titles are more sensitive to timing. I have confirmed that Archon, Archon II and Axis Assassin are all working with 0.8b of the firmware which has very rudimentary timing implemented. However, no Databyte titles (which are extremely timing sensitive) I tried are booting so there's still work to do :P

  • Like 4

Share this post


Link to post
Share on other sites

here is the win7 64bit USB driver for: Arduino Uno R3 Rev3 ATMEGA328P Compatible Board

 

it worked for me, then i used xloader to add the 2 hex files

USB Driver.rar

Share this post


Link to post
Share on other sites

 

I believe Electronic Arts titles are more sensitive to timing. I have confirmed that Archon, Archon II and Axis Assassin are all working with 0.8b of the firmware which has very rudimentary timing implemented. However, no Databyte titles (which are extremely timing sensitive) I tried are booting so there's still work to do :P

 

This device is truly fantastic. I'm doing all I can to spread the news to the non-European Atari community who may not have heard of it. It's already the most capable standalone SIO storage peripheral out there and your work will only add icing to the cake.

 

I do have a brief question though. Whenever you release the next version, will you announce it here so people don't miss it? I don't expect everyone is likely to follow the project on GitHub and look for updates. :)

  • Like 6

Share this post


Link to post
Share on other sites

I believe Electronic Arts titles are more sensitive to timing. I have confirmed that Archon, Archon II and Axis Assassin are all working with 0.8b of the firmware which has very rudimentary timing implemented.

 

I just gave the Archons a whirl with 0.8b - nice work :)

Share this post


Link to post
Share on other sites

 

I just gave the Archons a whirl with 0.8b - nice work :)

 

Cool. Do you have any tipes for compiling under Windows? I know I've compiled RespeQt before but that was prior to a motherboard failure and wiped hard drive last winter. I think all the dev tools I had downloaded went kaput.

Share this post


Link to post
Share on other sites

 

Cool. Do you have any tipes for compiling under Windows? I know I've compiled RespeQt before but that was prior to a motherboard failure and wiped hard drive last winter. I think all the dev tools I had downloaded went kaput.

 

I was able to use this toolchain... http://fab.cba.mit.edu/classes/863.16/doc/projects/ftsmin/windows_avr.html

 

I had to change the Makefiles slightly to remove the "date" command since it asks for a date in the Windows command prompt and fouls up the process. Other than that, no changes needed.

 

Just ignore the part about drivers for your programmer. You can drop the hex files into the zip distribution and run sdrive.bat to program it same as the release.

Edited by R.Cade
  • Like 1

Share this post


Link to post
Share on other sites

Cool. Do you have any tipes for compiling under Windows? I know I've compiled RespeQt before but that was prior to a motherboard failure and wiped hard drive last winter. I think all the dev tools I had downloaded went kaput.

 

I installed the Ubuntu distro/shell right into Windows 10 - which I didn't even know was an option until I was talking with a colleague earlier today :P

 

Then I apt updated it and installed the avr-gcc toolchain 'sudo apt-get install binutils gcc-avr avr-libc uisp avrdude flex byacc bison'

 

Then compiled it, voila! I'm surprised at how amazingly well that Ubuntu app install worked... So compiled in linux under Windows - yeah! :D

  • Like 1

Share this post


Link to post
Share on other sites

 

I installed the Ubuntu distro/shell right into Windows 10 - which I didn't even know was an option until I was talking with a colleague earlier today :P

 

Then I apt updated it and installed the avr-gcc toolchain 'sudo apt-get install binutils gcc-avr avr-libc uisp avrdude flex byacc bison'

 

Then compiled it, voila! I'm surprised at how amazingly well that Ubuntu app install worked... So compiled in linux under Windows - yeah! :D

 

Linux Subsystem for Windows, installed.

Ubuntu, installed (yay, I've missed my bash shell :D )

SDrive-MAX repository, cloned.

 

But my git-fu is a couple years out of practice - how do I specify which branch to pull from when I clone the repository? I'm concerned I've gotten the Master branch. I hate to go through all this trouble just to recompile the 0.7 branch.

 

EDITED TO ADD: Okay figured that part out, but I don't see any compilation instructions. Is it the typical 'make' followed by 'make install'? Surely not, since we're cross-compiling intoa .hex file to flash to the SDrive-MAX. Apologies for being dense, but help? :)

Edited by DrVenkman

Share this post


Link to post
Share on other sites

I just gave the Archons a whirl with 0.8b - nice work :)

 

The timing code so far was all done by Klaus. I am currently working on trying to make it as accurate as possible. Here is a calculation spreadsheet I'm working on to test the algorithm:

 

https://docs.google.com/spreadsheets/d/1CgvwcGul4irS73DAb6qeYFlxed1oJre9J3-trHsCveA/edit?usp=sharing

  • Like 3

Share this post


Link to post
Share on other sites

But my git-fu is a couple years out of practice - how do I specify which branch to pull from when I clone the repository? I'm concerned I've gotten the Master branch. I hate to go through all this trouble just to recompile the 0.7 branch.

 

EDITED TO ADD: Okay figured that part out, but I don't see any compilation instructions. Is it the typical 'make' followed by 'make install'? Surely not, since we're cross-compiling intoa .hex file to flash to the SDrive-MAX. Apologies for being dense, but help? :)

For the benefit of the rest, the command would be:

git checkout v08
You should be able to build it with a simple "make" command.

 

This will create (currently) three folders for each of the different supported touchscreen hardware types: atmega328-hx8347g, atmega328-ili9329, atmega328-ili9341. Inside each directory you will find an SDrive.hex file.

 

Then, you need to use avrdude to load the SDrive.hex file onto your Arduino just like you did with the released firmware you downloaded prior. The command will vary based on your setup but here is an example from the SDrive Max homepage:

 

avrdude -carduino -pm328p -P /dev/ttyACM0 -U flash:w:SDrive.hex
Edited by Farb
  • Like 3

Share this post


Link to post
Share on other sites

are you going to go as far as making an original (early) 810 mode that works with that 1 or 2 disks that only worked with the 810's or is that identical in timing to later 810. Is the differences in rom and later grass valley boards a consideration.. yeah I know it's a thing just can't remember the titles.... when I see the how far it's going... I wonder how far down the wabbit holes it goes...

what pill did I take?

 

I love this btw... thanks again...

Edited by _The Doctor__

Share this post


Link to post
Share on other sites

 

For the benefit of the rest, the command would be:

git checkout v08
You should be able to build it with a simple "make" command.

 

This will create (currently) three folders for each of the different supported touchscreen hardware types: atmega328-hx8347g, atmega328-ili9329, atmega328-ili9341. Inside each directory you will find an SDrive.hex file.

 

Then, you need to use avrdude to load the SDrive.hex file onto your Arduino just like you did with the released firmware you downloaded prior. The command will vary based on your setup but here is an example from the SDrive Max homepage:

 

avrdude -carduino -pm328p -P /dev/ttyACM0 -U flash:w:SDrive.hex

thought ili9340 was added by someone.... did it not meet the test?

Share this post


Link to post
Share on other sites

thought ili9340 was added by someone.... did it not meet the test?

The pull request was just created yesterday. It will take time for the repository maintainer (Klaus) to review it :-)

Share this post


Link to post
Share on other sites

are you going to go as far as making an original (early) 810 mode that works with that 1 or 2 disks that only worked with the 810's or is that identical in timing to later 810. Is the differences in rom and later grass valley boards a consideration.. yeah I know it's a thing just can't remember the titles.... when I see the how far it's going... I wonder how far down the wabbit holes it goes...

what pill did I take?

I'm certainly open to it if we can identify what I'm calling the "static drive values" in that spreadsheet for each of the different drive types. Oh, and I fully realize there may be more static drive values needed... the ones in the spreadsheet are the only ones I'm aware of at the moment.

 

UPDATE: Here are some titles that are known to only work on the 810 from our database:

 

http://a8preservation.com/#/software/dump/16

http://a8preservation.com/#/software/dump/1700

http://a8preservation.com/#/software/dump/2453

 

Speaking of next steps, I think the best way to confirm that the spreadsheet calculations are valid is to test with a real drive. Does anyone know of Atari software that lets you read a specific track/sector and gives you the timing from the time the request was sent to the time data was received? Ideally, it would allow this to be done for a series of track/sectors consecutively.

Edited by Farb

Share this post


Link to post
Share on other sites

Hello all, just a wonderment....

 

Where are the step by step walk through videos of using windows from start to finish to program and make these wonder toys

and the linux?

and the mac?

 

normally that sort of thing is posted in the blink of an eye these days by a few in the forums... but so far no one has..

Edited by _The Doctor__

Share this post


Link to post
Share on other sites

Dude, I had to BEG for a video just to see Sdrive MAX work, and yet it was out half a year already.....thankfylly Venkman made it.....even though he wondered why I wanted to see it in action LOL.

 

@Farb....is there "any" chance swiping through the image titles would be possible.... :D

 

Oh and....has someone tested SIO2SD.XEX ?

  • Like 1

Share this post


Link to post
Share on other sites

Hello all, just a wonderment....

 

Where are the step by step walk through videos of using windows from start to finish to program and make these wonder toys

and the linux?

and the mac?

 

normally that sort of thing is posted in the blink of an eye these days by a few in the forums... but so far no one has..

For Linux (and probably OS X too, though my Mac has been dead for 18+ months *sniff sniff* ) the commands remowilliams posted will download and install all the tools you need to build the code. Farb’s post shows how to compile and then write the code to the Arduino once it’s connected.

 

For Windows, the zip file BigBen posted a couple pages ago is the 0.7 firmware along with a simple Windows batch file to write the code to the Arduino.

Share this post


Link to post
Share on other sites

I haven't yet ordered my parts, time permitting, I've just got too much to do yet.

 

But, just to be 100% sure. You ONLY require the diode if you want to daisy-chain other SIO devices ?

Share this post


Link to post
Share on other sites

@Farb....is there "any" chance swiping through the image titles would be possible.... :D

 

I can't say for sure since I haven't been involved with the touchscreen code at all... only the ATX support. What I can say for sure is that we're dealing with an extremely resource limited device (Arduino) that we're already pushing to its limit with the current capabilities that are in place. So I wouldn't be too hopeful. Sadly, the thing that makes this device so inexpensive is also the thing that will limit how fancy it can become.

 

But, just to be 100% sure. You ONLY require the diode if you want to daisy-chain other SIO devices ?

 

Correct, I do not use a diode and the device works fine.

Edited by Farb
  • Like 4

Share this post


Link to post
Share on other sites

 

I can't say for sure since I haven't been involved with the touchscreen code at all... only the ATX support. What I can say for sure is that we're dealing with an extremely resource limited device (Arduino) that we're already pushing to its limit with the current capabilities that are in place. So I wouldn't be too hopeful. Sadly, the thing that makes this device so inexpensive is also the thing that will limit how fancy it can become.

 

 

Correct, I do not use a diode and the device works fine.

The Arduino Mega is really not that much more expensive and has a LOT more capability. Including a faster processor and 256K (Its a larger board, so it would require new 3D models for the cases.)

  • Like 4

Share this post


Link to post
Share on other sites

The Arduino Mega is really not that much more expensive and has a LOT more capability. Including a faster processor and 256K (Its a larger board, so it would require new 3D models for the cases.)

 

 

Yep, I'm aware of the Mega since I used it in my original SIO2Arduino project. I asked the project maintainer that exact question a few months ago. It seems like the current SDrive codebase has dependencies on the Atmega 328 chip used in the Uno so updating it for the Mega is not an easy task.

 

It's important to keep in mind that this project originates from the legacy SDrive codebase that was written for custom hardware that used the same or a similar microcontroller to the Atmega 328. It does not use any Arduino libraries so is not going to be easily portable between different Arduino hardware.

Edited by Farb
  • Like 1

Share this post


Link to post
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.

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...