Hey folks, apologies for lack of response here. Real Life(tm) got in the way.
My family had two pets die within a week (one suddenly, one which we knew was coming), and then my day job monopolized all of my attention. Fun times.
Since the project is basically open firmware for closed hardware (and the hardware is not available anywhere else), I see this as a commercial, closed-source project.
You can choose to see it however you like, but the core firmware is open-source, and GPLv3 licensed. Only the FPGA, which is what is handling the timing-sensitive bits of interacting with the ATA bus, is what's closed source. The original prototypes for ZuluIDE did not make use of an FPGA, as we had hoped we'd be able to implement support for it solely using the RP2040's PIO blocks. After quite a bit of time and money had been spent, we concluded that it simply wasn't possible to achieve what we wanted to with just an RP2040, at which point we didn't have much choice but to go back to the proverbial drawing board, and integrate an FPGA, which further drew out the development timeline, as well as added non-trivial additional costs.
Also, from my completely uninformed outsider perspective, the whole "which SCSI emulator is better" discussions kept me away from all SCSI emulation solutions until very recently. Even now, I am not happy with existing solutions.
Is this something you'd be willing to expand upon, with an explanation? What are the current limitations of existing solutions, in your view? If you'd rather not share the publicly, for whatever reason, feel free to DM me.
Turning retro computing into a commercial competition for money instead of working together just hurts everyone.
There's a built-in (and incorrect) assumption here that retro-computing is the only market for such products. This is an understandable misunderstanding, but it's important to point out that only about one third of our sales are to retrocomputing enthusiasts. This has not always been the case, but it
has been the case for the last six years.
It's also worth pointing out that the revenue from sales of SCSI2SD boards was re-invested directly in to ZulusCSI development, both for the original GD32-based (STM32 clone) ZuluSCSI V1.x, as well as the successor ZuluSCSI RP2040. Nobody is getting rich here. My business has fixed monthly expenses (office, internet connectivity, utilities, payroll, taxes, etc) in addition to the (significant) non-recurring engineering expenses that we incur when we design new hardware and software.
I do have a few technical questions though:
- Why not emulate hard drives? Is there a technical reason or is it just manpower/time?
We've been actively working on this, and I'm pleased to report that it's now working in a controlled environment. That said, it doesn't yet work universally with all systems, which is what we're in the process of resolving.
- Is it possible to set a specific CD-ROM speed (possibly with even spin-up delays)?
At the moment, the only mechanism that's available for limiting throughput is setting the Programmed I/O mode in the ini file. As for spin-up delays, not at the moment, but if you need such a thing, it would not be difficult to add support for. Right now, we're focused on improving
core functionality. Just yesterday, we
released firmware to address a bug fix to data transfers, which only manifested when UDMA0 (AKA ATA/16) mode was negotiated.
- Is it possible to set specific manufacturer/device strings?
Not yet, but that can easily be added. Anyone who is capable of building the firmware, which can be done within VS Code (via the PlatformIO plug in, under Linux, macOS, or Windows), or standalone at a CLI with
platformio, can
change the vendor and device strings to whatever they may need.
- What about DVD support? Is that on the roadmap? Possible at all?
This isn't implemented yet, but there's nothing to prevent it from happening, either. There are some ATAPI-specific commands that would need to be implemented. That said, we already support "DVD sized" "CD" images (of arbitrary size) so you can already take a non-video (data) DVD ISO of an OS, for instance, and use it to boot/install from, which is useful if you're using a machine that's old enough to not have USB, or is not capable of booting from USB, for instance. There's plenty of hardware from the late 486 and early Pentium era that fits this bill, including a non-trivial amount of industrial/embedded equipment, much of which cannot be augmented with something as smiple as an add-in PCI/ISA card.