First post, by Lostdotfish
Starting a thread for this as I think it is going to be a popular device and I'm right there for it!
I also wanted to make sure information about this device ends up in one place, as currently it's finding it's way into the PicoGUS thread and the "Gotek like Optical Drive Emulator" thread.
PicoGUS: ISA sound card emulator with Raspberry Pi Pico (Gravis Ultrasound, AdLib, MPU-401, Tandy, CMS)
Gotek like Optical Driver Emulator - Is it possible?
PicoIDE is an upcomming hardware solution for emulating IDE and ATAPI (optical) devices.
Project launching on Crowd Supply soon!
https://www.crowdsupply.com/polpotronics/picoide
PicoIDE is an open-source IDE/ATAPI drive emulator that replaces aging hard drives and CD-ROM drives in vintage computers with solid-state microSD card storage. You simply put your disk/disc images on a microSD card and swap between them as needed. It solves an increasingly common problem for people using vintage computers and other devices: optical drives and vintage spinning hard drives are increasingly wearing out and failing. Plus, compared to managing drive images on a microSD card, burning discs and managing physical drives can be time consuming and create clutter.
PicoIDE will be available in two versions, both designed to provide maximum functionality. Both are powered by the Raspberry Pi RP2350, and give you great standard features: a 3.5-inch size enclosure, ability to swap microSD cards or swap disk images using a control program on the host PC, and analog output for CD audio. For advanced users, you can get a fully-featured version with a front panel user interface and OLED screen for selecting disk images without fussing with microSD cards. The addition of an ESP32 with Wi-Fi also lets you wirelessly upload and manage disk images via a web interface.
PicoIDE enables a Pentium-era gaming PC to be a practical retro gaming station by eliminating the need for physical CD-ROMs and aging optical drives. Load your entire CD game library onto a microSD card which can hold dozens of titles in .BIN/.CUE or .ISO format organized into directories, and switch between them using the front panel or host utility to pre-load the proper game disc in a batch file. PicoIDE’s built-in CD audio output connects directly to your sound card’s CD audio input with an MPC-2 cable, or you can use the 3.5 mm line out.
Many titles from the golden age of CD-ROM games used mixed-mode discs with "redbook" CD audio tracks, relying on real CD-ROM drives with audio out, something typical DOS virtual drive utilities can’t handle.
But it’s not just an optical drive emulator—PicoIDE can also act as a hard drive replacement, too. PicoIDE can emulate drive geometries specified in .VHD drive images or via .INI config file. You can create multiple small partition images that match your system’s BIOS drive table and switch between different DOS, Windows, or OS/2 installations. This makes it perfect for early-90s PCs that predate LBA support with BIOS limitations that only recognize specific hard drive geometries, making drive replacement increasingly difficult.
Features & Specifications
- Emulates ATAPI CD-ROM and IDE fixed hard drives
- Images stored on microSD card
- .bin/.cue or .iso image support for CD-ROM
- .img/.hda/.vhd/.hdf for HDD, supporting LBA or CHS
- Built-in CD audio analog output on 3.5mm jack and MPC-2 header, driven by TI PCM5100A DAC
- Supports PIO modes 0-4 and multi-word DMA modes 0-2
- Headers for SPI peripheral, external drive activity LED and action button
Front Panel Interface (optional)
- External-facing 3.5-inch drive bay enclosure
- 1.3-inch 128x64 OLED screen & 4-way navigation buttons
- Wi-Fi for remote control and upload/management of disk images in either AP or client mode
- RGB activity LED to determine drive state at a glance (disc inserted, disc ejected, drive activity, etc.)
- QWIIC connector for even more extensibility: connect rotary encoders, I/O expanders, etc.
Firmware
- Optical disc images can be swapped on the fly by removing/inserting the SD card
- Pass-through commands for disk image switching without front panel via host utility (DOS version available at launch)
- One device can be emulated at a time, but emulating two devices simultaneously is planned
- Configuration via .ini file on microSD card, allowing configuration of:
- IDE or ATAPI drive type
- Default image to load at runtime
- Override of drive name/vendor in IDENTIFY/INQUIRY
- Override max transfer mode
- Wi-Fi configuration for front panel
Open Source
PicoIDE is open hardware licensed under the CERN-OHL-S-v2 license. The hardware design (PCB design files for the boards and CAD files for the case) is open source. The firmware for both the main board and front panel are fully open source, and will be available under the GPLv2 license. We hope to get OSHWA certification before shipping the project, and will make final files available on our GitHub page ahead of submitting our files for that process.
We’ve gotten great feedback and offers to help implement features. People have already suggested other use cases: as a hard drive replacement in multitrack recorders and samplers, or as a CD-ROM replacement in arcade cabinets. PicoIDE’s ability to spoof specific drives by overriding the vendor/model in its config can also let it be used in systems hard-coded to use certain model drives. PicoIDE’s open source firmware enables the community to develop special support for niche applications.
Ian's Updates
Posted on
2026-01-30, 20:13
Regarding MWDMA vs. UDMA - this version of the device does not have the ability to support UDMA because some of the UDMA signals need different types of drivers that PicoIDE lacks. I was very intentional about this: I wanted to constrain the scope of the first version of PicoIDE enough to actually ship in a reasonable timeframe as a solo developer doing this on my nights and weekends. PicoIDE is ambitious enough as it is, and UDMA bus signalling is quite different from PIO or MWDMA, so I decided to leave it out. I created PicoIDE as the drive emulator that I personally really wanted: polished front panel and web controls, supporting optical drives extremely well for any 90s-era system, and supporting hard drives on earlier systems that only accept fixed CHS parameters that have issues with commonly available CF or SD card adapters. I agree with SScorpio above that later UDMA2+ systems are already very well served by those cheap adapters. Also you'd be surprised at how fast MWDMA mode 2 feels on late 90s machines - and PicoIDE benchmarks faster than several UDMA supporting CF cards in some of my systems. PicoIDE currently benchmarks at the speed of a 78X CD-ROM drive and completely saturates the 16MB/s of MWDMA mode 2 in HDD mode. If you really need faster HDD emulation speeds there are other devices out there like ZuluIDE v2 and the upcoming SD2IDE which is going to be blazing fast (UDMA 6/ATA133, using SD Express cards).
The speed of uploading images to the web interface varies between 500kB/s to 1MB/s depending on WiFi reception. That could probably be improved with some tweaks to the SPI protocol between the front panel board and main board, but 2.4GHz WiFi becomes a bottleneck surprisingly quickly.
douglar wrote on 2026-01-31, 19:50:Will PicoIDE support multi sector transfers?
Will it support trim? OK, I know operating systems < 2005 don't support trim, and SD's don't call it trim, but still, it would be neat to have. Although I'll admit, I'm not sure how it would work with the virtual hard drive files.
Yes, multi-sector transfers are supported. No TRIM support, but I don't think it really makes sense for fixed virtual hard drive files since nothing is ever deleted from the perspective of the PicoIDE - it just gets writes within the bytes that the image is in on the SD card.
douglar wrote on 2026-02-01, 13:57:Is PicoIDE going to assert and de-assert IORDY or assume it is always fast enough? PicoIDE actively asserts and de-asserts IORDY […]
Is PicoIDE going to assert and de-assert IORDY or assume it is always fast enough?
PicoIDE actively asserts and de-asserts IORDY to safely handle SD card latency and buffering. It does not assume it can always meet fixed PIO4 timing without wait states. IORDY can be disabled in the config file.What are the fastest idle/active/hold/recovery times that you expect to handle?
PicoIDE is designed to do a 70 ns strobe active time and a 120 ns minimum cycle time. It does not attempt to support faster-than-spec or overclocked host timings.
Whether IORDY is asserted or not doesn't have to do with SD card access. PicoIDE de-asserts IORDY while the host reads the various status registers, etc., but because of DMA between the sector buffer and the IDE data pins it's fast enough that it does not need to deassert IORDY during reads/writes from the data register or when doing MWDMA. For example from /IOR assert the PicoIDE has the data ready on the pins in about 20 ns, so it's quite a bit faster than the 50ns required in the spec for PIO mode 4/MWDMA mode 2. Reads are accelerated because while data is being transferred to the host, the PicoIDE CPU is free to read the next sector from the SD card, so SD access is not a bottleneck for sequential reads.
douglar wrote on 2026-02-01, 13:57:Can the end user change what is reported in ATA IDENTIFY DEVICE or SET FEATURES?
The config file lets you set PIO and MWDMA advertisement and IORDY . I don't see any setting that let me change the ATA device name without compiling my own firmware.
I haven't implemented changing the ATA device name or other IDENTIFY responses in picoide.ini yet, but I plan to by the initial public firmware release. It's one of those things that are simple enough that I haven't gotten around to it yet because I'm busy fixing hairier problems.
DarcTangent wrote on 2026-02-04, 02:53:All valid points. :) It will be interesting to see how the different configurations of the IDE PicoIDE perform. I can only see […]
SScorpio wrote on 2026-02-03, 13:12:Outside of sound cards or a bundled dedicated ISA interface card, did any computers, even non-IBM compatibles have those interfaces onboard?...
All valid points. 😀
It will be interesting to see how the different configurations of the IDE PicoIDE perform. I can only see this project getting better. I'd still like a Panasonic or Mitsumi option to play with, but maybe that's just me.
Cheers!
I've had the idea in my mind to create passive plug adapters so PicoIDE could serve as an XTA hard drive or Panasonic or Mitsumi CD-ROM drive. It's certainly capable of being either one of those, just some signals need moving around. But that's one of those things I'm not going to get around to working on until after the public release, probably after I take a stab at simultaneous 2 device emulation.
weedeewee wrote on 2026-02-05, 16:13:The 2 device simultaneous emulation is what I am hoping for. XTA drive support would be great as well. […]
polpo wrote on 2026-02-05, 06:46:I've had the idea in my mind to create passive plug adapters so PicoIDE could serve as an XTA hard drive or Panasonic or Mitsumi CD-ROM drive. It's certainly capable of being either one of those, just some signals need moving around. But that's one of those things I'm not going to get around to working on until after the public release, probably after I take a stab at simultaneous 2 device emulation.
The 2 device simultaneous emulation is what I am hoping for.
XTA drive support would be great as well.There is one question that I don't immediately see answered in the FAQ or specs, unless I'm overlooking it.
That is Master/Slave/Cable Select selection.
Is it present or can the picoide only work as a single device on the ide bus ?
There's a jumper block with positions for M/S/CS: https://picoide.com/docs/getting-started/#jum … r-configuration
Once 2-device mode is implemented, the idea is that you just leave the jumper off when you use that mode.
Posted on
2026-02-06, 20:52
Yep, 80 wire IDE cables work fine and cable select works with them.