Below you will see the YASNAC FC1 pictured. It is an incredibly slow of speed, minuscule of capacity, short of reliability, and large of footprint external floppy drive. It connects to the various robot brain parts by a standard RS-232 serial connection. That whole giant device is just the floppy drive.
We simply want to cut it out of the picture by writing some software that will pretend to be a floppy drive. This is not an original idea:
- Some guy’s similar software from a decade ago
- A hardware device that does the same job
- A universal software product that also works with the YASNAC system
- YASNAC’s own software replacement for the FC1
I decided to make a separate module to handle the encoding and decoding of the YASNAC packets. In my version, all files in the current working directory that end with
.JBI I also added some features:
Automatic job name modification: Both the filename of a job and a string inside the job file determine the name. The filename controls the name used on the floppy. The job name determines the name used in the memory of the robot. They can both collide. You can’t just duplicate a file, say making a copy of
JOB2.JBIand load it into the robot. I added automatic job name modification, where a file being uploaded to the robot will have its internal job name changed to match the filename.
Direct File Selection: Rather than sending the YASNAC a complete list of all job files on the pc, the user can specify a single file, or a small subset of files that it should serve. This makes it easy to load the files into the robot through its “Load All” soft key.
usage: motodisk.py [-h] [-d] [-o] [file [file ...]] MotoDisk: a software emulator for the YASNAC FC1 floppy disk drive positional arguments: file optional: if you want only certain file(s) to be available to the robot, list those files on the command line. For example this allows you to send just a single file instead of all job (.JBI) files in the current working directory optional arguments: -h, --help show this help message and exit -d, --debug enable debugging output -o, --overwrite enable existing files to be overwritten by the program
The source is on Github. Comments are welcome.