The Raspberry Pi Pico is good for a lot of things; this is not one of them (due to the lack of at least USB 2.0 High Speed). An LPC18xx, LPC43xx or even IMXRT106x would've been a much better choice.

It's a question of what tradeoffs you're willing to make. If you're making a professional product then sure, but I've checked the chips you suggested and the cheapest one available on JLCPCB seems to be the LPC1820FB at $6.5. If you fuck up a revision or two at 5 pieces each that gets expensive rather quickly for a hobby project.

It's a shame really that ULPI is such a complicated interface, at least compared to RMII or SDIO, otherwise you could just buy a high speed USB ULPI phy and use it with the RP2350 via PIO. Eben even mentioned at some point someone working on a PIO ULPI implementation, but I'm assuming that went nowhere because they couldn't make it work reliably.

An alternative approach I've been considering is using a ch32v305 as a "smart" USB-HS bridge, and connecting the RP2350 via SDIO to it. The problem with that of course is you have to implement most of the USB stack on the ch32v305, and the documentation on those chips isn't great to put it mildly.

You might only be able to get 8-16MB/s max out of some of those old drives (especially pre-1994), so you probably aren't missing much.

edit: whoops, that's bytes not bits per second

USB 1.1 Full Speed is 12 Mbit, i.e. 1.5 MB/s theoretical, zero overhead accounted for. That's an order of magnitude you're missing there. Whether it matters depends on how large the drive is, I guess.

It also bears pointing out these microcontrollers have built-in parallel memory interface buses, which are likely compatible with IDE (which is just ISA == the 8088/8086 parallel bus on a cable.) With DMA, ketchup and fries…

Exactly, this is why USB was very unattractive for peripherals when it first came out.

or good oldshool USB 2.0 Cypress FX2LP CY7C68013A or its Chinese clone Corebai CBM9002A

cy4611b___usb_2_0_usb_to_ata_reference_design https://www.farnell.com/datasheets/62992.pdf Back around 2005 a lot of USB HDD enclosures used this exact chip.

All the above needs is LBA to CHS translation.

> or good oldshool USB 2.0 Cypress FX2LP CY7C68013A or its Chinese clone Corebai CBM9002A

I intentionally did not suggest those because dealing with an 8051 isn't something I'd inflict even on my worst enemy, let alone an open source hobby project.

That said if it's vibe coded I guess the AI can deal with it? shrug

Thats what I was thinking, tell AI to add translation to a codebase already tested in production. But even without AI doing all the work fx2lp ata bridge reference design is in C and very readable

I still don't think I'd want to support the continued existence of 8051 products ;)

Its a $4 part doing 40MB/s over USB 2.0, hard to beat even 20 years after it was introduced.

I'm not disputing that. It can be a performant USB implementation and using an awful core that should've died out 10 years ago at the same time. Like, you can fireproof your house with asbestos, it works great. Still wouldn't recommend it, for, uh, reasons ;)

There are excellent FORTHs out there, for 8051 and derivatives.

If not, it should be easy to bootstrap one.

> dealing with an 8051 isn't something I'd inflict even on my worst enemy

surely armed with a C compiler + LLM, this is a non problem nowadays?

[deleted]