A Commodore IEC Serial Floppy Drive and WiFi Modem multi-device emulator
*** NOTE: ESP32 Firmware can be found in the following repo: https://github.com/idolpx/meatloaf-specialty
It's easy to wire up too. No need for the level shifter as shown in the circuit above.
(Espressif CEO confirmed 5V tolerance of ESP8255, ESP8285 & ESP32.)
You can also leave off the edge card connector if you you just want to try out the drive emulation functionality.
Components
Microcontroller
- 1 × ESP8266 Dev Board (Wemos D1 MINI/D1 MINI PRO 16M, NODEMCU, etc)
I like the 16MB version.
or
- 1 x ESP32 Dev Board (LOLIN D32 Pro)
This one has 16MB Flash, 8MB PSRAM, Micro SD with I2C & TFT Port!
(Please see the Meatloaf-Specialty repo for using this module)
Virtual Drive - IEC Serial Port (minimal build)
Virtual Modem - User Port (optional)
To setup your own Meatloaf server check out this code.
(https://github.com/idolpx/meatloaf-svr)
I'm now working to bring this functionality to the #FujiNet project too!
They had the same idea but for Atari 8bit machines and are much further along than I am.
I'm working with them to add CBM support to their device.
Key Features
- IEC Bus interface for loading data directly from flash memory or via HTTP
- Can mount Meatloaf's flash file system via WebDAV to modify contents
- Can be configured to emulate multiple IEC devices (IDs 4-30)
- Each device's configuration is switched out and persisted on access
- WiFi modem for connecting to telnet BBSs
- Minimal part count and easy to assemble
- Firmware can be updated via HTTP
To Do
- Standardize all Hayes Commands and add extended commands
- Complete CBM DOS support
- Extend CBM DOS with device specific features
- Support all different CBM file, disk, tape, cart media image files from local flash file system
- Add support for Fast Loaders & JiffyDOS
- Port all code to ESP32 IDF
- Add SD card interface
- Add Cassette tape interface
- Add virtual printer/plotter interface
- Add ZoomFloppy/IECHost capabilities
- Add .URL/.WEBLOC file support (change URL/DIR when loading them)
- If image isn't local, write saves to hidden folder ".save" (include hash of URL/PATH/IMAGE in filename)
- Add web server for configuration and control (http root hidden folder ".www")
References
Code is based on and inspired by the following