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 an ADC to enable direct connection to floppy analog test points #9

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

add an ADC to enable direct connection to floppy analog test points #9

cm68 opened this issue Sep 16, 2024 · 2 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.

your project uses an an oscilloscope to grab this data; this sharply complicates the capture of real analog data.
I've got one of these oscilloscopes, but it's not clear how to rig this all together.

@imqqmi
Copy link
Owner

imqqmi commented Sep 17, 2024

I couldn't find a test pin on most floppy drives, only some of them have them as far as I know.

That part of the code that uses an oscilloscope can be considered alpha and is purely to explore if it's worth it to retrieve the analogue signal instead of letting the drive do the processing. As a result of my experiments I'm not convinced it's worth it to take the effort other than purely academic interest. The best and fastest way is still to use the arduino shield and an arduino Due with this project.

I've considered adding ADC but it has several issues. You'd need a mcu that has at least 2 channels that can capture ADC data simultaneously. Then there's the amount of data that needs to be transferred to the host PC. It takes about 6M samples per second per channel in 8 bits. That's 12MB/s. While most USB2 high speed devices should be able to reach that, bit's not guaranteed on many mcus. A Teensy would probably be able to do it but I haven't ported it to that platform. Feel free to do so.
Then there's the effort vs value, which doesn't make too much sense to implement this.

But if you really want to hook up an oscilloscope here are the basic steps:

  1. Make sure you've installed national instruments oscilloscope driver. Not sure what version, you'll have to experiment
  2. I think ch1 is the index signal with trigger, ch2 the analogue flux signal and optionally ch3 for read data
  3. Connecting to the scope can be fiddly. If you have issues, try to install oscilloscope companion from Marcin Gosiewski and install the NI VISA drivers and connect to the scope with that and try if that works. If it works it should also work with FloppyControl.
  4. The software will mostly setup the oscilloscope automatically with the right settings (Rigol DS1054Z, not sure about other scopes). Hook it up to the network as the USB port option is 10x slower.
  5. In floppy control go to the network tab and set the track you want to capture. Then start the capture.
  6. When the capture is done I think it will switch to the waveform editor. You may have to adjust diff. gain number control to get a good signal, you'll see the scatterplot, if there's 3 clear bands then you're good. Click Proc R Data button. After it's done processing you can head to the Quick tab and click the histogram to set the thresholds. Then click the process Amiga or Process PC button to process the flux transition data to sector data.

That's about it.

I've included an example waveform so you can open it without needing an oscilloscope so you can play with this functionality.

@cm68
Copy link
Author

cm68 commented Sep 17, 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

2 participants