<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.rabbitholecomputing.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mbalmer</id>
	<title>Rabbit Hole Computing - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.rabbitholecomputing.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mbalmer"/>
	<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=Special:Contributions/Mbalmer"/>
	<updated>2026-05-06T08:15:34Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=ZuluSCSI_Operations_Guide&amp;diff=114</id>
		<title>ZuluSCSI Operations Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=ZuluSCSI_Operations_Guide&amp;diff=114"/>
		<updated>2025-06-14T20:30:59Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: /* Updating the Firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= This page is still a work in progress. Sections marked with a [[File:Warning.png|frameless|32x32px]] icon are still in the process of being edited and finalized. =&lt;br /&gt;
&lt;br /&gt;
== Setting Up Your ZuluSCSI ==&lt;br /&gt;
&lt;br /&gt;
=== Unboxing ===&lt;br /&gt;
When you first receive your ZuluSCSI, depending on the options you ordered, you should receive the following:&lt;br /&gt;
&lt;br /&gt;
* ZuluSCSI RP2040 Compact, ZuluSCSI Blaster, or ZuluSCSI 1.2 board&lt;br /&gt;
* Plastic board carrier&lt;br /&gt;
* 2x ¼&amp;quot; 4-40 screws&lt;br /&gt;
* microSD card or full-size SD card&lt;br /&gt;
* DAC board (ZuluSCSI Blaster only)&lt;br /&gt;
&lt;br /&gt;
== Board Overview ==&lt;br /&gt;
Take a moment to identify the various parts of the board as shown below, based on the type of board you have. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!ZuluSCSI RP2040 Compact&lt;br /&gt;
!ZuluSCSI Blaster RP2350B&lt;br /&gt;
!ZuluSCSI 1.2&lt;br /&gt;
|-&lt;br /&gt;
|[[File:ZSCSI compact labeled.png|frameless]]&lt;br /&gt;
|[[File:ZSCSI Blaster labeled.png|frameless]]&lt;br /&gt;
|[[File:ZSCSI1.2 Labeled.png|frameless]]&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;4-pin Molex floppy power connector:&#039;&#039;&#039; Run a standard Molex 4-pin power cable to this port. If your system power supply has only the larger style, get an adapter cable to switch it to the smaller size (the same size as that found on a 3½&amp;quot; floppy disk drive; see below).&lt;br /&gt;
* &#039;&#039;&#039;50-pin male IDC connector:&#039;&#039;&#039; Plug your SCSI bus cable into this. The connector is keyed, but some SCSI cables lack the key, so make sure that the red stripe on the cable lines up with the little arrow embossed into the connector itself.&lt;br /&gt;
* &#039;&#039;&#039;Activity LED:&#039;&#039;&#039; Flashes in sync with drive access, also used to indicate status conditions as described later&lt;br /&gt;
* &#039;&#039;&#039;Eject button:&#039;&#039;&#039; Performs a hardware eject for optical drives. Some operating systems will need this after dismounting an image from the system to register that the drive door is closed.&lt;br /&gt;
* &#039;&#039;&#039;BOOTLDR button:&#039;&#039;&#039; Used in the firmware flashing process; see below.&lt;br /&gt;
* &#039;&#039;&#039;USER button:&#039;&#039;&#039; Reserved for future use.&lt;br /&gt;
* &#039;&#039;&#039;Termination and Initiator jumpers (Compact only):&#039;&#039;&#039; Populate these footprints with standard 0.1&amp;quot; header, solder them down, and then use a standard jumper cap to switch on the ZuluSCSI Compact&#039;s termination capabilities or enable initiator mode.&lt;br /&gt;
* &#039;&#039;&#039;DIP Switch Block (ZuluSCSI Blaster only):&#039;&#039;&#039; Used to enable initiator mode, termination, or debug mode.&lt;br /&gt;
* &#039;&#039;&#039;I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;S Accessory Header (ZuluSCSI Blaster only):&#039;&#039;&#039; If you purchased the optional I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;S DAC for CD audio capability, insert it here. &lt;br /&gt;
* &#039;&#039;&#039;Device type selector switch (ZuluSCSI 1.2 only):&#039;&#039;&#039; Use this rotary switch to select the type of device the ZuluSCSI is meant to emulate here. This switch is only active when switch 2 on the Settings DIP switch block is set to &#039;&#039;&#039;off.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SCSI ID Dip Switch (ZuluSCSI 1.2 only):&#039;&#039;&#039; Use this set of switches to set the device&#039;s SCSI ID.&lt;br /&gt;
* &#039;&#039;&#039;Device Settings Switch block (ZuluSCSI 1.2 only):&#039;&#039;&#039; Use these switches to control termination, debug mode, &amp;quot;quirks&amp;quot; mode (for some Macintosh devices) and whether the entirety of the SD card is exposed as a single block device, or whether the device reads the SD card for image files and emulates multiple devices dependent on filename (as with other ZuluSCSI devices). &lt;br /&gt;
&lt;br /&gt;
== Molex power connector ==&lt;br /&gt;
Make sure that your power connection uses a &#039;&#039;&#039;3½&amp;quot; floppy power connector,&#039;&#039;&#039; not the larger drive connector used on full-size optical drives, hard drives, and the like. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector.png|frameless|135x135px]]&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector.png|frameless|117x117px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |✅ 3½&amp;quot; connector&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |❌ 5¼&amp;quot; connector&lt;br /&gt;
|}&lt;br /&gt;
If your host system only has the 5¼&amp;quot; connectors, you&#039;ll need to either purchase or make an adapter cable. Making an adapter cable requires the following parts:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;4× 5¼ male pins:&#039;&#039;&#039; TE Connectivity P/N 60620-1&lt;br /&gt;
* &#039;&#039;&#039;1× 5¼ male housing:&#039;&#039;&#039; TE Connectivity P/N 1-480426-0&lt;br /&gt;
* &#039;&#039;&#039;4× 3½ female sockets:&#039;&#039;&#039; TE Connectivity P/N 170262-1&lt;br /&gt;
* &#039;&#039;&#039;1× 3½ female housing:&#039;&#039;&#039; TE Connectivity P/N 171822-4&lt;br /&gt;
&lt;br /&gt;
When making the cables, use 20-gauge wire. If you&#039;re crimping a splitter cable, it&#039;s also possible to use 18-gauge wire on the 5¼ side going to the female plug, and then crimp the larger wire going into the male splitter side together with 22 or 24-gauge wire going to the 3½ side. Crimping the cables can be done with standard tools found on Amazon, such as the IWISS SN-025. &lt;br /&gt;
&lt;br /&gt;
== DIP Switch Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== ZuluSCSI Blaster or ZuluSCSI RP2040 Compact ===&lt;br /&gt;
* &#039;&#039;&#039;Switch 1:&#039;&#039;&#039; Turn Initiator mode on or off. &lt;br /&gt;
** On the RP2040 Compact, this is controlled by the jumper at &amp;lt;code&amp;gt;J310&amp;lt;/code&amp;gt; on the board in the lower right.&lt;br /&gt;
* &#039;&#039;&#039;Switch 2:&#039;&#039;&#039; Debug log disable/enable. If this switch is ON, the device will automatically write out a detailed debug log to &amp;lt;code&amp;gt;zululog.txt&amp;lt;/code&amp;gt; on the SD card as long as the device is powered on. Additionally, if you have a USB cable plugged into the port on the device with this switch on, it will also print the debug log over the cable via the microcontroller&#039;s internal serial connection. &lt;br /&gt;
** On the RP2040 Compact, this is controlled by setting &amp;lt;code&amp;gt;Debug = 1&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;zuluscsi.ini&amp;lt;/code&amp;gt; file on the SD card itself. &lt;br /&gt;
* &#039;&#039;&#039;Switch 3:&#039;&#039;&#039; Enable or disable SCSI termination as needed.&lt;br /&gt;
** On the RP2040 Compact, this is controlled by the jumper at &amp;lt;code&amp;gt;J311&amp;lt;/code&amp;gt; in the center of the board. &lt;br /&gt;
&lt;br /&gt;
=== ZuluSCSI 1.2 ===&lt;br /&gt;
If you have a ZuluSCSI 1.2, the block of &#039;&#039;&#039;four&#039;&#039;&#039; DIP switches at &amp;lt;code&amp;gt;SW301&amp;lt;/code&amp;gt; control various aspects of how the device responds in the system:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch 1:&#039;&#039;&#039; Toggle Macintosh &amp;quot;Quirks&amp;quot; mode. On some legacy Macs, it helps if the device responds with specific things when the system calls upon it during a fresh installation. If your Mac responds erratically or doesn&#039;t behave properly with the device in the system, try turning this switch ON before anything else.&lt;br /&gt;
* &#039;&#039;&#039;Switch 2:&#039;&#039;&#039; Direct/Raw mode vs. standard mode. If this switch is left in its default OFF position, then the entire SD card is exposed to the system as a single block device and allows your SCSI interface card to manage it, based on the settings of &amp;lt;code&amp;gt;SW403&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SW404&amp;lt;/code&amp;gt;. &lt;br /&gt;
** The block of &#039;&#039;&#039;three&#039;&#039;&#039; DIP switches at &amp;lt;code&amp;gt;SW403&amp;lt;/code&amp;gt; are used for setting your SCSI ID. If all three switches are off, the board&#039;s SCSI ID is 0. Turn switch 1 on to add 1 to the device ID, switch 2 to add 2, and switch 3 to add 4. If all three are on, the SCSI ID is 7.&lt;br /&gt;
** The rotary switch at &amp;lt;code&amp;gt;SW404&amp;lt;/code&amp;gt; controls how the ZuluSCSI responds to your SCSI interface card when it queries it. Each position on the switch causes it to respond as a different device and will register differently:&lt;br /&gt;
*** Position 0 (straight up): Hard disk&lt;br /&gt;
*** Position 1: Optical drive&lt;br /&gt;
*** Position 2: Floppy disk&lt;br /&gt;
*** Position 3: Other generic removable block device&lt;br /&gt;
*** Position 4: Magneto-optical disk drives&lt;br /&gt;
*** Position 5: Seagate ST32430N Hawk HDD&lt;br /&gt;
*** Position 6: Sequential magnetic tape drives&lt;br /&gt;
*** Positions 7, 8, 9: Reserved&lt;br /&gt;
&lt;br /&gt;
== Activity LED ==&lt;br /&gt;
The Activity LED will flash normally during disk access, however, in certain specific failure modes or status changes, you will see it flashing with a pattern. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1 fast blink, at boot time:&#039;&#039;&#039; Image file loaded successfully&lt;br /&gt;
* &#039;&#039;&#039;3 fast blinks:&#039;&#039;&#039; No valid images found on SD card&lt;br /&gt;
* &#039;&#039;&#039;5 fast blinks:&#039;&#039;&#039; SD card is present, but is not responding&lt;br /&gt;
* &#039;&#039;&#039;Morse code pattern:&#039;&#039;&#039; Firmware crash. The particular pattern will indicate where the crash occurred. &lt;br /&gt;
** If a firmware crash occurs, it will also try to save information to the file &amp;lt;code&amp;gt;zuluerr.txt&amp;lt;/code&amp;gt; on the SD card.&lt;br /&gt;
&lt;br /&gt;
== SD Card Preparation and Use ==&lt;br /&gt;
Format your SD card with either the FAT32 or exFAT filesystems. If you intend to use an SD card larger than 4 GB in size, you &#039;&#039;must&#039;&#039; format the card using exFAT as the FAT32 filesystem cannot support individual files larger than 4 GB. The card can be of any size as long as the card has an SDHC or SDXC classification badge. There is no upper limit for how large the card is (the maximum size supported by the SDXC specification is 2 TB, for example) however, you may notice slowdowns on the device if you store large numbers of individual files of any size in any single folder.  &lt;br /&gt;
&lt;br /&gt;
The device &#039;&#039;will not read&#039;&#039; SD cards formatted using the GPT (GUID Partition Map) method. If you try to use a card formatted with this method, the Activity LED will blink 5 times with the card inserted, indicating that the card&#039;s presence is being detected, but that it is unresponsive.  &lt;br /&gt;
&lt;br /&gt;
To make use of your ZuluSCSI, place disk image files in the root folder of the SD card and name them based upon the device and SCSI ID you want them to occupy on the bus. Your filename should follow the format &amp;lt;code&amp;gt;xxy.img&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; is a two-character code representing the device to be emulated, and &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; is a number representing the SCSI ID number you intend the device to take, from 0 to 7.  &lt;br /&gt;
&lt;br /&gt;
If you&#039;re emulating other devices on the ZuluSCSI, use the following two-character prefixes for your images depending on the device you want it to be: &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;HD&amp;lt;/code&amp;gt;: Hard disk&lt;br /&gt;
* &amp;lt;code&amp;gt;CD&amp;lt;/code&amp;gt;: Optical drive&lt;br /&gt;
* &amp;lt;code&amp;gt;FD&amp;lt;/code&amp;gt;: Floppy disk&lt;br /&gt;
* &amp;lt;code&amp;gt;MO&amp;lt;/code&amp;gt;: Magneto-optical&lt;br /&gt;
* &amp;lt;code&amp;gt;RE&amp;lt;/code&amp;gt;: Generic removable device&lt;br /&gt;
* &amp;lt;code&amp;gt;TP&amp;lt;/code&amp;gt;: Sequential tape&lt;br /&gt;
* &amp;lt;code&amp;gt;ZP&amp;lt;/code&amp;gt;: Zip-100 or Zip-250 drive&lt;br /&gt;
&lt;br /&gt;
For example, if you want the ZuluSCSI to emulate a three-device system containing two hard disks at IDs 3 and 4 and a single optical drive at ID 6, copy your images over and name them &amp;lt;code&amp;gt;HD3.img&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;HD4.img&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;CD6.iso&amp;lt;/code&amp;gt; inside the root folder of the card. &lt;br /&gt;
&lt;br /&gt;
[[File:Info.png|frameless|32x32px]] Images can also be stored in folders, but will not be accessible by the device unless you name the folder using the format described above. This is handy when you want to cycle images on a particular device, like floppy disks or CDs. &lt;br /&gt;
&lt;br /&gt;
=== Creating empty disk images ===&lt;br /&gt;
The ZuluSCSI can also create empty disk images for you. To do this, create a &#039;&#039;&#039;zero-length text file&#039;&#039;&#039; named using the following format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Create &amp;lt;size&amp;gt; &amp;lt;device type&amp;gt;&amp;lt;SCSI ID&amp;gt;.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;size&amp;gt;&amp;lt;/code&amp;gt; should be a value in the format &amp;lt;code&amp;gt;xxxY&amp;lt;/code&amp;gt;, where &#039;&#039;&#039;xxx&#039;&#039;&#039; is a number and &#039;&#039;&#039;Y&#039;&#039;&#039; is a letter representing the magnitude of that number. For example, &amp;lt;code&amp;gt;20M&amp;lt;/code&amp;gt; would be 20 megabytes, &amp;lt;code&amp;gt;20G&amp;lt;/code&amp;gt; would be 20 gigabytes, &amp;lt;code&amp;gt;20K&amp;lt;/code&amp;gt; would be 20 kilobytes, etc. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;device type&amp;gt;&amp;lt;/code&amp;gt; is a two-letter code corresponding to the device type desired above. Currently, only rewritable image types are supported, meaning the &amp;lt;code&amp;gt;HD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TP&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;ZP&amp;lt;/code&amp;gt; device types are supported. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;SCSI ID&amp;gt;&amp;lt;/code&amp;gt; is a number from 0 to 7 indicating the SCSI ID number that the device should occupy when the image is fully written and ready. &lt;br /&gt;
&lt;br /&gt;
An example filename to create a 1024-megabyte hard disk drive at SCSI ID 4 would be &amp;lt;code&amp;gt;Create 1024M HD4.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Copy the text file to the root folder of your SD card, place the card in the ZuluSCSI and turn it on. The ZuluSCSI will initialize and mount any existing images first, and then get to work creating your empty image file. The access LED will flash continuously during image creation and, in the case of very large images, can take some time to complete. &lt;br /&gt;
&lt;br /&gt;
==== Creating zero-length text files ====&lt;br /&gt;
On Windows, use a program like Notepad or Notepad++, create a new file, and immediately save it on the SD card with the desired filename.&lt;br /&gt;
&lt;br /&gt;
On Linux-based machines or Macs running OS X, open a Terminal window, and then type &amp;lt;code&amp;gt;touch &amp;lt;filename.txt&amp;gt;&amp;lt;/code&amp;gt; and then copy the resulting file to the SD card. &lt;br /&gt;
&lt;br /&gt;
== Updating the Firmware ==&lt;br /&gt;
New firmware releases can be obtained by visiting the [https://github.com/ZuluSCSI/ZuluSCSI-firmware/releases Github page] for the project. The most recent firmware will be listed at the top with a green &amp;quot;Latest&amp;quot; badge. You can update the firmware in three different ways.&lt;br /&gt;
&lt;br /&gt;
==== Using a ZIP file ====&lt;br /&gt;
ZuluSCSI boards running firmware &#039;&#039;&#039;v2024.12.03&#039;&#039;&#039; or later can be updated by simply placing a ZIP file downloaded from the [https://github.com/ZuluSCSI/ZuluSCSI-firmware/releases Github releases page].&lt;br /&gt;
&lt;br /&gt;
Download the &amp;lt;code&amp;gt;ZuluSCSI-FW_YYYY-MM-DD-universalFW.zip&amp;lt;/code&amp;gt; file from the repository (where &amp;lt;code&amp;gt;YYYY&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MM&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;DD&amp;lt;/code&amp;gt; represent the year, month, and date of release) directly to the SD card you&#039;re using, place the card back into the ZuluSCSI and turn on the system. The ZuluSCSI will take care of extracting and applying the firmware update on its own and, unless the system&#039;s boot time is exceptionally fast, the firmware update should apply in time for the system BIOS to catch the change. &lt;br /&gt;
&lt;br /&gt;
==== Using the SD card ====&lt;br /&gt;
The ZuluSCSI can update itself when it&#039;s initially powered on. You&#039;ll need to have access to the device so you can remove its SD card. &lt;br /&gt;
&lt;br /&gt;
# Power down the system that the ZuluSCSI is attached to and remove its SD card.&lt;br /&gt;
# Attach the SD card to the computer where you&#039;ll download the update.&lt;br /&gt;
# From the [https://github.com/ZuluSCSI/ZuluSCSI-firmware/releases Github page], download the latest firmware file with a &#039;&#039;&#039;.BIN&#039;&#039;&#039; extension.&lt;br /&gt;
# Copy the downloaded &#039;&#039;&#039;.BIN&#039;&#039;&#039; file to the root folder of the SD card and rename it as &amp;lt;code&amp;gt;ZuluSCSI.bin&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Dismount the SD card from the computer, and reinsert the SD card into the ZuluSCSI.&lt;br /&gt;
# Power the system back on. The ZuluSCSI will automatically begin the firmware update process, which takes about one second. If the system has to boot to the ZuluSCSI and its startup is particularly quick, you may need to reset the computer once to allow the firmware update process to complete on the ZuluSCSI so it can become ready.&lt;br /&gt;
# When the firmware update process finishes, the ZuluSCSI will delete the update file and continue on to normal operation.&lt;br /&gt;
&lt;br /&gt;
==== Using the BOOTLDR button ====&lt;br /&gt;
[[File:Bootloader button.png|thumb|140x140px|BOOTLDR button]]&lt;br /&gt;
If you have physical access to the device and a way to plug the MicroUSB or USB-C port into a host computer, this is the traditional way to update RP2040 and RP2350B-based devices. &lt;br /&gt;
&lt;br /&gt;
# Power down the system the ZuluSCSI is attached to, and if necessary, unplug it from its cabling.&lt;br /&gt;
# From the [https://github.com/ZuluSCSI/ZuluSCSI-firmware/releases Github page], download the latest firmware file with a &#039;&#039;&#039;.UF2&#039;&#039;&#039; extension. &lt;br /&gt;
# Attach a MicroUSB cable to the device you&#039;ll be uploading the firmware from.&lt;br /&gt;
# While holding down the BOOTLDR button on the ZuluSCSI, attach the other end of the cable to the MicroUSB port on the ZuluSCSI. [[File:Firmware-update.png|thumb|Copy the UF2 file to the device.]]&lt;br /&gt;
# A Windows Explorer window may appear with a drive called &amp;lt;code&amp;gt;RPi-RP2&amp;lt;/code&amp;gt;. If it doesn&#039;t, open a Windows Explorer window and look for a drive with this name.&lt;br /&gt;
# Copy the &#039;&#039;&#039;.UF2&#039;&#039;&#039; file you downloaded to the root folder of the drive that appeared when you plugged in the ZuluSCSI.&lt;br /&gt;
# The &amp;lt;code&amp;gt;RPi-RP2&amp;lt;/code&amp;gt; window should close on its own once the copy completes. When the device disconnects on its own, the firmware update process is complete.&lt;br /&gt;
# Disconnect the USB cables and reattach the ZuluSCSI to its host, if you removed it in step 1. &lt;br /&gt;
&lt;br /&gt;
== Troubleshooting [[File:Warning.png|frameless|32x32px]] ==&lt;br /&gt;
Some simple things to check before you dive deeper:&lt;br /&gt;
&lt;br /&gt;
* Make sure that there are no devices contending for the same ID number on the bus. Typically, the host device on a system is identified as ID 7, so avoid using ID 7 where possible.&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=ZuluIDE_INI_Configuration&amp;diff=113</id>
		<title>ZuluIDE INI Configuration</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=ZuluIDE_INI_Configuration&amp;diff=113"/>
		<updated>2025-05-25T07:37:56Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: set table alignments&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Before You Edit Anything ==&lt;br /&gt;
In the vast majority of use cases, many people don&#039;t need to change the options in the INI file. Most of the options presented here will work perfectly well with their defaults; the only time most options need to be changed is where a specific use case requires it or if there is a particular problem with the way the device is performing.&lt;br /&gt;
&lt;br /&gt;
The most recent version of the base INI file can be found at the [https://github.com/ZuluIDE/ZuluIDE-firmware/blob/main/zuluide.ini ZuluIDE Github repo.] &lt;br /&gt;
&lt;br /&gt;
Settings of type &#039;&#039;&#039;On/Off&#039;&#039;&#039; are set using a &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; or a &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, with a 1 meaning the feature is enabled, while a 0 means the feature is disabled.&lt;br /&gt;
&lt;br /&gt;
Settings of type &#039;&#039;&#039;string&#039;&#039;&#039; require a string enclosed in double quotation marks.&lt;br /&gt;
&lt;br /&gt;
Settings of type &#039;&#039;&#039;int&#039;&#039;&#039; require an integer, usually corresponding to a particular mode number.&lt;br /&gt;
&lt;br /&gt;
Settings with a default listed as &#039;&#039;&#039;unset&#039;&#039;&#039; should remain commented out unless needed. &lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;[IDE]&amp;lt;/code&amp;gt; section ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Setting&lt;br /&gt;
!Type&lt;br /&gt;
!Effect&lt;br /&gt;
!Default&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;debug&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |on/off&lt;br /&gt;
|If &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, enables writing a debug log to &amp;lt;code&amp;gt;zululog.txt&amp;lt;/code&amp;gt;. &#039;&#039;&#039;This overrides the DIP switch setting.&#039;&#039;&#039; &lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |off&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;enable_usb_mass_storage&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |on/off&lt;br /&gt;
|If &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, allows direct access to the microSD card&#039;s filesystem via the USB port. This does &#039;&#039;&#039;not&#039;&#039;&#039; allow access to the image currently loaded by the ZuluIDE. &lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |off&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;eject_button&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |on/off&lt;br /&gt;
|If &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, sets the eject button&#039;s GPIO pin to pin 14; if &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, sets the eject button&#039;s GPIO pin to pin 11 (the default)&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |off&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ignore_prevent_removal&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |on/off&lt;br /&gt;
|Set this to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; to force the ZuluIDE to respect the host device&#039;s ability to prohibit media ejection. When on, the ZuluIDE will allow you to eject an image at any time, regardless of the circumstances.&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |on&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;has_drive1&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |on/off&lt;br /&gt;
|Uncomment and set this to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; to forcibly tell the ZuluIDE that there is no secondary drive attached to the same IDE channel that the ZuluIDE is using. &#039;&#039;&#039;Only use this option if the ZuluIDE claims in the debug log that a secondary drive is present when the ZuluIDE is the only device on that IDE channel and the ZuluIDE is set as the primary drive.&#039;&#039;&#039;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |Unset&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;max_udma&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |int&lt;br /&gt;
|Set the maximum UltraDMA mode to use. Set to &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; to disable UltraDMA modes entirely.&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;max_pio&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |int&lt;br /&gt;
|Set the maximum programmed I/O mode to use. Maximum supported PIO mode on the ZuluIDE RP2040 is mode 3. &lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;max_blocksize&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |int&lt;br /&gt;
|Maximum number of bytes in a single transfer block.&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |&amp;lt;code&amp;gt;4096&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;device&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |string &#039;&#039;&#039;without quotes&#039;&#039;&#039;&lt;br /&gt;
|Set the device type to emulate. Valid choices are: &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;CDROM&amp;lt;/code&amp;gt; for optical drives&lt;br /&gt;
* &amp;lt;code&amp;gt;Zip100&amp;lt;/code&amp;gt; for 100MB Zip drives&lt;br /&gt;
* &amp;lt;code&amp;gt;Zip250&amp;lt;/code&amp;gt; for 250MB Zip drives (experimental)&lt;br /&gt;
* &amp;lt;code&amp;gt;Removable&amp;lt;/code&amp;gt; for generic removable media&lt;br /&gt;
* &amp;lt;code&amp;gt;HDD&amp;lt;/code&amp;gt; for fixed-disk mode&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |&amp;lt;code&amp;gt;CDROM&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;atapi_vendor&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |string&lt;br /&gt;
|Report a specific vendor string to the system BIOS when operating as an ATAPI device (i.e., optical drives). Maximum length 8 characters.&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |&amp;lt;code&amp;gt;ZuluIDE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;atapi_product&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |string&lt;br /&gt;
|Report a specific product name string to the system BIOS when operating as an ATAPI device (i.e., optical drives). Maximum length 16 characters.&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |&amp;lt;code&amp;gt;CDROM&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;atapi_version&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |string&lt;br /&gt;
|Report a specific product version string to the system BIOS when operating as an ATAPI device (i.e., optical drives). Maximum length 4 characters.&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |&amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ide_model&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |string&lt;br /&gt;
|Report a specific model name to the system BIOS when operating as an IDE device (i.e., hard disks). Maximum length 40 characters.&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ide_serial&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |string&lt;br /&gt;
|Report a specific serial number to the system BIOS when operating as an IDE device (i.e., hard disks). Maximum length 20 characters.&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ide_revision&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |string&lt;br /&gt;
|Report a specific revision code to the system BIOS when operating as an IDE device (i.e., hard disks). Maximum length 8 characters.&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;reinsert_media_after_eject&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |on/off&lt;br /&gt;
|If set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, the ZuluIDE will automatically re-mount the most recently ejected image. Handy for cases where the system auto-ejects media without your input.&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;reinsert_media_on_inquiry&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |on/off&lt;br /&gt;
|If set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, the ZuluIDE will automatically re-mount the most recently ejected image when it receives either an ATA &amp;lt;code&amp;gt;IDENTIFY_DEVICE&amp;lt;/code&amp;gt; command or &amp;lt;code&amp;gt;IDENTIFY_PACKET_DEVICE&amp;lt;/code&amp;gt; command.&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;reinsert_media_on_sd_insert&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |on/off&lt;br /&gt;
|If set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, the ZuluIDE will automatically re-mount the most recently used image when an SD card is inserted. The most recently used image is stored directly as a filename in the &amp;lt;code&amp;gt;zululast.txt&amp;lt;/code&amp;gt; file in the root folder of the SD card.&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;set_not_ready_on_insert&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |on/off&lt;br /&gt;
|Set this to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; to have the next ATAPI command report with a &amp;quot;not ready&amp;quot; response when the loaded image file is changed. Some systems and/or OSes need this to properly handle a media change.&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;init_with_last_used_image&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |on/off&lt;br /&gt;
|Set this to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; to cause the ZuluIDE to automatically re-mount the last-used image on powerup.&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ignore_command_interrupt&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |on/off&lt;br /&gt;
|When set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, the ZuluIDE will ignore any command that interrupts one that is currently executing. &lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;atapi_intrq&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |on/off&lt;br /&gt;
|When set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, the ZuluIDE will enable the &amp;lt;code&amp;gt;INTRQ&amp;lt;/code&amp;gt; signal during a &amp;lt;code&amp;gt;PACKET&amp;lt;/code&amp;gt; command. This is normally left disabled. &#039;&#039;&#039;Only enable this if support directs you to.&#039;&#039;&#039;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cylinders&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |int&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Specify number of cylinders, heads, and sectors for rigid disk emulation. &#039;&#039;&#039;All three&#039;&#039;&#039; of these parameters must be set for the ZuluIDE to use them, otherwise the ZuluIDE will make a best guess based on the size of the image file and report that best guess to the BIOS when queried.&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; rowspan=&amp;quot;3&amp;quot; |unset&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;heads&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |int&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;sectors&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |int&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;access_delay&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |int&lt;br /&gt;
|Add an extra delay (in milliseconds) before responding to commands issued by the host system.&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;max_volume&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |int&lt;br /&gt;
|Volume level used when decoding Redbook audio through the optional I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;S audio interface. Valid range is &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;100&amp;lt;/code&amp;gt;.&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |&amp;lt;code&amp;gt;100&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;[UI]&amp;lt;/code&amp;gt; section ===&lt;br /&gt;
The options in this section require either the optional hardware interface, or require a Pi Pico W to be mounted to the optional Audio &amp;amp; Pico Shield. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Setting&lt;br /&gt;
!Type&lt;br /&gt;
!Effect&lt;br /&gt;
!Default&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;wifissid&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |string&lt;br /&gt;
|Set the SSID to connect to to present the HTML interface.&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |unset&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;wifipassword&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |string&lt;br /&gt;
|Set the password to the SSID above. &lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |unset&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;rotary_encoder_ticks&amp;lt;/code&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |int&lt;br /&gt;
|Number of detents before the controller board registers a turn of the rotary encoder. Earlier versions of the hardware interface protocol used &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; for this value, current firmware sets this to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; by default.&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;; |&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=ZuluIDE_INI_Configuration&amp;diff=112</id>
		<title>ZuluIDE INI Configuration</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=ZuluIDE_INI_Configuration&amp;diff=112"/>
		<updated>2025-05-25T07:30:12Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: Added current INI file options.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Before You Edit Anything ==&lt;br /&gt;
In the vast majority of use cases, many people don&#039;t need to change the options in the INI file. Most of the options presented here will work perfectly well with their defaults; the only time most options need to be changed is where a specific use case requires it or if there is a particular problem with the way the device is performing.&lt;br /&gt;
&lt;br /&gt;
The most recent version of the base INI file can be found at the [https://github.com/ZuluIDE/ZuluIDE-firmware/blob/main/zuluide.ini ZuluIDE Github repo.] &lt;br /&gt;
&lt;br /&gt;
Settings of type &#039;&#039;&#039;On/Off&#039;&#039;&#039; are set using a &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; or a &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, with a 1 meaning the feature is enabled, while a 0 means the feature is disabled.&lt;br /&gt;
&lt;br /&gt;
Settings of type &#039;&#039;&#039;string&#039;&#039;&#039; require a string enclosed in double quotation marks.&lt;br /&gt;
&lt;br /&gt;
Settings of type &#039;&#039;&#039;int&#039;&#039;&#039; require an integer, usually corresponding to a particular mode number.&lt;br /&gt;
&lt;br /&gt;
Settings with a default listed as &#039;&#039;&#039;unset&#039;&#039;&#039; should remain commented out unless needed. &lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;[IDE]&amp;lt;/code&amp;gt; section ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Setting&lt;br /&gt;
!Type&lt;br /&gt;
!Effect&lt;br /&gt;
!Default&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;debug&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|If &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, enables writing a debug log to &amp;lt;code&amp;gt;zululog.txt&amp;lt;/code&amp;gt;. &#039;&#039;&#039;This overrides the DIP switch setting.&#039;&#039;&#039; &lt;br /&gt;
|off&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;enable_usb_mass_storage&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|If &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, allows direct access to the microSD card&#039;s filesystem via the USB port. This does &#039;&#039;&#039;not&#039;&#039;&#039; allow access to the image currently loaded by the ZuluIDE. &lt;br /&gt;
|off&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;eject_button&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|If &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, sets the eject button&#039;s GPIO pin to pin 14; if &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, sets the eject button&#039;s GPIO pin to pin 11 (the default)&lt;br /&gt;
|off&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ignore_prevent_removal&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|Set this to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; to force the ZuluIDE to respect the host device&#039;s ability to prohibit media ejection. When on, the ZuluIDE will allow you to eject an image at any time, regardless of the circumstances.&lt;br /&gt;
|on&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;has_drive1&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|Uncomment and set this to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; to forcibly tell the ZuluIDE that there is no secondary drive attached to the same IDE channel that the ZuluIDE is using. &#039;&#039;&#039;Only use this option if the ZuluIDE claims in the debug log that a secondary drive is present when the ZuluIDE is the only device on that IDE channel and the ZuluIDE is set as the primary drive.&#039;&#039;&#039;&lt;br /&gt;
|Unset&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;max_udma&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|Set the maximum UltraDMA mode to use. Set to &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; to disable UltraDMA modes entirely.&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;max_pio&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|Set the maximum programmed I/O mode to use. Maximum supported PIO mode on the ZuluIDE RP2040 is mode 3. &lt;br /&gt;
|&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;max_blocksize&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|Maximum number of bytes in a single transfer block.&lt;br /&gt;
|&amp;lt;code&amp;gt;4096&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;device&amp;lt;/code&amp;gt;&lt;br /&gt;
|string&lt;br /&gt;
&#039;&#039;&#039;without quotes&#039;&#039;&#039;&lt;br /&gt;
|Set the device type to emulate. Valid choices are: &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;CDROM&amp;lt;/code&amp;gt; for optical drives&lt;br /&gt;
* &amp;lt;code&amp;gt;Zip100&amp;lt;/code&amp;gt; for 100MB Zip drives&lt;br /&gt;
* &amp;lt;code&amp;gt;Zip250&amp;lt;/code&amp;gt; for 250MB Zip drives (experimental)&lt;br /&gt;
* &amp;lt;code&amp;gt;Removable&amp;lt;/code&amp;gt; for generic removable media&lt;br /&gt;
* &amp;lt;code&amp;gt;HDD&amp;lt;/code&amp;gt; for fixed-disk mode&lt;br /&gt;
|&amp;lt;code&amp;gt;CDROM&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;atapi_vendor&amp;lt;/code&amp;gt;&lt;br /&gt;
|string&lt;br /&gt;
|Report a specific vendor string to the system BIOS when operating as an ATAPI device (i.e., optical drives). Maximum length 8 characters.&lt;br /&gt;
|&amp;lt;code&amp;gt;ZuluIDE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;atapi_product&amp;lt;/code&amp;gt;&lt;br /&gt;
|string&lt;br /&gt;
|Report a specific product name string to the system BIOS when operating as an ATAPI device (i.e., optical drives). Maximum length 16 characters.&lt;br /&gt;
|&amp;lt;code&amp;gt;CDROM&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;atapi_version&amp;lt;/code&amp;gt;&lt;br /&gt;
|string&lt;br /&gt;
|Report a specific product version string to the system BIOS when operating as an ATAPI device (i.e., optical drives). Maximum length 4 characters.&lt;br /&gt;
|&amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ide_model&amp;lt;/code&amp;gt;&lt;br /&gt;
|string&lt;br /&gt;
|Report a specific model name to the system BIOS when operating as an IDE device (i.e., hard disks). Maximum length 40 characters.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ide_serial&amp;lt;/code&amp;gt;&lt;br /&gt;
|string&lt;br /&gt;
|Report a specific serial number to the system BIOS when operating as an IDE device (i.e., hard disks). Maximum length 20 characters.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ide_revision&amp;lt;/code&amp;gt;&lt;br /&gt;
|string&lt;br /&gt;
|Report a specific revision code to the system BIOS when operating as an IDE device (i.e., hard disks). Maximum length 8 characters.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;reinsert_media_after_eject&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|If set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, the ZuluIDE will automatically re-mount the most recently ejected image. Handy for cases where the system auto-ejects media without your input.&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;reinsert_media_on_inquiry&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|If set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, the ZuluIDE will automatically re-mount the most recently ejected image when it receives either an ATA &amp;lt;code&amp;gt;IDENTIFY_DEVICE&amp;lt;/code&amp;gt; command or &amp;lt;code&amp;gt;IDENTIFY_PACKET_DEVICE&amp;lt;/code&amp;gt; command.&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;reinsert_media_on_sd_insert&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|If set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, the ZuluIDE will automatically re-mount the most recently used image when an SD card is inserted. The most recently used image is stored directly as a filename in the &amp;lt;code&amp;gt;zululast.txt&amp;lt;/code&amp;gt; file in the root folder of the SD card.&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;set_not_ready_on_insert&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|Set this to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; to have the next ATAPI command report with a &amp;quot;not ready&amp;quot; response when the loaded image file is changed. Some systems and/or OSes need this to properly handle a media change.&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;init_with_last_used_image&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|Set this to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; to cause the ZuluIDE to automatically re-mount the last-used image on powerup.&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ignore_command_interrupt&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|When set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, the ZuluIDE will ignore any command that interrupts one that is currently executing. &lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;atapi_intrq&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|When set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, the ZuluIDE will enable the &amp;lt;code&amp;gt;INTRQ&amp;lt;/code&amp;gt; signal during a &amp;lt;code&amp;gt;PACKET&amp;lt;/code&amp;gt; command. This is normally left disabled. &#039;&#039;&#039;Only enable this if support directs you to.&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cylinders&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Specify number of cylinders, heads, and sectors for rigid disk emulation. &#039;&#039;&#039;All three&#039;&#039;&#039; of these parameters must be set for the ZuluIDE to use them, otherwise the ZuluIDE will make a best guess based on the size of the image file and report that best guess to the BIOS when queried.&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |unset&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;heads&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;sectors&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;access_delay&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|Add an extra delay (in milliseconds) before responding to commands issued by the host system.&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;max_volume&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|Volume level used when decoding Redbook audio through the optional I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;S audio interface. Valid range is &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;100&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&amp;lt;code&amp;gt;100&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;[UI]&amp;lt;/code&amp;gt; section ===&lt;br /&gt;
The options in this section require either the optional hardware interface, or require a Pi Pico W to be mounted to the optional Audio &amp;amp; Pico Shield. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Setting&lt;br /&gt;
!Type&lt;br /&gt;
!Effect&lt;br /&gt;
!Default&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;wifissid&amp;lt;/code&amp;gt;&lt;br /&gt;
|string&lt;br /&gt;
|Set the SSID to connect to to present the HTML interface.&lt;br /&gt;
|unset&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;wifipassword&amp;lt;/code&amp;gt;&lt;br /&gt;
|string&lt;br /&gt;
|Set the password to the SSID above. &lt;br /&gt;
|unset&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;rotary_encoder_ticks&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|Number of detents before the controller board registers a turn of the rotary encoder. Earlier versions of the hardware interface protocol used &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; for this value, current firmware sets this to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; by default.&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=Basic_Usage&amp;diff=111</id>
		<title>Basic Usage</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=Basic_Usage&amp;diff=111"/>
		<updated>2025-05-20T05:42:30Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: /* File Naming on the ZuluSCSI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SD Card Preparation ==&lt;br /&gt;
Both the ZuluSCSI and ZuluIDE devices utilize either SD or microSD cards to load disk images. Your SD card should be formatted either as FAT32 or exFAT &#039;&#039;&#039;(not NTFS)&#039;&#039;&#039; on at least one partition, if your card has more than one. Cards you use with the device need to fit the following criteria:&lt;br /&gt;
&lt;br /&gt;
* Card must be labeled as either SDXC or SDHC&lt;br /&gt;
* MBR or DOS partition type (not GPT)&lt;br /&gt;
* No size limitations (see below)&lt;br /&gt;
&lt;br /&gt;
Note that certain older cards (typically manufactured before 2008 and usually 4GB or smaller) will fail to be detected by the device. This is not the fault of the device; it&#039;s a speed limitation of the SD card itself. There is no known upper limit to the size of card you can use in the device, and has been tested with 256GB, 400GB, and larger cards that are currently available for sale.&lt;br /&gt;
&lt;br /&gt;
===== File Naming on the ZuluSCSI =====&lt;br /&gt;
Create or copy a single valid disk image file into the root directory of your SD card and rename it based on the device you want it to serve as. If the image is a hard drive, name it &amp;lt;code&amp;gt;HDx.img&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;HDx.hda&amp;lt;/code&amp;gt;, and replace the &#039;&#039;&#039;x&#039;&#039;&#039; in the filename with the desired SCSI ID number, which is a unique number between 0 and 6 (i.e., &amp;lt;code&amp;gt;HD4.img&amp;lt;/code&amp;gt; for a hard drive assigned as unit 4 on the SCSI bus). The image will automatically be configured and placed on the SCSI bus.&lt;br /&gt;
&lt;br /&gt;
For optical media images, name image files as &amp;lt;code&amp;gt;CDx.iso&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;CDx.img&amp;lt;/code&amp;gt;, again replacing the &#039;&#039;&#039;x&#039;&#039;&#039; in the filename with the SCSI ID number. Any image loaded here will be automatically configured by the device as a SCSI-attached optical drive with a standard 2048-byte sector size. If your disc image is in BIN/CUE format, place it in a folder named &amp;lt;code&amp;gt;CDx&amp;lt;/code&amp;gt;, again, replacing the &#039;&#039;&#039;x&#039;&#039;&#039; with the SCSI ID number you want to use. File names inside the folder should conform to the typical BIN/CUE standard where each BIN file shares a common name with the cue sheet and has its track number appended to the filename.&lt;br /&gt;
&lt;br /&gt;
If you need to create a blank image and don&#039;t have an app, the ZuluSCSI has a provision to do so in firmware: Using any text editor, create a 0-length file and name it based on the properties you want the resulting drive to have. For example, &amp;lt;code&amp;gt;Create 1024M HD0.txt&amp;lt;/code&amp;gt; will create a 1 GB blank image file, rename it as &amp;lt;code&amp;gt;HD0.img&amp;lt;/code&amp;gt;, and then mount the image file. While the ZuluSCSI is creating the image file, the LED will flash repeatedly.  &lt;br /&gt;
&lt;br /&gt;
===== File Naming on the ZuluIDE =====&lt;br /&gt;
&lt;br /&gt;
File names on the ZuluIDE are far less restricted, but are still limited to only a few formats. Files ending in &amp;lt;code&amp;gt;.iso&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.bin/cue&amp;lt;/code&amp;gt; are automatically loaded as optical media images, while images ending in any &#039;&#039;other&#039;&#039; extension not on the [[ZuluIDE File Ignore List|Ignored List]] are treated as other generic removable media, Zip disks, or hard drive images. The type of device the ZuluIDE is configured as defaults to an optical drive, but can be changed with some [[ZuluIDE INI Settings|INI settings]] loaded from the SD card at power-on.&lt;br /&gt;
&lt;br /&gt;
Attach your device to its bus, attach power, turn the system on, and let the device work its magic!&lt;br /&gt;
&lt;br /&gt;
For specifics, see the [[ZuluSCSI Operations Guide]] or the [[ZuluIDE Operations Guide|ZuluIDE Operations Guide.]]&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:ZSCSI_Blaster_labeled.png&amp;diff=110</id>
		<title>File:ZSCSI Blaster labeled.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:ZSCSI_Blaster_labeled.png&amp;diff=110"/>
		<updated>2025-04-16T22:27:11Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: Mbalmer uploaded a new version of File:ZSCSI Blaster labeled.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ZSCSI Blaster labeled&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=ZuluSCSI_Operations_Guide&amp;diff=109</id>
		<title>ZuluSCSI Operations Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=ZuluSCSI_Operations_Guide&amp;diff=109"/>
		<updated>2025-04-16T22:24:05Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= This page is still a work in progress. Sections marked with a [[File:Warning.png|frameless|32x32px]] icon are still in the process of being edited and finalized. =&lt;br /&gt;
&lt;br /&gt;
== Setting Up Your ZuluSCSI ==&lt;br /&gt;
&lt;br /&gt;
=== Unboxing ===&lt;br /&gt;
When you first receive your ZuluSCSI, depending on the options you ordered, you should receive the following:&lt;br /&gt;
&lt;br /&gt;
* ZuluSCSI RP2040 Compact, ZuluSCSI Blaster, or ZuluSCSI 1.2 board&lt;br /&gt;
* Plastic board carrier&lt;br /&gt;
* 2x ¼&amp;quot; 4-40 screws&lt;br /&gt;
* microSD card or full-size SD card&lt;br /&gt;
* DAC board (ZuluSCSI Blaster only)&lt;br /&gt;
&lt;br /&gt;
== Board Overview ==&lt;br /&gt;
Take a moment to identify the various parts of the board as shown below, based on the type of board you have. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!ZuluSCSI RP2040 Compact&lt;br /&gt;
!ZuluSCSI Blaster RP2350B&lt;br /&gt;
!ZuluSCSI 1.2&lt;br /&gt;
|-&lt;br /&gt;
|[[File:ZSCSI compact labeled.png|frameless]]&lt;br /&gt;
|[[File:ZSCSI Blaster labeled.png|frameless]]&lt;br /&gt;
|[[File:ZSCSI1.2 Labeled.png|frameless]]&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;4-pin Molex floppy power connector:&#039;&#039;&#039; Run a standard Molex 4-pin power cable to this port. If your system power supply has only the larger style, get an adapter cable to switch it to the smaller size (the same size as that found on a 3½&amp;quot; floppy disk drive; see below).&lt;br /&gt;
* &#039;&#039;&#039;50-pin male IDC connector:&#039;&#039;&#039; Plug your SCSI bus cable into this. The connector is keyed, but some SCSI cables lack the key, so make sure that the red stripe on the cable lines up with the little arrow embossed into the connector itself.&lt;br /&gt;
* &#039;&#039;&#039;Activity LED:&#039;&#039;&#039; Flashes in sync with drive access, also used to indicate status conditions as described later&lt;br /&gt;
* &#039;&#039;&#039;Eject button:&#039;&#039;&#039; Performs a hardware eject for optical drives. Some operating systems will need this after dismounting an image from the system to register that the drive door is closed.&lt;br /&gt;
* &#039;&#039;&#039;BOOTLDR button:&#039;&#039;&#039; Used in the firmware flashing process; see below.&lt;br /&gt;
* &#039;&#039;&#039;USER button:&#039;&#039;&#039; Reserved for future use.&lt;br /&gt;
* &#039;&#039;&#039;Termination and Initiator jumpers (Compact only):&#039;&#039;&#039; Populate these footprints with standard 0.1&amp;quot; header, solder them down, and then use a standard jumper cap to switch on the ZuluSCSI Compact&#039;s termination capabilities or enable initiator mode.&lt;br /&gt;
* &#039;&#039;&#039;DIP Switch Block (ZuluSCSI Blaster only):&#039;&#039;&#039; Used to enable initiator mode, termination, or debug mode.&lt;br /&gt;
* &#039;&#039;&#039;I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;S Accessory Header (ZuluSCSI Blaster only):&#039;&#039;&#039; If you purchased the optional I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;S DAC for CD audio capability, insert it here. &lt;br /&gt;
* &#039;&#039;&#039;Device type selector switch (ZuluSCSI 1.2 only):&#039;&#039;&#039; Use this rotary switch to select the type of device the ZuluSCSI is meant to emulate here. This switch is only active when switch 2 on the Settings DIP switch block is set to &#039;&#039;&#039;off.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SCSI ID Dip Switch (ZuluSCSI 1.2 only):&#039;&#039;&#039; Use this set of switches to set the device&#039;s SCSI ID.&lt;br /&gt;
* &#039;&#039;&#039;Device Settings Switch block (ZuluSCSI 1.2 only):&#039;&#039;&#039; Use these switches to control termination, debug mode, &amp;quot;quirks&amp;quot; mode (for some Macintosh devices) and whether the entirety of the SD card is exposed as a single block device, or whether the device reads the SD card for image files and emulates multiple devices dependent on filename (as with other ZuluSCSI devices). &lt;br /&gt;
&lt;br /&gt;
== Molex power connector ==&lt;br /&gt;
Make sure that your power connection uses a &#039;&#039;&#039;3½&amp;quot; floppy power connector,&#039;&#039;&#039; not the larger drive connector used on full-size optical drives, hard drives, and the like. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector.png|frameless|135x135px]]&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector.png|frameless|117x117px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |✅ 3½&amp;quot; connector&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |❌ 5¼&amp;quot; connector&lt;br /&gt;
|}&lt;br /&gt;
If your host system only has the 5¼&amp;quot; connectors, you&#039;ll need to either purchase or make an adapter cable. Making an adapter cable requires the following parts:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;4× 5¼ male pins:&#039;&#039;&#039; TE Connectivity P/N 60620-1&lt;br /&gt;
* &#039;&#039;&#039;1× 5¼ male housing:&#039;&#039;&#039; TE Connectivity P/N 1-480426-0&lt;br /&gt;
* &#039;&#039;&#039;4× 3½ female sockets:&#039;&#039;&#039; TE Connectivity P/N 170262-1&lt;br /&gt;
* &#039;&#039;&#039;1× 3½ female housing:&#039;&#039;&#039; TE Connectivity P/N 171822-4&lt;br /&gt;
&lt;br /&gt;
When making the cables, use 20-gauge wire. If you&#039;re crimping a splitter cable, it&#039;s also possible to use 18-gauge wire on the 5¼ side going to the female plug, and then crimp the larger wire going into the male splitter side together with 22 or 24-gauge wire going to the 3½ side. Crimping the cables can be done with standard tools found on Amazon, such as the IWISS SN-025. &lt;br /&gt;
&lt;br /&gt;
== DIP Switch Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== ZuluSCSI Blaster or ZuluSCSI RP2040 Compact ===&lt;br /&gt;
* &#039;&#039;&#039;Switch 1:&#039;&#039;&#039; Turn Initiator mode on or off. &lt;br /&gt;
** On the RP2040 Compact, this is controlled by the jumper at &amp;lt;code&amp;gt;J310&amp;lt;/code&amp;gt; on the board in the lower right.&lt;br /&gt;
* &#039;&#039;&#039;Switch 2:&#039;&#039;&#039; Debug log disable/enable. If this switch is ON, the device will automatically write out a detailed debug log to &amp;lt;code&amp;gt;zululog.txt&amp;lt;/code&amp;gt; on the SD card as long as the device is powered on. Additionally, if you have a USB cable plugged into the port on the device with this switch on, it will also print the debug log over the cable via the microcontroller&#039;s internal serial connection. &lt;br /&gt;
** On the RP2040 Compact, this is controlled by setting &amp;lt;code&amp;gt;Debug = 1&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;zuluscsi.ini&amp;lt;/code&amp;gt; file on the SD card itself. &lt;br /&gt;
* &#039;&#039;&#039;Switch 3:&#039;&#039;&#039; Enable or disable SCSI termination as needed.&lt;br /&gt;
** On the RP2040 Compact, this is controlled by the jumper at &amp;lt;code&amp;gt;J311&amp;lt;/code&amp;gt; in the center of the board. &lt;br /&gt;
&lt;br /&gt;
=== ZuluSCSI 1.2 ===&lt;br /&gt;
If you have a ZuluSCSI 1.2, the block of &#039;&#039;&#039;four&#039;&#039;&#039; DIP switches at &amp;lt;code&amp;gt;SW301&amp;lt;/code&amp;gt; control various aspects of how the device responds in the system:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch 1:&#039;&#039;&#039; Toggle Macintosh &amp;quot;Quirks&amp;quot; mode. On some legacy Macs, it helps if the device responds with specific things when the system calls upon it during a fresh installation. If your Mac responds erratically or doesn&#039;t behave properly with the device in the system, try turning this switch ON before anything else.&lt;br /&gt;
* &#039;&#039;&#039;Switch 2:&#039;&#039;&#039; Direct/Raw mode vs. standard mode. If this switch is left in its default OFF position, then the entire SD card is exposed to the system as a single block device and allows your SCSI interface card to manage it, based on the settings of &amp;lt;code&amp;gt;SW403&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SW404&amp;lt;/code&amp;gt;. &lt;br /&gt;
** The block of &#039;&#039;&#039;three&#039;&#039;&#039; DIP switches at &amp;lt;code&amp;gt;SW403&amp;lt;/code&amp;gt; are used for setting your SCSI ID. If all three switches are off, the board&#039;s SCSI ID is 0. Turn switch 1 on to add 1 to the device ID, switch 2 to add 2, and switch 3 to add 4. If all three are on, the SCSI ID is 7.&lt;br /&gt;
** The rotary switch at &amp;lt;code&amp;gt;SW404&amp;lt;/code&amp;gt; controls how the ZuluSCSI responds to your SCSI interface card when it queries it. Each position on the switch causes it to respond as a different device and will register differently:&lt;br /&gt;
*** Position 0 (straight up): Hard disk&lt;br /&gt;
*** Position 1: Optical drive&lt;br /&gt;
*** Position 2: Floppy disk&lt;br /&gt;
*** Position 3: Other generic removable block device&lt;br /&gt;
*** Position 4: Magneto-optical disk drives&lt;br /&gt;
*** Position 5: Seagate ST32430N Hawk HDD&lt;br /&gt;
*** Position 6: Sequential magnetic tape drives&lt;br /&gt;
*** Positions 7, 8, 9: Reserved&lt;br /&gt;
&lt;br /&gt;
== Activity LED ==&lt;br /&gt;
The Activity LED will flash normally during disk access, however, in certain specific failure modes or status changes, you will see it flashing with a pattern. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1 fast blink, at boot time:&#039;&#039;&#039; Image file loaded successfully&lt;br /&gt;
* &#039;&#039;&#039;3 fast blinks:&#039;&#039;&#039; No valid images found on SD card&lt;br /&gt;
* &#039;&#039;&#039;5 fast blinks:&#039;&#039;&#039; SD card is present, but is not responding&lt;br /&gt;
* &#039;&#039;&#039;Morse code pattern:&#039;&#039;&#039; Firmware crash. The particular pattern will indicate where the crash occurred. &lt;br /&gt;
** If a firmware crash occurs, it will also try to save information to the file &amp;lt;code&amp;gt;zuluerr.txt&amp;lt;/code&amp;gt; on the SD card.&lt;br /&gt;
&lt;br /&gt;
== SD Card Preparation and Use ==&lt;br /&gt;
Format your SD card with either the FAT32 or exFAT filesystems. If you intend to use an SD card larger than 4 GB in size, you &#039;&#039;must&#039;&#039; format the card using exFAT as the FAT32 filesystem cannot support individual files larger than 4 GB. The card can be of any size as long as the card has an SDHC or SDXC classification badge. There is no upper limit for how large the card is (the maximum size supported by the SDXC specification is 2 TB, for example) however, you may notice slowdowns on the device if you store large numbers of individual files of any size in any single folder.  &lt;br /&gt;
&lt;br /&gt;
The device &#039;&#039;will not read&#039;&#039; SD cards formatted using the GPT (GUID Partition Map) method. If you try to use a card formatted with this method, the Activity LED will blink 5 times with the card inserted, indicating that the card&#039;s presence is being detected, but that it is unresponsive.  &lt;br /&gt;
&lt;br /&gt;
To make use of your ZuluSCSI, place disk image files in the root folder of the SD card and name them based upon the device and SCSI ID you want them to occupy on the bus. Your filename should follow the format &amp;lt;code&amp;gt;xxy.img&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; is a two-character code representing the device to be emulated, and &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; is a number representing the SCSI ID number you intend the device to take, from 0 to 7.  &lt;br /&gt;
&lt;br /&gt;
If you&#039;re emulating other devices on the ZuluSCSI, use the following two-character prefixes for your images depending on the device you want it to be: &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;HD&amp;lt;/code&amp;gt;: Hard disk&lt;br /&gt;
* &amp;lt;code&amp;gt;CD&amp;lt;/code&amp;gt;: Optical drive&lt;br /&gt;
* &amp;lt;code&amp;gt;FD&amp;lt;/code&amp;gt;: Floppy disk&lt;br /&gt;
* &amp;lt;code&amp;gt;MO&amp;lt;/code&amp;gt;: Magneto-optical&lt;br /&gt;
* &amp;lt;code&amp;gt;RE&amp;lt;/code&amp;gt;: Generic removable device&lt;br /&gt;
* &amp;lt;code&amp;gt;TP&amp;lt;/code&amp;gt;: Sequential tape&lt;br /&gt;
* &amp;lt;code&amp;gt;ZP&amp;lt;/code&amp;gt;: Zip-100 or Zip-250 drive&lt;br /&gt;
&lt;br /&gt;
For example, if you want the ZuluSCSI to emulate a three-device system containing two hard disks at IDs 3 and 4 and a single optical drive at ID 6, copy your images over and name them &amp;lt;code&amp;gt;HD3.img&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;HD4.img&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;CD6.iso&amp;lt;/code&amp;gt; inside the root folder of the card. &lt;br /&gt;
&lt;br /&gt;
[[File:Info.png|frameless|32x32px]] Images can also be stored in folders, but will not be accessible by the device unless you name the folder appropriately. This is handy when you want to cycle images on a particular device, like floppy disks or CDs. &lt;br /&gt;
&lt;br /&gt;
== Updating the Firmware ==&lt;br /&gt;
New firmware releases can be obtained by visiting the [https://github.com/ZuluSCSI/ZuluSCSI-firmware/releases Github page] for the project. The most recent firmware will be listed at the top with a green &amp;quot;Latest&amp;quot; badge. You can update the firmware two different ways.&lt;br /&gt;
&lt;br /&gt;
==== Using the SD card ====&lt;br /&gt;
The ZuluSCSI can update itself when it&#039;s initially powered on. You&#039;ll need to have access to the device so you can remove its SD card. &lt;br /&gt;
&lt;br /&gt;
# Power down the system that the ZuluSCSI is attached to and remove its SD card.&lt;br /&gt;
# Attach the SD card to the computer where you&#039;ll download the update.&lt;br /&gt;
# From the [https://github.com/ZuluSCSI/ZuluSCSI-firmware/releases Github page], download the latest firmware file with a &#039;&#039;&#039;.BIN&#039;&#039;&#039; extension.&lt;br /&gt;
# Copy the downloaded &#039;&#039;&#039;.BIN&#039;&#039;&#039; file to the root folder of the SD card and rename it as &amp;lt;code&amp;gt;ZuluSCSI.bin&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Dismount the SD card from the computer, and reinsert the SD card into the ZuluSCSI.&lt;br /&gt;
# Power the system back on. The ZuluSCSI will automatically begin the firmware update process, which takes about one second. If the system has to boot to the ZuluSCSI and its startup is particularly quick, you may need to reset the computer once to allow the firmware update process to complete on the ZuluSCSI so it can become ready.&lt;br /&gt;
# When the firmware update process finishes, the ZuluSCSI will delete the update file and continue on to normal operation.&lt;br /&gt;
&lt;br /&gt;
==== Using the BOOTLDR button ====&lt;br /&gt;
[[File:Bootloader button.png|thumb|140x140px|BOOTLDR button]]&lt;br /&gt;
If you have physical access to the device and a way to plug the MicroUSB or USB-C port into a host computer, this is the traditional way to update RP2040 and RP2350B-based devices. &lt;br /&gt;
&lt;br /&gt;
# Power down the system the ZuluSCSI is attached to, and if necessary, unplug it from its cabling.&lt;br /&gt;
# From the [https://github.com/ZuluSCSI/ZuluSCSI-firmware/releases Github page], download the latest firmware file with a &#039;&#039;&#039;.UF2&#039;&#039;&#039; extension. &lt;br /&gt;
# Attach a MicroUSB cable to the device you&#039;ll be uploading the firmware from.&lt;br /&gt;
# While holding down the BOOTLDR button on the ZuluSCSI, attach the other end of the cable to the MicroUSB port on the ZuluSCSI. [[File:Firmware-update.png|thumb|Copy the UF2 file to the device.]]&lt;br /&gt;
# A Windows Explorer window may appear with a drive called &amp;lt;code&amp;gt;RPi-RP2&amp;lt;/code&amp;gt;. If it doesn&#039;t, open a Windows Explorer window and look for a drive with this name.&lt;br /&gt;
# Copy the &#039;&#039;&#039;.UF2&#039;&#039;&#039; file you downloaded to the root folder of the drive that appeared when you plugged in the ZuluSCSI.&lt;br /&gt;
# The &amp;lt;code&amp;gt;RPi-RP2&amp;lt;/code&amp;gt; window should close on its own once the copy completes. When the device disconnects on its own, the firmware update process is complete.&lt;br /&gt;
# Disconnect the USB cables and reattach the ZuluSCSI to its host, if you removed it in step 1. &lt;br /&gt;
&lt;br /&gt;
== Troubleshooting [[File:Warning.png|frameless|32x32px]] ==&lt;br /&gt;
Some simple things to check before you dive deeper:&lt;br /&gt;
&lt;br /&gt;
* Make sure that there are no devices contending for the same ID number on the bus. Typically, the host device on a system is identified as ID 7, so avoid using ID 7 where possible.&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=ZuluSCSI_Operations_Guide&amp;diff=108</id>
		<title>ZuluSCSI Operations Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=ZuluSCSI_Operations_Guide&amp;diff=108"/>
		<updated>2025-04-16T02:17:18Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= This page is still a work in progress. Sections marked with a [[File:Warning.png|frameless|32x32px]] icon are still in the process of being written. =&lt;br /&gt;
&lt;br /&gt;
== Setting Up Your ZuluSCSI ==&lt;br /&gt;
&lt;br /&gt;
=== Unboxing ===&lt;br /&gt;
When you first receive your ZuluSCSI, depending on the options you ordered, you should receive the following:&lt;br /&gt;
&lt;br /&gt;
* ZuluSCSI RP2040 Compact, ZuluSCSI Blaster, or ZuluSCSI 1.2 board&lt;br /&gt;
* Plastic board carrier&lt;br /&gt;
* 2x ¼&amp;quot; 4-40 screws&lt;br /&gt;
* microSD card or full-size SD card&lt;br /&gt;
* DAC board (ZuluSCSI Blaster only)&lt;br /&gt;
&lt;br /&gt;
== Board Overview ==&lt;br /&gt;
Take a moment to identify the various parts of the board as shown below, based on the type of board you have. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!ZuluSCSI RP2040 Compact&lt;br /&gt;
!ZuluSCSI Blaster RP2350B&lt;br /&gt;
!ZuluSCSI 1.2&lt;br /&gt;
|-&lt;br /&gt;
|[[File:ZSCSI compact labeled.png|frameless]]&lt;br /&gt;
|[[File:ZSCSI Blaster labeled.png|frameless]]&lt;br /&gt;
|[[File:ZSCSI1.2 Labeled.png|frameless]]&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;4-pin Molex floppy power connector:&#039;&#039;&#039; Run a standard Molex 4-pin power cable to this port. If your system power supply has only the larger style, get an adapter cable to switch it to the smaller size (the same size as that found on a 3½&amp;quot; floppy disk drive; see below).&lt;br /&gt;
* &#039;&#039;&#039;50-pin male IDC connector:&#039;&#039;&#039; Plug your SCSI bus cable into this. The connector is keyed, but some SCSI cables lack the key, so make sure that the red stripe on the cable lines up with the little arrow embossed into the connector itself.&lt;br /&gt;
* &#039;&#039;&#039;Activity LED:&#039;&#039;&#039; Flashes in sync with drive access, also used to indicate status conditions as described later&lt;br /&gt;
* &#039;&#039;&#039;Eject button:&#039;&#039;&#039; Performs a hardware eject for optical drives. Some operating systems will need this after dismounting an image from the system to register that the drive door is closed.&lt;br /&gt;
* &#039;&#039;&#039;BOOTLDR button:&#039;&#039;&#039; Used in the firmware flashing process; see below.&lt;br /&gt;
* &#039;&#039;&#039;USER button:&#039;&#039;&#039; Reserved for future use.&lt;br /&gt;
* &#039;&#039;&#039;Termination and Initiator jumpers (Compact only):&#039;&#039;&#039; Populate these footprints with standard 0.1&amp;quot; header, solder them down, and then use a standard jumper cap to switch on the ZuluSCSI Compact&#039;s termination capabilities or enable initiator mode.&lt;br /&gt;
* &#039;&#039;&#039;DIP Switch Block (ZuluSCSI Blaster only):&#039;&#039;&#039; Used to enable initiator mode, termination, or debug mode.&lt;br /&gt;
* &#039;&#039;&#039;I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;S Accessory Header (ZuluSCSI Blaster only):&#039;&#039;&#039; If you purchased the optional I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;S DAC for CD audio capability, insert it here. &lt;br /&gt;
* &#039;&#039;&#039;Device type selector switch (ZuluSCSI 1.2 only):&#039;&#039;&#039; Use this rotary switch to select the type of device the ZuluSCSI is meant to emulate here. This switch is only active when switch 2 on the Settings DIP switch block is set to &#039;&#039;&#039;off.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SCSI ID Dip Switch (ZuluSCSI 1.2 only):&#039;&#039;&#039; Use this set of switches to set the device&#039;s SCSI ID.&lt;br /&gt;
* &#039;&#039;&#039;Device Settings Switch block (ZuluSCSI 1.2 only):&#039;&#039;&#039; Use these switches to control termination, debug mode, &amp;quot;quirks&amp;quot; mode (for some Macintosh devices) and whether the entirety of the SD card is exposed as a single block device, or whether the device reads the SD card for image files and emulates multiple devices dependent on filename (as with other ZuluSCSI devices). &lt;br /&gt;
&lt;br /&gt;
== Molex power connector ==&lt;br /&gt;
Make sure that your power connection uses a &#039;&#039;&#039;3½&amp;quot; floppy power connector,&#039;&#039;&#039; not the larger drive connector used on full-size optical drives, hard drives, and the like. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector.png|frameless|135x135px]]&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector.png|frameless|117x117px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |✅ 3½&amp;quot; connector&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |❌ 5¼&amp;quot; connector&lt;br /&gt;
|}&lt;br /&gt;
If your host system only has the 5¼&amp;quot; connectors, you&#039;ll need to either purchase or make an adapter cable. Making an adapter cable requires the following parts:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;4× 5¼ male pins:&#039;&#039;&#039; TE Connectivity P/N 60620-1&lt;br /&gt;
* &#039;&#039;&#039;1× 5¼ male housing:&#039;&#039;&#039; TE Connectivity P/N 1-480426-0&lt;br /&gt;
* &#039;&#039;&#039;4× 3½ female sockets:&#039;&#039;&#039; TE Connectivity P/N 170262-1&lt;br /&gt;
* &#039;&#039;&#039;1× 3½ female housing:&#039;&#039;&#039; TE Connectivity P/N 171822-4&lt;br /&gt;
&lt;br /&gt;
When making the cables, use 20-gauge wire. If you&#039;re crimping a splitter cable, it&#039;s also possible to use 18-gauge wire on the 5¼ side going to the female plug, and then crimp the larger wire going into the male splitter side together with 22 or 24-gauge wire going to the 3½ side. Crimping the cables can be done with standard tools found on Amazon, such as the IWISS SN-025. &lt;br /&gt;
&lt;br /&gt;
== DIP Switch Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== ZuluSCSI Blaster or ZuluSCSI RP2040 Compact ===&lt;br /&gt;
* &#039;&#039;&#039;Switch 1:&#039;&#039;&#039; Turn Initiator mode on or off. &lt;br /&gt;
** On the RP2040 Compact, this is controlled by the jumper at &amp;lt;code&amp;gt;J310&amp;lt;/code&amp;gt; on the board in the lower right.&lt;br /&gt;
* &#039;&#039;&#039;Switch 2:&#039;&#039;&#039; Debug log disable/enable. If this switch is ON, the device will automatically write out a detailed debug log to &amp;lt;code&amp;gt;zululog.txt&amp;lt;/code&amp;gt; on the SD card as long as the device is powered on. Additionally, if you have a USB cable plugged into the port on the device with this switch on, it will also print the debug log over the cable via the microcontroller&#039;s internal serial connection. &lt;br /&gt;
** On the RP2040 Compact, this is controlled by setting &amp;lt;code&amp;gt;Debug = 1&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;zuluscsi.ini&amp;lt;/code&amp;gt; file on the SD card itself. &lt;br /&gt;
* &#039;&#039;&#039;Switch 3:&#039;&#039;&#039; Enable or disable SCSI termination as needed.&lt;br /&gt;
** On the RP2040 Compact, this is controlled by the jumper at &amp;lt;code&amp;gt;J311&amp;lt;/code&amp;gt; in the center of the board. &lt;br /&gt;
&lt;br /&gt;
=== ZuluSCSI 1.2 ===&lt;br /&gt;
If you have a ZuluSCSI 1.2, the block of &#039;&#039;&#039;four&#039;&#039;&#039; DIP switches at &amp;lt;code&amp;gt;SW301&amp;lt;/code&amp;gt; control various aspects of how the device responds in the system:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch 1:&#039;&#039;&#039; Toggle Macintosh &amp;quot;Quirks&amp;quot; mode. On some legacy Macs, it helps if the device responds with specific things when the system calls upon it during a fresh installation. If your Mac responds erratically or doesn&#039;t behave properly with the device in the system, try turning this switch ON before anything else.&lt;br /&gt;
* &#039;&#039;&#039;Switch 2:&#039;&#039;&#039; Direct/Raw mode vs. standard mode. If this switch is left in its default OFF position, then the entire SD card is exposed to the system as a single block device and allows your SCSI interface card to manage it, based on the settings of &amp;lt;code&amp;gt;SW403&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SW404&amp;lt;/code&amp;gt;. &lt;br /&gt;
** The block of &#039;&#039;&#039;three&#039;&#039;&#039; DIP switches at &amp;lt;code&amp;gt;SW403&amp;lt;/code&amp;gt; are used for setting your SCSI ID. If all three switches are off, the board&#039;s SCSI ID is 0. Turn switch 1 on to add 1 to the device ID, switch 2 to add 2, and switch 3 to add 4. If all three are on, the SCSI ID is 7.&lt;br /&gt;
** The rotary switch at &amp;lt;code&amp;gt;SW404&amp;lt;/code&amp;gt; controls how the ZuluSCSI responds to your SCSI interface card when it queries it. Each position on the switch causes it to respond as a different device and will register differently:&lt;br /&gt;
*** Position 0 (straight up): Hard disk&lt;br /&gt;
*** Position 1: Optical drive&lt;br /&gt;
*** Position 2: Floppy disk&lt;br /&gt;
*** Position 3: Other generic removable block device&lt;br /&gt;
*** Position 4: Magneto-optical disk drives&lt;br /&gt;
*** Position 5: Seagate ST32430N Hawk HDD&lt;br /&gt;
*** Position 6: Sequential magnetic tape drives&lt;br /&gt;
*** Positions 7, 8, 9: Reserved&lt;br /&gt;
&lt;br /&gt;
== Activity LED ==&lt;br /&gt;
The Activity LED will flash normally during disk access, however, in certain specific failure modes or status changes, you will see it flashing with a pattern. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1 fast blink, at boot time:&#039;&#039;&#039; Image file loaded successfully&lt;br /&gt;
* &#039;&#039;&#039;3 fast blinks:&#039;&#039;&#039; No valid images found on SD card&lt;br /&gt;
* &#039;&#039;&#039;5 fast blinks:&#039;&#039;&#039; SD card is present, but is not responding&lt;br /&gt;
* &#039;&#039;&#039;Morse code pattern:&#039;&#039;&#039; Firmware crash. The particular pattern will indicate where the crash occurred. &lt;br /&gt;
** If a firmware crash occurs, it will also try to save information to the file &amp;lt;code&amp;gt;zuluerr.txt&amp;lt;/code&amp;gt; on the SD card.&lt;br /&gt;
&lt;br /&gt;
== SD Card Preparation and Use ==&lt;br /&gt;
Format your SD card with either the FAT32 or exFAT filesystems. If you intend to use an SD card larger than 4 GB in size, you &#039;&#039;must&#039;&#039; format the card using exFAT as the FAT32 filesystem cannot support individual files larger than 4 GB. The card can be of any size as long as the card has an SDHC or SDXC classification badge. There is no upper limit for how large the card is (the maximum size supported by the SDXC specification is 2 TB, for example) however, you may notice slowdowns on the device if you store large numbers of individual files of any size in any single folder.  &lt;br /&gt;
&lt;br /&gt;
The device &#039;&#039;will not read&#039;&#039; SD cards formatted using the GPT (GUID Partition Map) method. If you try to use a card formatted with this method, the Activity LED will blink 5 times with the card inserted, indicating that the card&#039;s presence is being detected, but that it is unresponsive.  &lt;br /&gt;
&lt;br /&gt;
To make use of your ZuluSCSI, place disk image files in the root folder of the SD card and name them based upon the device and SCSI ID you want them to occupy on the bus. Your filename should follow the format &amp;lt;code&amp;gt;xxy.img&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; is a two-character code representing the device to be emulated, and &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; is a number representing the SCSI ID number you intend the device to take, from 0 to 7.  &lt;br /&gt;
&lt;br /&gt;
If you&#039;re emulating other devices on the ZuluSCSI, use the following two-character prefixes for your images depending on the device you want it to be: &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;HD&amp;lt;/code&amp;gt;: Hard disk&lt;br /&gt;
* &amp;lt;code&amp;gt;CD&amp;lt;/code&amp;gt;: Optical drive&lt;br /&gt;
* &amp;lt;code&amp;gt;FD&amp;lt;/code&amp;gt;: Floppy disk&lt;br /&gt;
* &amp;lt;code&amp;gt;MO&amp;lt;/code&amp;gt;: Magneto-optical&lt;br /&gt;
* &amp;lt;code&amp;gt;RE&amp;lt;/code&amp;gt;: Generic removable device&lt;br /&gt;
* &amp;lt;code&amp;gt;TP&amp;lt;/code&amp;gt;: Sequential tape&lt;br /&gt;
* &amp;lt;code&amp;gt;ZP&amp;lt;/code&amp;gt;: Zip-100 or Zip-250 drive&lt;br /&gt;
&lt;br /&gt;
For example, if you want the ZuluSCSI to emulate a three-device system containing two hard disks at IDs 3 and 4 and a single optical drive at ID 6, copy your images over and name them &amp;lt;code&amp;gt;HD3.img&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;HD4.img&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;CD6.iso&amp;lt;/code&amp;gt; inside the root folder of the card. &lt;br /&gt;
&lt;br /&gt;
[[File:Info.png|frameless|32x32px]] Images can also be stored in folders, but will not be accessible by the device unless you name the folder appropriately. This is handy when you want to cycle images on a particular device, like floppy disks or CDs. &lt;br /&gt;
&lt;br /&gt;
== Updating the Firmware ==&lt;br /&gt;
New firmware releases can be obtained by visiting the [https://github.com/ZuluSCSI/ZuluSCSI-firmware/releases Github page] for the project. The most recent firmware will be listed at the top with a green &amp;quot;Latest&amp;quot; badge. You can update the firmware two different ways.&lt;br /&gt;
&lt;br /&gt;
==== Using the SD card ====&lt;br /&gt;
The ZuluSCSI can update itself when it&#039;s initially powered on. You&#039;ll need to have access to the device so you can remove its SD card. &lt;br /&gt;
&lt;br /&gt;
# Power down the system that the ZuluSCSI is attached to and remove its SD card.&lt;br /&gt;
# Attach the SD card to the computer where you&#039;ll download the update.&lt;br /&gt;
# From the [https://github.com/ZuluSCSI/ZuluSCSI-firmware/releases Github page], download the latest firmware file with a &#039;&#039;&#039;.BIN&#039;&#039;&#039; extension.&lt;br /&gt;
# Copy the downloaded &#039;&#039;&#039;.BIN&#039;&#039;&#039; file to the root folder of the SD card and rename it as &amp;lt;code&amp;gt;ZuluSCSI.bin&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Dismount the SD card from the computer, and reinsert the SD card into the ZuluSCSI.&lt;br /&gt;
# Power the system back on. The ZuluSCSI will automatically begin the firmware update process, which takes about one second. If the system has to boot to the ZuluSCSI and its startup is particularly quick, you may need to reset the computer once to allow the firmware update process to complete on the ZuluSCSI so it can become ready.&lt;br /&gt;
# When the firmware update process finishes, the ZuluSCSI will delete the update file and continue on to normal operation.&lt;br /&gt;
&lt;br /&gt;
==== Using the BOOTLDR button ====&lt;br /&gt;
[[File:Bootloader button.png|thumb|140x140px|BOOTLDR button]]&lt;br /&gt;
If you have physical access to the device and a way to plug the MicroUSB or USB-C port into a host computer, this is the traditional way to update RP2040 and RP2350B-based devices. &lt;br /&gt;
&lt;br /&gt;
# Power down the system the ZuluSCSI is attached to, and if necessary, unplug it from its cabling.&lt;br /&gt;
# From the [https://github.com/ZuluSCSI/ZuluSCSI-firmware/releases Github page], download the latest firmware file with a &#039;&#039;&#039;.UF2&#039;&#039;&#039; extension. &lt;br /&gt;
# Attach a MicroUSB cable to the device you&#039;ll be uploading the firmware from.&lt;br /&gt;
# While holding down the BOOTLDR button on the ZuluSCSI, attach the other end of the cable to the MicroUSB port on the ZuluSCSI. [[File:Firmware-update.png|thumb|Copy the UF2 file to the device.]]&lt;br /&gt;
# A Windows Explorer window may appear with a drive called &amp;lt;code&amp;gt;RPi-RP2&amp;lt;/code&amp;gt;. If it doesn&#039;t, open a Windows Explorer window and look for a drive with this name.&lt;br /&gt;
# Copy the &#039;&#039;&#039;.UF2&#039;&#039;&#039; file you downloaded to the root folder of the drive that appeared when you plugged in the ZuluSCSI.&lt;br /&gt;
# The &amp;lt;code&amp;gt;RPi-RP2&amp;lt;/code&amp;gt; window should close on its own once the copy completes. When the device disconnects on its own, the firmware update process is complete.&lt;br /&gt;
# Disconnect the USB cables and reattach the ZuluSCSI to its host, if you removed it in step 1. &lt;br /&gt;
&lt;br /&gt;
== Troubleshooting [[File:Warning.png|frameless|32x32px]] ==&lt;br /&gt;
Some simple things to check before you dive deeper:&lt;br /&gt;
&lt;br /&gt;
* Make sure that there are no devices contending for the same ID number on the bus. Typically, the host device on a system is identified as ID 7, so avoid using ID 7 where possible.&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=ZuluSCSI_Operations_Guide&amp;diff=107</id>
		<title>ZuluSCSI Operations Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=ZuluSCSI_Operations_Guide&amp;diff=107"/>
		<updated>2025-04-16T01:51:18Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= This page is still a work in progress. Sections marked with a [[File:Warning.png|frameless|32x32px]] icon are still in the process of being written. =&lt;br /&gt;
&lt;br /&gt;
== Setting Up Your ZuluSCSI ==&lt;br /&gt;
&lt;br /&gt;
=== Unboxing ===&lt;br /&gt;
When you first receive your ZuluSCSI, depending on the options you ordered, you should receive the following:&lt;br /&gt;
&lt;br /&gt;
* ZuluSCSI RP2040 Compact, ZuluSCSI Blaster, or ZuluSCSI 1.2 board&lt;br /&gt;
* Plastic board carrier&lt;br /&gt;
* 2x ¼&amp;quot; 4-40 screws&lt;br /&gt;
* microSD card or full-size SD card&lt;br /&gt;
* DAC board (ZuluSCSI Blaster only)&lt;br /&gt;
&lt;br /&gt;
== Board Overview ==&lt;br /&gt;
Take a moment to identify the various parts of the board as shown below, based on the type of board you have. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!ZuluSCSI RP2040 Compact&lt;br /&gt;
!ZuluSCSI Blaster RP2350B&lt;br /&gt;
!ZuluSCSI 1.2&lt;br /&gt;
|-&lt;br /&gt;
|[[File:ZSCSI compact labeled.png|frameless]]&lt;br /&gt;
|[[File:ZSCSI Blaster labeled.png|frameless]]&lt;br /&gt;
|[[File:ZSCSI1.2 Labeled.png|frameless]]&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;4-pin Molex floppy power connector:&#039;&#039;&#039; Run a standard Molex 4-pin power cable to this port. If your system power supply has only the larger style, get an adapter cable to switch it to the smaller size (the same size as that found on a 3½&amp;quot; floppy disk drive; see below).&lt;br /&gt;
* &#039;&#039;&#039;50-pin male IDC connector:&#039;&#039;&#039; Plug your SCSI bus cable into this. The connector is keyed, but some SCSI cables lack the key, so make sure that the red stripe on the cable lines up with the little arrow embossed into the connector itself.&lt;br /&gt;
* &#039;&#039;&#039;Activity LED:&#039;&#039;&#039; Flashes in sync with drive access, also used to indicate status conditions as described later&lt;br /&gt;
* &#039;&#039;&#039;Eject button:&#039;&#039;&#039; Performs a hardware eject for optical drives. Some operating systems will need this after dismounting an image from the system to register that the drive door is closed.&lt;br /&gt;
* &#039;&#039;&#039;BOOTLDR button:&#039;&#039;&#039; Used in the firmware flashing process; see below.&lt;br /&gt;
* &#039;&#039;&#039;USER button:&#039;&#039;&#039; Reserved for future use.&lt;br /&gt;
* &#039;&#039;&#039;Termination and Initiator jumpers (Compact only):&#039;&#039;&#039; Populate these footprints with standard 0.1&amp;quot; header, solder them down, and then use a standard jumper cap to switch on the ZuluSCSI Compact&#039;s termination capabilities or enable initiator mode.&lt;br /&gt;
* &#039;&#039;&#039;DIP Switch Block (ZuluSCSI Blaster only):&#039;&#039;&#039; Used to enable initiator mode, termination, or debug mode.&lt;br /&gt;
* &#039;&#039;&#039;I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;S Accessory Header (ZuluSCSI Blaster only):&#039;&#039;&#039; If you purchased the optional I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;S DAC for CD audio capability, insert it here. &lt;br /&gt;
* &#039;&#039;&#039;Device type selector switch (ZuluSCSI 1.2 only):&#039;&#039;&#039; Use this rotary switch to select the type of device the ZuluSCSI is meant to emulate here. This switch is only active when switch 2 on the Settings DIP switch block is set to &#039;&#039;&#039;off.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SCSI ID Dip Switch (ZuluSCSI 1.2 only):&#039;&#039;&#039; Use this set of switches to set the device&#039;s SCSI ID.&lt;br /&gt;
* &#039;&#039;&#039;Device Settings Switch block (ZuluSCSI 1.2 only):&#039;&#039;&#039; Use these switches to control termination, debug mode, &amp;quot;quirks&amp;quot; mode (for some Macintosh devices) and whether the entirety of the SD card is exposed as a single block device, or whether the device reads the SD card for image files and emulates multiple devices dependent on filename (as with other ZuluSCSI devices). &lt;br /&gt;
&lt;br /&gt;
== Molex power connector ==&lt;br /&gt;
Make sure that your power connection uses a &#039;&#039;&#039;3½&amp;quot; floppy power connector,&#039;&#039;&#039; not the larger drive connector used on full-size optical drives, hard drives, and the like. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector.png|frameless|135x135px]]&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector.png|frameless|117x117px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |✅ 3½&amp;quot; connector&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |❌ 5¼&amp;quot; connector&lt;br /&gt;
|}&lt;br /&gt;
If your host system only has the 5¼&amp;quot; connectors, you&#039;ll need to either purchase or make an adapter cable. Making an adapter cable requires the following parts:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;4× 5¼ male pins:&#039;&#039;&#039; TE Connectivity P/N 60620-1&lt;br /&gt;
* &#039;&#039;&#039;1× 5¼ male housing:&#039;&#039;&#039; TE Connectivity P/N 1-480426-0&lt;br /&gt;
* &#039;&#039;&#039;4× 3½ female sockets:&#039;&#039;&#039; TE Connectivity P/N 170262-1&lt;br /&gt;
* &#039;&#039;&#039;1× 3½ female housing:&#039;&#039;&#039; TE Connectivity P/N 171822-4&lt;br /&gt;
&lt;br /&gt;
When making the cables, use 20-gauge wire. If you&#039;re crimping a splitter cable, it&#039;s also possible to use 18-gauge wire on the 5¼ side going to the female plug, and then crimp the larger wire going into the male splitter side together with 22 or 24-gauge wire going to the 3½ side. Crimping the cables can be done with standard tools found on Amazon, such as the IWISS SN-025. &lt;br /&gt;
&lt;br /&gt;
== DIP Switch Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== ZuluSCSI Blaster or ZuluSCSI RP2040 Compact ===&lt;br /&gt;
* &#039;&#039;&#039;Switch 1:&#039;&#039;&#039; Turn Initiator mode on or off. &lt;br /&gt;
** On the RP2040 Compact, this is controlled by the jumper at &amp;lt;code&amp;gt;J310&amp;lt;/code&amp;gt; on the board in the lower right.&lt;br /&gt;
* &#039;&#039;&#039;Switch 2:&#039;&#039;&#039; Debug log disable/enable. If this switch is ON, the device will automatically write out a detailed debug log to &amp;lt;code&amp;gt;zululog.txt&amp;lt;/code&amp;gt; on the SD card as long as the device is powered on. Additionally, if you have a USB cable plugged into the port on the device with this switch on, it will also print the debug log over the cable via the microcontroller&#039;s internal serial connection. &lt;br /&gt;
** On the RP2040 Compact, this is controlled by setting &amp;lt;code&amp;gt;Debug = 1&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;zuluscsi.ini&amp;lt;/code&amp;gt; file on the SD card itself. &lt;br /&gt;
* &#039;&#039;&#039;Switch 3:&#039;&#039;&#039; Enable or disable SCSI termination as needed.&lt;br /&gt;
** On the RP2040 Compact, this is controlled by the jumper at &amp;lt;code&amp;gt;J311&amp;lt;/code&amp;gt; in the center of the board. &lt;br /&gt;
&lt;br /&gt;
=== ZuluSCSI 1.2 ===&lt;br /&gt;
If you have a ZuluSCSI 1.2, the block of &#039;&#039;&#039;four&#039;&#039;&#039; DIP switches at &amp;lt;code&amp;gt;SW301&amp;lt;/code&amp;gt; control various aspects of how the device responds in the system:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch 1:&#039;&#039;&#039; Toggle Macintosh &amp;quot;Quirks&amp;quot; mode. On some legacy Macs, it helps if the device responds with specific things when the system calls upon it during a fresh installation. If your Mac responds erratically or doesn&#039;t behave properly with the device in the system, try turning this switch ON before anything else.&lt;br /&gt;
* &#039;&#039;&#039;Switch 2:&#039;&#039;&#039; Direct/Raw mode vs. standard mode. If this switch is left in its default OFF position, then the entire SD card is exposed to the system as a single block device and allows your SCSI interface card to manage it, based on the settings of &amp;lt;code&amp;gt;SW403&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SW404&amp;lt;/code&amp;gt;. &lt;br /&gt;
** The block of &#039;&#039;&#039;three&#039;&#039;&#039; DIP switches at &amp;lt;code&amp;gt;SW403&amp;lt;/code&amp;gt; are used for setting your SCSI ID. If all three switches are off, the board&#039;s SCSI ID is 0. Turn switch 1 on to add 1 to the device ID, switch 2 to add 2, and switch 3 to add 4. If all three are on, the SCSI ID is 7.&lt;br /&gt;
** The rotary switch at &amp;lt;code&amp;gt;SW404&amp;lt;/code&amp;gt; controls how the ZuluSCSI responds to your SCSI interface card when it queries it. Each position on the switch causes it to respond as a different device and will register differently:&lt;br /&gt;
*** Position 0 (straight up): Hard disk&lt;br /&gt;
*** Position 1: Optical drive&lt;br /&gt;
*** Position 2: Floppy disk&lt;br /&gt;
*** Position 3: Other generic removable block device&lt;br /&gt;
*** Position 4: Magneto-optical disk drives&lt;br /&gt;
*** Position 5: Seagate ST32430N Hawk HDD&lt;br /&gt;
*** Position 6: Sequential magnetic tape drives&lt;br /&gt;
*** Positions 7, 8, 9: Reserved&lt;br /&gt;
&lt;br /&gt;
== Activity LED ==&lt;br /&gt;
The Activity LED will flash normally during disk access, however, in certain specific failure modes or status changes, you will see it flashing with a pattern. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1 fast blink, at boot time:&#039;&#039;&#039; Image file loaded successfully&lt;br /&gt;
* &#039;&#039;&#039;3 fast blinks:&#039;&#039;&#039; No valid images found on SD card&lt;br /&gt;
* &#039;&#039;&#039;5 fast blinks:&#039;&#039;&#039; SD card is present, but is not responding&lt;br /&gt;
* &#039;&#039;&#039;Morse code pattern:&#039;&#039;&#039; Firmware crash. The particular pattern will indicate where the crash occurred. &lt;br /&gt;
** If a firmware crash occurs, it will also try to save information to the file &amp;lt;code&amp;gt;zuluerr.txt&amp;lt;/code&amp;gt; on the SD card.&lt;br /&gt;
&lt;br /&gt;
== SD Card Preparation and Use ==&lt;br /&gt;
Format your SD card with either the FAT32 or exFAT filesystems. If you intend to use an SD card larger than 4 GB in size, you &#039;&#039;must&#039;&#039; format the card using exFAT as the FAT32 filesystem cannot support individual files larger than 4 GB. The card can be of any size as long as the card has an SDHC or SDXC classification badge. There is no upper limit for how large the card is (the maximum size supported by the SDXC specification is 2 TB, for example) however, you may notice slowdowns on the device if you store large numbers of individual files of any size in any single folder.  &lt;br /&gt;
&lt;br /&gt;
The device &#039;&#039;will not read&#039;&#039; SD cards formatted using the GPT (GUID Partition Map) method. If you try to use a card formatted with this method, the Activity LED will blink 5 times with the card inserted, indicating that the card&#039;s presence is being detected, but that it is unresponsive.  &lt;br /&gt;
&lt;br /&gt;
To make use of your ZuluSCSI, place disk image files in the root folder of the SD card and name them based upon the device and SCSI ID you want them to occupy on the bus. Your filename should follow the format &amp;lt;code&amp;gt;xxy.img&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; is a two-character code representing the device to be emulated, and &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; is a number representing the SCSI ID number you intend the device to take, from 0 to 7.  &lt;br /&gt;
&lt;br /&gt;
If you&#039;re emulating other devices on the ZuluSCSI, use the following two-character prefixes for your images depending on the device you want it to be: &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;HD&amp;lt;/code&amp;gt;: Hard disk&lt;br /&gt;
* &amp;lt;code&amp;gt;CD&amp;lt;/code&amp;gt;: Optical drive&lt;br /&gt;
* &amp;lt;code&amp;gt;FD&amp;lt;/code&amp;gt;: Floppy disk&lt;br /&gt;
* &amp;lt;code&amp;gt;MO&amp;lt;/code&amp;gt;: Magneto-optical&lt;br /&gt;
* &amp;lt;code&amp;gt;RE&amp;lt;/code&amp;gt;: Generic removable device&lt;br /&gt;
* &amp;lt;code&amp;gt;TP&amp;lt;/code&amp;gt;: Sequential tape&lt;br /&gt;
* &amp;lt;code&amp;gt;ZP&amp;lt;/code&amp;gt;: Zip-100 or Zip-250 drive&lt;br /&gt;
&lt;br /&gt;
For example, if you want the ZuluSCSI to emulate a three-device system containing two hard disks at IDs 3 and 4 and a single optical drive at ID 6, copy your images over and name them &amp;lt;code&amp;gt;HD3.img&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;HD4.img&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;CD6.iso&amp;lt;/code&amp;gt; inside the root folder of the card. &lt;br /&gt;
&lt;br /&gt;
[[File:Info.png|frameless|32x32px]] Images can also be stored in folders, but will not be accessible by the device unless you name the folder appropriately. This is handy when you want to cycle images on a particular device, like floppy disks or CDs. &lt;br /&gt;
&lt;br /&gt;
== Updating the Firmware ==&lt;br /&gt;
New firmware releases can be obtained by visiting the [https://github.com/ZuluSCSI/ZuluSCSI-firmware/releases Github page] for the project. The most recent firmware will be listed at the top with a green &amp;quot;Latest&amp;quot; badge. You can update the firmware two different ways.&lt;br /&gt;
&lt;br /&gt;
==== Using the SD card ====&lt;br /&gt;
The ZuluSCSI can update itself when it&#039;s initially powered on. You&#039;ll need to have access to the device so you can remove its SD card. &lt;br /&gt;
&lt;br /&gt;
# Power down the system that the ZuluSCSI is attached to and remove its SD card.&lt;br /&gt;
# Attach the SD card to the computer where you&#039;ll download the update.&lt;br /&gt;
# From the [https://github.com/ZuluSCSI/ZuluSCSI-firmware/releases Github page], download the latest firmware file with a &#039;&#039;&#039;.BIN&#039;&#039;&#039; extension.&lt;br /&gt;
# Copy the downloaded &#039;&#039;&#039;.BIN&#039;&#039;&#039; file to the root folder of the SD card and rename it as &amp;lt;code&amp;gt;ZuluSCSI.bin&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Dismount the SD card from the computer, and reinsert the SD card into the ZuluSCSI.&lt;br /&gt;
# Power the system back on. The ZuluSCSI will automatically begin the firmware update process, which takes about one second. If the system has to boot to the ZuluSCSI and its startup is particularly quick, you may need to reset the computer once to allow the firmware update process to complete on the ZuluSCSI so it can become ready.&lt;br /&gt;
# When the firmware update process finishes, the ZuluSCSI will delete the update file and continue on to normal operation.&lt;br /&gt;
&lt;br /&gt;
==== Using the BOOTLDR button ====&lt;br /&gt;
[[File:Bootloader button.png|thumb|140x140px|BOOTLDR button]]&lt;br /&gt;
If you have physical access to the device and a way to plug the MicroUSB or USB-C port into a host computer, this is the traditional way to update RP2040 and RP2350B-based devices. &lt;br /&gt;
&lt;br /&gt;
# Power down the system the ZuluSCSI is attached to, and if necessary, unplug it from its cabling.&lt;br /&gt;
# From the [https://github.com/ZuluSCSI/ZuluSCSI-firmware/releases Github page], download the latest firmware file with a &#039;&#039;&#039;.UF2&#039;&#039;&#039; extension. &lt;br /&gt;
# Attach a MicroUSB cable to the device you&#039;ll be uploading the firmware from.&lt;br /&gt;
# While holding down the BOOTLDR button on the ZuluSCSI, attach the other end of the cable to the MicroUSB port on the ZuluSCSI. [[File:Firmware-update.png|thumb|Copy the UF2 file to the device.]]&lt;br /&gt;
# A Windows Explorer window may appear with a drive called &amp;lt;code&amp;gt;RPi-RP2&amp;lt;/code&amp;gt;. If it doesn&#039;t, open a Windows Explorer window and look for a drive with this name.&lt;br /&gt;
# Copy the &#039;&#039;&#039;.UF2&#039;&#039;&#039; file you downloaded to the root folder of the drive that appeared when you plugged in the ZuluSCSI.&lt;br /&gt;
# The &amp;lt;code&amp;gt;RPi-RP2&amp;lt;/code&amp;gt; window should close on its own once the copy completes. When the device disconnects on its own, the firmware update process is complete.&lt;br /&gt;
# Disconnect the USB cables and reattach the ZuluSCSI to its host, if you removed it in step 1. &lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
Some simple things to check before you dive deeper:&lt;br /&gt;
&lt;br /&gt;
* Make sure that there are no devices contending for the same ID number on the bus. Typically,&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Info.png&amp;diff=106</id>
		<title>File:Info.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Info.png&amp;diff=106"/>
		<updated>2025-04-16T01:04:53Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;info&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=ZuluSCSI_Operations_Guide&amp;diff=105</id>
		<title>ZuluSCSI Operations Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=ZuluSCSI_Operations_Guide&amp;diff=105"/>
		<updated>2025-04-16T00:05:43Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: Updating documentation for ZSCSI Blaster&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= This page is still a work in progress. Sections marked with a [[File:Warning.png|frameless|32x32px]] icon are still in the process of being written. =&lt;br /&gt;
&lt;br /&gt;
== Setting Up Your ZuluSCSI ==&lt;br /&gt;
&lt;br /&gt;
=== Unboxing ===&lt;br /&gt;
When you first receive your ZuluSCSI, depending on the options you ordered, you should receive the following:&lt;br /&gt;
&lt;br /&gt;
* ZuluSCSI RP2040 Compact, ZuluSCSI Blaster, or ZuluSCSI 1.2 board&lt;br /&gt;
* Plastic board carrier&lt;br /&gt;
* 2x ¼&amp;quot; 4-40 screws&lt;br /&gt;
* microSD card or full-size SD card&lt;br /&gt;
* DAC board (ZuluSCSI Blaster only)&lt;br /&gt;
&lt;br /&gt;
== Board Overview ==&lt;br /&gt;
Take a moment to identify the various parts of the board as shown below, based on the type of board you have. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!ZuluSCSI RP2040 Compact&lt;br /&gt;
!ZuluSCSI Blaster RP2350B&lt;br /&gt;
!ZuluSCSI 1.2&lt;br /&gt;
|-&lt;br /&gt;
|[[File:ZSCSI compact labeled.png|frameless]]&lt;br /&gt;
|[[File:ZSCSI Blaster labeled.png|frameless]]&lt;br /&gt;
|[[File:ZSCSI1.2 Labeled.png|frameless]]&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;4-pin Molex floppy power connector:&#039;&#039;&#039; Run a standard Molex 4-pin power cable to this port. If your system power supply has only the larger style, get an adapter cable to switch it to the smaller size (the same size as that found on a 3½&amp;quot; floppy disk drive; see below).&lt;br /&gt;
* &#039;&#039;&#039;50-pin male IDC connector:&#039;&#039;&#039; Plug your SCSI bus cable into this. The connector is keyed, but some SCSI cables lack the key, so make sure that the red stripe on the cable lines up with the little arrow embossed into the connector itself.&lt;br /&gt;
* &#039;&#039;&#039;Activity LED:&#039;&#039;&#039; Flashes in sync with drive access, also used to indicate status conditions as described later&lt;br /&gt;
* &#039;&#039;&#039;Eject button:&#039;&#039;&#039; Performs a hardware eject for optical drives. Some operating systems will need this after dismounting an image from the system to register that the drive door is closed.&lt;br /&gt;
* &#039;&#039;&#039;BOOTLDR button:&#039;&#039;&#039; Used in the firmware flashing process; see below.&lt;br /&gt;
* &#039;&#039;&#039;USER button:&#039;&#039;&#039; Reserved for future use.&lt;br /&gt;
* &#039;&#039;&#039;Termination and Initiator jumpers (Compact only):&#039;&#039;&#039; Populate these footprints with standard 0.1&amp;quot; header, solder them down, and then use a standard jumper cap to switch on the ZuluSCSI Compact&#039;s termination capabilities or enable initiator mode.&lt;br /&gt;
* &#039;&#039;&#039;DIP Switch Block (ZuluSCSI Blaster only):&#039;&#039;&#039; Used to enable initiator mode, termination, or debug mode.&lt;br /&gt;
* &#039;&#039;&#039;I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;S Accessory Header (ZuluSCSI Blaster only):&#039;&#039;&#039; If you purchased the optional I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;S DAC for CD audio capability, insert it here. &lt;br /&gt;
* &#039;&#039;&#039;Device type selector switch (ZuluSCSI 1.2 only):&#039;&#039;&#039; Use this rotary switch to select the type of device the ZuluSCSI is meant to emulate here. This switch is only active when switch 2 on the Settings DIP switch block is set to &#039;&#039;&#039;off.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SCSI ID Dip Switch (ZuluSCSI 1.2 only):&#039;&#039;&#039; Use this set of switches to set the device&#039;s SCSI ID.&lt;br /&gt;
* &#039;&#039;&#039;Device Settings Switch block (ZuluSCSI 1.2 only):&#039;&#039;&#039; Use these switches to control termination, debug mode, &amp;quot;quirks&amp;quot; mode (for some Macintosh devices) and whether the entirety of the SD card is exposed as a single block device, or whether the device reads the SD card for image files and emulates multiple devices dependent on filename (as with other ZuluSCSI devices). &lt;br /&gt;
&lt;br /&gt;
== Molex power connector ==&lt;br /&gt;
Make sure that your power connection uses a &#039;&#039;&#039;3½&amp;quot; floppy power connector,&#039;&#039;&#039; not the larger drive connector used on full-size optical drives, hard drives, and the like. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector.png|frameless|135x135px]]&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector.png|frameless|117x117px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |✅ 3½&amp;quot; connector&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |❌ 5¼&amp;quot; connector&lt;br /&gt;
|}&lt;br /&gt;
If your host system only has the 5¼&amp;quot; connectors, you&#039;ll need to either purchase or make an adapter cable. Making an adapter cable requires the following parts:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;4× 5¼ male pins:&#039;&#039;&#039; TE Connectivity P/N 60620-1&lt;br /&gt;
* &#039;&#039;&#039;1× 5¼ male housing:&#039;&#039;&#039; TE Connectivity P/N 1-480426-0&lt;br /&gt;
* &#039;&#039;&#039;4× 3½ female sockets:&#039;&#039;&#039; TE Connectivity P/N 170262-1&lt;br /&gt;
* &#039;&#039;&#039;1× 3½ female housing:&#039;&#039;&#039; TE Connectivity P/N 171822-4&lt;br /&gt;
&lt;br /&gt;
When making the cables, use 20-gauge wire. If you&#039;re crimping a splitter cable, it&#039;s also possible to use 18-gauge wire on the 5¼ side going to the female plug, and then crimp the larger wire going into the male splitter side together with 22 or 24-gauge wire going to the 3½ side. Crimping the cables can be done with standard tools found on Amazon, such as the IWISS SN-025. &lt;br /&gt;
&lt;br /&gt;
== DIP Switch Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== ZuluSCSI Blaster or ZuluSCSI RP2040 Compact ===&lt;br /&gt;
* &#039;&#039;&#039;Switch 1:&#039;&#039;&#039; Turn Initiator mode on or off. &lt;br /&gt;
** On the RP2040 Compact, this is controlled by the jumper at &amp;lt;code&amp;gt;J310&amp;lt;/code&amp;gt; on the board in the lower right.&lt;br /&gt;
* &#039;&#039;&#039;Switch 2:&#039;&#039;&#039; Debug log disable/enable. If this switch is ON, the device will automatically write out a detailed debug log to &amp;lt;code&amp;gt;zululog.txt&amp;lt;/code&amp;gt; on the SD card as long as the device is powered on. Additionally, if you have a USB cable plugged into the port on the device with this switch on, it will also print the debug log over the cable via the microcontroller&#039;s internal serial connection. &lt;br /&gt;
** On the RP2040 Compact, this is controlled by setting &amp;lt;code&amp;gt;Debug = 1&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;zuluscsi.ini&amp;lt;/code&amp;gt; file on the SD card itself. &lt;br /&gt;
* &#039;&#039;&#039;Switch 3:&#039;&#039;&#039; Enable or disable SCSI termination as needed.&lt;br /&gt;
** On the RP2040 Compact, this is controlled by the jumper at &amp;lt;code&amp;gt;J311&amp;lt;/code&amp;gt; in the center of the board. &lt;br /&gt;
&lt;br /&gt;
=== ZuluSCSI 1.2 ===&lt;br /&gt;
If you have a ZuluSCSI 1.2, the block of &#039;&#039;&#039;four&#039;&#039;&#039; DIP switches at &amp;lt;code&amp;gt;SW301&amp;lt;/code&amp;gt; control various aspects of how the device responds in the system:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch 1:&#039;&#039;&#039; Toggle Macintosh &amp;quot;Quirks&amp;quot; mode. On some legacy Macs, it helps if the device responds with specific things when the system calls upon it during a fresh installation. If your Mac responds erratically or doesn&#039;t behave properly with the device in the system, try turning this switch ON before anything else.&lt;br /&gt;
* &#039;&#039;&#039;Switch 2:&#039;&#039;&#039; Direct/Raw mode vs. standard mode. If this switch is left in its default OFF position, then the entire SD card is exposed to the system as a single block device and allows your SCSI interface card to manage it, based on the settings of &amp;lt;code&amp;gt;SW403&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SW404&amp;lt;/code&amp;gt;. &lt;br /&gt;
** The block of &#039;&#039;&#039;three&#039;&#039;&#039; DIP switches at &amp;lt;code&amp;gt;SW403&amp;lt;/code&amp;gt; are used for setting your SCSI ID. If all three switches are off, the board&#039;s SCSI ID is 0. Turn switch 1 on to add 1 to the device ID, switch 2 to add 2, and switch 3 to add 4. If all three are on, the SCSI ID is 7.&lt;br /&gt;
** The rotary switch at &amp;lt;code&amp;gt;SW404&amp;lt;/code&amp;gt; controls how the ZuluSCSI responds to your SCSI interface card when it queries it. Each position on the switch causes it to respond as a different device and will register differently:&lt;br /&gt;
*** Position 0 (straight up): Hard disk&lt;br /&gt;
*** Position 1: Optical drive&lt;br /&gt;
*** Position 2: Floppy disk&lt;br /&gt;
*** Position 3: Other generic removable block device (ZIP drives, Jaz drives, etc.)&lt;br /&gt;
*** Position 4: Magneto-optical disk drives&lt;br /&gt;
*** Position 5: Seagate ST32430N Hawk HDD&lt;br /&gt;
*** Position 6: Tape drives&lt;br /&gt;
*** Positions 7, 8, 9: Reserved&lt;br /&gt;
&lt;br /&gt;
== Activity LED ==&lt;br /&gt;
The Activity LED will flash normally during disk access, however, in certain specific failure modes or status changes, you will see it flashing with a pattern. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1 fast blink, at boot time:&#039;&#039;&#039; Image file loaded successfully&lt;br /&gt;
* &#039;&#039;&#039;3 fast blinks:&#039;&#039;&#039; No valid images found on SD card&lt;br /&gt;
* &#039;&#039;&#039;5 fast blinks:&#039;&#039;&#039; SD card is present, but is not being detected&lt;br /&gt;
* &#039;&#039;&#039;Morse code pattern:&#039;&#039;&#039; Firmware crash. The particular pattern will indicate where the crash occurred. &lt;br /&gt;
&lt;br /&gt;
If a firmware crash occurs, it will also try to save information to the file &amp;lt;code&amp;gt;zuluerr.txt&amp;lt;/code&amp;gt; on the SD card. &lt;br /&gt;
&lt;br /&gt;
== SD Card Preparation and Use ==&lt;br /&gt;
Format your SD card with either the FAT32 or exFAT filesystems. If you intend to use images larger than 4 GB in size, you &#039;&#039;must&#039;&#039; format the card using exFAT as the FAT32 filesystem cannot support individual files larger than 4 GB. &lt;br /&gt;
&lt;br /&gt;
Load your images onto the card into the root folder. Images stored in folders, unless they are &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; images, will be ignored.&lt;br /&gt;
&lt;br /&gt;
For &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; files, they can be placed into a folder with the same name as the image file; i.e., if you have a &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; pair named &amp;lt;code&amp;gt;bigdiscofstuff.bin&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigdiscofstuff.cue&amp;lt;/code&amp;gt; you should place them in a directory named &amp;lt;code&amp;gt;bigdiscofstuff&amp;lt;/code&amp;gt;. This is &#039;&#039;&#039;required&#039;&#039;&#039; if your &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; image has a single &amp;lt;code&amp;gt;CUE&amp;lt;/code&amp;gt; file and multiple &amp;lt;code&amp;gt;BIN&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
=== Drive Types ===&lt;br /&gt;
When configuring the ZuluSCSI, you can set it to be multiple different drive types based on the images you intend to use. Out of the box, the ZuluSCSI configures itself as an optical drive, but through the [[ZuluSCSI INI Configuration|INI file]] or by using &#039;&#039;&#039;filename prefixes,&#039;&#039;&#039; you can tell the ZuluSCSI which device you want it to behave as when you power it on. &lt;br /&gt;
&lt;br /&gt;
==== Using the INI File ====&lt;br /&gt;
Under the &amp;lt;code&amp;gt;[IDE]&amp;lt;/code&amp;gt; heading, use the &amp;lt;code&amp;gt;Device=&amp;lt;/code&amp;gt; value to set the drive type:0&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;CDROM&amp;lt;/code&amp;gt; (default) will cause the ZuluSCSI to respond as an optical drive.&lt;br /&gt;
* &amp;lt;code&amp;gt;Zip100&amp;lt;/code&amp;gt; will cause the ZuluSCSI to respond as an ATAPI-attached 100MB Zip Drive&lt;br /&gt;
* &amp;lt;code&amp;gt;Zip250&amp;lt;/code&amp;gt; will cause the ZuluSCSI to respond as an ATAPI-attached 250MB Zip Drive&lt;br /&gt;
* &amp;lt;code&amp;gt;Removable&amp;lt;/code&amp;gt; will cause the ZuluSCSI to respond as a generic removable media device&lt;br /&gt;
* &amp;lt;code&amp;gt;HDD&amp;lt;/code&amp;gt; will cause the ZuluSCSI to respond as a standard hard disk drive&lt;br /&gt;
&lt;br /&gt;
If this section is absent, or the &amp;lt;code&amp;gt;zuluide.ini&amp;lt;/code&amp;gt; file is not present on the SD card, the device will default to behaving as an optical drive.&lt;br /&gt;
&lt;br /&gt;
==== Using a filename prefix ====&lt;br /&gt;
Add the following to the beginning of your filename to switch the ZuluSCSI&#039;s device mode:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;cdrm&amp;lt;/code&amp;gt; will cause the ZuluSCSI to load the image as an optical drive image.&lt;br /&gt;
* &amp;lt;code&amp;gt;zipd&amp;lt;/code&amp;gt; will cause the ZuluSCSI to load the image as a 100MB or 250MB Zip disk.&lt;br /&gt;
* &amp;lt;code&amp;gt;remv&amp;lt;/code&amp;gt; will cause the ZuluSCSI to load the image as a generic removable media device.&lt;br /&gt;
* &amp;lt;code&amp;gt;hddr&amp;lt;/code&amp;gt; will cause the ZuluSCSI to load the image as a non-removable hard disk image.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;Device=&amp;lt;/code&amp;gt; option in the INI file will override this behavior. Additionally, if a filename prefix is specified, all other files that you want to use &#039;&#039;&#039;must have the same prefix.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
==== Filename extensions ====&lt;br /&gt;
In optical drive mode, the device will only recognize images that end in &amp;lt;code&amp;gt;.iso&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.bin/.cue&amp;lt;/code&amp;gt;, while also recognizing folders for purposes of reading multipart &amp;lt;code&amp;gt;.bin/.cue&amp;lt;/code&amp;gt; images. &lt;br /&gt;
&lt;br /&gt;
For Zip drives or other removable media,ᚸso long as the filename doesn&#039;t contain one of the prefixes above, doesn&#039;t have an optical drive image extension (&amp;lt;code&amp;gt;.iso/.bin/.cue&amp;lt;/code&amp;gt;), or one of the extensions on the ignored list below, it will load the file as a disk image and attempt to mount it.&lt;br /&gt;
&lt;br /&gt;
If the ZuluSCSI starts up as an optical drive, it will use the first image it finds on the SD card as an optical disc.&lt;br /&gt;
&lt;br /&gt;
==== Changing disk images ====&lt;br /&gt;
Without the hardware interface or web interface, changing disk images is done by pressing the eject button on the device itself or by performing a hardware eject directly through the operating system. The firmware will cycle to the next available image on the SD card in alphabetical order. &lt;br /&gt;
&lt;br /&gt;
==== Ignore list ====&lt;br /&gt;
Files with any of the following extensions will be ignored by the ZuluSCSI and will not appear in the list of available images on the hardware or web interfaces, and will not be selected when a hardware eject is performed:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;.cue&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;.txt&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.rtf&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.md&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.nfo&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.pdf&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.doc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compressed archive file formats: &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;.zip .7z .dmg .rar .tar .tgz .gz .bz2 .tbz2 .xz .zst .lzh .lha .lzo .lz4 .arj .hqx .cpt .s7z&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additionally, any file that begins with &amp;lt;code&amp;gt;zulu&amp;lt;/code&amp;gt; will be ignored. &lt;br /&gt;
&lt;br /&gt;
==== USB Mass Storage ====&lt;br /&gt;
You can use the ZuluSCSI as a passthrough to access the SD card directly by putting the option &amp;lt;code&amp;gt;enable_usb_mass_storage=1&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;[IDE]&amp;lt;/code&amp;gt; section of the [[ZuluSCSI INI Configuration|INI file]]. In order to use this mode, the ZuluSCSI must not currently be operating as an attached device through the IDE port on a host computer. &lt;br /&gt;
&lt;br /&gt;
==== Hotplugging ====&lt;br /&gt;
The ZuluSCSI supports removal and re-insertion of the SD card while the device is on and functioning. Until the device detects that a card has been inserted, you&#039;ll see the activity LED blink 5 times rapidly, pause, and then repeat until a card is reinserted. Once the card has been detected, the LED will blink once, turn off, and return to normal indication of disk access.&lt;br /&gt;
&lt;br /&gt;
== Updating the Firmware ==&lt;br /&gt;
New firmware releases can be obtained by visiting the [https://github.com/ZuluSCSI/ZuluSCSI-firmware/releases Github page] for the project. The most recent firmware will be listed at the top with a green &amp;quot;Latest&amp;quot; badge. You can update the firmware two different ways.&lt;br /&gt;
&lt;br /&gt;
==== Using the SD card ====&lt;br /&gt;
The ZuluSCSI can update itself when it&#039;s initially powered on. You&#039;ll need to have access to the device so you can remove its SD card. &lt;br /&gt;
&lt;br /&gt;
# Power down the system that the ZuluSCSI is attached to and remove its SD card.&lt;br /&gt;
# Attach the SD card to the computer where you&#039;ll download the update.&lt;br /&gt;
# From the [https://github.com/ZuluSCSI/ZuluSCSI-firmware/releases Github page], download the latest firmware file with a &#039;&#039;&#039;.BIN&#039;&#039;&#039; extension.&lt;br /&gt;
# Copy the downloaded &#039;&#039;&#039;.BIN&#039;&#039;&#039; file to the root folder of the SD card and rename it as &amp;lt;code&amp;gt;ZuluSCSI.bin&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Dismount the SD card from the computer, and reinsert the SD card into the ZuluSCSI.&lt;br /&gt;
# Power the system back on. The ZuluSCSI will automatically begin the firmware update process, which takes about one second. If the system has to boot to the ZuluSCSI and its startup is particularly quick, you may need to reset the computer once to allow the firmware update process to complete on the ZuluSCSI so it can become ready.&lt;br /&gt;
# When the firmware update process finishes, the ZuluSCSI will delete the update file and continue on to normal operation.&lt;br /&gt;
&lt;br /&gt;
==== Using the BOOTLDR button ====&lt;br /&gt;
[[File:Bootloader button.png|thumb|140x140px|BOOTLDR button]]&lt;br /&gt;
If you have physical access to the device and a way to plug the MicroUSB port into a host computer, this is the traditional way to update RP2040-based devices like the ZuluSCSI. &lt;br /&gt;
&lt;br /&gt;
# Power down the system the ZuluSCSI is attached to, and if necessary, unplug it from its cabling.&lt;br /&gt;
# From the [https://github.com/ZuluSCSI/ZuluSCSI-firmware/releases Github page], download the latest firmware file with a &#039;&#039;&#039;.UF2&#039;&#039;&#039; extension. &lt;br /&gt;
# Attach a MicroUSB cable to the device you&#039;ll be uploading the firmware from.&lt;br /&gt;
# While holding down the BOOTLDR button on the ZuluSCSI, attach the other end of the cable to the MicroUSB port on the ZuluSCSI. [[File:Firmware-update.png|thumb|Copy the UF2 file to the device.]]&lt;br /&gt;
# A Windows Explorer window may appear with a drive called &amp;lt;code&amp;gt;RPi-RP2&amp;lt;/code&amp;gt;. If it doesn&#039;t, open a Windows Explorer window and look for a drive with this name.&lt;br /&gt;
# Copy the &#039;&#039;&#039;.UF2&#039;&#039;&#039; file you downloaded to the root folder of the drive that appeared when you plugged in the ZuluSCSI.&lt;br /&gt;
# The &amp;lt;code&amp;gt;RPi-RP2&amp;lt;/code&amp;gt; window should close on its own once the copy completes. When the device disconnects on its own, the firmware update process is complete.&lt;br /&gt;
# Disconnect the USB cables and reattach the ZuluSCSI to its host, if you removed it in step 1. &lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
Some simple things to check before you dive deeper:&lt;br /&gt;
&lt;br /&gt;
* Make sure there are no primary/secondary conflicts on the IDE channel that the ZuluSCSI is attached to.&lt;br /&gt;
* Make sure that the power connection to the device is secure and attached.&lt;br /&gt;
* Try toggling the Cable Select switch. Some BIOSes prefer the device to be one way or the other and there&#039;s often little rhyme or reason between even the exact same BIOS on the exact same build across two machines. &lt;br /&gt;
&lt;br /&gt;
For more specific problems, keep reading.&lt;br /&gt;
&lt;br /&gt;
The icon at the left of the problems listed tends to pertain to that particular operating system.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Msdos-icon.png|32x32px]][[File:Win31.png|32x32px]](as optical drive): The ZuluSCSI doesn&#039;t seem to be recognized under MS-DOS. ===&lt;br /&gt;
If you have the ZuluSCSI attached as an optical drive in a system that doesn&#039;t natively support the ATAPI protocol, you may have to install a third-party driver to allow DOS to see the drive. This was common for all systems based on 386 processors and earlier, most 486 systems, and some Pentium-based systems. &lt;br /&gt;
&lt;br /&gt;
The simplest solution is to obtain a copy of the Microsoft Windows 98 startup disk, and copy the &amp;lt;code&amp;gt;OAKCDROM.SYS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MSCDEX.EXE&amp;lt;/code&amp;gt; files from it to the root folder of your boot drive. Then, modify your &amp;lt;code&amp;gt;CONFIG.SYS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;AUTOEXEC.BAT&amp;lt;/code&amp;gt; files like this:&lt;br /&gt;
&lt;br /&gt;
==== CONFIG.SYS ====&lt;br /&gt;
Add this line to the top of the file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DEVICE=C:\OAKCDROM.SYS /D:MSCD000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== AUTOEXEC.BAT ====&lt;br /&gt;
Add this line to the end of the file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;C:\MSCDEX.EXE /D:MSCD000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reboot the system, and the drive should populate. &lt;br /&gt;
&lt;br /&gt;
Keep in mind that the only DOS-based CD-ROM driver that has been tested to work with the ZuluSCSI at present is the Oak Technology driver (&amp;lt;code&amp;gt;OAKCDROM.SYS&amp;lt;/code&amp;gt;) and &amp;lt;code&amp;gt;VIDE-CDD.SYS&amp;lt;/code&amp;gt;, the driver that is included on the Microsoft CD-ROM Extensions installation floppy disk.&lt;br /&gt;
&lt;br /&gt;
Other generic drivers, such as the LG (GoldStar) or Adaptec drivers may work, but have not been fully tested.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Msdos-icon.png|32x32px]][[File:Win31.png|32x32px]](as optical drive): The system recognizes the first disc image loaded, but then acts like the drive isn&#039;t ready when I change images. ===&lt;br /&gt;
This issue is related to firmware revisions prior to 2024.11.08. Update your device firmware on the [https://github.com/rabbitholecomputing/ZuluSCSI-firmware Github repo]. &lt;br /&gt;
&lt;br /&gt;
If you are unable to update the firmware, there is a workaround that you can use until you are able to do so. &lt;br /&gt;
&lt;br /&gt;
After changing images, try to access the drive. The system will pause for a long moment, and then you should see a message similar to this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CDR101: Not ready reading drive E:&amp;lt;br&amp;gt;&lt;br /&gt;
(A)bort, (R)etry, (F)ail?&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Press F to fail the check, and then if it drops back to a command prompt, try to access the drive again and it should present the image as normal.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Win9598.png|37x37px]][[File:Winxp.png|36x36px]] (as optical drive): Performing an &amp;quot;eject&amp;quot; command in Windows Explorer doesn&#039;t actually cycle to the next image. ===&lt;br /&gt;
This issue is related to firmware revisions prior to 2024.12.10. Update your device firmware on the [https://github.com/rabbitholecomputing/ZuluSCSI-firmware Github repo].&lt;br /&gt;
&lt;br /&gt;
The workaround for this is to have either the web interface or hardware interface connected and swap images that way. Another workaround is to manually eject the SD card from the ZuluSCSI, add a zero to the beginning of the desired disk image&#039;s name, and then reinsert the SD card. The ZuluSCSI will then look for the first image it can load alphabetically, which should be the newly-renamed image.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Msdos-icon.png|frameless|34x34px]](attached to sound card): The ZuluSCSI seems to be working correctly, but it&#039;s never detected. ===&lt;br /&gt;
This is a potential hardware configuration issue. Some sound cards, even if they have an actual IDE interface, force themselves to be configured as either the primary or secondary interface in the system and are not configurable. Most sound cards are also capable of recognizing &#039;&#039;only&#039;&#039; optical devices, so if you have the ZuluSCSI configured as something other than an optical drive, the card may not recognize the device attached to it. If you want to use the ZuluSCSI as something other than an optical drive, attach it to an IDE port attached to the motherboard or I/O card, as opposed to a sound card.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Msdos-icon.png|frameless|34x34px]][[File:Win31.png|32x32px]][[File:Win9598.png|37x37px]][[File:Winxp.png|36x36px]] (with audio DAC board): I have the device attached to my SoundBlaster&#039;s CD audio in connector, but I only hear the right channel. ===&lt;br /&gt;
Early SoundBlaster cards (including the Pro and Pro 2) used a different pinout on the CD audio header. Instead of R-G-G-L (right channel, ground, ground, left channel) these cards&#039; pinout was NC-L-G-R (no connect, left, ground, right). You may need to get a different cable.&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Warning.png&amp;diff=104</id>
		<title>File:Warning.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Warning.png&amp;diff=104"/>
		<updated>2025-04-16T00:04:23Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;warning&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:ZSCSI1.2_Labeled.png&amp;diff=103</id>
		<title>File:ZSCSI1.2 Labeled.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:ZSCSI1.2_Labeled.png&amp;diff=103"/>
		<updated>2025-04-15T22:41:10Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ZSCSI1.2 Labeled&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:ZSCSI_Blaster_labeled.png&amp;diff=102</id>
		<title>File:ZSCSI Blaster labeled.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:ZSCSI_Blaster_labeled.png&amp;diff=102"/>
		<updated>2025-04-15T22:40:34Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ZSCSI Blaster labeled&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:ZSCSI_compact_labeled.png&amp;diff=101</id>
		<title>File:ZSCSI compact labeled.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:ZSCSI_compact_labeled.png&amp;diff=101"/>
		<updated>2025-04-15T22:39:38Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ZSCSI compact labeled&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=Web_Interface_Instructions&amp;diff=100</id>
		<title>Web Interface Instructions</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=Web_Interface_Instructions&amp;diff=100"/>
		<updated>2025-03-18T19:30:30Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: /* Configuration and Firmware */ Added note about enclosing wifi password in quotes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The ZuluIDE&#039;s Audio and Pi Pico Shield (available as an add-on at time of purchase or separately [https://shop.rabbitholecomputing.com/products/zuluide-cd-audio-dac-upgrade-kit-for-existing-zuluide-owners here]) adds several capabilities to the ZuluIDE. In addition to Redbook CD audio playback, however, it also allows you to add a Raspberry Pi Pico W to the board to enable a control interface via HTTP, allowing you to swap disc images in and out on systems that don&#039;t natively support operating-system level eject and close operations like MacOS does.&lt;br /&gt;
&lt;br /&gt;
=== Preparation and Setup ===&lt;br /&gt;
When you receive your ZuluIDE and the shield, it will come populated with all of the parts necessary for the &#039;&#039;&#039;audio-only&#039;&#039;&#039; side of the board needed to function. You will need to add the Pi Pico W to the board. &#039;&#039;&#039;Remove the shield from the ZuluIDE first, and then follow the steps below.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
You&#039;ll need the following items:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|[[File:Pico-w-noheaders.png|frameless|150x150px]]&lt;br /&gt;
|Raspberry Pi Pico W or Pico 2 W&lt;br /&gt;
&#039;&#039;&#039;(with or without headers)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Header strip.png|frameless|150x150px]]&lt;br /&gt;
|Male 40-pin header strip&lt;br /&gt;
(optional)&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Female header (20-pin).jpg|frameless|150x150px]]&lt;br /&gt;
|2x Female 20-pin header strips&lt;br /&gt;
(also optional)&lt;br /&gt;
|}&lt;br /&gt;
The headers aren&#039;t strictly necessary, but if you want to be able to easily remove or replace the Pico later, you&#039;ll want them. &lt;br /&gt;
&lt;br /&gt;
=== Attaching the Pico W to the Shield Board ===&lt;br /&gt;
&lt;br /&gt;
===== STEP 1 =====&lt;br /&gt;
If you&#039;re using the headers, solder them down in the footprint provided for the Pico W. If not, skip to &#039;&#039;&#039;step 4.&#039;&#039;&#039;&lt;br /&gt;
[[File:Audio shield board step 1.png|center|frameless|500x500px]]&lt;br /&gt;
&lt;br /&gt;
===== STEP 2 =====&lt;br /&gt;
Cut the headers into two 20-pin lengths, and solder them to the holes on your Pico W. If your Pico W came with headers pre-installed, you can skip this step.&lt;br /&gt;
&lt;br /&gt;
===== STEP 3 =====&lt;br /&gt;
Insert the Pico W into the header sockets. You&#039;re done!&lt;br /&gt;
&lt;br /&gt;
===== STEP 4 =====&lt;br /&gt;
[[File:Castellated holes.png|thumb|300x300px|Castellated (or half) holes]]&lt;br /&gt;
If you &#039;&#039;&#039;are not&#039;&#039;&#039; going to use headers and simply want to attach your Pico W directly to the board, you can. Place the Pico W down on the footprint provided with the USB port facing upward. To help you align the pins, you can use a cut length of header pins placed through one row of holes on the Pico W and the shield board, and solder down the opposite side. Solder directly to the castellated holes on one side (the half-holes along the edge of the board), pull your aligning header strip out of the other side of the board, and solder the other side.&lt;br /&gt;
&lt;br /&gt;
=== Configuration and Firmware ===&lt;br /&gt;
Next, take the SD card out of your ZuluIDE. If it doesn&#039;t already have it, create a file named &amp;lt;code&amp;gt;zuluide.ini&amp;lt;/code&amp;gt; in the root directory of the card with a text editor. Create a section in the file as follows:&lt;br /&gt;
&lt;br /&gt;
 [UI]&lt;br /&gt;
 wifissid=YOUR_WIFI_NETWORK_NAME&lt;br /&gt;
 wifipassword=YOUR_WIFI_PASSWORD&lt;br /&gt;
[[File:Firmware-update.png|thumb|300x300px|Updating the firmware on the Pi Pico]]&lt;br /&gt;
One more note: If your WiFi password contains special characters such as certain punctuation, extended character set characters, or the like, enclose your password in quotes, like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;wifipassword=&amp;quot;§E©RET_∏A§§WORĐ!&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You&#039;ll also need to flash the firmware on the Pi Pico to enable the HTTP host. To do this, download the latest release of the firmware from the [https://github.com/ZuluIDE/ZuluIDE-HTTP-PicoW/releases HTTP controller Github]. Press and hold the &amp;lt;code&amp;gt;BOOTSEL&amp;lt;/code&amp;gt; button on the Pico W, and then, using a micro-USB cable, attach it to the computer where you downloaded the &amp;lt;code&amp;gt;.uf2&amp;lt;/code&amp;gt; firmware file. The Pi Pico will appear as a drive on your system named &amp;lt;code&amp;gt;RPI-RP2&amp;lt;/code&amp;gt; and you can simply drag the firmware file you downloaded directly to the drive. When the copy completes, the Pi Pico will dismount itself from the computer and reboot. You can then disconnect the Pi Pico from your computer and reinsert the Pi Pico shield into the sockets on your ZuluIDE.&lt;br /&gt;
&lt;br /&gt;
===Powering Up===&lt;br /&gt;
When you reattach the ZuluIDE to the system and turn it on, you&#039;ll notice that the light on the Pico W will eventually light stay on. This is good -- the Pico W has connected successfully to your network! But...where is it? There&#039;s a couple of ways to find out. &lt;br /&gt;
&lt;br /&gt;
==== Check the Log File ====&lt;br /&gt;
With the shield attached and SD card reinserted, power on the ZuluIDE, either by itself by simply attaching a USB cable directly to it or by turning on the host system. When the green light on the Pi Pico comes on and stays lit, it has successfully connected to your network. Give the ZuluIDE roughly 10-15 seconds after the light on the Pi Pico comes on, and then remove the SD card and connect it directly to your computer. Open the &amp;lt;code&amp;gt;zuluide.log&amp;lt;/code&amp;gt; file and look for a line (usually at the very end of the log) that looks like this:&lt;br /&gt;
&lt;br /&gt;
 [10991ms] Client IP address is: 10.0.0.196&lt;br /&gt;
&lt;br /&gt;
This tells you the IP address that the Pi Pico was able to fetch via DHCP, and is the address you can put into your browser to control the ZuluIDE.&lt;br /&gt;
&lt;br /&gt;
==== Look At Your Router ====&lt;br /&gt;
If you have the ability to configure it, looking at the configuration on your WiFi router is one way of determining what the address of the Pico W is. Usually, it will try to call itself &amp;quot;PicoW&amp;quot; as its hostname. You can try using an HTTP address of something like &amp;lt;code&amp;gt;picow.local&amp;lt;/code&amp;gt; but if your router doesn&#039;t handle hostname translation very well (as many home routers don&#039;t) you may have to fall back to another method of determining the interface&#039;s IP address. &lt;br /&gt;
&lt;br /&gt;
==== Scan For Its Address ====&lt;br /&gt;
Another way to find out the address of the Pico W is to use a free utility called &#039;&#039;Advanced IP Scanner&#039;&#039; to scan your local network to try and see what IPs are attached. Advanced IP Scanner can be downloaded [https://www.majorgeeks.com/files/details/advanced_ip_scanner.html here]. This way works well if you are connected to the same WiFi network as the ZuluIDE and don&#039;t have an easy way to read the log file off the SD card itself.&lt;br /&gt;
&lt;br /&gt;
To use Advanced IP Scanner, enter the range of IPs your router assigns (common candidates for home routers are &amp;lt;code&amp;gt;192.168.0.1-255&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;10.0.0.1-255&amp;lt;/code&amp;gt;) into the text box at the top of the window and then press the &amp;quot;Scan&amp;quot; button. The program will go through and try to determine what devices are attached to the same network you are. In the list, look for a device named &amp;quot;PicoW&amp;quot; -- if the computer icon in the left column is blue, it&#039;s connected. Record the IP address you got, and that&#039;s the IP address you&#039;ll use to configure the ZuluIDE.&lt;br /&gt;
&lt;br /&gt;
=== Using the HTTP Interface ===&lt;br /&gt;
[[File:HTTP control interface 1.png|thumb]]&lt;br /&gt;
When you bring up the web interface, you&#039;ll see only a few controls. The interface shows the image you currently have loaded on the device, a button to eject the image, a button to swap disk images, and a line showing what device the ZuluIDE has registered itself as.&lt;br /&gt;
&lt;br /&gt;
Under the line is a manual refresh button that will cause the Pi Pico to manually refresh the information about the loaded disk image and device type as well as an automatic refresh option that will force a refresh any time the web interface renders a page. &lt;br /&gt;
&lt;br /&gt;
The [[File:Imagebutton.png|frameless]] button will take you to another page where you can select a new disk image. It will appear blank at first, but it will populate itself. Click the desired image in the list and then hit the &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt; button, and it will take you back to the page shown at the right with the information changed to reflect the image you&#039;ve selected. &lt;br /&gt;
&lt;br /&gt;
Pressing the Eject button will simply dismount the image.&lt;br /&gt;
&lt;br /&gt;
==== ISO Images Versus BIN/CUE Images ====&lt;br /&gt;
Most disk images will appear in the full list with their file extension shown. Entries that appear &#039;&#039;&#039;without&#039;&#039;&#039; a filename extension are directories where BIN/CUE image files reside; to use these, just select the entry in the list and all of the appropriate files will load.&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=Web_Interface_Instructions&amp;diff=89</id>
		<title>Web Interface Instructions</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=Web_Interface_Instructions&amp;diff=89"/>
		<updated>2025-01-26T01:36:39Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: New page: How to use the HTTP control interface. (+1,178 words, 3 images)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The ZuluIDE&#039;s Audio and Pi Pico Shield (available as an add-on at time of purchase or separately [https://shop.rabbitholecomputing.com/products/zuluide-cd-audio-dac-upgrade-kit-for-existing-zuluide-owners here]) adds several capabilities to the ZuluIDE. In addition to Redbook CD audio playback, however, it also allows you to add a Raspberry Pi Pico W to the board to enable a control interface via HTTP, allowing you to swap disc images in and out on systems that don&#039;t natively support operating-system level eject and close operations like MacOS does.&lt;br /&gt;
&lt;br /&gt;
=== Preparation and Setup ===&lt;br /&gt;
When you receive your ZuluIDE and the shield, it will come populated with all of the parts necessary for the &#039;&#039;&#039;audio-only&#039;&#039;&#039; side of the board needed to function. You will need to add the Pi Pico W to the board. &#039;&#039;&#039;Remove the shield from the ZuluIDE first, and then follow the steps below.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
You&#039;ll need the following items:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|[[File:Pico-w-noheaders.png|frameless|150x150px]]&lt;br /&gt;
|Raspberry Pi Pico W or Pico 2 W&lt;br /&gt;
&#039;&#039;&#039;(with or without headers)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Header strip.png|frameless|150x150px]]&lt;br /&gt;
|Male 40-pin header strip&lt;br /&gt;
(optional)&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Female header (20-pin).jpg|frameless|150x150px]]&lt;br /&gt;
|2x Female 20-pin header strips&lt;br /&gt;
(also optional)&lt;br /&gt;
|}&lt;br /&gt;
The headers aren&#039;t strictly necessary, but if you want to be able to easily remove or replace the Pico later, you&#039;ll want them. &lt;br /&gt;
&lt;br /&gt;
=== Attaching the Pico W to the Shield Board ===&lt;br /&gt;
&lt;br /&gt;
===== STEP 1 =====&lt;br /&gt;
If you&#039;re using the headers, solder them down in the footprint provided for the Pico W. If not, skip to &#039;&#039;&#039;step 4.&#039;&#039;&#039;&lt;br /&gt;
[[File:Audio shield board step 1.png|center|frameless|500x500px]]&lt;br /&gt;
&lt;br /&gt;
===== STEP 2 =====&lt;br /&gt;
Cut the headers into two 20-pin lengths, and solder them to the holes on your Pico W. If your Pico W came with headers pre-installed, you can skip this step.&lt;br /&gt;
&lt;br /&gt;
===== STEP 3 =====&lt;br /&gt;
Insert the Pico W into the header sockets. You&#039;re done!&lt;br /&gt;
&lt;br /&gt;
===== STEP 4 =====&lt;br /&gt;
[[File:Castellated holes.png|thumb|300x300px|Castellated (or half) holes]]&lt;br /&gt;
If you &#039;&#039;&#039;are not&#039;&#039;&#039; going to use headers and simply want to attach your Pico W directly to the board, you can. Place the Pico W down on the footprint provided with the USB port facing upward. To help you align the pins, you can use a cut length of header pins placed through one row of holes on the Pico W and the shield board, and solder down the opposite side. Solder directly to the castellated holes on one side (the half-holes along the edge of the board), pull your aligning header strip out of the other side of the board, and solder the other side.&lt;br /&gt;
&lt;br /&gt;
=== Configuration and Firmware ===&lt;br /&gt;
Next, take the SD card out of your ZuluIDE. If it doesn&#039;t already have it, create a file named &amp;lt;code&amp;gt;zuluide.ini&amp;lt;/code&amp;gt; in the root directory of the card with a text editor. Create a section in the file as follows:&lt;br /&gt;
&lt;br /&gt;
 [UI]&lt;br /&gt;
 wifissid=YOUR_WIFI_NETWORK_NAME&lt;br /&gt;
 wifipassword=YOUR_WIFI_PASSWORD&lt;br /&gt;
[[File:Firmware-update.png|thumb|300x300px|Updating the firmware on the Pi Pico]]&lt;br /&gt;
You&#039;ll also need to flash the firmware on the Pi Pico to enable the HTTP host. To do this, download the latest release of the firmware from the [https://github.com/ZuluIDE/ZuluIDE-HTTP-PicoW/releases HTTP controller Github]. Press and hold the &amp;lt;code&amp;gt;BOOTSEL&amp;lt;/code&amp;gt; button on the Pico W, and then, using a micro-USB cable, attach it to the computer where you downloaded the &amp;lt;code&amp;gt;.uf2&amp;lt;/code&amp;gt; firmware file. The Pi Pico will appear as a drive on your system named &amp;lt;code&amp;gt;RPI-RP2&amp;lt;/code&amp;gt; and you can simply drag the firmware file you downloaded directly to the drive. When the copy completes, the Pi Pico will dismount itself from the computer and reboot. You can then disconnect the Pi Pico from your computer and reinsert the Pi Pico shield into the sockets on your ZuluIDE.&lt;br /&gt;
&lt;br /&gt;
===Powering Up===&lt;br /&gt;
When you reattach the ZuluIDE to the system and turn it on, you&#039;ll notice that the light on the Pico W will eventually light stay on. This is good -- the Pico W has connected successfully to your network! But...where is it? There&#039;s a couple of ways to find out. &lt;br /&gt;
&lt;br /&gt;
==== Check the Log File ====&lt;br /&gt;
With the shield attached and SD card reinserted, power on the ZuluIDE, either by itself by simply attaching a USB cable directly to it or by turning on the host system. When the green light on the Pi Pico comes on and stays lit, it has successfully connected to your network. Give the ZuluIDE roughly 10-15 seconds after the light on the Pi Pico comes on, and then remove the SD card and connect it directly to your computer. Open the &amp;lt;code&amp;gt;zuluide.log&amp;lt;/code&amp;gt; file and look for a line (usually at the very end of the log) that looks like this:&lt;br /&gt;
&lt;br /&gt;
 [10991ms] Client IP address is: 10.0.0.196&lt;br /&gt;
&lt;br /&gt;
This tells you the IP address that the Pi Pico was able to fetch via DHCP, and is the address you can put into your browser to control the ZuluIDE.&lt;br /&gt;
&lt;br /&gt;
==== Look At Your Router ====&lt;br /&gt;
If you have the ability to configure it, looking at the configuration on your WiFi router is one way of determining what the address of the Pico W is. Usually, it will try to call itself &amp;quot;PicoW&amp;quot; as its hostname. You can try using an HTTP address of something like &amp;lt;code&amp;gt;picow.local&amp;lt;/code&amp;gt; but if your router doesn&#039;t handle hostname translation very well (as many home routers don&#039;t) you may have to fall back to another method of determining the interface&#039;s IP address. &lt;br /&gt;
&lt;br /&gt;
==== Scan For Its Address ====&lt;br /&gt;
Another way to find out the address of the Pico W is to use a free utility called &#039;&#039;Advanced IP Scanner&#039;&#039; to scan your local network to try and see what IPs are attached. Advanced IP Scanner can be downloaded [https://www.majorgeeks.com/files/details/advanced_ip_scanner.html here]. This way works well if you are connected to the same WiFi network as the ZuluIDE and don&#039;t have an easy way to read the log file off the SD card itself.&lt;br /&gt;
&lt;br /&gt;
To use Advanced IP Scanner, enter the range of IPs your router assigns (common candidates for home routers are &amp;lt;code&amp;gt;192.168.0.1-255&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;10.0.0.1-255&amp;lt;/code&amp;gt;) into the text box at the top of the window and then press the &amp;quot;Scan&amp;quot; button. The program will go through and try to determine what devices are attached to the same network you are. In the list, look for a device named &amp;quot;PicoW&amp;quot; -- if the computer icon in the left column is blue, it&#039;s connected. Record the IP address you got, and that&#039;s the IP address you&#039;ll use to configure the ZuluIDE.&lt;br /&gt;
&lt;br /&gt;
=== Using the HTTP Interface ===&lt;br /&gt;
[[File:HTTP control interface 1.png|thumb]]&lt;br /&gt;
When you bring up the web interface, you&#039;ll see only a few controls. The interface shows the image you currently have loaded on the device, a button to eject the image, a button to swap disk images, and a line showing what device the ZuluIDE has registered itself as.&lt;br /&gt;
&lt;br /&gt;
Under the line is a manual refresh button that will cause the Pi Pico to manually refresh the information about the loaded disk image and device type as well as an automatic refresh option that will force a refresh any time the web interface renders a page. &lt;br /&gt;
&lt;br /&gt;
The [[File:Imagebutton.png|frameless]] button will take you to another page where you can select a new disk image. It will appear blank at first, but it will populate itself. Click the desired image in the list and then hit the &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt; button, and it will take you back to the page shown at the right with the information changed to reflect the image you&#039;ve selected. &lt;br /&gt;
&lt;br /&gt;
Pressing the Eject button will simply dismount the image.&lt;br /&gt;
&lt;br /&gt;
==== ISO Images Versus BIN/CUE Images ====&lt;br /&gt;
Most disk images will appear in the full list with their file extension shown. Entries that appear &#039;&#039;&#039;without&#039;&#039;&#039; a filename extension are directories where BIN/CUE image files reside; to use these, just select the entry in the list and all of the appropriate files will load.&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Imagebutton.png&amp;diff=88</id>
		<title>File:Imagebutton.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Imagebutton.png&amp;diff=88"/>
		<updated>2025-01-26T01:20:30Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Imagebutton&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:HTTP_control_interface_1.png&amp;diff=87</id>
		<title>File:HTTP control interface 1.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:HTTP_control_interface_1.png&amp;diff=87"/>
		<updated>2025-01-26T01:15:09Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;HTTP control interface 1&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Castellated_holes.png&amp;diff=86</id>
		<title>File:Castellated holes.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Castellated_holes.png&amp;diff=86"/>
		<updated>2025-01-25T22:43:02Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Castellated holes&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Audio_shield_board_step_1.png&amp;diff=85</id>
		<title>File:Audio shield board step 1.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Audio_shield_board_step_1.png&amp;diff=85"/>
		<updated>2025-01-25T22:28:35Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Step 1&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Female_header_(20-pin).jpg&amp;diff=84</id>
		<title>File:Female header (20-pin).jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Female_header_(20-pin).jpg&amp;diff=84"/>
		<updated>2025-01-25T22:04:37Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Female header (20-pin)&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Header_strip.png&amp;diff=83</id>
		<title>File:Header strip.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Header_strip.png&amp;diff=83"/>
		<updated>2025-01-25T21:58:08Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Header strip&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Pico-w-noheaders.png&amp;diff=82</id>
		<title>File:Pico-w-noheaders.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Pico-w-noheaders.png&amp;diff=82"/>
		<updated>2025-01-25T21:52:50Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pi Pico W, no headers.&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=Main_Page&amp;diff=81</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=Main_Page&amp;diff=81"/>
		<updated>2025-01-25T21:40:56Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: Add link to instructions on using the web interface&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Rabbit Hole Computing Wiki ==&lt;br /&gt;
This is the primary documentation repository for all of [https://www.rabbitholecomputing.com Rabbit Hole Computing&#039;s] products, including the &#039;&#039;&#039;ZuluSCSI, ZuluIDE,&#039;&#039;&#039; and &#039;&#039;&#039;QuokkADB,&#039;&#039;&#039; among others. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
![[File:ZuluSCSI RP2040 rev 2023a.jpg|200x200px]]&lt;br /&gt;
![[File:ZuluIDE RP2040 Compact Rev2024a.png|200x200px]]&lt;br /&gt;
![[File:QuokkADB.jpg|200x200px]]&lt;br /&gt;
|-&lt;br /&gt;
!ZuluSCSI&lt;br /&gt;
!ZuluIDE&lt;br /&gt;
!QuokkADB&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;&amp;quot; |[[Buyer&#039;s Guide]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;&amp;quot; |[[Quick Start Guide]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;&amp;quot; |[[Basic Usage]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[ZuluSCSI v1.2]]&lt;br /&gt;
|[[Web Interface Instructions]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[ZuluSCSI Operations Guide]]&lt;br /&gt;
|[[ZuluIDE Operations Guide]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[ZuluSCSI INI Configuration]]&lt;br /&gt;
|[[ZuluIDE INI Configuration]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=ZuluSCSI_Operations_Guide&amp;diff=80</id>
		<title>ZuluSCSI Operations Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=ZuluSCSI_Operations_Guide&amp;diff=80"/>
		<updated>2025-01-06T16:07:43Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: /* Setting Up Your ZuluSCSI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= This page has been copied from the ZuluIDE operations guide; it is currently being edited to match the ZuluSCSI. =&lt;br /&gt;
&lt;br /&gt;
== Setting Up Your ZuluSCSI ==&lt;br /&gt;
&lt;br /&gt;
--- copied from IDE page; WIP! ---&lt;br /&gt;
&lt;br /&gt;
=== Unboxing ===&lt;br /&gt;
When you first receive your ZuluSCSI, depending on the options you ordered, you should receive the following:&lt;br /&gt;
&lt;br /&gt;
* ZuluSCSI RP2040 Compact board &lt;br /&gt;
* 3D-printed plastic carrier&lt;br /&gt;
* 2x ¼&amp;quot; 4-40 screws&lt;br /&gt;
* microSD card&lt;br /&gt;
* Hardware interface board (optional)&lt;br /&gt;
* Qwiic cable (included with hardware interface board)&lt;br /&gt;
* DAC board with mounted Raspberry Pi Pico W (optional)&lt;br /&gt;
&lt;br /&gt;
== Board Overview ==&lt;br /&gt;
Take a moment to identify the various parts of the board as shown below. &lt;br /&gt;
[[File:ZuluSCSI RP2040 Compact (labeled).png|center|frameless|800x800px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;4-pin Molex floppy power connector:&#039;&#039;&#039; Run a standard Molex 4-pin power cable to this port. If your system power supply has only the larger style, get an adapter cable to switch it to the smaller size (the same size as that found on a 3½&amp;quot; floppy disk drive).&lt;br /&gt;
* &#039;&#039;&#039;40-pin male IDC connector:&#039;&#039;&#039; Plug your IDE bus cable into this. The connector is keyed, but some IDE cables lack the key, so make sure that the red stripe on the cable lines up with the little arrow embossed into the connector itself. &lt;br /&gt;
* &#039;&#039;&#039;Configuration DIP switches:&#039;&#039;&#039; These will set how the ZuluSCSI responds when the BIOS requests information from the device. &lt;br /&gt;
* &#039;&#039;&#039;Bootloader button:&#039;&#039;&#039; Used during the firmware update process.&lt;br /&gt;
* &#039;&#039;&#039;I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C Footprint:&#039;&#039;&#039; Addon boards can attach through this open footprint either by being soldered directly to it or by attaching standard 0.1&amp;quot; header to this footprint.&lt;br /&gt;
* &#039;&#039;&#039;Qwiic Port:&#039;&#039;&#039; Addon boards can also attach here through the use of a standard Qwiic I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C cable.&lt;br /&gt;
* &#039;&#039;&#039;MicroUSB Port:&#039;&#039;&#039; Used during the firmware update process. Can also be used as a serial monitor to capture debug logs in real time with a second PC. &lt;br /&gt;
* &#039;&#039;&#039;microSD Card Slot:&#039;&#039;&#039; Your SD card with images goes here.&lt;br /&gt;
* &#039;&#039;&#039;Activity LED:&#039;&#039;&#039; Flashes in sync with drive access, also used to indicate status conditions as described later&lt;br /&gt;
* &#039;&#039;&#039;Eject button:&#039;&#039;&#039; Performs a hardware eject for optical drives. Some operating systems will need this after dismounting an image from the system to register that the drive door is closed.&lt;br /&gt;
* &#039;&#039;&#039;External eject and LED headers:&#039;&#039;&#039; If you intend to mount the device internally, but want external access to these, you can use standard 0.1&amp;quot; headers to run an eject button and an LED to a case panel. The red box on the image above indicates the positive pin.&lt;br /&gt;
&lt;br /&gt;
== Molex power connector ==&lt;br /&gt;
Make sure that your power connection uses a &#039;&#039;&#039;3½&amp;quot; floppy power connector,&#039;&#039;&#039; not the larger drive connector used on full-size optical drives, hard drives, and the like. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector.png|frameless|135x135px]]&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector.png|frameless|117x117px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |✅ 3½&amp;quot; connector&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |❌ 5¼&amp;quot; connector&lt;br /&gt;
|}&lt;br /&gt;
If your host system only has the 5¼&amp;quot; connectors, you&#039;ll need to either purchase or make an adapter cable. Making an adapter cable requires the following parts:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;4× 5¼ male pins:&#039;&#039;&#039; TE Connectivity P/N 60620-1&lt;br /&gt;
* &#039;&#039;&#039;1× 5¼ male housing:&#039;&#039;&#039; TE Connectivity P/N 1-480426-0&lt;br /&gt;
* &#039;&#039;&#039;4× 3½ female sockets:&#039;&#039;&#039; TE Connectivity P/N 170262-1&lt;br /&gt;
* &#039;&#039;&#039;1× 3½ female housing:&#039;&#039;&#039; TE Connectivity P/N 171822-4&lt;br /&gt;
&lt;br /&gt;
When making the cables, use 20-gauge wire. If you&#039;re crimping a splitter cable, it&#039;s also possible to use 18-gauge wire on the 5¼ side going to the female plug, and then crimp the larger wire going into the male splitter side together with 22 or 24-gauge wire going to the 3½ side. Crimping the cables can be done with standard tools found on Amazon, such as the IWISS SN-025. &lt;br /&gt;
&lt;br /&gt;
== DIP Switch Configuration ==&lt;br /&gt;
[[File:DIP switches (ZuluSCSI).png|center|frameless]]&lt;br /&gt;
Set the three DIP switches according to how the device needs to be configured in the host system.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch 1:&#039;&#039;&#039; Turn IDE Cable Select on or off. &#039;&#039;Most&#039;&#039; systems will work fine with this off, but there are several systems (especially single-board industrial computers) which will use cable-select to determine primary and secondary drives and thus will need it on. If your system hangs during IDE device detection with the ZuluSCSI attached to the bus, try turning this switch ON first.&lt;br /&gt;
* &#039;&#039;&#039;Switch 2:&#039;&#039;&#039; Respond as Primary/Master (OFF) or Secondary/Slave (ON).&lt;br /&gt;
* &#039;&#039;&#039;Switch 3:&#039;&#039;&#039; Debug log disable/enable. If this switch is ON, the device will automatically write out a detailed debug log to &amp;lt;code&amp;gt;zululog.txt&amp;lt;/code&amp;gt; on the SD card as long as the device is powered on. Additionally, if you have a USB cable plugged into the MicroUSB port on the device with this switch on, it will also print the debug log over the cable via the RP2040&#039;s internal serial connection.&lt;br /&gt;
&lt;br /&gt;
== Qwiic Port and External Hardware Interface ==&lt;br /&gt;
The external hardware interface (optional) can be connected to this port. The interface provides a Gotek-like system to navigate disc images stored on the SD card and to cycle through them. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Hardware interface (rev 2024a).png|frameless|379x379px]]&lt;br /&gt;
![[File:Qwiic cable.png|frameless|338x338px]]&lt;br /&gt;
|}&lt;br /&gt;
The rotary encoder knob on the hardware interface functions exactly like a Gotek device — spin the knob to change images or menu selections, press the knob to select. The Eject button works exactly like the eject button on the main board, although with the hardware interface attached, it will ask you to confirm the eject by pressing the rotary knob. The User button is currently reserved for future use.&lt;br /&gt;
&lt;br /&gt;
== Activity LED ==&lt;br /&gt;
The Activity LED will flash normally during disk access, however, in certain specific failure modes or status changes, you will see it flashing with a pattern. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1 fast blink, at boot time:&#039;&#039;&#039; Image file loaded successfully&lt;br /&gt;
* &#039;&#039;&#039;3 fast blinks:&#039;&#039;&#039; No valid images found on SD card&lt;br /&gt;
* &#039;&#039;&#039;5 fast blinks:&#039;&#039;&#039; SD card is present, but is not being detected&lt;br /&gt;
* &#039;&#039;&#039;Morse code pattern:&#039;&#039;&#039; Firmware crash. The particular pattern will indicate where the crash occurred. &lt;br /&gt;
&lt;br /&gt;
If a firmware crash occurs, it will also try to save information to the file &amp;lt;code&amp;gt;zuluerr.txt&amp;lt;/code&amp;gt; on the SD card. &lt;br /&gt;
&lt;br /&gt;
== SD Card Preparation and Use ==&lt;br /&gt;
Format your SD card with either the FAT32 or exFAT filesystems. If you intend to use images larger than 4 GB in size, you &#039;&#039;must&#039;&#039; format the card using exFAT as the FAT32 filesystem cannot support individual files larger than 4 GB. &lt;br /&gt;
&lt;br /&gt;
Load your images onto the card into the root folder. Images stored in folders, unless they are &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; images, will be ignored.&lt;br /&gt;
&lt;br /&gt;
For &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; files, they can be placed into a folder with the same name as the image file; i.e., if you have a &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; pair named &amp;lt;code&amp;gt;bigdiscofstuff.bin&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigdiscofstuff.cue&amp;lt;/code&amp;gt; you should place them in a directory named &amp;lt;code&amp;gt;bigdiscofstuff&amp;lt;/code&amp;gt;. This is &#039;&#039;&#039;required&#039;&#039;&#039; if your &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; image has a single &amp;lt;code&amp;gt;CUE&amp;lt;/code&amp;gt; file and multiple &amp;lt;code&amp;gt;BIN&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
=== Drive Types ===&lt;br /&gt;
When configuring the ZuluSCSI, you can set it to be multiple different drive types based on the images you intend to use. Out of the box, the ZuluSCSI configures itself as an optical drive, but through the [[ZuluSCSI INI Configuration|INI file]] or by using &#039;&#039;&#039;filename prefixes,&#039;&#039;&#039; you can tell the ZuluSCSI which device you want it to behave as when you power it on. &lt;br /&gt;
&lt;br /&gt;
==== Using the INI File ====&lt;br /&gt;
Under the &amp;lt;code&amp;gt;[IDE]&amp;lt;/code&amp;gt; heading, use the &amp;lt;code&amp;gt;Device=&amp;lt;/code&amp;gt; value to set the drive type:0&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;CDROM&amp;lt;/code&amp;gt; (default) will cause the ZuluSCSI to respond as an optical drive.&lt;br /&gt;
* &amp;lt;code&amp;gt;Zip100&amp;lt;/code&amp;gt; will cause the ZuluSCSI to respond as an ATAPI-attached 100MB Zip Drive&lt;br /&gt;
* &amp;lt;code&amp;gt;Zip250&amp;lt;/code&amp;gt; will cause the ZuluSCSI to respond as an ATAPI-attached 250MB Zip Drive&lt;br /&gt;
* &amp;lt;code&amp;gt;Removable&amp;lt;/code&amp;gt; will cause the ZuluSCSI to respond as a generic removable media device&lt;br /&gt;
* &amp;lt;code&amp;gt;HDD&amp;lt;/code&amp;gt; will cause the ZuluSCSI to respond as a standard hard disk drive&lt;br /&gt;
&lt;br /&gt;
If this section is absent, or the &amp;lt;code&amp;gt;zuluide.ini&amp;lt;/code&amp;gt; file is not present on the SD card, the device will default to behaving as an optical drive.&lt;br /&gt;
&lt;br /&gt;
==== Using a filename prefix ====&lt;br /&gt;
Add the following to the beginning of your filename to switch the ZuluSCSI&#039;s device mode:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;cdrm&amp;lt;/code&amp;gt; will cause the ZuluSCSI to load the image as an optical drive image.&lt;br /&gt;
* &amp;lt;code&amp;gt;zipd&amp;lt;/code&amp;gt; will cause the ZuluSCSI to load the image as a 100MB or 250MB Zip disk.&lt;br /&gt;
* &amp;lt;code&amp;gt;remv&amp;lt;/code&amp;gt; will cause the ZuluSCSI to load the image as a generic removable media device.&lt;br /&gt;
* &amp;lt;code&amp;gt;hddr&amp;lt;/code&amp;gt; will cause the ZuluSCSI to load the image as a non-removable hard disk image.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;Device=&amp;lt;/code&amp;gt; option in the INI file will override this behavior. Additionally, if a filename prefix is specified, all other files that you want to use &#039;&#039;&#039;must have the same prefix.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
==== Filename extensions ====&lt;br /&gt;
In optical drive mode, the device will only recognize images that end in &amp;lt;code&amp;gt;.iso&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.bin/.cue&amp;lt;/code&amp;gt;, while also recognizing folders for purposes of reading multipart &amp;lt;code&amp;gt;.bin/.cue&amp;lt;/code&amp;gt; images. &lt;br /&gt;
&lt;br /&gt;
For Zip drives or other removable media,ᚸso long as the filename doesn&#039;t contain one of the prefixes above, doesn&#039;t have an optical drive image extension (&amp;lt;code&amp;gt;.iso/.bin/.cue&amp;lt;/code&amp;gt;), or one of the extensions on the ignored list below, it will load the file as a disk image and attempt to mount it.&lt;br /&gt;
&lt;br /&gt;
If the ZuluSCSI starts up as an optical drive, it will use the first image it finds on the SD card as an optical disc.&lt;br /&gt;
&lt;br /&gt;
==== Changing disk images ====&lt;br /&gt;
Without the hardware interface or web interface, changing disk images is done by pressing the eject button on the device itself or by performing a hardware eject directly through the operating system. The firmware will cycle to the next available image on the SD card in alphabetical order. &lt;br /&gt;
&lt;br /&gt;
==== Ignore list ====&lt;br /&gt;
Files with any of the following extensions will be ignored by the ZuluSCSI and will not appear in the list of available images on the hardware or web interfaces, and will not be selected when a hardware eject is performed:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;.cue&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;.txt&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.rtf&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.md&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.nfo&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.pdf&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.doc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compressed archive file formats: &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;.zip .7z .dmg .rar .tar .tgz .gz .bz2 .tbz2 .xz .zst .lzh .lha .lzo .lz4 .arj .hqx .cpt .s7z&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additionally, any file that begins with &amp;lt;code&amp;gt;zulu&amp;lt;/code&amp;gt; will be ignored. &lt;br /&gt;
&lt;br /&gt;
==== USB Mass Storage ====&lt;br /&gt;
You can use the ZuluSCSI as a passthrough to access the SD card directly by putting the option &amp;lt;code&amp;gt;enable_usb_mass_storage=1&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;[IDE]&amp;lt;/code&amp;gt; section of the [[ZuluSCSI INI Configuration|INI file]]. In order to use this mode, the ZuluSCSI must not currently be operating as an attached device through the IDE port on a host computer. &lt;br /&gt;
&lt;br /&gt;
==== Hotplugging ====&lt;br /&gt;
The ZuluSCSI supports removal and re-insertion of the SD card while the device is on and functioning. Until the device detects that a card has been inserted, you&#039;ll see the activity LED blink 5 times rapidly, pause, and then repeat until a card is reinserted. Once the card has been detected, the LED will blink once, turn off, and return to normal indication of disk access.&lt;br /&gt;
&lt;br /&gt;
== Updating the Firmware ==&lt;br /&gt;
New firmware releases can be obtained by visiting the [https://github.com/ZuluSCSI/ZuluSCSI-firmware/releases Github page] for the project. The most recent firmware will be listed at the top with a green &amp;quot;Latest&amp;quot; badge. You can update the firmware two different ways.&lt;br /&gt;
&lt;br /&gt;
==== Using the SD card ====&lt;br /&gt;
The ZuluSCSI can update itself when it&#039;s initially powered on. You&#039;ll need to have access to the device so you can remove its SD card. &lt;br /&gt;
&lt;br /&gt;
# Power down the system that the ZuluSCSI is attached to and remove its SD card.&lt;br /&gt;
# Attach the SD card to the computer where you&#039;ll download the update.&lt;br /&gt;
# From the [https://github.com/ZuluSCSI/ZuluSCSI-firmware/releases Github page], download the latest firmware file with a &#039;&#039;&#039;.BIN&#039;&#039;&#039; extension.&lt;br /&gt;
# Copy the downloaded &#039;&#039;&#039;.BIN&#039;&#039;&#039; file to the root folder of the SD card and rename it as &amp;lt;code&amp;gt;ZuluSCSI.bin&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Dismount the SD card from the computer, and reinsert the SD card into the ZuluSCSI.&lt;br /&gt;
# Power the system back on. The ZuluSCSI will automatically begin the firmware update process, which takes about one second. If the system has to boot to the ZuluSCSI and its startup is particularly quick, you may need to reset the computer once to allow the firmware update process to complete on the ZuluSCSI so it can become ready.&lt;br /&gt;
# When the firmware update process finishes, the ZuluSCSI will delete the update file and continue on to normal operation.&lt;br /&gt;
&lt;br /&gt;
==== Using the BOOTLDR button ====&lt;br /&gt;
[[File:Bootloader button.png|thumb|140x140px|BOOTLDR button]]&lt;br /&gt;
If you have physical access to the device and a way to plug the MicroUSB port into a host computer, this is the traditional way to update RP2040-based devices like the ZuluSCSI. &lt;br /&gt;
&lt;br /&gt;
# Power down the system the ZuluSCSI is attached to, and if necessary, unplug it from its cabling.&lt;br /&gt;
# From the [https://github.com/ZuluSCSI/ZuluSCSI-firmware/releases Github page], download the latest firmware file with a &#039;&#039;&#039;.UF2&#039;&#039;&#039; extension. &lt;br /&gt;
# Attach a MicroUSB cable to the device you&#039;ll be uploading the firmware from.&lt;br /&gt;
# While holding down the BOOTLDR button on the ZuluSCSI, attach the other end of the cable to the MicroUSB port on the ZuluSCSI. [[File:Firmware-update.png|thumb|Copy the UF2 file to the device.]]&lt;br /&gt;
# A Windows Explorer window may appear with a drive called &amp;lt;code&amp;gt;RPi-RP2&amp;lt;/code&amp;gt;. If it doesn&#039;t, open a Windows Explorer window and look for a drive with this name.&lt;br /&gt;
# Copy the &#039;&#039;&#039;.UF2&#039;&#039;&#039; file you downloaded to the root folder of the drive that appeared when you plugged in the ZuluSCSI.&lt;br /&gt;
# The &amp;lt;code&amp;gt;RPi-RP2&amp;lt;/code&amp;gt; window should close on its own once the copy completes. When the device disconnects on its own, the firmware update process is complete.&lt;br /&gt;
# Disconnect the USB cables and reattach the ZuluSCSI to its host, if you removed it in step 1. &lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
Some simple things to check before you dive deeper:&lt;br /&gt;
&lt;br /&gt;
* Make sure there are no primary/secondary conflicts on the IDE channel that the ZuluSCSI is attached to.&lt;br /&gt;
* Make sure that the power connection to the device is secure and attached.&lt;br /&gt;
* Try toggling the Cable Select switch. Some BIOSes prefer the device to be one way or the other and there&#039;s often little rhyme or reason between even the exact same BIOS on the exact same build across two machines. &lt;br /&gt;
&lt;br /&gt;
For more specific problems, keep reading.&lt;br /&gt;
&lt;br /&gt;
The icon at the left of the problems listed tends to pertain to that particular operating system.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Msdos-icon.png|32x32px]][[File:Win31.png|32x32px]](as optical drive): The ZuluSCSI doesn&#039;t seem to be recognized under MS-DOS. ===&lt;br /&gt;
If you have the ZuluSCSI attached as an optical drive in a system that doesn&#039;t natively support the ATAPI protocol, you may have to install a third-party driver to allow DOS to see the drive. This was common for all systems based on 386 processors and earlier, most 486 systems, and some Pentium-based systems. &lt;br /&gt;
&lt;br /&gt;
The simplest solution is to obtain a copy of the Microsoft Windows 98 startup disk, and copy the &amp;lt;code&amp;gt;OAKCDROM.SYS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MSCDEX.EXE&amp;lt;/code&amp;gt; files from it to the root folder of your boot drive. Then, modify your &amp;lt;code&amp;gt;CONFIG.SYS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;AUTOEXEC.BAT&amp;lt;/code&amp;gt; files like this:&lt;br /&gt;
&lt;br /&gt;
==== CONFIG.SYS ====&lt;br /&gt;
Add this line to the top of the file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DEVICE=C:\OAKCDROM.SYS /D:MSCD000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== AUTOEXEC.BAT ====&lt;br /&gt;
Add this line to the end of the file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;C:\MSCDEX.EXE /D:MSCD000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reboot the system, and the drive should populate. &lt;br /&gt;
&lt;br /&gt;
Keep in mind that the only DOS-based CD-ROM driver that has been tested to work with the ZuluSCSI at present is the Oak Technology driver (&amp;lt;code&amp;gt;OAKCDROM.SYS&amp;lt;/code&amp;gt;) and &amp;lt;code&amp;gt;VIDE-CDD.SYS&amp;lt;/code&amp;gt;, the driver that is included on the Microsoft CD-ROM Extensions installation floppy disk.&lt;br /&gt;
&lt;br /&gt;
Other generic drivers, such as the LG (GoldStar) or Adaptec drivers may work, but have not been fully tested.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Msdos-icon.png|32x32px]][[File:Win31.png|32x32px]](as optical drive): The system recognizes the first disc image loaded, but then acts like the drive isn&#039;t ready when I change images. ===&lt;br /&gt;
This issue is related to firmware revisions prior to 2024.11.08. Update your device firmware on the [https://github.com/rabbitholecomputing/ZuluSCSI-firmware Github repo]. &lt;br /&gt;
&lt;br /&gt;
If you are unable to update the firmware, there is a workaround that you can use until you are able to do so. &lt;br /&gt;
&lt;br /&gt;
After changing images, try to access the drive. The system will pause for a long moment, and then you should see a message similar to this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CDR101: Not ready reading drive E:&amp;lt;br&amp;gt;&lt;br /&gt;
(A)bort, (R)etry, (F)ail?&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Press F to fail the check, and then if it drops back to a command prompt, try to access the drive again and it should present the image as normal.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Win9598.png|37x37px]][[File:Winxp.png|36x36px]] (as optical drive): Performing an &amp;quot;eject&amp;quot; command in Windows Explorer doesn&#039;t actually cycle to the next image. ===&lt;br /&gt;
This issue is related to firmware revisions prior to 2024.12.10. Update your device firmware on the [https://github.com/rabbitholecomputing/ZuluSCSI-firmware Github repo].&lt;br /&gt;
&lt;br /&gt;
The workaround for this is to have either the web interface or hardware interface connected and swap images that way. Another workaround is to manually eject the SD card from the ZuluSCSI, add a zero to the beginning of the desired disk image&#039;s name, and then reinsert the SD card. The ZuluSCSI will then look for the first image it can load alphabetically, which should be the newly-renamed image.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Msdos-icon.png|frameless|34x34px]](attached to sound card): The ZuluSCSI seems to be working correctly, but it&#039;s never detected. ===&lt;br /&gt;
This is a potential hardware configuration issue. Some sound cards, even if they have an actual IDE interface, force themselves to be configured as either the primary or secondary interface in the system and are not configurable. Most sound cards are also capable of recognizing &#039;&#039;only&#039;&#039; optical devices, so if you have the ZuluSCSI configured as something other than an optical drive, the card may not recognize the device attached to it. If you want to use the ZuluSCSI as something other than an optical drive, attach it to an IDE port attached to the motherboard or I/O card, as opposed to a sound card.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Msdos-icon.png|frameless|34x34px]][[File:Win31.png|32x32px]][[File:Win9598.png|37x37px]][[File:Winxp.png|36x36px]] (with audio DAC board): I have the device attached to my SoundBlaster&#039;s CD audio in connector, but I only hear the right channel. ===&lt;br /&gt;
Early SoundBlaster cards (including the Pro and Pro 2) used a different pinout on the CD audio header. Instead of R-G-G-L (right channel, ground, ground, left channel) these cards&#039; pinout was NC-L-G-R (no connect, left, ground, right). You may need to get a different cable.&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=ZuluSCSI_Operations_Guide&amp;diff=79</id>
		<title>ZuluSCSI Operations Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=ZuluSCSI_Operations_Guide&amp;diff=79"/>
		<updated>2025-01-06T16:06:42Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: initial creation -- WIP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting Up Your ZuluSCSI ==&lt;br /&gt;
&lt;br /&gt;
--- copied from IDE page; WIP! ---&lt;br /&gt;
&lt;br /&gt;
=== Unboxing ===&lt;br /&gt;
When you first receive your ZuluSCSI, depending on the options you ordered, you should receive the following:&lt;br /&gt;
&lt;br /&gt;
* ZuluSCSI RP2040 Compact board &lt;br /&gt;
* 3D-printed plastic carrier&lt;br /&gt;
* 2x ¼&amp;quot; 4-40 screws&lt;br /&gt;
* microSD card&lt;br /&gt;
* Hardware interface board (optional)&lt;br /&gt;
* Qwiic cable (included with hardware interface board)&lt;br /&gt;
* DAC board with mounted Raspberry Pi Pico W (optional)&lt;br /&gt;
&lt;br /&gt;
== Board Overview ==&lt;br /&gt;
Take a moment to identify the various parts of the board as shown below. &lt;br /&gt;
[[File:ZuluSCSI RP2040 Compact (labeled).png|center|frameless|800x800px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;4-pin Molex floppy power connector:&#039;&#039;&#039; Run a standard Molex 4-pin power cable to this port. If your system power supply has only the larger style, get an adapter cable to switch it to the smaller size (the same size as that found on a 3½&amp;quot; floppy disk drive).&lt;br /&gt;
* &#039;&#039;&#039;40-pin male IDC connector:&#039;&#039;&#039; Plug your IDE bus cable into this. The connector is keyed, but some IDE cables lack the key, so make sure that the red stripe on the cable lines up with the little arrow embossed into the connector itself. &lt;br /&gt;
* &#039;&#039;&#039;Configuration DIP switches:&#039;&#039;&#039; These will set how the ZuluSCSI responds when the BIOS requests information from the device. &lt;br /&gt;
* &#039;&#039;&#039;Bootloader button:&#039;&#039;&#039; Used during the firmware update process.&lt;br /&gt;
* &#039;&#039;&#039;I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C Footprint:&#039;&#039;&#039; Addon boards can attach through this open footprint either by being soldered directly to it or by attaching standard 0.1&amp;quot; header to this footprint.&lt;br /&gt;
* &#039;&#039;&#039;Qwiic Port:&#039;&#039;&#039; Addon boards can also attach here through the use of a standard Qwiic I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C cable.&lt;br /&gt;
* &#039;&#039;&#039;MicroUSB Port:&#039;&#039;&#039; Used during the firmware update process. Can also be used as a serial monitor to capture debug logs in real time with a second PC. &lt;br /&gt;
* &#039;&#039;&#039;microSD Card Slot:&#039;&#039;&#039; Your SD card with images goes here.&lt;br /&gt;
* &#039;&#039;&#039;Activity LED:&#039;&#039;&#039; Flashes in sync with drive access, also used to indicate status conditions as described later&lt;br /&gt;
* &#039;&#039;&#039;Eject button:&#039;&#039;&#039; Performs a hardware eject for optical drives. Some operating systems will need this after dismounting an image from the system to register that the drive door is closed.&lt;br /&gt;
* &#039;&#039;&#039;External eject and LED headers:&#039;&#039;&#039; If you intend to mount the device internally, but want external access to these, you can use standard 0.1&amp;quot; headers to run an eject button and an LED to a case panel. The red box on the image above indicates the positive pin.&lt;br /&gt;
&lt;br /&gt;
== Molex power connector ==&lt;br /&gt;
Make sure that your power connection uses a &#039;&#039;&#039;3½&amp;quot; floppy power connector,&#039;&#039;&#039; not the larger drive connector used on full-size optical drives, hard drives, and the like. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector.png|frameless|135x135px]]&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector.png|frameless|117x117px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |✅ 3½&amp;quot; connector&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |❌ 5¼&amp;quot; connector&lt;br /&gt;
|}&lt;br /&gt;
If your host system only has the 5¼&amp;quot; connectors, you&#039;ll need to either purchase or make an adapter cable. Making an adapter cable requires the following parts:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;4× 5¼ male pins:&#039;&#039;&#039; TE Connectivity P/N 60620-1&lt;br /&gt;
* &#039;&#039;&#039;1× 5¼ male housing:&#039;&#039;&#039; TE Connectivity P/N 1-480426-0&lt;br /&gt;
* &#039;&#039;&#039;4× 3½ female sockets:&#039;&#039;&#039; TE Connectivity P/N 170262-1&lt;br /&gt;
* &#039;&#039;&#039;1× 3½ female housing:&#039;&#039;&#039; TE Connectivity P/N 171822-4&lt;br /&gt;
&lt;br /&gt;
When making the cables, use 20-gauge wire. If you&#039;re crimping a splitter cable, it&#039;s also possible to use 18-gauge wire on the 5¼ side going to the female plug, and then crimp the larger wire going into the male splitter side together with 22 or 24-gauge wire going to the 3½ side. Crimping the cables can be done with standard tools found on Amazon, such as the IWISS SN-025. &lt;br /&gt;
&lt;br /&gt;
== DIP Switch Configuration ==&lt;br /&gt;
[[File:DIP switches (ZuluSCSI).png|center|frameless]]&lt;br /&gt;
Set the three DIP switches according to how the device needs to be configured in the host system.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch 1:&#039;&#039;&#039; Turn IDE Cable Select on or off. &#039;&#039;Most&#039;&#039; systems will work fine with this off, but there are several systems (especially single-board industrial computers) which will use cable-select to determine primary and secondary drives and thus will need it on. If your system hangs during IDE device detection with the ZuluSCSI attached to the bus, try turning this switch ON first.&lt;br /&gt;
* &#039;&#039;&#039;Switch 2:&#039;&#039;&#039; Respond as Primary/Master (OFF) or Secondary/Slave (ON).&lt;br /&gt;
* &#039;&#039;&#039;Switch 3:&#039;&#039;&#039; Debug log disable/enable. If this switch is ON, the device will automatically write out a detailed debug log to &amp;lt;code&amp;gt;zululog.txt&amp;lt;/code&amp;gt; on the SD card as long as the device is powered on. Additionally, if you have a USB cable plugged into the MicroUSB port on the device with this switch on, it will also print the debug log over the cable via the RP2040&#039;s internal serial connection.&lt;br /&gt;
&lt;br /&gt;
== Qwiic Port and External Hardware Interface ==&lt;br /&gt;
The external hardware interface (optional) can be connected to this port. The interface provides a Gotek-like system to navigate disc images stored on the SD card and to cycle through them. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Hardware interface (rev 2024a).png|frameless|379x379px]]&lt;br /&gt;
![[File:Qwiic cable.png|frameless|338x338px]]&lt;br /&gt;
|}&lt;br /&gt;
The rotary encoder knob on the hardware interface functions exactly like a Gotek device — spin the knob to change images or menu selections, press the knob to select. The Eject button works exactly like the eject button on the main board, although with the hardware interface attached, it will ask you to confirm the eject by pressing the rotary knob. The User button is currently reserved for future use.&lt;br /&gt;
&lt;br /&gt;
== Activity LED ==&lt;br /&gt;
The Activity LED will flash normally during disk access, however, in certain specific failure modes or status changes, you will see it flashing with a pattern. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1 fast blink, at boot time:&#039;&#039;&#039; Image file loaded successfully&lt;br /&gt;
* &#039;&#039;&#039;3 fast blinks:&#039;&#039;&#039; No valid images found on SD card&lt;br /&gt;
* &#039;&#039;&#039;5 fast blinks:&#039;&#039;&#039; SD card is present, but is not being detected&lt;br /&gt;
* &#039;&#039;&#039;Morse code pattern:&#039;&#039;&#039; Firmware crash. The particular pattern will indicate where the crash occurred. &lt;br /&gt;
&lt;br /&gt;
If a firmware crash occurs, it will also try to save information to the file &amp;lt;code&amp;gt;zuluerr.txt&amp;lt;/code&amp;gt; on the SD card. &lt;br /&gt;
&lt;br /&gt;
== SD Card Preparation and Use ==&lt;br /&gt;
Format your SD card with either the FAT32 or exFAT filesystems. If you intend to use images larger than 4 GB in size, you &#039;&#039;must&#039;&#039; format the card using exFAT as the FAT32 filesystem cannot support individual files larger than 4 GB. &lt;br /&gt;
&lt;br /&gt;
Load your images onto the card into the root folder. Images stored in folders, unless they are &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; images, will be ignored.&lt;br /&gt;
&lt;br /&gt;
For &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; files, they can be placed into a folder with the same name as the image file; i.e., if you have a &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; pair named &amp;lt;code&amp;gt;bigdiscofstuff.bin&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigdiscofstuff.cue&amp;lt;/code&amp;gt; you should place them in a directory named &amp;lt;code&amp;gt;bigdiscofstuff&amp;lt;/code&amp;gt;. This is &#039;&#039;&#039;required&#039;&#039;&#039; if your &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; image has a single &amp;lt;code&amp;gt;CUE&amp;lt;/code&amp;gt; file and multiple &amp;lt;code&amp;gt;BIN&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
=== Drive Types ===&lt;br /&gt;
When configuring the ZuluSCSI, you can set it to be multiple different drive types based on the images you intend to use. Out of the box, the ZuluSCSI configures itself as an optical drive, but through the [[ZuluSCSI INI Configuration|INI file]] or by using &#039;&#039;&#039;filename prefixes,&#039;&#039;&#039; you can tell the ZuluSCSI which device you want it to behave as when you power it on. &lt;br /&gt;
&lt;br /&gt;
==== Using the INI File ====&lt;br /&gt;
Under the &amp;lt;code&amp;gt;[IDE]&amp;lt;/code&amp;gt; heading, use the &amp;lt;code&amp;gt;Device=&amp;lt;/code&amp;gt; value to set the drive type:0&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;CDROM&amp;lt;/code&amp;gt; (default) will cause the ZuluSCSI to respond as an optical drive.&lt;br /&gt;
* &amp;lt;code&amp;gt;Zip100&amp;lt;/code&amp;gt; will cause the ZuluSCSI to respond as an ATAPI-attached 100MB Zip Drive&lt;br /&gt;
* &amp;lt;code&amp;gt;Zip250&amp;lt;/code&amp;gt; will cause the ZuluSCSI to respond as an ATAPI-attached 250MB Zip Drive&lt;br /&gt;
* &amp;lt;code&amp;gt;Removable&amp;lt;/code&amp;gt; will cause the ZuluSCSI to respond as a generic removable media device&lt;br /&gt;
* &amp;lt;code&amp;gt;HDD&amp;lt;/code&amp;gt; will cause the ZuluSCSI to respond as a standard hard disk drive&lt;br /&gt;
&lt;br /&gt;
If this section is absent, or the &amp;lt;code&amp;gt;zuluide.ini&amp;lt;/code&amp;gt; file is not present on the SD card, the device will default to behaving as an optical drive.&lt;br /&gt;
&lt;br /&gt;
==== Using a filename prefix ====&lt;br /&gt;
Add the following to the beginning of your filename to switch the ZuluSCSI&#039;s device mode:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;cdrm&amp;lt;/code&amp;gt; will cause the ZuluSCSI to load the image as an optical drive image.&lt;br /&gt;
* &amp;lt;code&amp;gt;zipd&amp;lt;/code&amp;gt; will cause the ZuluSCSI to load the image as a 100MB or 250MB Zip disk.&lt;br /&gt;
* &amp;lt;code&amp;gt;remv&amp;lt;/code&amp;gt; will cause the ZuluSCSI to load the image as a generic removable media device.&lt;br /&gt;
* &amp;lt;code&amp;gt;hddr&amp;lt;/code&amp;gt; will cause the ZuluSCSI to load the image as a non-removable hard disk image.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;Device=&amp;lt;/code&amp;gt; option in the INI file will override this behavior. Additionally, if a filename prefix is specified, all other files that you want to use &#039;&#039;&#039;must have the same prefix.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
==== Filename extensions ====&lt;br /&gt;
In optical drive mode, the device will only recognize images that end in &amp;lt;code&amp;gt;.iso&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.bin/.cue&amp;lt;/code&amp;gt;, while also recognizing folders for purposes of reading multipart &amp;lt;code&amp;gt;.bin/.cue&amp;lt;/code&amp;gt; images. &lt;br /&gt;
&lt;br /&gt;
For Zip drives or other removable media,ᚸso long as the filename doesn&#039;t contain one of the prefixes above, doesn&#039;t have an optical drive image extension (&amp;lt;code&amp;gt;.iso/.bin/.cue&amp;lt;/code&amp;gt;), or one of the extensions on the ignored list below, it will load the file as a disk image and attempt to mount it.&lt;br /&gt;
&lt;br /&gt;
If the ZuluSCSI starts up as an optical drive, it will use the first image it finds on the SD card as an optical disc.&lt;br /&gt;
&lt;br /&gt;
==== Changing disk images ====&lt;br /&gt;
Without the hardware interface or web interface, changing disk images is done by pressing the eject button on the device itself or by performing a hardware eject directly through the operating system. The firmware will cycle to the next available image on the SD card in alphabetical order. &lt;br /&gt;
&lt;br /&gt;
==== Ignore list ====&lt;br /&gt;
Files with any of the following extensions will be ignored by the ZuluSCSI and will not appear in the list of available images on the hardware or web interfaces, and will not be selected when a hardware eject is performed:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;.cue&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;.txt&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.rtf&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.md&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.nfo&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.pdf&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.doc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compressed archive file formats: &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;.zip .7z .dmg .rar .tar .tgz .gz .bz2 .tbz2 .xz .zst .lzh .lha .lzo .lz4 .arj .hqx .cpt .s7z&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additionally, any file that begins with &amp;lt;code&amp;gt;zulu&amp;lt;/code&amp;gt; will be ignored. &lt;br /&gt;
&lt;br /&gt;
==== USB Mass Storage ====&lt;br /&gt;
You can use the ZuluSCSI as a passthrough to access the SD card directly by putting the option &amp;lt;code&amp;gt;enable_usb_mass_storage=1&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;[IDE]&amp;lt;/code&amp;gt; section of the [[ZuluSCSI INI Configuration|INI file]]. In order to use this mode, the ZuluSCSI must not currently be operating as an attached device through the IDE port on a host computer. &lt;br /&gt;
&lt;br /&gt;
==== Hotplugging ====&lt;br /&gt;
The ZuluSCSI supports removal and re-insertion of the SD card while the device is on and functioning. Until the device detects that a card has been inserted, you&#039;ll see the activity LED blink 5 times rapidly, pause, and then repeat until a card is reinserted. Once the card has been detected, the LED will blink once, turn off, and return to normal indication of disk access.&lt;br /&gt;
&lt;br /&gt;
== Updating the Firmware ==&lt;br /&gt;
New firmware releases can be obtained by visiting the [https://github.com/ZuluSCSI/ZuluSCSI-firmware/releases Github page] for the project. The most recent firmware will be listed at the top with a green &amp;quot;Latest&amp;quot; badge. You can update the firmware two different ways.&lt;br /&gt;
&lt;br /&gt;
==== Using the SD card ====&lt;br /&gt;
The ZuluSCSI can update itself when it&#039;s initially powered on. You&#039;ll need to have access to the device so you can remove its SD card. &lt;br /&gt;
&lt;br /&gt;
# Power down the system that the ZuluSCSI is attached to and remove its SD card.&lt;br /&gt;
# Attach the SD card to the computer where you&#039;ll download the update.&lt;br /&gt;
# From the [https://github.com/ZuluSCSI/ZuluSCSI-firmware/releases Github page], download the latest firmware file with a &#039;&#039;&#039;.BIN&#039;&#039;&#039; extension.&lt;br /&gt;
# Copy the downloaded &#039;&#039;&#039;.BIN&#039;&#039;&#039; file to the root folder of the SD card and rename it as &amp;lt;code&amp;gt;ZuluSCSI.bin&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Dismount the SD card from the computer, and reinsert the SD card into the ZuluSCSI.&lt;br /&gt;
# Power the system back on. The ZuluSCSI will automatically begin the firmware update process, which takes about one second. If the system has to boot to the ZuluSCSI and its startup is particularly quick, you may need to reset the computer once to allow the firmware update process to complete on the ZuluSCSI so it can become ready.&lt;br /&gt;
# When the firmware update process finishes, the ZuluSCSI will delete the update file and continue on to normal operation.&lt;br /&gt;
&lt;br /&gt;
==== Using the BOOTLDR button ====&lt;br /&gt;
[[File:Bootloader button.png|thumb|140x140px|BOOTLDR button]]&lt;br /&gt;
If you have physical access to the device and a way to plug the MicroUSB port into a host computer, this is the traditional way to update RP2040-based devices like the ZuluSCSI. &lt;br /&gt;
&lt;br /&gt;
# Power down the system the ZuluSCSI is attached to, and if necessary, unplug it from its cabling.&lt;br /&gt;
# From the [https://github.com/ZuluSCSI/ZuluSCSI-firmware/releases Github page], download the latest firmware file with a &#039;&#039;&#039;.UF2&#039;&#039;&#039; extension. &lt;br /&gt;
# Attach a MicroUSB cable to the device you&#039;ll be uploading the firmware from.&lt;br /&gt;
# While holding down the BOOTLDR button on the ZuluSCSI, attach the other end of the cable to the MicroUSB port on the ZuluSCSI. [[File:Firmware-update.png|thumb|Copy the UF2 file to the device.]]&lt;br /&gt;
# A Windows Explorer window may appear with a drive called &amp;lt;code&amp;gt;RPi-RP2&amp;lt;/code&amp;gt;. If it doesn&#039;t, open a Windows Explorer window and look for a drive with this name.&lt;br /&gt;
# Copy the &#039;&#039;&#039;.UF2&#039;&#039;&#039; file you downloaded to the root folder of the drive that appeared when you plugged in the ZuluSCSI.&lt;br /&gt;
# The &amp;lt;code&amp;gt;RPi-RP2&amp;lt;/code&amp;gt; window should close on its own once the copy completes. When the device disconnects on its own, the firmware update process is complete.&lt;br /&gt;
# Disconnect the USB cables and reattach the ZuluSCSI to its host, if you removed it in step 1. &lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
Some simple things to check before you dive deeper:&lt;br /&gt;
&lt;br /&gt;
* Make sure there are no primary/secondary conflicts on the IDE channel that the ZuluSCSI is attached to.&lt;br /&gt;
* Make sure that the power connection to the device is secure and attached.&lt;br /&gt;
* Try toggling the Cable Select switch. Some BIOSes prefer the device to be one way or the other and there&#039;s often little rhyme or reason between even the exact same BIOS on the exact same build across two machines. &lt;br /&gt;
&lt;br /&gt;
For more specific problems, keep reading.&lt;br /&gt;
&lt;br /&gt;
The icon at the left of the problems listed tends to pertain to that particular operating system.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Msdos-icon.png|32x32px]][[File:Win31.png|32x32px]](as optical drive): The ZuluSCSI doesn&#039;t seem to be recognized under MS-DOS. ===&lt;br /&gt;
If you have the ZuluSCSI attached as an optical drive in a system that doesn&#039;t natively support the ATAPI protocol, you may have to install a third-party driver to allow DOS to see the drive. This was common for all systems based on 386 processors and earlier, most 486 systems, and some Pentium-based systems. &lt;br /&gt;
&lt;br /&gt;
The simplest solution is to obtain a copy of the Microsoft Windows 98 startup disk, and copy the &amp;lt;code&amp;gt;OAKCDROM.SYS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MSCDEX.EXE&amp;lt;/code&amp;gt; files from it to the root folder of your boot drive. Then, modify your &amp;lt;code&amp;gt;CONFIG.SYS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;AUTOEXEC.BAT&amp;lt;/code&amp;gt; files like this:&lt;br /&gt;
&lt;br /&gt;
==== CONFIG.SYS ====&lt;br /&gt;
Add this line to the top of the file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DEVICE=C:\OAKCDROM.SYS /D:MSCD000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== AUTOEXEC.BAT ====&lt;br /&gt;
Add this line to the end of the file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;C:\MSCDEX.EXE /D:MSCD000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reboot the system, and the drive should populate. &lt;br /&gt;
&lt;br /&gt;
Keep in mind that the only DOS-based CD-ROM driver that has been tested to work with the ZuluSCSI at present is the Oak Technology driver (&amp;lt;code&amp;gt;OAKCDROM.SYS&amp;lt;/code&amp;gt;) and &amp;lt;code&amp;gt;VIDE-CDD.SYS&amp;lt;/code&amp;gt;, the driver that is included on the Microsoft CD-ROM Extensions installation floppy disk.&lt;br /&gt;
&lt;br /&gt;
Other generic drivers, such as the LG (GoldStar) or Adaptec drivers may work, but have not been fully tested.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Msdos-icon.png|32x32px]][[File:Win31.png|32x32px]](as optical drive): The system recognizes the first disc image loaded, but then acts like the drive isn&#039;t ready when I change images. ===&lt;br /&gt;
This issue is related to firmware revisions prior to 2024.11.08. Update your device firmware on the [https://github.com/rabbitholecomputing/ZuluSCSI-firmware Github repo]. &lt;br /&gt;
&lt;br /&gt;
If you are unable to update the firmware, there is a workaround that you can use until you are able to do so. &lt;br /&gt;
&lt;br /&gt;
After changing images, try to access the drive. The system will pause for a long moment, and then you should see a message similar to this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CDR101: Not ready reading drive E:&amp;lt;br&amp;gt;&lt;br /&gt;
(A)bort, (R)etry, (F)ail?&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Press F to fail the check, and then if it drops back to a command prompt, try to access the drive again and it should present the image as normal.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Win9598.png|37x37px]][[File:Winxp.png|36x36px]] (as optical drive): Performing an &amp;quot;eject&amp;quot; command in Windows Explorer doesn&#039;t actually cycle to the next image. ===&lt;br /&gt;
This issue is related to firmware revisions prior to 2024.12.10. Update your device firmware on the [https://github.com/rabbitholecomputing/ZuluSCSI-firmware Github repo].&lt;br /&gt;
&lt;br /&gt;
The workaround for this is to have either the web interface or hardware interface connected and swap images that way. Another workaround is to manually eject the SD card from the ZuluSCSI, add a zero to the beginning of the desired disk image&#039;s name, and then reinsert the SD card. The ZuluSCSI will then look for the first image it can load alphabetically, which should be the newly-renamed image.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Msdos-icon.png|frameless|34x34px]](attached to sound card): The ZuluSCSI seems to be working correctly, but it&#039;s never detected. ===&lt;br /&gt;
This is a potential hardware configuration issue. Some sound cards, even if they have an actual IDE interface, force themselves to be configured as either the primary or secondary interface in the system and are not configurable. Most sound cards are also capable of recognizing &#039;&#039;only&#039;&#039; optical devices, so if you have the ZuluSCSI configured as something other than an optical drive, the card may not recognize the device attached to it. If you want to use the ZuluSCSI as something other than an optical drive, attach it to an IDE port attached to the motherboard or I/O card, as opposed to a sound card.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Msdos-icon.png|frameless|34x34px]][[File:Win31.png|32x32px]][[File:Win9598.png|37x37px]][[File:Winxp.png|36x36px]] (with audio DAC board): I have the device attached to my SoundBlaster&#039;s CD audio in connector, but I only hear the right channel. ===&lt;br /&gt;
Early SoundBlaster cards (including the Pro and Pro 2) used a different pinout on the CD audio header. Instead of R-G-G-L (right channel, ground, ground, left channel) these cards&#039; pinout was NC-L-G-R (no connect, left, ground, right). You may need to get a different cable.&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=ZuluIDE_Operations_Guide&amp;diff=78</id>
		<title>ZuluIDE Operations Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=ZuluIDE_Operations_Guide&amp;diff=78"/>
		<updated>2025-01-06T16:04:17Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: /* Troubleshooting */ - add sound card details and CD audio pinout on early SB cards (+215 words)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting Up Your ZuluIDE ==&lt;br /&gt;
&lt;br /&gt;
=== Unboxing ===&lt;br /&gt;
When you first receive your ZuluIDE, depending on the options you ordered, you should receive the following:&lt;br /&gt;
&lt;br /&gt;
* ZuluIDE RP2040 Compact board &lt;br /&gt;
* 3D-printed plastic carrier&lt;br /&gt;
* 2x ¼&amp;quot; 4-40 screws&lt;br /&gt;
* microSD card&lt;br /&gt;
* Hardware interface board (optional)&lt;br /&gt;
* Qwiic cable (included with hardware interface board)&lt;br /&gt;
* DAC board with mounted Raspberry Pi Pico W (optional)&lt;br /&gt;
&lt;br /&gt;
== Board Overview ==&lt;br /&gt;
Take a moment to identify the various parts of the board as shown below. &lt;br /&gt;
[[File:ZuluIDE RP2040 Compact (labeled).png|center|frameless|800x800px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;4-pin Molex floppy power connector:&#039;&#039;&#039; Run a standard Molex 4-pin power cable to this port. If your system power supply has only the larger style, get an adapter cable to switch it to the smaller size (the same size as that found on a 3½&amp;quot; floppy disk drive).&lt;br /&gt;
* &#039;&#039;&#039;40-pin male IDC connector:&#039;&#039;&#039; Plug your IDE bus cable into this. The connector is keyed, but some IDE cables lack the key, so make sure that the red stripe on the cable lines up with the little arrow embossed into the connector itself. &lt;br /&gt;
* &#039;&#039;&#039;Configuration DIP switches:&#039;&#039;&#039; These will set how the ZuluIDE responds when the BIOS requests information from the device. &lt;br /&gt;
* &#039;&#039;&#039;Bootloader button:&#039;&#039;&#039; Used during the firmware update process.&lt;br /&gt;
* &#039;&#039;&#039;I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C Footprint:&#039;&#039;&#039; Addon boards can attach through this open footprint either by being soldered directly to it or by attaching standard 0.1&amp;quot; header to this footprint.&lt;br /&gt;
* &#039;&#039;&#039;Qwiic Port:&#039;&#039;&#039; Addon boards can also attach here through the use of a standard Qwiic I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C cable.&lt;br /&gt;
* &#039;&#039;&#039;MicroUSB Port:&#039;&#039;&#039; Used during the firmware update process. Can also be used as a serial monitor to capture debug logs in real time with a second PC. &lt;br /&gt;
* &#039;&#039;&#039;microSD Card Slot:&#039;&#039;&#039; Your SD card with images goes here.&lt;br /&gt;
* &#039;&#039;&#039;Activity LED:&#039;&#039;&#039; Flashes in sync with drive access, also used to indicate status conditions as described later&lt;br /&gt;
* &#039;&#039;&#039;Eject button:&#039;&#039;&#039; Performs a hardware eject for optical drives. Some operating systems will need this after dismounting an image from the system to register that the drive door is closed.&lt;br /&gt;
* &#039;&#039;&#039;External eject and LED headers:&#039;&#039;&#039; If you intend to mount the device internally, but want external access to these, you can use standard 0.1&amp;quot; headers to run an eject button and an LED to a case panel. The red box on the image above indicates the positive pin.&lt;br /&gt;
&lt;br /&gt;
== Molex power connector ==&lt;br /&gt;
Make sure that your power connection uses a &#039;&#039;&#039;3½&amp;quot; floppy power connector,&#039;&#039;&#039; not the larger drive connector used on full-size optical drives, hard drives, and the like. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector.png|frameless|135x135px]]&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector.png|frameless|117x117px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |✅ 3½&amp;quot; connector&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |❌ 5¼&amp;quot; connector&lt;br /&gt;
|}&lt;br /&gt;
If your host system only has the 5¼&amp;quot; connectors, you&#039;ll need to either purchase or make an adapter cable. Making an adapter cable requires the following parts:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;4× 5¼ male pins:&#039;&#039;&#039; TE Connectivity P/N 60620-1&lt;br /&gt;
* &#039;&#039;&#039;1× 5¼ male housing:&#039;&#039;&#039; TE Connectivity P/N 1-480426-0&lt;br /&gt;
* &#039;&#039;&#039;4× 3½ female sockets:&#039;&#039;&#039; TE Connectivity P/N 170262-1&lt;br /&gt;
* &#039;&#039;&#039;1× 3½ female housing:&#039;&#039;&#039; TE Connectivity P/N 171822-4&lt;br /&gt;
&lt;br /&gt;
When making the cables, use 20-gauge wire. If you&#039;re crimping a splitter cable, it&#039;s also possible to use 18-gauge wire on the 5¼ side going to the female plug, and then crimp the larger wire going into the male splitter side together with 22 or 24-gauge wire going to the 3½ side. Crimping the cables can be done with standard tools found on Amazon, such as the IWISS SN-025. &lt;br /&gt;
&lt;br /&gt;
== DIP Switch Configuration ==&lt;br /&gt;
[[File:DIP switches (ZuluIDE).png|center|frameless]]&lt;br /&gt;
Set the three DIP switches according to how the device needs to be configured in the host system.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch 1:&#039;&#039;&#039; Turn IDE Cable Select on or off. &#039;&#039;Most&#039;&#039; systems will work fine with this off, but there are several systems (especially single-board industrial computers) which will use cable-select to determine primary and secondary drives and thus will need it on. If your system hangs during IDE device detection with the ZuluIDE attached to the bus, try turning this switch ON first.&lt;br /&gt;
* &#039;&#039;&#039;Switch 2:&#039;&#039;&#039; Respond as Primary/Master (OFF) or Secondary/Slave (ON).&lt;br /&gt;
* &#039;&#039;&#039;Switch 3:&#039;&#039;&#039; Debug log disable/enable. If this switch is ON, the device will automatically write out a detailed debug log to &amp;lt;code&amp;gt;zululog.txt&amp;lt;/code&amp;gt; on the SD card as long as the device is powered on. Additionally, if you have a USB cable plugged into the MicroUSB port on the device with this switch on, it will also print the debug log over the cable via the RP2040&#039;s internal serial connection.&lt;br /&gt;
&lt;br /&gt;
== Qwiic Port and External Hardware Interface ==&lt;br /&gt;
The external hardware interface (optional) can be connected to this port. The interface provides a Gotek-like system to navigate disc images stored on the SD card and to cycle through them. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Hardware interface (rev 2024a).png|frameless|379x379px]]&lt;br /&gt;
![[File:Qwiic cable.png|frameless|338x338px]]&lt;br /&gt;
|}&lt;br /&gt;
The rotary encoder knob on the hardware interface functions exactly like a Gotek device — spin the knob to change images or menu selections, press the knob to select. The Eject button works exactly like the eject button on the main board, although with the hardware interface attached, it will ask you to confirm the eject by pressing the rotary knob. The User button is currently reserved for future use.&lt;br /&gt;
&lt;br /&gt;
== Activity LED ==&lt;br /&gt;
The Activity LED will flash normally during disk access, however, in certain specific failure modes or status changes, you will see it flashing with a pattern. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1 fast blink, at boot time:&#039;&#039;&#039; Image file loaded successfully&lt;br /&gt;
* &#039;&#039;&#039;3 fast blinks:&#039;&#039;&#039; No valid images found on SD card&lt;br /&gt;
* &#039;&#039;&#039;5 fast blinks:&#039;&#039;&#039; SD card is present, but is not being detected&lt;br /&gt;
* &#039;&#039;&#039;Morse code pattern:&#039;&#039;&#039; Firmware crash. The particular pattern will indicate where the crash occurred. &lt;br /&gt;
&lt;br /&gt;
If a firmware crash occurs, it will also try to save information to the file &amp;lt;code&amp;gt;zuluerr.txt&amp;lt;/code&amp;gt; on the SD card. &lt;br /&gt;
&lt;br /&gt;
== SD Card Preparation and Use ==&lt;br /&gt;
Format your SD card with either the FAT32 or exFAT filesystems. If you intend to use images larger than 4 GB in size, you &#039;&#039;must&#039;&#039; format the card using exFAT as the FAT32 filesystem cannot support individual files larger than 4 GB. &lt;br /&gt;
&lt;br /&gt;
Load your images onto the card into the root folder. Images stored in folders, unless they are &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; images, will be ignored.&lt;br /&gt;
&lt;br /&gt;
For &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; files, they can be placed into a folder with the same name as the image file; i.e., if you have a &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; pair named &amp;lt;code&amp;gt;bigdiscofstuff.bin&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigdiscofstuff.cue&amp;lt;/code&amp;gt; you should place them in a directory named &amp;lt;code&amp;gt;bigdiscofstuff&amp;lt;/code&amp;gt;. This is &#039;&#039;&#039;required&#039;&#039;&#039; if your &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; image has a single &amp;lt;code&amp;gt;CUE&amp;lt;/code&amp;gt; file and multiple &amp;lt;code&amp;gt;BIN&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
=== Drive Types ===&lt;br /&gt;
When configuring the ZuluIDE, you can set it to be multiple different drive types based on the images you intend to use. Out of the box, the ZuluIDE configures itself as an optical drive, but through the [[ZuluIDE INI Configuration|INI file]] or by using &#039;&#039;&#039;filename prefixes,&#039;&#039;&#039; you can tell the ZuluIDE which device you want it to behave as when you power it on. &lt;br /&gt;
&lt;br /&gt;
==== Using the INI File ====&lt;br /&gt;
Under the &amp;lt;code&amp;gt;[IDE]&amp;lt;/code&amp;gt; heading, use the &amp;lt;code&amp;gt;Device=&amp;lt;/code&amp;gt; value to set the drive type:0&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;CDROM&amp;lt;/code&amp;gt; (default) will cause the ZuluIDE to respond as an optical drive.&lt;br /&gt;
* &amp;lt;code&amp;gt;Zip100&amp;lt;/code&amp;gt; will cause the ZuluIDE to respond as an ATAPI-attached 100MB Zip Drive&lt;br /&gt;
* &amp;lt;code&amp;gt;Zip250&amp;lt;/code&amp;gt; will cause the ZuluIDE to respond as an ATAPI-attached 250MB Zip Drive&lt;br /&gt;
* &amp;lt;code&amp;gt;Removable&amp;lt;/code&amp;gt; will cause the ZuluIDE to respond as a generic removable media device&lt;br /&gt;
* &amp;lt;code&amp;gt;HDD&amp;lt;/code&amp;gt; will cause the ZuluIDE to respond as a standard hard disk drive&lt;br /&gt;
&lt;br /&gt;
If this section is absent, or the &amp;lt;code&amp;gt;zuluide.ini&amp;lt;/code&amp;gt; file is not present on the SD card, the device will default to behaving as an optical drive.&lt;br /&gt;
&lt;br /&gt;
==== Using a filename prefix ====&lt;br /&gt;
Add the following to the beginning of your filename to switch the ZuluIDE&#039;s device mode:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;cdrm&amp;lt;/code&amp;gt; will cause the ZuluIDE to load the image as an optical drive image.&lt;br /&gt;
* &amp;lt;code&amp;gt;zipd&amp;lt;/code&amp;gt; will cause the ZuluIDE to load the image as a 100MB or 250MB Zip disk.&lt;br /&gt;
* &amp;lt;code&amp;gt;remv&amp;lt;/code&amp;gt; will cause the ZuluIDE to load the image as a generic removable media device.&lt;br /&gt;
* &amp;lt;code&amp;gt;hddr&amp;lt;/code&amp;gt; will cause the ZuluIDE to load the image as a non-removable hard disk image.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;Device=&amp;lt;/code&amp;gt; option in the INI file will override this behavior. Additionally, if a filename prefix is specified, all other files that you want to use &#039;&#039;&#039;must have the same prefix.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
==== Filename extensions ====&lt;br /&gt;
In optical drive mode, the device will only recognize images that end in &amp;lt;code&amp;gt;.iso&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.bin/.cue&amp;lt;/code&amp;gt;, while also recognizing folders for purposes of reading multipart &amp;lt;code&amp;gt;.bin/.cue&amp;lt;/code&amp;gt; images. &lt;br /&gt;
&lt;br /&gt;
For Zip drives or other removable media,ᚸso long as the filename doesn&#039;t contain one of the prefixes above, doesn&#039;t have an optical drive image extension (&amp;lt;code&amp;gt;.iso/.bin/.cue&amp;lt;/code&amp;gt;), or one of the extensions on the ignored list below, it will load the file as a disk image and attempt to mount it.&lt;br /&gt;
&lt;br /&gt;
If the ZuluIDE starts up as an optical drive, it will use the first image it finds on the SD card as an optical disc.&lt;br /&gt;
&lt;br /&gt;
==== Changing disk images ====&lt;br /&gt;
Without the hardware interface or web interface, changing disk images is done by pressing the eject button on the device itself or by performing a hardware eject directly through the operating system. The firmware will cycle to the next available image on the SD card in alphabetical order. &lt;br /&gt;
&lt;br /&gt;
==== Ignore list ====&lt;br /&gt;
Files with any of the following extensions will be ignored by the ZuluIDE and will not appear in the list of available images on the hardware or web interfaces, and will not be selected when a hardware eject is performed:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;.cue&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;.txt&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.rtf&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.md&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.nfo&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.pdf&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.doc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compressed archive file formats: &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;.zip .7z .dmg .rar .tar .tgz .gz .bz2 .tbz2 .xz .zst .lzh .lha .lzo .lz4 .arj .hqx .cpt .s7z&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additionally, any file that begins with &amp;lt;code&amp;gt;zulu&amp;lt;/code&amp;gt; will be ignored. &lt;br /&gt;
&lt;br /&gt;
==== USB Mass Storage ====&lt;br /&gt;
You can use the ZuluIDE as a passthrough to access the SD card directly by putting the option &amp;lt;code&amp;gt;enable_usb_mass_storage=1&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;[IDE]&amp;lt;/code&amp;gt; section of the [[ZuluIDE INI Configuration|INI file]]. In order to use this mode, the ZuluIDE must not currently be operating as an attached device through the IDE port on a host computer. &lt;br /&gt;
&lt;br /&gt;
==== Hotplugging ====&lt;br /&gt;
The ZuluIDE supports removal and re-insertion of the SD card while the device is on and functioning. Until the device detects that a card has been inserted, you&#039;ll see the activity LED blink 5 times rapidly, pause, and then repeat until a card is reinserted. Once the card has been detected, the LED will blink once, turn off, and return to normal indication of disk access.&lt;br /&gt;
&lt;br /&gt;
== Updating the Firmware ==&lt;br /&gt;
New firmware releases can be obtained by visiting the [https://github.com/ZuluIDE/ZuluIDE-firmware/releases Github page] for the project. The most recent firmware will be listed at the top with a green &amp;quot;Latest&amp;quot; badge. You can update the firmware two different ways.&lt;br /&gt;
&lt;br /&gt;
==== Using the SD card ====&lt;br /&gt;
The ZuluIDE can update itself when it&#039;s initially powered on. You&#039;ll need to have access to the device so you can remove its SD card. &lt;br /&gt;
&lt;br /&gt;
# Power down the system that the ZuluIDE is attached to and remove its SD card.&lt;br /&gt;
# Attach the SD card to the computer where you&#039;ll download the update.&lt;br /&gt;
# From the [https://github.com/ZuluIDE/ZuluIDE-firmware/releases Github page], download the latest firmware file with a &#039;&#039;&#039;.BIN&#039;&#039;&#039; extension.&lt;br /&gt;
# Copy the downloaded &#039;&#039;&#039;.BIN&#039;&#039;&#039; file to the root folder of the SD card and rename it as &amp;lt;code&amp;gt;ZuluIDE.bin&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Dismount the SD card from the computer, and reinsert the SD card into the ZuluIDE.&lt;br /&gt;
# Power the system back on. The ZuluIDE will automatically begin the firmware update process, which takes about one second. If the system has to boot to the ZuluIDE and its startup is particularly quick, you may need to reset the computer once to allow the firmware update process to complete on the ZuluIDE so it can become ready.&lt;br /&gt;
# When the firmware update process finishes, the ZuluIDE will delete the update file and continue on to normal operation.&lt;br /&gt;
&lt;br /&gt;
==== Using the BOOTLDR button ====&lt;br /&gt;
[[File:Bootloader button.png|thumb|140x140px|BOOTLDR button]]&lt;br /&gt;
If you have physical access to the device and a way to plug the MicroUSB port into a host computer, this is the traditional way to update RP2040-based devices like the ZuluIDE. &lt;br /&gt;
&lt;br /&gt;
# Power down the system the ZuluIDE is attached to, and if necessary, unplug it from its cabling.&lt;br /&gt;
# From the [https://github.com/ZuluIDE/ZuluIDE-firmware/releases Github page], download the latest firmware file with a &#039;&#039;&#039;.UF2&#039;&#039;&#039; extension. &lt;br /&gt;
# Attach a MicroUSB cable to the device you&#039;ll be uploading the firmware from.&lt;br /&gt;
# While holding down the BOOTLDR button on the ZuluIDE, attach the other end of the cable to the MicroUSB port on the ZuluIDE. [[File:Firmware-update.png|thumb|Copy the UF2 file to the device.]]&lt;br /&gt;
# A Windows Explorer window may appear with a drive called &amp;lt;code&amp;gt;RPi-RP2&amp;lt;/code&amp;gt;. If it doesn&#039;t, open a Windows Explorer window and look for a drive with this name.&lt;br /&gt;
# Copy the &#039;&#039;&#039;.UF2&#039;&#039;&#039; file you downloaded to the root folder of the drive that appeared when you plugged in the ZuluIDE.&lt;br /&gt;
# The &amp;lt;code&amp;gt;RPi-RP2&amp;lt;/code&amp;gt; window should close on its own once the copy completes. When the device disconnects on its own, the firmware update process is complete.&lt;br /&gt;
# Disconnect the USB cables and reattach the ZuluIDE to its host, if you removed it in step 1. &lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
Some simple things to check before you dive deeper:&lt;br /&gt;
&lt;br /&gt;
* Make sure there are no primary/secondary conflicts on the IDE channel that the ZuluIDE is attached to.&lt;br /&gt;
* Make sure that the power connection to the device is secure and attached.&lt;br /&gt;
* Try toggling the Cable Select switch. Some BIOSes prefer the device to be one way or the other and there&#039;s often little rhyme or reason between even the exact same BIOS on the exact same build across two machines. &lt;br /&gt;
&lt;br /&gt;
For more specific problems, keep reading.&lt;br /&gt;
&lt;br /&gt;
The icon at the left of the problems listed tends to pertain to that particular operating system.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Msdos-icon.png|32x32px]][[File:Win31.png|32x32px]](as optical drive): The ZuluIDE doesn&#039;t seem to be recognized under MS-DOS. ===&lt;br /&gt;
If you have the ZuluIDE attached as an optical drive in a system that doesn&#039;t natively support the ATAPI protocol, you may have to install a third-party driver to allow DOS to see the drive. This was common for all systems based on 386 processors and earlier, most 486 systems, and some Pentium-based systems. &lt;br /&gt;
&lt;br /&gt;
The simplest solution is to obtain a copy of the Microsoft Windows 98 startup disk, and copy the &amp;lt;code&amp;gt;OAKCDROM.SYS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MSCDEX.EXE&amp;lt;/code&amp;gt; files from it to the root folder of your boot drive. Then, modify your &amp;lt;code&amp;gt;CONFIG.SYS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;AUTOEXEC.BAT&amp;lt;/code&amp;gt; files like this:&lt;br /&gt;
&lt;br /&gt;
==== CONFIG.SYS ====&lt;br /&gt;
Add this line to the top of the file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DEVICE=C:\OAKCDROM.SYS /D:MSCD000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== AUTOEXEC.BAT ====&lt;br /&gt;
Add this line to the end of the file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;C:\MSCDEX.EXE /D:MSCD000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reboot the system, and the drive should populate. &lt;br /&gt;
&lt;br /&gt;
Keep in mind that the only DOS-based CD-ROM driver that has been tested to work with the ZuluIDE at present is the Oak Technology driver (&amp;lt;code&amp;gt;OAKCDROM.SYS&amp;lt;/code&amp;gt;) and &amp;lt;code&amp;gt;VIDE-CDD.SYS&amp;lt;/code&amp;gt;, the driver that is included on the Microsoft CD-ROM Extensions installation floppy disk.&lt;br /&gt;
&lt;br /&gt;
Other generic drivers, such as the LG (GoldStar) or Adaptec drivers may work, but have not been fully tested.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Msdos-icon.png|32x32px]][[File:Win31.png|32x32px]](as optical drive): The system recognizes the first disc image loaded, but then acts like the drive isn&#039;t ready when I change images. ===&lt;br /&gt;
This issue is related to firmware revisions prior to 2024.11.08. Update your device firmware on the [https://github.com/rabbitholecomputing/ZuluIDE-firmware Github repo]. &lt;br /&gt;
&lt;br /&gt;
If you are unable to update the firmware, there is a workaround that you can use until you are able to do so. &lt;br /&gt;
&lt;br /&gt;
After changing images, try to access the drive. The system will pause for a long moment, and then you should see a message similar to this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CDR101: Not ready reading drive E:&amp;lt;br&amp;gt;&lt;br /&gt;
(A)bort, (R)etry, (F)ail?&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Press F to fail the check, and then if it drops back to a command prompt, try to access the drive again and it should present the image as normal.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Win9598.png|37x37px]][[File:Winxp.png|36x36px]] (as optical drive): Performing an &amp;quot;eject&amp;quot; command in Windows Explorer doesn&#039;t actually cycle to the next image. ===&lt;br /&gt;
This issue is related to firmware revisions prior to 2024.12.10. Update your device firmware on the [https://github.com/rabbitholecomputing/ZuluIDE-firmware Github repo].&lt;br /&gt;
&lt;br /&gt;
The workaround for this is to have either the web interface or hardware interface connected and swap images that way. Another workaround is to manually eject the SD card from the ZuluIDE, add a zero to the beginning of the desired disk image&#039;s name, and then reinsert the SD card. The ZuluIDE will then look for the first image it can load alphabetically, which should be the newly-renamed image.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Msdos-icon.png|frameless|34x34px]](attached to sound card): The ZuluIDE seems to be working correctly, but it&#039;s never detected. ===&lt;br /&gt;
This is a potential hardware configuration issue. Some sound cards, even if they have an actual IDE interface, force themselves to be configured as either the primary or secondary interface in the system and are not configurable. Most sound cards are also capable of recognizing &#039;&#039;only&#039;&#039; optical devices, so if you have the ZuluIDE configured as something other than an optical drive, the card may not recognize the device attached to it. If you want to use the ZuluIDE as something other than an optical drive, attach it to an IDE port attached to the motherboard or I/O card, as opposed to a sound card.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Msdos-icon.png|frameless|34x34px]][[File:Win31.png|32x32px]][[File:Win9598.png|37x37px]][[File:Winxp.png|36x36px]] (with audio DAC board): I have the device attached to my SoundBlaster&#039;s CD audio in connector, but I only hear the right channel. ===&lt;br /&gt;
Early SoundBlaster cards (including the Pro and Pro 2) used a different pinout on the CD audio header. Instead of R-G-G-L (right channel, ground, ground, left channel) these cards&#039; pinout was NC-L-G-R (no connect, left, ground, right). You may need to get a different cable.&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=ZuluIDE_Operations_Guide&amp;diff=77</id>
		<title>ZuluIDE Operations Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=ZuluIDE_Operations_Guide&amp;diff=77"/>
		<updated>2024-11-12T01:55:14Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: Change &amp;quot;not ready&amp;quot; troubleshooting step&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting Up Your ZuluIDE ==&lt;br /&gt;
&lt;br /&gt;
=== Unboxing ===&lt;br /&gt;
When you first receive your ZuluIDE, depending on the options you ordered, you should receive the following:&lt;br /&gt;
&lt;br /&gt;
* ZuluIDE RP2040 Compact board &lt;br /&gt;
* 3D-printed plastic carrier&lt;br /&gt;
* 2x ¼&amp;quot; 4-40 screws&lt;br /&gt;
* microSD card&lt;br /&gt;
* Hardware interface board (optional)&lt;br /&gt;
* Qwiic cable (included with hardware interface board)&lt;br /&gt;
* DAC board with mounted Raspberry Pi Pico W (optional)&lt;br /&gt;
&lt;br /&gt;
== Board Overview ==&lt;br /&gt;
Take a moment to identify the various parts of the board as shown below. &lt;br /&gt;
[[File:ZuluIDE RP2040 Compact (labeled).png|center|frameless|800x800px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;4-pin Molex floppy power connector:&#039;&#039;&#039; Run a standard Molex 4-pin power cable to this port. If your system power supply has only the larger style, get an adapter cable to switch it to the smaller size (the same size as that found on a 3½&amp;quot; floppy disk drive).&lt;br /&gt;
* &#039;&#039;&#039;40-pin male IDC connector:&#039;&#039;&#039; Plug your IDE bus cable into this. The connector is keyed, but some IDE cables lack the key, so make sure that the red stripe on the cable lines up with the little arrow embossed into the connector itself. &lt;br /&gt;
* &#039;&#039;&#039;Configuration DIP switches:&#039;&#039;&#039; These will set how the ZuluIDE responds when the BIOS requests information from the device. &lt;br /&gt;
* &#039;&#039;&#039;Bootloader button:&#039;&#039;&#039; Used during the firmware update process.&lt;br /&gt;
* &#039;&#039;&#039;I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C Footprint:&#039;&#039;&#039; Addon boards can attach through this open footprint either by being soldered directly to it or by attaching standard 0.1&amp;quot; header to this footprint.&lt;br /&gt;
* &#039;&#039;&#039;Qwiic Port:&#039;&#039;&#039; Addon boards can also attach here through the use of a standard Qwiic I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C cable.&lt;br /&gt;
* &#039;&#039;&#039;MicroUSB Port:&#039;&#039;&#039; Used during the firmware update process. Can also be used as a serial monitor to capture debug logs in real time with a second PC. &lt;br /&gt;
* &#039;&#039;&#039;microSD Card Slot:&#039;&#039;&#039; Your SD card with images goes here.&lt;br /&gt;
* &#039;&#039;&#039;Activity LED:&#039;&#039;&#039; Flashes in sync with drive access, also used to indicate status conditions as described later&lt;br /&gt;
* &#039;&#039;&#039;Eject button:&#039;&#039;&#039; Performs a hardware eject for optical drives. Some operating systems will need this after dismounting an image from the system to register that the drive door is closed.&lt;br /&gt;
* &#039;&#039;&#039;External eject and LED headers:&#039;&#039;&#039; If you intend to mount the device internally, but want external access to these, you can use standard 0.1&amp;quot; headers to run an eject button and an LED to a case panel. The red box on the image above indicates the positive pin.&lt;br /&gt;
&lt;br /&gt;
== Molex power connector ==&lt;br /&gt;
Make sure that your power connection uses a &#039;&#039;&#039;3½&amp;quot; floppy power connector,&#039;&#039;&#039; not the larger drive connector used on full-size optical drives, hard drives, and the like. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector.png|frameless|135x135px]]&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector.png|frameless|117x117px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |✅ 3½&amp;quot; connector&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |❌ 5¼&amp;quot; connector&lt;br /&gt;
|}&lt;br /&gt;
If your host system only has the 5¼&amp;quot; connectors, you&#039;ll need to either purchase or make an adapter cable. Making an adapter cable requires the following parts:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;4× 5¼ male pins:&#039;&#039;&#039; TE Connectivity P/N 60620-1&lt;br /&gt;
* &#039;&#039;&#039;1× 5¼ male housing:&#039;&#039;&#039; TE Connectivity P/N 1-480426-0&lt;br /&gt;
* &#039;&#039;&#039;4× 3½ female sockets:&#039;&#039;&#039; TE Connectivity P/N 170262-1&lt;br /&gt;
* &#039;&#039;&#039;1× 3½ female housing:&#039;&#039;&#039; TE Connectivity P/N 171822-4&lt;br /&gt;
&lt;br /&gt;
When making the cables, use 20-gauge wire. If you&#039;re crimping a splitter cable, it&#039;s also possible to use 18-gauge wire on the 5¼ side going to the female plug, and then crimp the larger wire going into the male splitter side together with 22 or 24-gauge wire going to the 3½ side. Crimping the cables can be done with standard tools found on Amazon, such as the IWISS SN-025. &lt;br /&gt;
&lt;br /&gt;
== DIP Switch Configuration ==&lt;br /&gt;
[[File:DIP switches (ZuluIDE).png|center|frameless]]&lt;br /&gt;
Set the three DIP switches according to how the device needs to be configured in the host system.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch 1:&#039;&#039;&#039; Turn IDE Cable Select on or off. &#039;&#039;Most&#039;&#039; systems will work fine with this off, but there are several systems (especially single-board industrial computers) which will use cable-select to determine primary and secondary drives and thus will need it on. If your system hangs during IDE device detection with the ZuluIDE attached to the bus, try turning this switch ON first.&lt;br /&gt;
* &#039;&#039;&#039;Switch 2:&#039;&#039;&#039; Respond as Primary/Master (OFF) or Secondary/Slave (ON).&lt;br /&gt;
* &#039;&#039;&#039;Switch 3:&#039;&#039;&#039; Debug log disable/enable. If this switch is ON, the device will automatically write out a detailed debug log to &amp;lt;code&amp;gt;zululog.txt&amp;lt;/code&amp;gt; on the SD card as long as the device is powered on. Additionally, if you have a USB cable plugged into the MicroUSB port on the device with this switch on, it will also print the debug log over the cable via the RP2040&#039;s internal serial connection.&lt;br /&gt;
&lt;br /&gt;
== Qwiic Port and External Hardware Interface ==&lt;br /&gt;
The external hardware interface (optional) can be connected to this port. The interface provides a Gotek-like system to navigate disc images stored on the SD card and to cycle through them. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Hardware interface (rev 2024a).png|frameless|379x379px]]&lt;br /&gt;
![[File:Qwiic cable.png|frameless|338x338px]]&lt;br /&gt;
|}&lt;br /&gt;
The rotary encoder knob on the hardware interface functions exactly like a Gotek device — spin the knob to change images or menu selections, press the knob to select. The Eject button works exactly like the eject button on the main board, although with the hardware interface attached, it will ask you to confirm the eject by pressing the rotary knob. The User button is currently reserved for future use.&lt;br /&gt;
&lt;br /&gt;
== Activity LED ==&lt;br /&gt;
The Activity LED will flash normally during disk access, however, in certain specific failure modes or status changes, you will see it flashing with a pattern. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1 fast blink, at boot time:&#039;&#039;&#039; Image file loaded successfully&lt;br /&gt;
* &#039;&#039;&#039;3 fast blinks:&#039;&#039;&#039; No valid images found on SD card&lt;br /&gt;
* &#039;&#039;&#039;5 fast blinks:&#039;&#039;&#039; SD card is present, but is not being detected&lt;br /&gt;
* &#039;&#039;&#039;Morse code pattern:&#039;&#039;&#039; Firmware crash. The particular pattern will indicate where the crash occurred. &lt;br /&gt;
&lt;br /&gt;
If a firmware crash occurs, it will also try to save information to the file &amp;lt;code&amp;gt;zuluerr.txt&amp;lt;/code&amp;gt; on the SD card. &lt;br /&gt;
&lt;br /&gt;
== SD Card Preparation and Use ==&lt;br /&gt;
Format your SD card with either the FAT32 or exFAT filesystems. If you intend to use images larger than 4 GB in size, you &#039;&#039;must&#039;&#039; format the card using exFAT as the FAT32 filesystem cannot support individual files larger than 4 GB. &lt;br /&gt;
&lt;br /&gt;
Load your images onto the card into the root folder. Images stored in folders, unless they are &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; images, will be ignored.&lt;br /&gt;
&lt;br /&gt;
For &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; files, they can be placed into a folder with the same name as the image file; i.e., if you have a &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; pair named &amp;lt;code&amp;gt;bigdiscofstuff.bin&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigdiscofstuff.cue&amp;lt;/code&amp;gt; you should place them in a directory named &amp;lt;code&amp;gt;bigdiscofstuff&amp;lt;/code&amp;gt;. This is &#039;&#039;&#039;required&#039;&#039;&#039; if your &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; image has a single &amp;lt;code&amp;gt;CUE&amp;lt;/code&amp;gt; file and multiple &amp;lt;code&amp;gt;BIN&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
=== Drive Types ===&lt;br /&gt;
When configuring the ZuluIDE, you can set it to be multiple different drive types based on the images you intend to use. Out of the box, the ZuluIDE configures itself as an optical drive, but through the [[ZuluIDE INI Configuration|INI file]] or by using &#039;&#039;&#039;filename prefixes,&#039;&#039;&#039; you can tell the ZuluIDE which device you want it to behave as when you power it on. &lt;br /&gt;
&lt;br /&gt;
==== Using the INI File ====&lt;br /&gt;
Under the &amp;lt;code&amp;gt;[IDE]&amp;lt;/code&amp;gt; heading, use the &amp;lt;code&amp;gt;Device=&amp;lt;/code&amp;gt; value to set the drive type:0&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;CDROM&amp;lt;/code&amp;gt; (default) will cause the ZuluIDE to respond as an optical drive.&lt;br /&gt;
* &amp;lt;code&amp;gt;Zip100&amp;lt;/code&amp;gt; will cause the ZuluIDE to respond as an ATAPI-attached 100MB Zip Drive&lt;br /&gt;
* &amp;lt;code&amp;gt;Zip250&amp;lt;/code&amp;gt; will cause the ZuluIDE to respond as an ATAPI-attached 250MB Zip Drive&lt;br /&gt;
* &amp;lt;code&amp;gt;Removable&amp;lt;/code&amp;gt; will cause the ZuluIDE to respond as a generic removable media device&lt;br /&gt;
* &amp;lt;code&amp;gt;HDD&amp;lt;/code&amp;gt; will cause the ZuluIDE to respond as a standard hard disk drive&lt;br /&gt;
&lt;br /&gt;
If this section is absent, or the &amp;lt;code&amp;gt;zuluide.ini&amp;lt;/code&amp;gt; file is not present on the SD card, the device will default to behaving as an optical drive.&lt;br /&gt;
&lt;br /&gt;
==== Using a filename prefix ====&lt;br /&gt;
Add the following to the beginning of your filename to switch the ZuluIDE&#039;s device mode:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;cdrm&amp;lt;/code&amp;gt; will cause the ZuluIDE to load the image as an optical drive image.&lt;br /&gt;
* &amp;lt;code&amp;gt;zipd&amp;lt;/code&amp;gt; will cause the ZuluIDE to load the image as a 100MB or 250MB Zip disk.&lt;br /&gt;
* &amp;lt;code&amp;gt;remv&amp;lt;/code&amp;gt; will cause the ZuluIDE to load the image as a generic removable media device.&lt;br /&gt;
* &amp;lt;code&amp;gt;hddr&amp;lt;/code&amp;gt; will cause the ZuluIDE to load the image as a non-removable hard disk image.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;Device=&amp;lt;/code&amp;gt; option in the INI file will override this behavior. Additionally, if a filename prefix is specified, all other files that you want to use &#039;&#039;&#039;must have the same prefix.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
==== Filename extensions ====&lt;br /&gt;
In optical drive mode, the device will only recognize images that end in &amp;lt;code&amp;gt;.iso&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.bin/.cue&amp;lt;/code&amp;gt;, while also recognizing folders for purposes of reading multipart &amp;lt;code&amp;gt;.bin/.cue&amp;lt;/code&amp;gt; images. &lt;br /&gt;
&lt;br /&gt;
For Zip drives or other removable media,ᚸso long as the filename doesn&#039;t contain one of the prefixes above, doesn&#039;t have an optical drive image extension (&amp;lt;code&amp;gt;.iso/.bin/.cue&amp;lt;/code&amp;gt;), or one of the extensions on the ignored list below, it will load the file as a disk image and attempt to mount it.&lt;br /&gt;
&lt;br /&gt;
If the ZuluIDE starts up as an optical drive, it will use the first image it finds on the SD card as an optical disc.&lt;br /&gt;
&lt;br /&gt;
==== Changing disk images ====&lt;br /&gt;
Without the hardware interface or web interface, changing disk images is done by pressing the eject button on the device itself or by performing a hardware eject directly through the operating system. The firmware will cycle to the next available image on the SD card in alphabetical order. &lt;br /&gt;
&lt;br /&gt;
==== Ignore list ====&lt;br /&gt;
Files with any of the following extensions will be ignored by the ZuluIDE and will not appear in the list of available images on the hardware or web interfaces, and will not be selected when a hardware eject is performed:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;.cue&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;.txt&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.rtf&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.md&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.nfo&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.pdf&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;.doc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compressed archive file formats: &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;.zip .7z .dmg .rar .tar .tgz .gz .bz2 .tbz2 .xz .zst .lzh .lha .lzo .lz4 .arj .hqx .cpt .s7z&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additionally, any file that begins with &amp;lt;code&amp;gt;zulu&amp;lt;/code&amp;gt; will be ignored. &lt;br /&gt;
&lt;br /&gt;
==== USB Mass Storage ====&lt;br /&gt;
You can use the ZuluIDE as a passthrough to access the SD card directly by putting the option &amp;lt;code&amp;gt;enable_usb_mass_storage=1&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;[IDE]&amp;lt;/code&amp;gt; section of the [[ZuluIDE INI Configuration|INI file]]. In order to use this mode, the ZuluIDE must not currently be operating as an attached device through the IDE port on a host computer. &lt;br /&gt;
&lt;br /&gt;
==== Hotplugging ====&lt;br /&gt;
The ZuluIDE supports removal and re-insertion of the SD card while the device is on and functioning. Until the device detects that a card has been inserted, you&#039;ll see the activity LED blink 5 times rapidly, pause, and then repeat until a card is reinserted. Once the card has been detected, the LED will blink once, turn off, and return to normal indication of disk access.&lt;br /&gt;
&lt;br /&gt;
== Updating the Firmware ==&lt;br /&gt;
New firmware releases can be obtained by visiting the [https://github.com/ZuluIDE/ZuluIDE-firmware/releases Github page] for the project. The most recent firmware will be listed at the top with a green &amp;quot;Latest&amp;quot; badge. You can update the firmware two different ways.&lt;br /&gt;
&lt;br /&gt;
==== Using the SD card ====&lt;br /&gt;
The ZuluIDE can update itself when it&#039;s initially powered on. You&#039;ll need to have access to the device so you can remove its SD card. &lt;br /&gt;
&lt;br /&gt;
# Power down the system that the ZuluIDE is attached to and remove its SD card.&lt;br /&gt;
# Attach the SD card to the computer where you&#039;ll download the update.&lt;br /&gt;
# From the [https://github.com/ZuluIDE/ZuluIDE-firmware/releases Github page], download the latest firmware file with a &#039;&#039;&#039;.BIN&#039;&#039;&#039; extension.&lt;br /&gt;
# Copy the downloaded &#039;&#039;&#039;.BIN&#039;&#039;&#039; file to the root folder of the SD card and rename it as &amp;lt;code&amp;gt;ZuluIDE.bin&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Dismount the SD card from the computer, and reinsert the SD card into the ZuluIDE.&lt;br /&gt;
# Power the system back on. The ZuluIDE will automatically begin the firmware update process, which takes about one second. If the system has to boot to the ZuluIDE and its startup is particularly quick, you may need to reset the computer once to allow the firmware update process to complete on the ZuluIDE so it can become ready.&lt;br /&gt;
# When the firmware update process finishes, the ZuluIDE will delete the update file and continue on to normal operation.&lt;br /&gt;
&lt;br /&gt;
==== Using the BOOTLDR button ====&lt;br /&gt;
[[File:Bootloader button.png|thumb|140x140px|BOOTLDR button]]&lt;br /&gt;
If you have physical access to the device and a way to plug the MicroUSB port into a host computer, this is the traditional way to update RP2040-based devices like the ZuluIDE. &lt;br /&gt;
&lt;br /&gt;
# Power down the system the ZuluIDE is attached to, and if necessary, unplug it from its cabling.&lt;br /&gt;
# From the [https://github.com/ZuluIDE/ZuluIDE-firmware/releases Github page], download the latest firmware file with a &#039;&#039;&#039;.UF2&#039;&#039;&#039; extension. &lt;br /&gt;
# Attach a MicroUSB cable to the device you&#039;ll be uploading the firmware from.&lt;br /&gt;
# While holding down the BOOTLDR button on the ZuluIDE, attach the other end of the cable to the MicroUSB port on the ZuluIDE. [[File:Firmware-update.png|thumb|Copy the UF2 file to the device.]]&lt;br /&gt;
# A Windows Explorer window may appear with a drive called &amp;lt;code&amp;gt;RPi-RP2&amp;lt;/code&amp;gt;. If it doesn&#039;t, open a Windows Explorer window and look for a drive with this name.&lt;br /&gt;
# Copy the &#039;&#039;&#039;.UF2&#039;&#039;&#039; file you downloaded to the root folder of the drive that appeared when you plugged in the ZuluIDE.&lt;br /&gt;
# The &amp;lt;code&amp;gt;RPi-RP2&amp;lt;/code&amp;gt; window should close on its own once the copy completes. When the device disconnects on its own, the firmware update process is complete.&lt;br /&gt;
# Disconnect the USB cables and reattach the ZuluIDE to its host, if you removed it in step 1. &lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
Some simple things to check before you dive deeper:&lt;br /&gt;
&lt;br /&gt;
* Make sure there are no primary/secondary conflicts on the IDE channel that the ZuluIDE is attached to.&lt;br /&gt;
* Make sure that the power connection to the device is secure and attached.&lt;br /&gt;
* Try toggling the Cable Select switch. Some BIOSes prefer the device to be one way or the other and there&#039;s often little rhyme or reason between even the exact same BIOS on the exact same build across two machines. &lt;br /&gt;
&lt;br /&gt;
For more specific problems, keep reading.&lt;br /&gt;
&lt;br /&gt;
The icon at the left of the problems listed tends to pertain to that particular operating system.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Msdos-icon.png|32x32px]][[File:Win31.png|32x32px]](as optical drive): The ZuluIDE doesn&#039;t seem to be recognized under MS-DOS. ===&lt;br /&gt;
If you have the ZuluIDE attached as an optical drive in a system that doesn&#039;t natively support the ATAPI protocol, you may have to install a third-party driver to allow DOS to see the drive. This was common for all systems based on 386 processors and earlier, most 486 systems, and some Pentium-based systems. &lt;br /&gt;
&lt;br /&gt;
The simplest solution is to obtain a copy of the Microsoft Windows 98 startup disk, and copy the &amp;lt;code&amp;gt;OAKCDROM.SYS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MSCDEX.EXE&amp;lt;/code&amp;gt; files from it to the root folder of your boot drive. Then, modify your &amp;lt;code&amp;gt;CONFIG.SYS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;AUTOEXEC.BAT&amp;lt;/code&amp;gt; files like this:&lt;br /&gt;
&lt;br /&gt;
==== CONFIG.SYS ====&lt;br /&gt;
Add this line to the top of the file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DEVICE=C:\OAKCDROM.SYS /D:MSCD000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== AUTOEXEC.BAT ====&lt;br /&gt;
Add this line to the end of the file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;C:\MSCDEX.EXE /D:MSCD000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reboot the system, and the drive should populate. &lt;br /&gt;
&lt;br /&gt;
Keep in mind that the only DOS-based CD-ROM driver that has been tested to work with the ZuluIDE at present is the Oak Technology driver (&amp;lt;code&amp;gt;OAKCDROM.SYS&amp;lt;/code&amp;gt;). Other generic drivers, such as the LG (GoldStar) or Adaptec drivers may work, but also may not.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Msdos-icon.png|32x32px]][[File:Win31.png|32x32px]](as optical drive): The system recognizes the first disc image loaded, but then acts like the drive isn&#039;t ready when I change images. ===&lt;br /&gt;
This issue is related to firmware revisions prior to 2024.11.08. Update your device firmware on the [https://github.com/rabbitholecomputing/ZuluIDE-firmware Github repo]. &lt;br /&gt;
&lt;br /&gt;
If you are unable to update the firmware, there is a workaround that you can use until you are able to do so. &lt;br /&gt;
&lt;br /&gt;
After changing images, try to access the drive. The system will pause for a long moment, and then you should see a message similar to this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CDR101: Not ready reading drive E:&amp;lt;br&amp;gt;&lt;br /&gt;
(A)bort, (R)etry, (F)ail?&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Press F to fail the check, and then if it drops back to a command prompt, try to access the drive again and it should present the image as normal.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Win9598.png|37x37px]][[File:Winxp.png|36x36px]] (as optical drive): Performing an &amp;quot;eject&amp;quot; command in Windows Explorer doesn&#039;t actually cycle to the next image. ===&lt;br /&gt;
This is currently a known issue. The workaround for this is to have either the web interface or hardware interface connected and swap images that way. Another workaround is to manually eject the SD card from the ZuluIDE, add a zero to the beginning of the desired disk image&#039;s name, and then reinsert the SD card. The ZuluIDE will then look for the first image it can load alphabetically, which should be the newly-renamed image.&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=ZuluIDE_Operations_Guide&amp;diff=75</id>
		<title>ZuluIDE Operations Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=ZuluIDE_Operations_Guide&amp;diff=75"/>
		<updated>2024-11-04T17:39:58Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: Finish main initial content (+1,207 words, 2 images. OS icons don&amp;#039;t count)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting Up Your ZuluIDE ==&lt;br /&gt;
&lt;br /&gt;
=== Unboxing ===&lt;br /&gt;
When you first receive your ZuluIDE, depending on the options you ordered, you should receive the following:&lt;br /&gt;
&lt;br /&gt;
* ZuluIDE RP2040 Compact board &lt;br /&gt;
* 3D-printed plastic carrier&lt;br /&gt;
* 2x ¼&amp;quot; 4-40 screws&lt;br /&gt;
* microSD card&lt;br /&gt;
* Hardware interface board (optional)&lt;br /&gt;
* Qwiic cable (included with hardware interface board)&lt;br /&gt;
* DAC board with mounted Raspberry Pi Pico W (optional)&lt;br /&gt;
&lt;br /&gt;
== Board Overview ==&lt;br /&gt;
Take a moment to identify the various parts of the board as shown below. &lt;br /&gt;
[[File:ZuluIDE RP2040 Compact (labeled).png|center|frameless|800x800px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;4-pin Molex floppy power connector:&#039;&#039;&#039; Run a standard Molex 4-pin power cable to this port. If your system power supply has only the larger style, get an adapter cable to switch it to the smaller size (the same size as that found on a 3½&amp;quot; floppy disk drive).&lt;br /&gt;
* &#039;&#039;&#039;40-pin male IDC connector:&#039;&#039;&#039; Plug your IDE bus cable into this. The connector is keyed, but some IDE cables lack the key, so make sure that the red stripe on the cable lines up with the little arrow embossed into the connector itself. &lt;br /&gt;
* &#039;&#039;&#039;Configuration DIP switches:&#039;&#039;&#039; These will set how the ZuluIDE responds when the BIOS requests information from the device. &lt;br /&gt;
* &#039;&#039;&#039;Bootloader button:&#039;&#039;&#039; Used during the firmware update process.&lt;br /&gt;
* &#039;&#039;&#039;I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C Footprint:&#039;&#039;&#039; Addon boards can attach through this open footprint either by being soldered directly to it or by attaching standard 0.1&amp;quot; header to this footprint.&lt;br /&gt;
* &#039;&#039;&#039;Qwiic Port:&#039;&#039;&#039; Addon boards can also attach here through the use of a standard Qwiic I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C cable.&lt;br /&gt;
* &#039;&#039;&#039;MicroUSB Port:&#039;&#039;&#039; Used during the firmware update process. Can also be used as a serial monitor to capture debug logs in real time with a second PC. &lt;br /&gt;
* &#039;&#039;&#039;microSD Card Slot:&#039;&#039;&#039; Your SD card with images goes here.&lt;br /&gt;
* &#039;&#039;&#039;Activity LED:&#039;&#039;&#039; Flashes in sync with drive access, also used to indicate status conditions as described later&lt;br /&gt;
* &#039;&#039;&#039;Eject button:&#039;&#039;&#039; Performs a hardware eject for optical drives. Some operating systems will need this after dismounting an image from the system to register that the drive door is closed.&lt;br /&gt;
* &#039;&#039;&#039;External eject and LED headers:&#039;&#039;&#039; If you intend to mount the device internally, but want external access to these, you can use standard 0.1&amp;quot; headers to run an eject button and an LED to a case panel. The red box on the image above indicates the positive pin.&lt;br /&gt;
&lt;br /&gt;
== Molex power connector ==&lt;br /&gt;
Make sure that your power connection uses a &#039;&#039;&#039;3½&amp;quot; floppy power connector,&#039;&#039;&#039; not the larger drive connector used on full-size optical drives, hard drives, and the like. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector.png|frameless|135x135px]]&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector.png|frameless|117x117px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |✅ 3½&amp;quot; connector&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |❌ 5¼&amp;quot; connector&lt;br /&gt;
|}&lt;br /&gt;
If your host system only has the 5¼&amp;quot; connectors, you&#039;ll need to either purchase or make an adapter cable. Making an adapter cable requires the following parts:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;4× 5¼ male pins:&#039;&#039;&#039; TE Connectivity P/N 60620-1&lt;br /&gt;
* &#039;&#039;&#039;1× 5¼ male housing:&#039;&#039;&#039; TE Connectivity P/N 1-480426-0&lt;br /&gt;
* &#039;&#039;&#039;4× 3½ female sockets:&#039;&#039;&#039; TE Connectivity P/N 170262-1&lt;br /&gt;
* &#039;&#039;&#039;1× 3½ female housing:&#039;&#039;&#039; TE Connectivity P/N 171822-4&lt;br /&gt;
&lt;br /&gt;
When making the cables, use 20-gauge wire. If you&#039;re crimping a splitter cable, it&#039;s also possible to use 18-gauge wire on the 5¼ side going to the female plug, and then crimp the larger wire going into the male splitter side together with 22 or 24-gauge wire going to the 3½ side. Crimping the cables can be done with standard tools found on Amazon, such as the IWISS SN-025. &lt;br /&gt;
&lt;br /&gt;
== DIP Switch Configuration ==&lt;br /&gt;
[[File:DIP switches (ZuluIDE).png|center|frameless]]&lt;br /&gt;
Set the three DIP switches according to how the device needs to be configured in the host system.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch 1:&#039;&#039;&#039; Turn IDE Cable Select on or off. &#039;&#039;Most&#039;&#039; systems will work fine with this off, but there are several systems (especially single-board industrial computers) which will use cable-select to determine primary and secondary drives and thus will need it on. If your system hangs during IDE device detection with the ZuluIDE attached to the bus, try turning this switch ON first.&lt;br /&gt;
* &#039;&#039;&#039;Switch 2:&#039;&#039;&#039; Respond as Primary/Master (OFF) or Secondary/Slave (ON).&lt;br /&gt;
* &#039;&#039;&#039;Switch 3:&#039;&#039;&#039; Debug log disable/enable. If this switch is ON, the device will automatically write out a detailed debug log to &amp;lt;code&amp;gt;zululog.txt&amp;lt;/code&amp;gt; on the SD card as long as the device is powered on. Additionally, if you have a USB cable plugged into the MicroUSB port on the device with this switch on, it will also print the debug log over the cable via the RP2040&#039;s internal serial connection.&lt;br /&gt;
&lt;br /&gt;
== Qwiic Port and External Hardware Interface ==&lt;br /&gt;
The external hardware interface (optional) can be connected to this port. The interface provides a Gotek-like system to navigate disc images stored on the SD card and to cycle through them. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Hardware interface (rev 2024a).png|frameless|379x379px]]&lt;br /&gt;
![[File:Qwiic cable.png|frameless|338x338px]]&lt;br /&gt;
|}&lt;br /&gt;
The rotary encoder knob on the hardware interface functions exactly like a Gotek device — spin the knob to change images or menu selections, press the knob to select. The Eject button works exactly like the eject button on the main board, although with the hardware interface attached, it will ask you to confirm the eject by pressing the rotary knob. The User button is currently reserved for future use.&lt;br /&gt;
&lt;br /&gt;
== Activity LED ==&lt;br /&gt;
The Activity LED will flash normally during disk access, however, in certain specific failure modes or status changes, you will see it flashing with a pattern. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1 fast blink, at boot time:&#039;&#039;&#039; Image file loaded successfully&lt;br /&gt;
* &#039;&#039;&#039;3 fast blinks:&#039;&#039;&#039; No valid images found on SD card&lt;br /&gt;
* &#039;&#039;&#039;5 fast blinks:&#039;&#039;&#039; SD card is present, but is not being detected&lt;br /&gt;
* &#039;&#039;&#039;Morse code pattern:&#039;&#039;&#039; Firmware crash. The particular pattern will indicate where the crash occurred. &lt;br /&gt;
&lt;br /&gt;
If a firmware crash occurs, it will also try to save information to the file &amp;lt;code&amp;gt;zuluerr.txt&amp;lt;/code&amp;gt; on the SD card. &lt;br /&gt;
&lt;br /&gt;
== SD Card Preparation and Use ==&lt;br /&gt;
Format your SD card with either the FAT32 or exFAT filesystems. If you intend to use images larger than 4 GB in size, you &#039;&#039;must&#039;&#039; format the card using exFAT as the FAT32 filesystem cannot support individual files larger than 4 GB. &lt;br /&gt;
&lt;br /&gt;
Load your images onto the card into the root folder. Images stored in folders, unless they are &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; images, will be ignored.&lt;br /&gt;
&lt;br /&gt;
For &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; files, they can be placed into a folder with the same name as the image file; i.e., if you have a &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; pair named &amp;lt;code&amp;gt;bigdiscofstuff.bin&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigdiscofstuff.cue&amp;lt;/code&amp;gt; you should place them in a directory named &amp;lt;code&amp;gt;bigdiscofstuff&amp;lt;/code&amp;gt;. This is &#039;&#039;&#039;required&#039;&#039;&#039; if your &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; image has a single &amp;lt;code&amp;gt;CUE&amp;lt;/code&amp;gt; file and multiple &amp;lt;code&amp;gt;BIN&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
=== Drive Types ===&lt;br /&gt;
When configuring the ZuluIDE, you can set it to be multiple different drive types based on the images you intend to use. Out of the box, the ZuluIDE configures itself as an optical drive, but through the [[ZuluIDE INI Configuration|INI file]] or by using &#039;&#039;&#039;filename prefixes,&#039;&#039;&#039; you can tell the ZuluIDE which device you want it to behave as when you power it on. &lt;br /&gt;
&lt;br /&gt;
==== Using the INI File ====&lt;br /&gt;
Under the &amp;lt;code&amp;gt;[IDE]&amp;lt;/code&amp;gt; heading, use the &amp;lt;code&amp;gt;Device=&amp;lt;/code&amp;gt; value to set the drive type:0&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;CDROM&amp;lt;/code&amp;gt; (default) will cause the ZuluIDE to respond as an optical drive.&lt;br /&gt;
* &amp;lt;code&amp;gt;Zip100&amp;lt;/code&amp;gt; will cause the ZuluIDE to respond as an ATAPI-attached 100MB Zip Drive&lt;br /&gt;
* &amp;lt;code&amp;gt;Zip250&amp;lt;/code&amp;gt; will cause the ZuluIDE to respond as an ATAPI-attached 250MB Zip Drive&lt;br /&gt;
* &amp;lt;code&amp;gt;Removable&amp;lt;/code&amp;gt; will cause the ZuluIDE to respond as a generic removable media device&lt;br /&gt;
* &amp;lt;code&amp;gt;HDD&amp;lt;/code&amp;gt; will cause the ZuluIDE to respond as a standard hard disk drive&lt;br /&gt;
&lt;br /&gt;
If this section is absent, or the &amp;lt;code&amp;gt;zuluide.ini&amp;lt;/code&amp;gt; file is not present on the SD card, the device will default to behaving as an optical drive.&lt;br /&gt;
&lt;br /&gt;
==== Using a filename prefix ====&lt;br /&gt;
Add the following to the beginning of your filename to switch the ZuluIDE&#039;s device mode:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;cdrm&amp;lt;/code&amp;gt; will cause the ZuluIDE to load the image as an optical drive image.&lt;br /&gt;
* &amp;lt;code&amp;gt;zipd&amp;lt;/code&amp;gt; will cause the ZuluIDE to load the image as a 100MB or 250MB Zip disk.&lt;br /&gt;
* &amp;lt;code&amp;gt;remv&amp;lt;/code&amp;gt; will cause the ZuluIDE to load the image as a generic removable media device.&lt;br /&gt;
* &amp;lt;code&amp;gt;hddr&amp;lt;/code&amp;gt; will cause the ZuluIDE to load the image as a non-removable hard disk image.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;Device=&amp;lt;/code&amp;gt; option in the INI file will override this behavior. Additionally, if a filename prefix is specified, all other files that you want to use &#039;&#039;&#039;must have the same prefix.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
==== Filename extensions ====&lt;br /&gt;
In optical drive mode, the device will only recognize images that end in &amp;lt;code&amp;gt;.iso&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.bin/.cue&amp;lt;/code&amp;gt;, while also recognizing folders for purposes of reading multipart &amp;lt;code&amp;gt;.bin/.cue&amp;lt;/code&amp;gt; images. &lt;br /&gt;
&lt;br /&gt;
For Zip drives or other removable media,ᚸso long as the filename doesn&#039;t contain one of the prefixes above, doesn&#039;t have an optical drive image extension (&amp;lt;code&amp;gt;.iso/.bin/.cue&amp;lt;/code&amp;gt;), or one of the extensions on the ignored list below, it will load the file as a disk image and attempt to mount it.&lt;br /&gt;
&lt;br /&gt;
If the ZuluIDE starts up as an optical drive, it will use the first image it finds on the SD card as an optical disc.&lt;br /&gt;
&lt;br /&gt;
==== Changing disk images ====&lt;br /&gt;
Without the hardware interface or web interface, changing disk images is done by pressing the eject button on the device itself or by performing a hardware eject directly through the operating system. The firmware will cycle to the next available image on the SD card in alphabetical order. &lt;br /&gt;
&lt;br /&gt;
==== Ignore list ====&lt;br /&gt;
Files with any of the following extensions will be ignored by the ZuluIDE and will not appear in the list of available images on the hardware or web interfaces, and will not be selected when a hardware eject is performed:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.7z&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.rar&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.tgz&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.gz&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.bz2&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.tbz2&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.xz&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.zst&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.z&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.lzh&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.lha&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.lzo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.lz4&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.arj&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.dmg&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.hqx&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.cpt&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.s7z&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.cue&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.rtf&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.md&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.nfo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.pdf&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.doc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additionally, any file that begins with &amp;lt;code&amp;gt;zulu&amp;lt;/code&amp;gt; will be ignored. &lt;br /&gt;
&lt;br /&gt;
==== USB Mass Storage ====&lt;br /&gt;
You can use the ZuluIDE as a passthrough to access the SD card directly by putting the option &amp;lt;code&amp;gt;enable_usb_mass_storage=1&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;[IDE]&amp;lt;/code&amp;gt; section of the [[ZuluIDE INI Configuration|INI file]]. In order to use this mode, the ZuluIDE must not currently be operating as an attached device through the IDE port on a host computer. &lt;br /&gt;
&lt;br /&gt;
==== Hotplugging ====&lt;br /&gt;
The ZuluIDE supports removal and re-insertion of the SD card while the device is on and functioning. Until the device detects that a card has been inserted, you&#039;ll see the activity LED blink 5 times rapidly, pause, and then repeat until a card is reinserted. Once the card has been detected, the LED will blink once, turn off, and return to normal indication of disk access.&lt;br /&gt;
&lt;br /&gt;
== Updating the Firmware ==&lt;br /&gt;
New firmware releases can be obtained by visiting the [https://github.com/ZuluIDE/ZuluIDE-firmware/releases Github page] for the project. The most recent firmware will be listed at the top with a green &amp;quot;Latest&amp;quot; badge. You can update the firmware two different ways.&lt;br /&gt;
&lt;br /&gt;
==== Using the SD card ====&lt;br /&gt;
The ZuluIDE can update itself when it&#039;s initially powered on. You&#039;ll need to have access to the device so you can remove its SD card. &lt;br /&gt;
&lt;br /&gt;
# Power down the system that the ZuluIDE is attached to and remove its SD card.&lt;br /&gt;
# Attach the SD card to the computer where you&#039;ll download the update.&lt;br /&gt;
# From the [https://github.com/ZuluIDE/ZuluIDE-firmware/releases Github page], download the latest firmware file with a &#039;&#039;&#039;.BIN&#039;&#039;&#039; extension.&lt;br /&gt;
# Copy the downloaded &#039;&#039;&#039;.BIN&#039;&#039;&#039; file to the root folder of the SD card and rename it as &amp;lt;code&amp;gt;ZuluIDE.bin&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Dismount the SD card from the computer, and reinsert the SD card into the ZuluIDE.&lt;br /&gt;
# Power the system back on. The ZuluIDE will automatically begin the firmware update process, which takes about one second. If the system has to boot to the ZuluIDE and its startup is particularly quick, you may need to reset the computer once to allow the firmware update process to complete on the ZuluIDE so it can become ready.&lt;br /&gt;
# When the firmware update process finishes, the ZuluIDE will delete the update file and continue on to normal operation.&lt;br /&gt;
&lt;br /&gt;
==== Using the BOOTLDR button ====&lt;br /&gt;
[[File:Bootloader button.png|thumb|140x140px|BOOTLDR button]]&lt;br /&gt;
If you have physical access to the device and a way to plug the MicroUSB port into a host computer, this is the traditional way to update RP2040-based devices like the ZuluIDE. &lt;br /&gt;
&lt;br /&gt;
# Power down the system the ZuluIDE is attached to, and if necessary, unplug it from its cabling.&lt;br /&gt;
# From the [https://github.com/ZuluIDE/ZuluIDE-firmware/releases Github page], download the latest firmware file with a &#039;&#039;&#039;.UF2&#039;&#039;&#039; extension. &lt;br /&gt;
# Attach a MicroUSB cable to the device you&#039;ll be uploading the firmware from.&lt;br /&gt;
# While holding down the BOOTLDR button on the ZuluIDE, attach the other end of the cable to the MicroUSB port on the ZuluIDE. [[File:Firmware-update.png|thumb|Copy the UF2 file to the device.]]&lt;br /&gt;
# A Windows Explorer window may appear with a drive called &amp;lt;code&amp;gt;RPi-RP2&amp;lt;/code&amp;gt;. If it doesn&#039;t, open a Windows Explorer window and look for a drive with this name.&lt;br /&gt;
# Copy the &#039;&#039;&#039;.UF2&#039;&#039;&#039; file you downloaded to the root folder of the drive that appeared when you plugged in the ZuluIDE.&lt;br /&gt;
# The &amp;lt;code&amp;gt;RPi-RP2&amp;lt;/code&amp;gt; window should close on its own once the copy completes. When the device disconnects on its own, the firmware update process is complete.&lt;br /&gt;
# Disconnect the USB cables and reattach the ZuluIDE to its host, if you removed it in step 1. &lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
Some simple things to check before you dive deeper:&lt;br /&gt;
&lt;br /&gt;
* Make sure there are no primary/secondary conflicts on the IDE channel that the ZuluIDE is attached to.&lt;br /&gt;
* Make sure that the power connection to the device is secure and attached.&lt;br /&gt;
* Try toggling the Cable Select switch. Some BIOSes prefer the device to be one way or the other and there&#039;s often little rhyme or reason between even the exact same BIOS on the exact same build across two machines. &lt;br /&gt;
&lt;br /&gt;
For more specific problems, keep reading.&lt;br /&gt;
&lt;br /&gt;
The icon at the left of the problems listed tends to pertain to that particular operating system.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Msdos-icon.png|32x32px]][[File:Win31.png|32x32px]](as optical drive): The ZuluIDE doesn&#039;t seem to be recognized under MS-DOS. ===&lt;br /&gt;
If you have the ZuluIDE attached as an optical drive in a system that doesn&#039;t natively support the ATAPI protocol, you may have to install a third-party driver to allow DOS to see the drive. This was common for all systems based on 386 processors and earlier, most 486 systems, and some Pentium-based systems. &lt;br /&gt;
&lt;br /&gt;
The simplest solution is to obtain a copy of the Microsoft Windows 98 startup disk, and copy the &amp;lt;code&amp;gt;OAKCDROM.SYS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MSCDEX.EXE&amp;lt;/code&amp;gt; files from it to the root folder of your boot drive. Then, modify your &amp;lt;code&amp;gt;CONFIG.SYS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;AUTOEXEC.BAT&amp;lt;/code&amp;gt; files like this:&lt;br /&gt;
&lt;br /&gt;
==== CONFIG.SYS ====&lt;br /&gt;
Add this line to the top of the file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DEVICE=C:\OAKCDROM.SYS /D:MSCD000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== AUTOEXEC.BAT ====&lt;br /&gt;
Add this line to the end of the file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;C:\MSCDEX.EXE /D:MSCD000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reboot the system, and the drive should populate. &lt;br /&gt;
&lt;br /&gt;
Keep in mind that the only DOS-based CD-ROM driver that has been tested to work with the ZuluIDE at present is the Oak Technology driver (&amp;lt;code&amp;gt;OAKCDROM.SYS&amp;lt;/code&amp;gt;). Other generic drivers, such as the LG (GoldStar) or Adaptec drivers may work, but also may not.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Msdos-icon.png|32x32px]][[File:Win31.png|32x32px]](as optical drive): The system recognizes the first disc image loaded, but then acts like the drive isn&#039;t ready when I change images. ===&lt;br /&gt;
This is currently a known issue. There is a temporary workaround, however. &lt;br /&gt;
&lt;br /&gt;
After changing images, try to access the drive. The system will pause for a long moment, and then you should see a message similar to this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CDR101: Not ready reading drive E:&amp;lt;br&amp;gt;&lt;br /&gt;
(A)bort, (R)etry, (F)ail?&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Press F to fail the check, and then if it drops back to a command prompt, try to access the drive again and it should present the image as normal.&lt;br /&gt;
&lt;br /&gt;
=== [[File:Win9598.png|37x37px]][[File:Winxp.png|36x36px]] (as optical drive): Performing an &amp;quot;eject&amp;quot; command in Windows Explorer doesn&#039;t actually cycle to the next image. ===&lt;br /&gt;
This is currently a known issue. The workaround for this is to have either the web interface or hardware interface connected and swap images that way. Another workaround is to manually eject the SD card from the ZuluIDE, add a zero to the beginning of the desired disk image&#039;s name, and then reinsert the SD card. The ZuluIDE will then look for the first image it can load alphabetically, which should be the newly-renamed image.&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Debian.png&amp;diff=74</id>
		<title>File:Debian.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Debian.png&amp;diff=74"/>
		<updated>2024-11-04T16:37:58Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: Linux - Debian distro&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Linux - Debian distro&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Ubuntu.png&amp;diff=73</id>
		<title>File:Ubuntu.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Ubuntu.png&amp;diff=73"/>
		<updated>2024-11-04T16:37:41Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: Linux - Ubuntu distro&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Linux - Ubuntu distro&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:MacosX.png&amp;diff=72</id>
		<title>File:MacosX.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:MacosX.png&amp;diff=72"/>
		<updated>2024-11-04T16:37:09Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: Early Mac OS X (10.0-Rhapsody through roughly 10.8-Mountain Lion)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Early Mac OS X (10.0-Rhapsody through roughly 10.8-Mountain Lion)&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Macos9.png&amp;diff=71</id>
		<title>File:Macos9.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Macos9.png&amp;diff=71"/>
		<updated>2024-11-04T16:34:31Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: Mbalmer uploaded a new version of File:Macos9.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
MacOS 8 and 9&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Macos9.png&amp;diff=70</id>
		<title>File:Macos9.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Macos9.png&amp;diff=70"/>
		<updated>2024-11-04T16:33:06Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: MacOS 8 and 9&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
MacOS 8 and 9&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Linux-generic.png&amp;diff=69</id>
		<title>File:Linux-generic.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Linux-generic.png&amp;diff=69"/>
		<updated>2024-11-04T16:32:18Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: Generic Linux distros&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Generic Linux distros&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Macse.png&amp;diff=68</id>
		<title>File:Macse.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Macse.png&amp;diff=68"/>
		<updated>2024-11-04T16:31:30Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: Macintosh (System 6 and earlier)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Macintosh (System 6 and earlier)&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Winxp.png&amp;diff=67</id>
		<title>File:Winxp.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Winxp.png&amp;diff=67"/>
		<updated>2024-11-04T15:58:01Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: Windows XP icon&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Windows XP icon&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Win9598.png&amp;diff=66</id>
		<title>File:Win9598.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Win9598.png&amp;diff=66"/>
		<updated>2024-11-04T15:57:42Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: Windows 95/98 icon&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Windows 95/98 icon&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Win31.png&amp;diff=65</id>
		<title>File:Win31.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Win31.png&amp;diff=65"/>
		<updated>2024-11-04T15:56:46Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: Windows 3.1 icon&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Windows 3.1 icon&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Msdos-icon.png&amp;diff=64</id>
		<title>File:Msdos-icon.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Msdos-icon.png&amp;diff=64"/>
		<updated>2024-11-04T15:33:07Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MS-DOS icon&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Firmware-update.png&amp;diff=63</id>
		<title>File:Firmware-update.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Firmware-update.png&amp;diff=63"/>
		<updated>2024-11-04T15:05:04Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Firmware update instructions&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Bootloader_button.png&amp;diff=62</id>
		<title>File:Bootloader button.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Bootloader_button.png&amp;diff=62"/>
		<updated>2024-11-04T15:03:02Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bootloader button&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=ZuluIDE_Operations_Guide&amp;diff=61</id>
		<title>ZuluIDE Operations Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=ZuluIDE_Operations_Guide&amp;diff=61"/>
		<updated>2024-11-03T04:31:39Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: Initial save (incomplete; 1,381 words, 8 images)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting Up Your ZuluIDE ==&lt;br /&gt;
&lt;br /&gt;
=== Unboxing ===&lt;br /&gt;
When you first receive your ZuluIDE, depending on the options you ordered, you should receive the following:&lt;br /&gt;
&lt;br /&gt;
* ZuluIDE RP2040 Compact board &lt;br /&gt;
* 3D-printed plastic carrier&lt;br /&gt;
* 2x ¼&amp;quot; 4-40 screws&lt;br /&gt;
* microSD card&lt;br /&gt;
* Hardware interface board&lt;br /&gt;
* Qwiic cable&lt;br /&gt;
&lt;br /&gt;
== Board Overview ==&lt;br /&gt;
Take a moment to identify the various parts of the board as shown below. &lt;br /&gt;
[[File:ZuluIDE RP2040 Compact (labeled).png|center|frameless|800x800px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;4-pin Molex floppy power connector:&#039;&#039;&#039; Run a standard Molex 4-pin power cable to this port. If your system power supply has only the larger style, get an adapter cable to switch it to the smaller size (the same size as that found on a 3½&amp;quot; floppy disk drive).&lt;br /&gt;
* &#039;&#039;&#039;40-pin male IDC connector:&#039;&#039;&#039; Plug your IDE bus cable into this. The connector is keyed, but some IDE cables lack the key, so make sure that the red stripe on the cable lines up with the little arrow embossed into the connector itself. &lt;br /&gt;
* &#039;&#039;&#039;Configuration DIP switches:&#039;&#039;&#039; These will set how the ZuluIDE responds when the BIOS requests information from the device. &lt;br /&gt;
* &#039;&#039;&#039;Bootloader button:&#039;&#039;&#039; Used during the firmware update process.&lt;br /&gt;
* &#039;&#039;&#039;I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C Footprint:&#039;&#039;&#039; Addon boards can attach through this open footprint either by being soldered directly to it or by attaching standard 0.1&amp;quot; header to this footprint.&lt;br /&gt;
* &#039;&#039;&#039;Qwiic Port:&#039;&#039;&#039; Addon boards can also attach here through the use of a standard Qwiic I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C cable.&lt;br /&gt;
* &#039;&#039;&#039;MicroUSB Port:&#039;&#039;&#039; Used during the firmware update process. Can also be used as a serial monitor to capture debug logs in real time with a second PC. &lt;br /&gt;
* &#039;&#039;&#039;microSD Card Slot:&#039;&#039;&#039; Your SD card with images goes here.&lt;br /&gt;
* &#039;&#039;&#039;Activity LED:&#039;&#039;&#039; Flashes in sync with drive access, also used to indicate status conditions as described later&lt;br /&gt;
* &#039;&#039;&#039;Eject button:&#039;&#039;&#039; Performs a hardware eject for optical drives. Some operating systems will need this after dismounting an image from the system to register that the drive door is closed.&lt;br /&gt;
* &#039;&#039;&#039;External eject and LED headers:&#039;&#039;&#039; If you intend to mount the device internally, but want external access to these, you can use standard 0.1&amp;quot; headers to run an eject button and an LED to a case panel. The red box on the image above indicates the positive pin.&lt;br /&gt;
&lt;br /&gt;
== Molex power connector ==&lt;br /&gt;
Make sure that your power connection uses a &#039;&#039;&#039;3½&amp;quot; floppy power connector,&#039;&#039;&#039; not the larger drive connector used on full-size optical drives, hard drives, and the like. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector.png|frameless|135x135px]]&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector.png|frameless|117x117px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |✅ 3½&amp;quot; connector&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |❌ 5¼&amp;quot; connector&lt;br /&gt;
|}&lt;br /&gt;
If your host system only has the 5¼&amp;quot; connectors, you&#039;ll need to either purchase or make an adapter cable. Making an adapter cable requires the following parts:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;4× 5¼ male pins:&#039;&#039;&#039; TE Connectivity P/N 60620-1&lt;br /&gt;
* &#039;&#039;&#039;1× 5¼ male housing:&#039;&#039;&#039; TE Connectivity P/N 1-480426-0&lt;br /&gt;
* &#039;&#039;&#039;4× 3½ female sockets:&#039;&#039;&#039; TE Connectivity P/N 170262-1&lt;br /&gt;
* &#039;&#039;&#039;1× 3½ female housing:&#039;&#039;&#039; TE Connectivity P/N 171822-4&lt;br /&gt;
&lt;br /&gt;
When making the cables, use 20-gauge wire. If you&#039;re crimping a splitter cable, it&#039;s also possible to use 18-gauge wire on the 5¼ side going to the female plug, and then crimp the larger wire going into the male splitter side together with 22 or 24-gauge wire going to the 3½ side. Crimping the cables can be done with standard tools found on Amazon, such as the IWISS SN-025. &lt;br /&gt;
&lt;br /&gt;
== DIP Switch Configuration ==&lt;br /&gt;
[[File:DIP switches (ZuluIDE).png|center|frameless]]&lt;br /&gt;
Set the three DIP switches according to how the device needs to be configured in the host system.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch 1:&#039;&#039;&#039; Turn IDE Cable Select on or off. &#039;&#039;Most&#039;&#039; systems will work fine with this off, but there are several systems (especially single-board industrial computers) which will use cable-select to determine primary and secondary drives and thus will need it on. If your system hangs during IDE device detection with the ZuluIDE attached to the bus, try turning this switch ON first.&lt;br /&gt;
* &#039;&#039;&#039;Switch 2:&#039;&#039;&#039; Respond as Primary/Master (OFF) or Secondary/Slave (ON).&lt;br /&gt;
* &#039;&#039;&#039;Switch 3:&#039;&#039;&#039; Debug log disable/enable. If this switch is ON, the device will automatically write out a detailed debug log to &amp;lt;code&amp;gt;zululog.txt&amp;lt;/code&amp;gt; on the SD card as long as the device is powered on. Additionally, if you have a USB cable plugged into the MicroUSB port on the device with this switch on, it will also print the debug log over the cable via the RP2040&#039;s internal serial connection.&lt;br /&gt;
&lt;br /&gt;
== Qwiic Port and External Hardware Interface ==&lt;br /&gt;
The external hardware interface (optional) can be connected to this port. The interface provides a Gotek-like system to navigate disc images stored on the SD card and to cycle through them. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Hardware interface (rev 2024a).png|frameless|379x379px]]&lt;br /&gt;
![[File:Qwiic cable.png|frameless|338x338px]]&lt;br /&gt;
|}&lt;br /&gt;
The rotary encoder knob on the hardware interface functions exactly like a Gotek device — spin the knob to change images or menu selections, press the knob to select. The Eject button works exactly like the eject button on the main board, although with the hardware interface attached, it will ask you to confirm the eject by pressing the rotary knob. The User button is currently reserved for future use.&lt;br /&gt;
&lt;br /&gt;
== Activity LED ==&lt;br /&gt;
The Activity LED will flash normally during disk access, however, in certain specific failure modes or status changes, you will see it flashing with a pattern. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1 fast blink, at boot time:&#039;&#039;&#039; Image file loaded successfully&lt;br /&gt;
* &#039;&#039;&#039;3 fast blinks:&#039;&#039;&#039; No valid images found on SD card&lt;br /&gt;
* &#039;&#039;&#039;5 fast blinks:&#039;&#039;&#039; SD card is present, but is not being detected&lt;br /&gt;
* &#039;&#039;&#039;Morse code pattern:&#039;&#039;&#039; Firmware crash. The particular pattern will indicate where the crash occurred. &lt;br /&gt;
&lt;br /&gt;
If a firmware crash occurs, it will also try to save information to the file &amp;lt;code&amp;gt;zuluerr.txt&amp;lt;/code&amp;gt; on the SD card. &lt;br /&gt;
&lt;br /&gt;
== SD Card Preparation and Use ==&lt;br /&gt;
Format your SD card with either the FAT32 or exFAT filesystems. If you intend to use images larger than 4 GB in size, you &#039;&#039;must&#039;&#039; format the card using exFAT as the FAT32 filesystem cannot support individual files larger than 4 GB. &lt;br /&gt;
&lt;br /&gt;
Load your images onto the card into the root folder. Images stored in folders, unless they are &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; images, will be ignored.&lt;br /&gt;
&lt;br /&gt;
For &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; files, they can be placed into a folder with the same name as the image file; i.e., if you have a &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; pair named &amp;lt;code&amp;gt;bigdiscofstuff.bin&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigdiscofstuff.cue&amp;lt;/code&amp;gt; you should place them in a directory named &amp;lt;code&amp;gt;bigdiscofstuff&amp;lt;/code&amp;gt;. This is &#039;&#039;&#039;required&#039;&#039;&#039; if your &amp;lt;code&amp;gt;BIN/CUE&amp;lt;/code&amp;gt; image has a single &amp;lt;code&amp;gt;CUE&amp;lt;/code&amp;gt; file and multiple &amp;lt;code&amp;gt;BIN&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
=== Drive Types ===&lt;br /&gt;
When configuring the ZuluIDE, you can set it to be multiple different drive types based on the images you intend to use. Out of the box, the ZuluIDE configures itself as an optical drive, but through the [[ZuluIDE INI Configuration|INI file]] or by using &#039;&#039;&#039;filename prefixes,&#039;&#039;&#039; you can tell the ZuluIDE which device you want it to behave as when you power it on. &lt;br /&gt;
&lt;br /&gt;
==== Using the INI File ====&lt;br /&gt;
Under the &amp;lt;code&amp;gt;[IDE]&amp;lt;/code&amp;gt; heading, use the &amp;lt;code&amp;gt;Device=&amp;lt;/code&amp;gt; value to set the drive type:0&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;CDROM&amp;lt;/code&amp;gt; (default) will cause the ZuluIDE to respond as an optical drive.&lt;br /&gt;
* &amp;lt;code&amp;gt;Zip100&amp;lt;/code&amp;gt; will cause the ZuluIDE to respond as an ATAPI-attached 100MB Zip Drive&lt;br /&gt;
* &amp;lt;code&amp;gt;Zip250&amp;lt;/code&amp;gt; will cause the ZuluIDE to respond as an ATAPI-attached 250MB Zip Drive&lt;br /&gt;
* &amp;lt;code&amp;gt;Removable&amp;lt;/code&amp;gt; will cause the ZuluIDE to respond as a generic removable media device&lt;br /&gt;
* &amp;lt;code&amp;gt;HDD&amp;lt;/code&amp;gt; will cause the ZuluIDE to respond as a standard hard disk drive&lt;br /&gt;
&lt;br /&gt;
If this section is absent, or the &amp;lt;code&amp;gt;zuluide.ini&amp;lt;/code&amp;gt; file is not present on the SD card, the device will default to behaving as an optical drive.&lt;br /&gt;
&lt;br /&gt;
==== Using a filename prefix ====&lt;br /&gt;
Add the following to the beginning of your filename to switch the ZuluIDE&#039;s device mode:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;cdrm&amp;lt;/code&amp;gt; will cause the ZuluIDE to load the image as an optical drive image.&lt;br /&gt;
* &amp;lt;code&amp;gt;zipd&amp;lt;/code&amp;gt; will cause the ZuluIDE to load the image as a 100MB or 250MB Zip disk.&lt;br /&gt;
* &amp;lt;code&amp;gt;remv&amp;lt;/code&amp;gt; will cause the ZuluIDE to load the image as a generic removable media device.&lt;br /&gt;
* &amp;lt;code&amp;gt;hddr&amp;lt;/code&amp;gt; will cause the ZuluIDE to load the image as a non-removable hard disk image.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;Device=&amp;lt;/code&amp;gt; option in the INI file will override this behavior. Additionally, if a filename prefix is specified, all other files that you want to use &#039;&#039;&#039;must have the same prefix.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
==== Filename extensions ====&lt;br /&gt;
In optical drive mode, the device will only recognize images that end in &amp;lt;code&amp;gt;.iso&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.bin/.cue&amp;lt;/code&amp;gt;, while also recognizing folders for purposes of reading multipart &amp;lt;code&amp;gt;.bin/.cue&amp;lt;/code&amp;gt; images. &lt;br /&gt;
&lt;br /&gt;
For Zip drives or other removable media, extensions are optional, but any extension that isn&#039;t on the ignored list &#039;&#039;or&#039;&#039; any files with &amp;lt;code&amp;gt;.iso&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.bin/.cue&amp;lt;/code&amp;gt; as their extension.&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=ZuluIDE_Operations_Guide&amp;diff=60</id>
		<title>ZuluIDE Operations Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=ZuluIDE_Operations_Guide&amp;diff=60"/>
		<updated>2024-11-02T21:38:24Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting Up Your ZuluIDE ==&lt;br /&gt;
&lt;br /&gt;
=== Unboxing ===&lt;br /&gt;
When you first receive your ZuluIDE, depending on the options you ordered, you should receive the following:&lt;br /&gt;
&lt;br /&gt;
* ZuluIDE RP2040 Compact board &lt;br /&gt;
* 3D-printed plastic carrier&lt;br /&gt;
* 2x ¼&amp;quot; 4-40 screws&lt;br /&gt;
* microSD card&lt;br /&gt;
* Hardware interface board&lt;br /&gt;
* Qwiic cable&lt;br /&gt;
&lt;br /&gt;
== Board Overview ==&lt;br /&gt;
Take a moment to identify the various parts of the board as shown below. &lt;br /&gt;
[[File:ZuluIDE RP2040 Compact (labeled).png|center|frameless|800x800px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;4-pin Molex floppy power connector:&#039;&#039;&#039; Run a standard Molex 4-pin power cable to this port. If your system power supply has only the larger style, get an adapter cable to switch it to the smaller size (the same size as that found on a 3½&amp;quot; floppy disk drive).&lt;br /&gt;
* &#039;&#039;&#039;40-pin male IDC connector:&#039;&#039;&#039; Plug your IDE bus cable into this. The connector is keyed, but some IDE cables lack the key, so make sure that the red stripe on the cable lines up with the little arrow embossed into the connector itself. &lt;br /&gt;
* &#039;&#039;&#039;Configuration DIP switches:&#039;&#039;&#039; These will set how the ZuluIDE responds when the BIOS requests information from the device. &lt;br /&gt;
* &#039;&#039;&#039;Bootloader button:&#039;&#039;&#039; Used during the firmware update process.&lt;br /&gt;
* &#039;&#039;&#039;I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C Footprint:&#039;&#039;&#039; Addon boards can attach through this open footprint either by being soldered directly to it or by attaching standard 0.1&amp;quot; header to this footprint.&lt;br /&gt;
* &#039;&#039;&#039;Qwiic Port:&#039;&#039;&#039; Addon boards can also attach here through the use of a standard Qwiic I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C cable.&lt;br /&gt;
* &#039;&#039;&#039;MicroUSB Port:&#039;&#039;&#039; Used during the firmware update process. Can also be used as a serial monitor to capture debug logs in real time with a second PC. &lt;br /&gt;
* &#039;&#039;&#039;microSD Card Slot:&#039;&#039;&#039; Your SD card with images goes here.&lt;br /&gt;
* &#039;&#039;&#039;Activity LED:&#039;&#039;&#039; Flashes in sync with drive access, also used to indicate failure modes as described later&lt;br /&gt;
* &#039;&#039;&#039;Eject button:&#039;&#039;&#039; Performs a hardware eject for optical drives. Some operating systems will need this after dismounting an image from the system to register that the drive door is closed.&lt;br /&gt;
* &#039;&#039;&#039;External eject and LED headers:&#039;&#039;&#039; If you intend to mount the device internally, but want external access to these, you can use standard 0.1&amp;quot; headers to run an eject button and an LED to a case panel. The red box on the image above indicates the positive pin.&lt;br /&gt;
&lt;br /&gt;
== Molex power connector ==&lt;br /&gt;
Make sure that your power connection uses a &#039;&#039;&#039;3½&amp;quot; floppy power connector,&#039;&#039;&#039; not the larger drive connector used on full-size optical drives, hard drives, and the like. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector.png|frameless|135x135px]]&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector.png|frameless|117x117px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |✅ 3½&amp;quot; connector&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |❌ 5¼&amp;quot; connector&lt;br /&gt;
|}&lt;br /&gt;
If your host system only has the 5¼&amp;quot; connectors, you&#039;ll need to either purchase or make an adapter cable. Making an adapter cable requires the following parts:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;4× 5¼ male pins:&#039;&#039;&#039; TE Connectivity P/N 60620-1&lt;br /&gt;
* &#039;&#039;&#039;1× 5¼ male housing:&#039;&#039;&#039; TE Connectivity P/N 1-480426-0&lt;br /&gt;
* &#039;&#039;&#039;4× 3½ female sockets:&#039;&#039;&#039; TE Connectivity P/N 170262-1&lt;br /&gt;
* &#039;&#039;&#039;1× 3½ female housing:&#039;&#039;&#039; TE Connectivity P/N 171822-4&lt;br /&gt;
&lt;br /&gt;
When making the cables, use 20-gauge wire. Crimping the cables can be done with standard tools found on Amazon, such as the IWISS SN-025. &lt;br /&gt;
&lt;br /&gt;
== DIP Switch Configuration ==&lt;br /&gt;
[[File:DIP switches (ZuluIDE).png|center|frameless]]&lt;br /&gt;
Set the three DIP switches according to how the device needs to be configured in the host system.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch 1:&#039;&#039;&#039; Turn IDE Cable Select on or off. &#039;&#039;Most&#039;&#039; systems will work fine with this off, but there are several systems (especially single-board industrial computers) which will use cable-select to determine primary and secondary drives and thus will need it on. If your system hangs during IDE device detection with the ZuluIDE attached to the bus, try turning this switch ON first.&lt;br /&gt;
* &#039;&#039;&#039;Switch 2:&#039;&#039;&#039; Respond as Primary/Master (OFF) or Secondary/Slave (ON).&lt;br /&gt;
* &#039;&#039;&#039;Switch 3:&#039;&#039;&#039; Debug log disable/enable. If this switch is ON, the device will automatically write out a detailed debug log to &amp;lt;code&amp;gt;zululog.txt&amp;lt;/code&amp;gt; on the SD card as long as the device is powered on. Additionally, if you have a USB cable plugged into the MicroUSB port on the device with this switch on, it will also print the debug log over the cable via the RP2040&#039;s internal serial connection.&lt;br /&gt;
&lt;br /&gt;
== Qwiic Port and External Hardware Interface ==&lt;br /&gt;
The external hardware interface (optional) can be connected to this port. The interface provides a Gotek-like system to navigate disc images stored on the SD card and to cycle through them. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Hardware interface (rev 2024a).png|frameless|379x379px]]&lt;br /&gt;
![[File:Qwiic cable.png|frameless|338x338px]]&lt;br /&gt;
|}&lt;br /&gt;
The rotary encoder knob on the hardware interface functions exactly like a Gotek device — spin the knob to change images or menu selections, press the knob to select. The Eject button works exactly like the eject button on the main board, although with the hardware interface attached, it will ask you to confirm the eject by pressing the rotary knob. The User button is currently reserved for future use.&lt;br /&gt;
&lt;br /&gt;
== SD Card Preparation ==&lt;br /&gt;
Format your SD card with either the FAT32 or exFAT filesystems. If you intend to use images larger than 4 GB in size, you &#039;&#039;must&#039;&#039; format the card using exFAT as the FAT32 filesystem cannot support individual files larger than 4 GB.&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Qwiic_cable.png&amp;diff=59</id>
		<title>File:Qwiic cable.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Qwiic_cable.png&amp;diff=59"/>
		<updated>2024-11-02T21:14:02Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Qwiic cable.&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Hardware_interface_(rev_2024a).png&amp;diff=58</id>
		<title>File:Hardware interface (rev 2024a).png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Hardware_interface_(rev_2024a).png&amp;diff=58"/>
		<updated>2024-11-02T21:13:05Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hardware interface, revision 2024a&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=ZuluIDE_Operations_Guide&amp;diff=57</id>
		<title>ZuluIDE Operations Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=ZuluIDE_Operations_Guide&amp;diff=57"/>
		<updated>2024-11-02T20:10:59Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting Up Your ZuluIDE ==&lt;br /&gt;
&lt;br /&gt;
=== Unboxing ===&lt;br /&gt;
When you first receive your ZuluIDE, depending on the options you ordered, you should receive the following:&lt;br /&gt;
&lt;br /&gt;
* ZuluIDE RP2040 Compact board &lt;br /&gt;
* 3D-printed plastic carrier&lt;br /&gt;
* 2x ¼&amp;quot; 4-40 screws&lt;br /&gt;
* microSD card&lt;br /&gt;
* Hardware interface board&lt;br /&gt;
* Qwiic cable&lt;br /&gt;
&lt;br /&gt;
=== Board Overview ===&lt;br /&gt;
Take a moment to identify the various parts of the board as shown below. &lt;br /&gt;
[[File:ZuluIDE RP2040 Compact (labeled).png|center|frameless|800x800px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;4-pin Molex floppy power connector:&#039;&#039;&#039; Run a standard Molex 4-pin power cable to this port. If your system power supply has only the larger style, get an adapter cable to switch it to the smaller size (the same size as that found on a 3½&amp;quot; floppy disk drive).&lt;br /&gt;
* &#039;&#039;&#039;40-pin male IDC connector:&#039;&#039;&#039; Plug your IDE bus cable into this. The connector is keyed, but some IDE cables lack the key, so make sure that the red stripe on the cable lines up with the little arrow embossed into the connector itself. &lt;br /&gt;
* &#039;&#039;&#039;Configuration DIP switches:&#039;&#039;&#039; These will set how the ZuluIDE responds when the BIOS requests information from the device. &lt;br /&gt;
* &#039;&#039;&#039;Bootloader button:&#039;&#039;&#039; Used during the firmware update process.&lt;br /&gt;
* &#039;&#039;&#039;I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C Footprint:&#039;&#039;&#039; Addon boards can attach through this open footprint either by being soldered directly to it or by attaching standard 0.1&amp;quot; header to this footprint.&lt;br /&gt;
* &#039;&#039;&#039;Qwiic Port:&#039;&#039;&#039; Addon boards can also attach here through the use of a standard Qwiic I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C cable.&lt;br /&gt;
* &#039;&#039;&#039;MicroUSB Port:&#039;&#039;&#039; Used during the firmware update process. Can also be used as a serial monitor to capture debug logs in real time with a second PC. &lt;br /&gt;
* &#039;&#039;&#039;microSD Card Slot:&#039;&#039;&#039; Your SD card with images goes here.&lt;br /&gt;
* &#039;&#039;&#039;Activity LED:&#039;&#039;&#039; Flashes in sync with drive access, also used to indicate failure modes as described later&lt;br /&gt;
* &#039;&#039;&#039;Eject button:&#039;&#039;&#039; Performs a hardware eject for optical drives. Some operating systems will need this after dismounting an image from the system to register that the drive door is closed.&lt;br /&gt;
* &#039;&#039;&#039;External eject and LED headers:&#039;&#039;&#039; If you intend to mount the device internally, but want external access to these, you can use standard 0.1&amp;quot; headers to run an eject button and an LED to a case panel. The red box on the image above indicates the positive pin.&lt;br /&gt;
&lt;br /&gt;
==== Molex power connector ====&lt;br /&gt;
Make sure that your power connection uses a &#039;&#039;&#039;3½&amp;quot; floppy power connector,&#039;&#039;&#039; not the larger drive connector used on full-size optical drives, hard drives, and the like. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector.png|frameless|135x135px]]&lt;br /&gt;
![[File:Molex 3.5&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector.png|frameless|117x117px]]&lt;br /&gt;
![[File:Molex 5.25&amp;quot; power connector (top).png|frameless|100x100px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |✅ 3½&amp;quot; connector&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |❌ 5¼&amp;quot; connector&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== DIP Switch Configuration ====&lt;br /&gt;
[[File:DIP switches (ZuluIDE).png|center|frameless]]&lt;br /&gt;
Set the three DIP switches according to how the device needs to be configured in the host system.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch 1:&#039;&#039;&#039; Turn IDE Cable Select on or off. &#039;&#039;Most&#039;&#039; systems will work fine with this off, but there are several systems (especially single-board industrial computers) which will use cable-select to determine primary and secondary drives and thus will need it on. If your system hangs during IDE device detection with the ZuluIDE attached to the bus, try turning this switch ON first.&lt;br /&gt;
* &#039;&#039;&#039;Switch 2:&#039;&#039;&#039; Respond as Primary/Master (OFF) or Secondary/Slave (ON).&lt;br /&gt;
* &#039;&#039;&#039;Switch 3:&#039;&#039;&#039; Debug log disable/enable. If this switch is ON, the device will automatically write out a detailed debug log to &amp;lt;code&amp;gt;zululog.txt&amp;lt;/code&amp;gt; on the SD card as long as the device is powered on. Additionally, if you have a USB cable plugged into the MicroUSB port on the device with this switch on, it will also print the debug log over the cable via the RP2040&#039;s internal serial connection.&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:DIP_switches_(ZuluIDE).png&amp;diff=56</id>
		<title>File:DIP switches (ZuluIDE).png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:DIP_switches_(ZuluIDE).png&amp;diff=56"/>
		<updated>2024-11-02T19:48:59Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DIP switch block (ZuluIDE)&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Molex_5.25%22_power_connector_(top).png&amp;diff=55</id>
		<title>File:Molex 5.25&quot; power connector (top).png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Molex_5.25%22_power_connector_(top).png&amp;diff=55"/>
		<updated>2024-11-02T19:39:59Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Molex 5.25&amp;quot; power connector (top)&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=File:Molex_5.25%22_power_connector.png&amp;diff=54</id>
		<title>File:Molex 5.25&quot; power connector.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=File:Molex_5.25%22_power_connector.png&amp;diff=54"/>
		<updated>2024-11-02T19:39:33Z</updated>

		<summary type="html">&lt;p&gt;Mbalmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Molex 5.25&amp;quot; power connector&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
</feed>