• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Arduino SCSI device - Work in Progress

saybur

Well-known member
Yeah, just in the documentation so people know not to connect external terminators. Apart from asserting /RST anytime another target tries to talk I doubt there is a way to force having just one device.

If the transfer speeds are low you might be able to get away with some pretty nonstandard termination that wouldn't exceed the power budget. Maybe try something super simple, like 1K pull-ups to 3.3V? There are transmission line effects to consider, but that's black magic I have no experience with.

AFAIK there were some Macs that had automatic termination supplied by the mainboard as well, which might cause grief in some setups.

 

erichelgeson

Well-known member
Placed the order of 5 for the latest rev prototypes (with passive term) this morning. Should be a week and a half till they get here and I can put them through their paces.

 

davidg5678

Well-known member
I love this idea! I wonder if these are small enough to fit powerbooks too? Either way, I think cheaper SCSI emulators for old Macs are a good thing. It always hurts me a little to buy a product that costs more than the computer itself did, and I think as long as performance is on part with spinning metal, it's okay. Count me in for PCB interest.

 

bibilit

Well-known member
Great news if this can be a cheap substitute for any scsi drive in early models, i am in for sure.

 
Last edited by a moderator:

techknight

Well-known member
[SIZE=11pt]Hi all,[/SIZE]

[SIZE=11pt]I’ve been working on building the ArdSCSino-stm32 [/SIZE][SIZE=11pt]https://github.com/ztto/ArdSCSino-stm32[/SIZE][SIZE=11pt] (original) [/SIZE][SIZE=11pt]https://github.com/erichelgeson/ArdSCSino-stm32[/SIZE][SIZE=11pt] (my fork) to see if it’s a suitable replacement for SCSI Hard Drives in our vintage Macs. I’ve mentioned it in passing a few times on the forums but now I’ve made some progress I wanted to share! [/SIZE]

[SIZE=11pt]There is still a lot left to do, but I'm to a point where I'm looking for feedback![/SIZE]

[SIZE=11pt]This is my first hardware project - I find it amazing that you can create a PCB in KiCad and have it printed and shipped in a week or two. I’ve learned a lot with help from the RaSCSI discord peeps and owe a lot of my progress to them. Thanks![/SIZE]

[SIZE=11pt]My goal for this device:[/SIZE]

[SIZE=11pt]A single purpose Macintosh focused SCSI <-> SD device that is inexpensive and easy to configure.[/SIZE]

[SIZE=11pt]The hardware build is quite simple - the board from zotto has just a 50 pin header and the arduino. Though it’s missing features such as SCSI termination. [/SIZE]

[SIZE=11pt]The software on the other hand is not as easy to compile. It uses an older “core” that requires quite a few steps to install all the necessary components - it took me quite a while to find the right combination of steps from random github tickets and instructions to finally get it to compile. Flashing is a bit tricky as well as the procedure is documented a few different ways online - though I’ve finally got it down after much trial and error (and one burned out arduino!)[/SIZE]

[SIZE=11pt]With the software compiling I’ve converted all the comments from Japanese (only via Google translate so if anyone who speaks Japanese natively could let me know if it’s right or not :). Then started adding in Mac specific configurations such as showing as a Quantum Fireball so it appears genuine. I’ve also been adding in config file support for a few of the optional knobs that can be set.[/SIZE]

[SIZE=11pt]One of the biggest features missing on the hardware side is SCSI Termination. I’ve added that into the PCB and will be ordering a min order this weekend to validate it all works.[/SIZE]

[SIZE=11pt]After SCSI termination is validated working I’ll be removing the arduino and just placing the stm32 chip on the board itself.[/SIZE]

[SIZE=11pt]Performance is good! It sits between a LC and MacII on Norton 3.5 disk perf. I said good - not great. It will be a good replacement for anything 030 and under - and adequate drive in an 040 - but would not use it for a boot drive in a PPC.[/SIZE]

[SIZE=11pt]The goal is to be inexpensive - you could do this all yourself as I have but shipping is the real killer here - it raises the price over 4x at 5 boards.[/SIZE]

[SIZE=11pt]What I’d like to know is:[/SIZE]

  • [SIZE=11pt]Is there interest in the community for a board like this?[/SIZE]
  • [SIZE=11pt]It’s not really easily end user flashable/upgradeable, though that simplicity is really a feature.[/SIZE]
  • [SIZE=11pt]Would you use it internally or want a pluggable external drive?[/SIZE]
  • [SIZE=11pt]Since the drive is small (72mm x 44mm) I’ll likely be 3d printing a bracket for mounting internally.[/SIZE]
  • [SIZE=11pt]I need a better name than ArdSCSino - it doesn't really roll off the tongue - ideas welcome![/SIZE]



[SIZE=11pt]Thanks![/SIZE]

[SIZE=11pt]Here's a few photos of the design so far and it working on my LCIII.[/SIZE]

/monthly_2020_10/large.1574368630_ScreenShot2020-10-17at10_38_12AM.png.ed7c18b80d2ac5e82ee92672e1e7e10a.png/monthly_2020_10/large.1520605602_ScreenShot2020-10-17at10_38_21AM.png.04ab7c005a475c4feb7d09ba806a2b4d.png/monthly_2020_10/large.PXL_20201015_135730524.jpg.d06156553c599142cc0cb8416d474930.jpg/monthly_2020_10/large.PXL_20201009_193754845.jpg.7fa629442754599c33b1272f757470d7.jpg


View attachment 38120
Neat project! 

I have to ask, who wrote the code? I was going over it and I noticed the writebyte routine has a TON of IF statements. There has to be a better way of handling that because I could see a race condition occurring here. 

 

erichelgeson

Well-known member
I have to ask, who wrote the code? I was going over it and I noticed the writebyte routine has a TON of IF statements. There has to be a better way of handling that because I could see a race condition occurring here.  
ztto - the commit history/fork/etc is all there in github. There is only 78 ifs in the entire code, most are macros - are you looking at ArdSCSinoV2.ino ?

I do plan to review more of those functions to see if there's opportunity to optimize - haven't done c++ in quite a while, but open to any suggestions!

 
Last edited by a moderator:

Daniël

Well-known member
Neat project! 

I have to ask, who wrote the code? I was going over it and I noticed the writebyte routine has a TON of IF statements. There has to be a better way of handling that because I could see a race condition occurring here. 
Just a heads up, could you remove the full quote from your post? Having the entire post with all of the pictures quoted just to add to a two sentence reply is just a massive pain to scroll past.

 
Last edited by a moderator:

techknight

Well-known member
ztto - the commit history/fork/etc is all there in github. There is only 78 ifs in the entire code, most are macros - are you looking at ArdSCSinoV2.ino ?

I do plan to review more of those functions to see if there's opportunity to optimize - haven't done c++ in quite a while, but open to any suggestions!
I was looking at the translated one, at least the one that shows translated. 

 

erichelgeson

Well-known member
the one that shows translated
That is for his V1 - which I accidentally translated first :D I have a lot of cleanup to do in the repo, but the V2 is the software I'm running on my prototypes. Will cleanup and push what I have later this week before the new prototypes arrive (assembly finished btw, shipping soon!)

 

techknight

Well-known member
Ahhh ok. yea then I need to look at the other one then. 

I like where its going :) the STM32 is a neat IC and I have thought about using it in other projects. 

And no, I dont know C++ at all. I only familiarized myself with C last year. C/C++ are not exactly the same. there are some similarities though.

Edit: looking at V2, and yea its very different. Much more streamlined. 

 
Last edited by a moderator:

Huxley

Well-known member
I'm late to this party, but can't move on before adding myself to the list of people eagerly lining up to buy a few of these when they're ready! I've successfully deployed close to half-a-dozen SCSI2SD's now (both internal and external, installed in various Macs and two Amigas), but they're pretty wonky to configure and I'm always worried that I'm one small tweak away from ruining a working configuration. Given that I now own two NeXT machines which will need solid state storage sooner or later, not to mention an SGI, an HP/UX workstation, various other non-upgraded Macs, etc., I'm very excited to learn about this project :D  

Huxley

 

tt

Well-known member
I'm also up for getting these Scuzzweeno™ boards. I have a bluepill that I tried out for something, so it's good to see such an inexpensive and common module being used for SCSI. Like @Huxley said, the SCSI2SD is kind of worrisome to use and having an alternative would be great. It would be nice if we could re-flash it in case of a firmware update. It seems most projects like this end up having many updates.

 

Elfen

Well-known member
Excellent project and great work you did there! I will need to dive in as many of my SCSI Drives are whining when turned on, so they are dying a slow bearing death. :/

 

nyankat

Member
Wow, this is so cool to see this being worked on! I have to say this is really timely for me, as I just got the original ztto version working on my SE/30 and my Classic II yesterday! I wanted an external version with SCSI passthrough, so I wired it by hand inside a project box instead of buying one of the PCBs. I'm looking forward to buying some finished PCBs for internal installations!

(I really should have taken some pictures of the inside but I was eager to get it working!)

62481117709__F570BF5A-5A57-4E88-93E6-A67194A1DB18.JPG

IMG_0630.JPG

IMG_0631.JPG

 

nyankat

Member
(System 7 Pro!  Nice.)
I didn't even mean to install that, it just happened to be the first copy of System 7.1.1 that I downloaded (and I needed 7.1.1 because it was the lowest OS that Stuffit 5.5 would run under). Now that I have it though I might set up the groupware on my LocalTalk network just for fun.

 
Top