Hacker News new | past | comments | ask | show | jobs | submit login
RaSCSI: A virtual SCSI device emulator that runs on a Raspberry Pi (github.com/akuker)
80 points by todsacerdoti on Feb 24, 2021 | hide | past | favorite | 56 comments



I bookmarked GIMONS page[1] on this a long while back, as he's the original developer (I note there's also a link to it on this github).

I too am surrounded by SCSI drives, as I'm currently trying to get a bunch of Amiga 500 sidecar SCSI controllers up and running, so GIMONs work was of some interest.

However, for the moment, I've got enough working SCSI-2 drives to be getting on with, plus you can't beat that lovely sound of whirring and clicks during the spin up :)

One day I know I'll have to swap them out for solid state, but for now I'll stick with what I've got.

---

[1] http://retropc.net/gimons/rascsi/index.html


Thanks for the link, I would have missed it on the Github page. Always so nice to see an old X68000 in action, such a great design.


The best part about projects like these is that they’re 95% useless in the real world but they give a person the chance to connect the dots through so many different layers of hardware and software. I feel like every programmer should be grounded at the hardware/software interface so they truly understand how their code will execute as they move up through higher layers of abstraction. This is a cool project!


It's useful for every retro collector.


Absolutely!


So all my old SCSI storage disk boxes and towers are hereby not only obsolete, but disrupted? Phew! :) The retro computing world is not only wide but can also be expansive.


Interesting, this is a lot cheaper than a SCSI2SD.

I wonder if it performs as well as the latest SCSI2SD model (I think 5.0) which brought many improvements?

I have an old HP-UX box I'd love to have on solid state but the high pricing is holding me back. This could be a good alternative perhaps.


"Interesting, this is a lot cheaper than a SCSI2SD."

SCSI2SD is stuck with a fairly expensive BOM (FPGA, 32 bit ARM SOC) and not enough volume for deep discounts.

Leveraging the Rpi's buyer power does make this a lot cheaper. The adapter board for this appears to be mostly just 4 bus transceivers (SN74LS641) and appropriate SCSI headers/connectors.


Oh yeah I didn't realise there was an FPGA there.

Still, it's a pretty weird niche. An SD card is not very reliable for computing use. If I spend this much I'd much rather have something a bit more reliable. Like a "SCSI2SATA" adapter which then connects to an SSD. It would have much better random write performance too I bet. But I haven't been able to find such a thing.


I'm literally surrounded by SCSI devices at the moment, and this project is a godsend - but it doesn't ship outside the US, alas. Pity.

Anyone else in Europe wanna pitch in and make a batch of these for use on the continent?


Maybe the SCSI2SD would be a better option then? This one ships from the UK: https://amigakit.amiga.store/product_info.php?products_id=13...

Edit: Cheaper, older model: http://amigakit.amiga.store/product_info.php?products_id=126...


I already have SCSI2SD in my toolbox - but what I really want is the ability to write custom SCSI code for some of these devices, which is what the RaSCSI would provide, in a pretty nice environment ..


Considering what's on those boards, I've always felt they were too expensive.


You're not paying for the raw components... given the incredibly niche audience for this product and the development effort involved it's really cheap (and it looks like they are even hand soldered).


Can confirm. Small-scale electronics projects (hundreds or thousands of sold boards) are really expensive compared to mass-manufactured stuff sold in the millions. Even if you just charge for the raw component prices, it will still be much more expensive than something that sells at a much higher volume.

Source: Personal experience from making and selling a few hundred units of self-made retrofit PCBs.


I'd happily pay less for an unpopulated board and do it my self, but I don't have the eyesight or steady hand for SMD soldering - a lot of these new 'retro' hardware releases are designed in such a way that a hobbyist has no hope building themselves, and nor can they afford the pre-builts. :(

--

Off-topic: Another couple of downvotes for simply expressing an opinion... HN's echo-chamber tendencies are in full-force these days (again... my opinion).


From my experience (see sister comment), I don't think the board will be much cheaper that way. Even at this low volume they will probably not hand-solder anything but rather rely on a company offering pick&place services, and that will not add much to the costs. If you want to try it yourself and prove that it can be done much more cheaply, you can maybe try building one yourself: https://github.com/fhgwright/SCSI2SD/tree/master/hardware


Actually I might! I've starred the repo for later reference.


According to the linked Tindie page ships outside the US and explicitly says to contact the seller to add countries that are missing?


Yeah, Tindie just doesn't ship to my country, alas. I'll try to find a US address to use, because I'm not going to wait until Tindie catches up with Europe.



Tindie is a marketplace, they don't ship anything (and using them from Europe is not a problem). The specific seller of the product discussed here does ship to Europe too, contrary to your claim, and explicitly asks you to contact them if your country is not set up yet (because they do need to research shipping cost and set it up). What exactly is the problem with that?


I don't see where the seller states they'll ship to me here in Europe, but thanks for pointing out to me that I can contact them - I will do so, and see if it works out.


The very top of the store page it says to contact if your country is not listed. The shipping page lists 50 or so countries - It seems hard to miss!


I do ship outside the US. Tindie doesn't have an option to allow all countries, so I need to add them as requested. Hit me up if your country isn't on the list.


Please put Austria on the list! :)


https://gimons.booth.pm/ ships them worldwide from Japan.


Wow, this seems to be even faster than SCSI2SD, at least according to their benchmarks:

https://github.com/akuker/RASCSI/wiki/Benchmarks


They did compare to SCSI2SD version 5. Version 6 is supposedly much faster: "This board [V6] offers significantly better performance than the V5.x boards by adding support for synchronous SCSI transfer"


Related: Linux SCSI target for many different media (is not iSCSI only despite the name): http://www.linux-iscsi.org/wiki/Main_Page


This is cool, but I am not really sure what they are doing for this 68k Mac project on top of what the original coder has already done when he created this for the X68000. If you look at the code, they translated his comments from Japanese to English and there are a lot of do-nothing/cleanup commits.

Turn on translation and hit the original author's site: http://retropc.net/gimons/rascsi/index.html


Just that they are testing it on real Macs probably has some value for other vintage Mac folks. Some of the english docs seem to have more than just Google translate applied, like: https://github.com/akuker/RASCSI/wiki/Setup-Instructions


Its not really specific to 68k Macs. This project was forked to add the following: - The obvious translation of the code to English - Github repo to allow for easier community contributions (pull requests) - Create a community-driven Wiki for the documentation

We're definitely not trying "compete" with the original version or anything.

Side note, the hardware is compatible with both versions of the software. The main difference is that the "68k Mac" version uses a DB-25 connector, which is more typical for old Macs.


~~~What does this give me over a €30 SCSI PCIe controller?~~~

Meh, forget that, I was thinking "SCSI" but had the prices for Firewire PCIe controllers in mind. Seems, a SCSI controller costs >€250 these days.

P.S. How does one 'strikethrough' here?


for starters this is not a controller, but the other end


Ah, okay, thanks.


FWIW I use sd2scsi with great success on my original Mac plus and a gifted SE.


It surprises me how this kind of device could be emulated over Linux (I know it has the baremetal option), I always see RPi too complex to work like a MCU.


I see a 50 pin connector, so I would guess it's limited to SCSI-2, 5MBps/40Mbps. That seems to be right at the top of the range that you can bitbang GPIO reliably on an Rpi3 (50Mhz).

You're right in that the old rule was that bitbanging was limited to low bandwidth stuff in the past. The advent of cheap, high clock speed and small devices like the Rpi, ESP32, STM32Fx, etc, changed the game a lot. You can now bitbang VGA reliably on really cheap MCUs, for example.


??? complex? The interaction with a vanilla Linux kernel doesn't lend itself to real time applications, but if the SCSI protocol uses hand-shake signals like GPIB, then the timing isn't all that critical.

Sure, a Beagle Bone Black/Blue/Green with its PRUs seems like a better fit, but the RPi is undeniably much more popular and a little cheaper.


good, but what's the throughput and latency?


They have a page for benchmarks. For both read and write, RaSCSI is faster than original hard disk Apple Macintosh (intended user) shipped with.


There are benchmark results using a X68000. Random i/o is comparatively good (as one would expect), sequential large reads is just about 1MB/s. Still much faster than floppy disks and not too far of the theoretical maximum (5MB/s for SCSI-1).


Macs had the most odd-ball SCSI implementation. Steve Jobs even refused to use the correct connectors and used DB-25s.


Because this is not the site for the project. This is the site for a Mac 68k version of the project, where they keep taking the author's code and translating the comments to English and really not much else so far. When the author releases new versions they merge the new code and translate the new comments to English. It's weird to me because SCSI isn't really OS specific, so other than writing some client app talk over SCSI and ask for images to be mounted, I can't make sense of why they are making a "Mac 68k" version.

Here is the original site (translation required): http://retropc.net/gimons/rascsi/index.html


You're correct that we haven't added any MAJOR features yet. A lot of the work is behind the scenes.

The big feature that we're working on is an Ethernet SCSI interface. This will be compatible with Macintoshes and Atari ST.


Well, but the original ST's SCSI interface was special. They even called it ASCI. Which shouldn't surprise as SCSI was standardized only after the ST (and Mac) launched.


Was there every a "correct" connector? I have a stack of old SCSI gear and there are literally 5 different connectors in use. The closest you could get at the time to a standard would be the centronics plug, but I don't think that would even fit on the back of a Mac Plus, at least not without adding expense in the form of a daughterboard or extension cable.

Steve Jobs had left Apple by the time they added SCSI anyway.


"This project is aimed at users of vintage Macintosh computers from the 1980's and 1990's."

So, likely because the creator of this RaSCSI fork is a vintage Mac afficiando. https://github.com/akuker/RASCSI


Funny, I ordered it a while ago and yesterday it arrived to my post office. I'm gonna pick mine up today!


Does this use a Linux kernel module on the RPi, or is the emulation in userspace?


Emulation is in userspace.


Whoa, when did Github's wiki pages get so aesthetically pleasing?


serious question: if this lets you connect physical devices, how is it 'virtual' and an 'emulator'? seems like an HBA to me...


This lets you connect a raspberry pi as a SCSI device. The Pi does emulation of the SCSI interface by bit-banging the GPIO, and exposes virtual drives that are mounted images from the Linux FS on the pi.


Project page says (or at least the translation to English does) "target mode only".




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: