Oh no! Where's the JavaScript?
Your Web browser does not have JavaScript enabled or does not support JavaScript. Please enable JavaScript on your Web browser to properly view this Web site, or upgrade to a Web browser that does support JavaScript.

SerialDiskReader Project

Last updated on 17 days ago
AMIGASYSTEMAMIGASYSTEMDistro Maintainer
Posted 17 days ago
I can confirm that I've never experienced any slowdowns with VMware, even though I use
cdimaurocdimauroJunior Member
Posted 17 days ago
Usually, VMware is much better than VirtualBox: more solid e more supported.
M
miker1264Software Dev
Posted 18 days ago
AROS "native" in VirtualBox is very unstable. When I start the virtual machine after it being suspended I have to immediately restart or it will slow down to the point of being non usable! The mouse pointer gets very jerky and everything freezes till I can force a restart. After a fresh start I only have one chance to do testing. It's stable enough during a single session to get a little work done.

Because VirtualBox is so unstable I prefer to use AROS native x86 that I installed on one my mini PC's. It's very stable and it has no issues. But it has old system files and it won't run software compiled with the new Build System. So I will have to order some ssd's to install a newer AROS.

But I did learn something new. While trying to compile on my mini PC using GCC in the shell (my only option) there were many errors for the FTDI terminal program so I needed a way to send the output of the shell to a text file. Here's what I did...first type sh to convert to unix.

gcc ftdi_reader.c ftdi_reader -o >compile.log 2>&1
Edited by miker1264 on 07-08-2026 08:15, 18 days ago
M
miker1264Software Dev
Posted 19 days ago
If you are interested here are some hardware photos of the DrawBridge Device (FTDI + Arduino).

This version of the PCB fits inside a common USB Floppy Disk Drive.

You purchase the DrawBridge & the USB Floppy Drive separately. Then you have to open the drive case & install the new PCB according to instructions on the device website.

I have a working DrawBridge equipped usb floppy drive if you would like the model number. Not all USB floppy drives will work though.

DrawBridge software can be compiled for Windows or Linux. Maybe in the near future AROS!

The DrawBridge equipped floppy drive can Read Amiga 68k disks to ADF. It can also Write ADF to disk.
Edited by miker1264 on 06-08-2026 17:13, 19 days ago
You do not have access to view attachments
M
miker1264Software Dev
Posted 26 days ago
For this project I have a good idea about how to move forward. The end goal is to be able to read/write Amiga disks using native AROS software along with DrawBridge. DrawBridge is the Amiga D.isk R.eader A.nd W.riter that acts like a Bridge using an Arduino controller.

Encouraged by the recent success in reading the Product Name using Poseidon Library I'd like to write a small interactive program to send and receive serial data using Poseidon Library API psd_ commands, mostly psdDoPipe.

The interactive shell program will allow me to send single byte commands to the Arduino to test some disk drive diagnostics. I have already done that on Windows 10 using TeraTerm with SerialIO.

These same psd commands are used in Poseidon Classes along with a Serial Bridge that translates SerialIO commands into psd commands. So that is one of my options. Write a Poseidon Class for FT232R to make the Drawbridge device into a serial device using standard AROS SerialIO commands. At the moment there's an error somewhere because it isn't binding.

Another key to the puzzle is to get the Drawbridge software to compile for AROS. Some parts may need to be modified to work correctly.

Lots of work to do!

The attached screenshot shows the Windows version of the command line program DrawBridge in action.
Edited by miker1264 on 29-07-2026 22:42, 26 days ago
You do not have access to view attachments
M
miker1264Software Dev
Posted 30 days ago
First signs of life for the FTDI-Arduino device (aka Drawbridge).

When compiling it I forgot to compile against the Poseidon Library at first & caused errors!

I know it isn't much but I used Poseidon Library API with psd commands to find the FTDI device using the Product ID &Vendor ID. Then I used the device to Get the Attributes for the Product Name.

In the screenshot you can see in the shell output the last line that starts with "product=" that's the device!!

This FTDI chip reader routine to return device information will be part of an FTDI Disk Reader Program.
Edited by miker1264 on 26-07-2026 14:22, 30 days ago
You do not have access to view attachments
M
miker1264Software Dev
Posted 31 days ago
Over the next few days I will attempt to write a very basic FTDI class driver for Poseidon to communicate with the ftdi-arduino controller (aka drawbridge).

Once I have an FTDI class I can setup an ftdi_terminal program.

The ftdi_terminal is an interactive terminal program that works in the AROS shell to send & receive data. The textual data can also be sent to a log file for analysis (text file).

I have used a Terminal Program on Windows 10 Pro to communicate with drawbridge. So I know it works!
deadwood, retrofaza, ntromans
M
miker1264Software Dev
Posted 1 month ago
Recently I've had some success in using Copilot AI to write RLE functions for picture Datatypes.

With that in mind I decided to try a test to see how smart Copilot is. I asked how to write an AROS Poseidon class for a UART driver in c code. The response was interesting!

It provided a compilable UART driver.

I'm going to try to assemble a working UART driver for FTDI that will link to the chip in the Drawbridge equipped USB floppy drive. It should present a UART connection using serial.device to send/receive data.

On my own this would be a huge task but with assistance from Copilot AI I can take it one step at a time and in the process get a better understanding of what is needed.

So, if it's possible to write a UART driver that uses serial.device what can we do with it? We can write a Disk Reader/writer for Amiga Disks!

I imagine that DiskImage.device will be very useful as well. Since any adf that is produced by the DiskReader would need to be mounted to the desktop. It may be possible to call diskimage.device after reading the disk into an adf to mount the image automatically on the AROS desktop.

But that is very far off and unknown if it will work at all. ;-)
Edited by miker1264 on 23-07-2026 21:48, 1 month ago
M
miker1264Software Dev
Posted 4 months ago
The Serial Disk Reader is a very ambitious project. I'd like to write a new Poseidon FT232R Class to use the FTDI chip and serial.device to talk to the Arduino controller on a Drawbridge equipped USB Floppy Drive. If successful this will allow reading & writing Amiga 68k disks.

At first this seems like a daunting task and it can quickly become overwhelming! So it can be broken down into smaller pieces. So far I used the PL2303 class as a basis. I changed the file naming to FT232R then compiled it but at it's core it's not yet compatible with FTDI chips.

I still need to input the vendor & product id's as well as the logic to communicate with the FTDI chip. My first goal is to establish a link with the chip to read back vendor & product id & product description.

At this point I still don't know if all this is possible. We'll see how it goes. ;-)
M
miker1264Software Dev
Posted 4 months ago
The new Poseidon Class didn't work as expected. But there is hope still of being able to read/write Amiga 68k diskettes on AROS.

There is a new OS4 Software Project called Waffle Reader. Yes, strange name but interesting topic! 🤪

Of special interest to me is the ftdi.library that is used by the system to communicate with the ftdi chip.

Read more about it here:

https://github.co...fflereader
Edited by miker1264 on 30-04-2026 17:13, 4 months ago
ntromans, deadwood, Argo, Amiwell79, Deremon
M
miker1264Software Dev
Posted 2 years ago
I've compiled a new Class for Poseidon. It is serialft232r.class for the FTDI USB to UART (Serial) Chip on the DrawBridge Controller. It is supposed to use serial.device to setup a serial connection.

It's not showing up in Trident Prefs though. Maybe I have to add it manually.
Edited by miker1264 on 16-02-2025 22:25, 2 years ago
mmartinka, Argo, Farox, polluks
M
miker1264Software Dev
Posted 3 years ago
AMIGASYSTEM

Thanks for the update about AROS One. I'll give it a try as soon as I can.
AMIGASYSTEMAMIGASYSTEMDistro Maintainer
Posted 3 years ago
Good work miker, if you are interested I have published the new AROS One v2.2 !
M
miker1264Software Dev
Posted 3 years ago
For the C# SerialDiskReader GUI project for Windows 10 which is the prototype for the AROS version I've made some progress.

I can detect if a disk is inserted and I can test if it is write protected. I can check whether the disk is double density or high density. But for reading a sector I have to do more to make it work.

In order to ensure I get the correct number of bytes for the MFM encoded data I need a BlockingRead function then an MFM Decoder Algorithm to make sure the binary data is ok.
Edited by miker1264 on 17-10-2023 20:12, 3 years ago
M
miker1264Software Dev
Posted 3 years ago
AMIGASYSTEM

Thanks for the link. I see my "Nostalgia" topic is till there. I kinda like the Pink Text. ;-)

Maybe I could start a new topic about my adventures working with the C# version of the Serial DiskReader for Windows 10 & Windows 11.

Amiga DrawBridge only works with Windows 10+. It has a special driver for the FTDI Serial Converter. That's what it lists it as in Device Manager. The same is true for AROS. We need a special Poseidon Class Driver for the FTDI chip.

Today I spent several hours installing Visual Studio ( complete version ) so I could compile the C# sources and test it on my Windows 10 PC with the new 1TB m.2 Nvme SSD drive. :-)

I'm writing a Serial Terminal Program to test sending character commands to the Arduino. Additionally I added some buttons for a Track Number Combo Box and two command buttons for "Read Track" and "Read Disk". The last one is most important but the most difficult part is the MFM Decoder Algorithm to turn MFM data into Binary Data that can be written to a test file.

After I'm sure the subroutines all work I can focus on making the AROS version based on the new Poseidon Class Driver for the serialft232r.
AMIGASYSTEMAMIGASYSTEMDistro Maintainer
Posted 3 years ago
miker, I have noticed that on the new aros-exec there are many more users visiting the portal, you better post your news 'also' on aros-exec!

https://ae.aroswo...
M
miker1264Software Dev
Posted 3 years ago
deadwood

Thanks. I've not compiled a device driver for AROS before. This will be a first. Just looking at the files it has a dev.c and ****.class.c so it looks a lot like a datatype.

Not sure though if I can just compile the new Poseidon Class Driver on it's own? It has a makefile.src But I may need to use the Build System and either compile all of Poseidon or all of AROS. We'll see when I get to that point.
D
deadwoodAROS Dev
Posted 3 years ago
Thanks for explanation. I took a look at serialpl2303.class and it looks like it's pretty re-usable - I guess the initial initialization is something that will have to modified to fir new chipset. I have an Arduino board so if you get stuck with the driver, I might be able to help out.
M
miker1264Software Dev
Posted 3 years ago
This is the GitHub page for the Arduino Floppy Drive Controller aka "DrawBridge".

https://github.co...DiskReader
M
miker1264Software Dev
Posted 3 years ago
For further information I believe the Arduino controller only supports a serial connection. So the best solution for modern computers is USB to Serial connection. Rob Smith chose to use the FTDI Usb to serial translator chip. The other well-known brand is "Prolific". Poseidon already has a serialpl2303 class driver for Prolific chips. But looking at the source code it seems the driver turns the USB to Serial into a pure Serial Port. So we can then call OpenDevice ( seialpl2303.device, unit 0, ...) to send serial commands to an attached device. That's cool. 😎

My plan is to adapt a new Poseidon class driver for the serialft232r.device that uses the FTDI chip for USB to Serial. Then I can write SerialDiskReader to use the driver to send character commands across the serial connection. The SerialDiskReader program will handle all the data from each track which is returned as MFM encoded data streams. The data needs to be sent to an MFM Decoder Algorithm to turn it into Binary Data consisting of a stream of 1's & 0's. Then the data can be written to an ADF file at the correct offset.

I have started to adapt the Prolific class driver to be used as the serialft232r class driver by binding the new class with the FTDI chip Vendor ID & Product ID for DrawBridge. Once completed, if it works, I should be able to send & receive data using the new serial device. DrawBridge only communicates with a high speed serial port. The settings are Baud=2000000 which is 2 Mbps. (Yes. Modern PC hardware supports that). Other settings are 8n1 values, RTS/CTS handshake, No Parity. These values are easily set using serial commands in AROS. If successful the set parameters command returns 0. If it fails it is non-zero. SerialDiskReader is at the point of setting parameters & opening the device. But we need a Poseidon class driver to send & receive data.

Because working with serial connections in Windows (COM3) is much easier for me I will quickly (within 2 weeks) write a C# SerialDiskReader program to get the complete prototype for writing an AROS version.
Edited by miker1264 on 14-10-2023 12:45, 3 years ago
You do not have access to view attachments
You can view all discussion threads in this forum.
You cannot start a new discussion thread in this forum.
You cannot reply in this discussion thread.
You cannot start on a poll in this forum.
You cannot upload attachments in this forum.
You cannot download attachments in this forum.
Users who participated in discussion: deadwood, AMIGASYSTEM, cdimauro, miker1264