Maybe we should add a setting "NoSeekDelaySoBenchmarksGoVroom=true" 
Wow.
So, just to bring the average reader of this thread "up to speed" (he he)...
As per what is written here, those super fast transfer rates reported by @Androda require a "SCSI card that supports Ultra SCSI (Fast20)." That means we can't just flash our BSv2 units with the latest firmware, then plunk it into something like a largely stock PowerMac 9600 and expect any faster performance than older BSv2 firmware. An UltraSCSI card is required.
BlueSCSI cant go faster than the bus it's on - but since you mentioned a 9600 which has a 10MB/sec bus you actually will see a ~5-10% improvement just with the overclock. If you checked the release notes too we bumped the base clock up to 200MHz as Pi Foundation upped them a while ago. So you will get a bump next time you update, but to get the biggest bump, You'll need an Ultra card. Coincidentally my 9600 has a U160 card in it.
For all you CD Audio fans out there, get ready: #BlueSCSI V2 is going to support audio output soon, on hardware versions 2023.09a and later!
Over the Christmas break I took a look at the two audio output options available to the framework (I2S and S/PDIF). I2S unfortunately doesn’t pan out for V2 because we only have two spare GPIO, and I2S needs three. S/PDIF on the other hand requires only a single signal line.
With a cheap S/PDIF converter box in hand, I have successfully updated the framework to make it functional on Pico and Pico 2. Currently only one clock speed is supported for S/PDIF but we might be able to make it work in other modes.
The primary changes are:
* Not using the SPI peripheral (it’s not available on our two spare pins), switched to PIO
* Getting the clock divider right
Next Steps:
* Software release
* Hardware design, to make something which plugs into the QWIIC port for ease of use
BlueSCSI v2026.02.08-RC1 - Superb Owl
If you run into any issues please open a Discussion.
This is a release candidate for all versions of BlueSCSI v2 and Ultra/Ultra Wide.
There will be an Release Candidate 2 as well merging in the recent Wi-Fi optimizations from @jcs wifi-speed and @RobSmithDev #317.
Updating
BlueSCSI v2
- Use BlueSCSI v2 Universal for the Pico/PicoW based BlueSCSI.
- Audio Builds are available and due to memory constraints are provided as a separate uf2s.
BlueSCSI Ultra/Ultra Wide
- Use the uf2 corisponding to your device.
SD Card
- Use .bin file.
Future
We have a much nicer update system in the works with one uf2 for all - stay tuned!
New Features
- CD Audio Output - BlueSCSI can now output CD audio over S/PDIF or I2S depending on model. Supported on Pico, Pico 2, and Ultra/Ultra Wide. DAC required. (6b10879, b63afa7 - @androda)
- BlueSCSI Toolbox Performance Boost - File transfers are now up to 11.5x faster thanks to larger transfer buffers. Fully backwards compatible with existing BlueSCSI Toolbox clients. (41ecbe9 - @erichelgeson)
- BlueSCSI Toolbox Metadata API - New API for retrieving device metadata through the Toolbox interface. (279d991 - @erichelgeson)
- Improved Fragmented Image Performance - Enabled FastSeek for fragmented disk images, improving read performance on fragmented SD cards. (01ebebd - Ian Scott @polpo)
- Arbitrary Sector Size Imaging - Initiator mode now supports imaging drives with non-standard sector sizes (e.g., 520-byte sectors used by some enterprise drives). (a342253 - @erichelgeson)
- Configurable SCSI Timing Delays - New INI settings allow fine-tuning SCSI bus timing for compatibility with picky devices like EMU EMAX, Akai samplers, and SGI workstations. (700b28f - @erichelgeson)
- Configurable Initiator Start Sector - Initiator mode can now begin imaging from a specified starting sector on a per-device basis. (1751310 - @androda)
- USB Device Name - BlueSCSI now correctly identifies itself as "BlueSCSI" when connected via USB, using standard Pico SDK product IDs. (b104c1e - @erichelgeson)
- Multi-bin CUE Handling - Directories with a mix of .bin and .cue files now correctly associate .bin files with their .cue sheets automatically. (ea61cbf - @erichelgeson)
BlueSCSI Ultra / Ultra Wide
More information about BlueSCSI Ultra/Ultra Wide can be found at https://bluescsi.com/ultra
- Initial 16-bit Wide SCSI support - Hardware-accelerated 16-bit wide SCSI bus with synchronous transfer speeds up to 20MHz, wide bus negotiation, and dual-core optimized parity generation. (7fbcc34 - @PetteriAimonen, @morio)
- Ultra and Ultra Wide board support - Full support for the new BlueSCSI Ultra (RP2350-based) and Ultra Wide (16-bit SCSI) hardware platforms. (2ed8fdc - @androda)
- Wide SCSI (16-bit) data transfers - Ultra Wide supports full 16-bit wide SCSI data transfers with hardware-accelerated DMA. (2ed8fdc, ee85a89 - @androda)
- Wide initiator mode - Initiator mode works on Ultra Wide with automatic bus width negotiation. Can image both 8-bit and 16-bit SCSI devices. (ec19528, ee85a89 - @androda, @PetteriAimonen , @morio)
- Fixed DMA state crash on Ultra Wide - Resolved a race condition in the 16-bit DMA accelerator that caused crashes after 6-byte SCSI commands. (b75b27e - @PetteriAimonen)
- Fixed initiator mode on Ultra - Corrected a typo that prevented initiator mode from functioning on Ultra boards. (d691d7c - @erichelgeson)
- Bus width reset on SCSI bus reset - Ultra Wide now correctly resets to 8-bit bus width when a SCSI bus reset occurs, then re-negotiates wide transfers. (b0268dc - @erichelgeson)
- SCA drive bay support - Ultra Wide boards can now be installed in SCA (80-pin) drive bays with proper signal handling and LED control. (14e6acc, d8f8d5c - @androda)
- Hardware initiator/USB mode switch - Ultra and Ultra Wide boards support a hardware switch to toggle between initiator and USB MSC modes without changing INI settings. (ec19528 - @androda)
- SCA detection limited to Wide boards - SCA drive bay detection is now correctly restricted to Ultra Wide hardware only. (196c87b - @erichelgeson)
- Improved sync negotiation logging - Synchronous transfer negotiation is only logged when speed increases, reducing log noise. (5f321c6 - @erichelgeson)
- Fixed GPIO assignments - Corrected GPIO pin number assignments for Ultra hardware. (c285331 - @androda)
- Dynamic DMA channel allocation - I2S audio and Wide SCSI DMA channels are now dynamically allocated to avoid conflicts. (22b15a3, 0a546f8 - @androda)
BlueSCSI v2
- S/PDIF audio output support - New build targets (BlueSCSI_Pico_Audio_SPDIF and BlueSCSI_Pico_2_Audio_SPDIF) enable S/PDIF digital audio output on any desktop 50-pin BlueSCSI v2 board. Works on both Pico (RP2040) and Pico 2 (RP2350) boards. (6b10879, b63afa7 - @androda)
- S/PDIF setup failure handling - Graceful recovery when S/PDIF hardware initialization fails. (49dc901 - @androda)
- Network and audio coexistence - Reduced network packet queue size to accommodate S/PDIF memory requirements, allowing both networking and audio to work simultaneously. (5117441 - @erichelgeson)
- Removed Arduino dependencies - Migrated from Arduino framework to native TinyUSB and Pico SDK for USB, timing, and peripheral access. (7dc5476, fc518b8, 59de2dd - @erichelgeson)
- Voltage regulation fix - Properly set voltage regulator for clock speeds above 200MHz. (c75ba7d - @erichelgeson)
Bug Fixes
- Fixed SCSI timing accuracy - The 100ns timing delay now correctly scales across all supported clock speeds (125-252MHz) instead of producing inconsistent 44-88ns delays. (23b69a7 - @erichelgeson)
- Fixed SCSI timings out of spec - Corrected bus timing values that were outside the SCSI specification. (bb9a504 - @erichelgeson)
- Fixed multi-bin CUE track boundaries - Corrected track boundary calculation for multi-bin CUE files where each track is in a separate .bin file with stored pregap. (e85043e - @erichelgeson)
- Fixed integer underflow in cue parsing - Allows Mac Decent II to parse correctly (fda07d95 - @erichelgeson)
- Fixed initiator mode on Pico W / DaynaPORT builds - Resolved a conflict between the WiFi driver and SCSI initiator mode that caused initiator failures on Pico W boards. (63d643b - @erichelgeson)
- Fixed X68000 SASI compatibility - Corrected command descriptor block length for X68000 SASI drives. (9903f2c - @erichelgeson)
- Fixed BSY signal handling - BlueSCSI no longer incorrectly asserts BSY when reading the REQ line. (cafa219 - @androda)
- Fixed SEL output pin handling - Improved SCSI selection phase signal output. (9ac34e9 - @androda)
- Fixed freeze on startup without SD card - BlueSCSI no longer hangs on boot when no SD card is inserted. (4792e18 - @androda)
- Unit Tests - Helps us developers catch issues before releases. 26 test suites with 2287 assertions. (@erichelgeson)
New INI Settings
[SCSI] Section
Setting Default Description PhaseChangeDelay 100 (SCSI-1) / 0 (SCSI-2) Delay in microseconds after SCSI phase transitions. EMU EMAX needs 100. SGI O2 may need 15. (700b28f - @erichelgeson) DataPhaseDelay 400 (SCSI-1) / 0 (SCSI-2) Delay in microseconds before entering data phases. Required by Akai S1000/S3000 samplers. (700b28f - @erichelgeson) BusFreeDelay 2 (SCSI-1) / 0 (SCSI-2) Delay in microseconds when entering bus free state. (700b28f - @erichelgeson) SCAModelLEDEnable false Enable LED control for SCA drive bay installations (Ultra Wide SCA only). (d8f8d5c - @androda) [SCSI0] - [SCSI7] Sections