Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add real analog capture. #489

Open
cm68 opened this issue Sep 16, 2024 · 5 comments
Open

add real analog capture. #489

cm68 opened this issue Sep 16, 2024 · 5 comments

Comments

@cm68
Copy link

cm68 commented Sep 16, 2024

every floppy disk has a test pin used to perform drive alignment. this pin is connected to an oscilloscope to see the raw, analog output of the head amplifiers. this analog signal is processed by the drive's filters and edge detection circuits to generate the digital flux pulses seen at the read data lines captured by the greaseweazel.

the cpus on recent GW all have decent analog to digital converters that are unused, and these could capture much of the raw signal at a high enough rate to allow data recovery of even seriously degraded disks using fairly simple signal processing code.

work required would be to wire an ADC enabled pin to a header, to define an output format, and capture the data correlatable with the flux data already captured.

USB bandwidth will be an issue, as the 12Mbit speed won't cut it.

@keirf
Copy link
Owner

keirf commented Sep 16, 2024

Probably would need an MCU with High Speed USB. AT32F405 is interesting (cheap) but may be insufficient grunt and ram for serving a High Speed interface. Probably back to STM32F730Z8 as used on Greaseweazle F7 Lightning Plus.

@cm68
Copy link
Author

cm68 commented Sep 17, 2024

the STM32F730Z8 has a pretty potent ADC subsystem, which can be driven by DMA. if I read the spec right, it can get 6 bit samples at 12.5 mhz, which should be plenty to get a decent waveform, but this will take some very gnarly chip setup; triple interleave reduced resolution with DMA is probably a not very well tested case.

@philpem
Copy link

philpem commented Sep 20, 2024

A better option might be to pair GW off with an oscilloscope. That'd "just" be a software change to the GW software to control the motor, set up the acquisition on the scope, trigger the capture, and move on.

I've done this (manually) with an Agilent MSO-X3000A and it works quite well. The only "tricky" part is the signal processing afterwards.

If you're interested in this, you might find the collaboration I did with Chris "scarybeasts" Evans interesting: https://www.youtube.com/watch?v=QAEWmQ1REeE
We recovered the source code to Repton 4 from a damaged disc, using a combination of analog recovery and speeding up the spindle motor.

@keirf
Copy link
Owner

keirf commented Sep 20, 2024

Yes it did strike me that otherwise what we are essentially building is a crappy DSO.

@cm68
Copy link
Author

cm68 commented Sep 20, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants