BlueSCSI / BlueSCSI-v2

Open source, open hardware, SCSI emulator using the Pi Pico PR2040
https://bluescsi.com
GNU General Public License v3.0
225 stars 23 forks source link

How can I test the assembled device? #26

Open Piligrim-77 opened 1 year ago

Piligrim-77 commented 1 year ago

Hi, I have assembled 4 pieces of BlueSCSI V2 devices and only two of them work without problems. On the other two devices, there is a problem when trying to initialize the hard drive. When trying to initialize BlueSCSI on the Pico, the LED lights up for a few seconds, after which it goes out and a message appears on the screen that SCSI disks have not been found. I have an assumption that the problem is in one of the chips on the board and some signal does not pass through to Pico Is there any program for testing chips on the board, or maybe there is a way to determine which chip is the problem from the logs?


Log: "[10ms] Platform: BlueSCSI Pico [10ms] FW Version: 2023.04.10-release Apr 10 2023 19:08:58 Flash chip size: 2048 kB

=== SD Card Info === SD card detected, FAT32 volume size: 3832 MB SD Name: SD16G, MID: 0xFE, OID: 0x34 0x32

=== Global Config === Reading configuration from bluescsi.ini Active configuration (using system preset "Generic"): -- SelectionDelay: 0 -- ReinsertCDOnInquiry is enabled

=== Finding images in / === == Opening /HD00_512-1GB.hda for ID: 0 LUN: 0 ---- Image ready

=== ROM Drive === Platform supports ROM drive up to 1692 kB ---- ROM drive image not detected

=== Configured SCSI Devices ===

Initialization complete! SCSI ID 0 negotiated synchronous mode 5 MB/s (period 4x50 ns, offset 8 bytes) scsi_accel_rp2040_stopWrite() timeout, FIFO levels 0 2 PC 17"


Log with debugging enabled: "[10ms] Platform: BlueSCSI Pico [10ms] FW Version: 2023.04.10-release Apr 10 2023 19:08:58 Flash chip size: 2048 kB

=== SD Card Info === SD card detected, FAT32 volume size: 3832 MB SD Name: SD16G, MID: 0xFE, OID: 0x34 0x32 [22ms]
[22ms] === Global Config === [23ms] Reading configuration from bluescsi.ini [24ms] Active configuration (using system preset "Generic"): [25ms] DBG -- SelectionDelay: 255 [25ms] DBG -- EnableUnitAttention is off [26ms] DBG -- EnableSCSI2 is on [27ms] DBG -- EnableSelLatch is off [27ms] DBG -- MapLunsToIDs is off [28ms] -- Debug is enabled [29ms] DBG -- Parity is enabled [29ms] -- ReinsertCDOnInquiry is enabled [108ms]
[108ms] === Finding images in / === [108ms] == Opening /HD00_512-1GB.hda for ID: 0 LUN: 0 [386ms] DBG ---- Read prefetch enabled: 8192 bytes [387ms] ---- Image ready [392ms] [392ms] === ROM Drive === [393ms] Platform supports ROM drive up to 1692 kB [393ms] ---- ROM drive image not detected [393ms]
[394ms] === Configured SCSI Devices === [394ms] * ID: 0, BlockSize: 512, Type: Fixed, Quirks: None, Size: 1048576kB [496ms]
[496ms] Initialization complete! [16279ms] DBG BUS RESET [23529ms] DBG ---- SELECTION: 0 [23530ms] DBG ---- MESSAGE_OUT [23531ms] DBG ------ OUT: 0xC0 [23532ms] DBG ------ OUT: 0x01 [23532ms] DBG ------ OUT: 0x03 [23533ms] DBG ------ OUT: 0x01 [23533ms] DBG ------ OUT: 0x32 [23534ms] DBG ------ OUT: 0x08 [23534ms] SCSI ID 0 negotiated synchronous mode 5 MB/s (period 4x50 ns, offset 8 bytes) [23535ms] DBG ---- MESSAGE_IN [23535ms] DBG ------ IN: 0x01 0x03 0x01 0x32 0x08 [23538ms] DBG ---- COMMAND: Inquiry [23538ms] DBG ------ OUT: 0x12 0x00 0x00 0x00 0x02 0x00 [23539ms] DBG ---- DATA_IN, syncOffset 8 syncPeriod 50 [28540ms] scsi_accel_rp2040_stopWrite() timeout, FIFO levels 0 2 PC 17 [28540ms] DBG ---- Total IN: 2 OUT: 0 CHECKSUM: 0 [28541ms] DBG ---- STATUS: 0 GOOD"


androda commented 1 year ago

Hello,

Are these kits purchased from a seller? Or is this DIY with bare board and soldering each component? What is the target test system?

Piligrim-77 commented 1 year ago

I ordered PCB boards without components in JLCPCB and soldered all the parts myself. The parts were bought new in an offline store. I don't quite understand about the "target test system", could you tell me what it is? I would like to somehow test the passage of signals through the buffer chips on the BlueSCSI board. Maybe there is some kind of test firmware for Raspberry Pico that sets the state of all outputs to a high or low state. I have an oscilloscope and a logic analyzer.

androda commented 1 year ago

"target test system" means what you're trying to use BlueSCSI with. Something like a specific Macintosh, SCSI card, or other hardware.

There's not a "test firmware" currently, but that probably wouldn't be too hard to implement.

erichelgeson commented 1 year ago

Could use an approach like PiSCSI does with a loopback tester https://github.com/PiSCSI/piscsi/wiki/Troubleshooting#user-content-Loopback_Testing

Piligrim-77 commented 1 year ago

"target test system" means what you're trying to use BlueSCSI with. Something like a specific Macintosh, SCSI card, or other hardware.

I am using BlueSCSI with an Adaptec AHA-1520/22 controller on my old PC on an Intel Pentium 166 MHz processor. I also tried with another controller - Adaptec AVA-2902E, two problematic Blue SCSI don't work with it either. I tried changing SD cards, it didn't help. At the same time, the other two assembled BlueSCSI work perfectly with these controllers and SD cards.

Could use an approach like PiSCSI does with a loopback tester https://github.com/PiSCSI/piscsi/wiki/Troubleshooting#user-content-Loopback_Testing

Thank you for the quick response. I could make a loopback tester, but I'm not an expert in programming and I can't transfer the "scsiloop" program code to Raspberry Pico. Can I please ask you to redo the code for BlueSCSI V2 on Raspberry Pico? It's not difficult for me to solder or assemble something with my hands, but I'm not good at programming. It will also help other people in the future who will build and configure this device.