The SD2IEC is a mass storage device using an SD/MMC card and interfacing with the IEC bus. It is based on the ATmega644 microcontroller from the Atmel AVR microcontroller family. The most prominent use of SD2IEC is replacement of a Commodore-1541 disk drive for a C64. The hardware and the microcontroller sd2iec firmware are available as open source (GPL).
The SD2IEC hardware is an enhanced version of the MMC2IEC device, supported by the sd2iec firmware. In contrast to MMC2IEC, SD2IEC uses the ATmega644 microcontroller (more RAM and flash memory than ATmega32) and an improved circuit for driving the IEC bus that is more reliable if multiple drives are connected.
- In mid 2013, another commercial variant of the SD2IEC appears on the market, the SD2IEC-evo2 by 16xEight. This device sports an bigger µC (ATmega1284P) and some nice readly integrated extras such as battery backed-up RTC, connector for LC display, multi-colour status LED and so on.
- 2009-02-06: SD2IEC hardware is available commercially at NKC (SD2IEC, daughter board with standard IEC connectors. If you do not use the daughter board, you have to connect DB pins 1,3,4,5,10 for basic functionality. Get the 5V power for pin 1 from the datasette port for example.).
- 2008-03-15: SD2IEC 1.2 PCB layout release by Shadowolf (differences to MMC2IEC 1.9: ATmega644, better IEC line drivers, disk swap button, I/O pads, mount holes) - about 120 pieces made.
- Compatible with C64, C64DTV, C128 (no burst mode), C16, VIC-20, etc.
- Power consumption: Idle ~15mA, busy 30-80mA
- sd2iec_1.2.zip - schematics and Eagle PCB files
- R100/R101 are placeholders for a reset button (connecting the AVR reset pin with ground) or a connection with the IEC reset line (AVR reset pin connected via a standard diode with IEC reset - the cathode of the diode has to point towards the IEC reset line). This is optional.
- Some notes as of June 2013
- The SD card slot used in this design is out of production. Until somebody provides an updated layout, an easy workaround is using MicroSD cards and soldering a MicroSD to SD adapter to the board.
- Newer firmwares support the ATmega1284P. You should use that instead of the ATmega644.
 Firmware features
For detailed information and features of the firmware, please see sd2iec.
 How does the SD2IEC compare with the 1541-III and 1541 Ultimate?
- 1541 Ultimate vs. SD2IEC
- SD2IEC is much cheaper.
- Since the 1541 Ultimate completely emulates a 1541, it's much more compatible (supports all fastloaders). Then again, of almost all games versions exist that are sd2iec compatible.
- SD2IEC does not provide any extra functionality the 1541 Ultimate provides (cartridge/network/REU emulation).
- SD2IEC is faster doing KERNAL operations than 1541 Ultimate since it operates at IEC protocol level and is not emulating the original 1541 hardware mechanics or ROM.
- 1541-III vs. SD2IEC
- The sd2iec firmware provides much better compatibility and support for some fastloaders - 20x speed and more!
- SD2IEC does not feature a display. Exchanging disks is possible using the disk switch button though.
- SD2IEC PCB is even smaller than 1541-III-DTV PCB.
- SD2IEC features a bootloader that fetches firmware from the SD card at startup - so firmware updates are simple.
- SD2IEC uses an ATmega644 microcontroller - open source C compilers are available for this platform.
 Can I use a parallel cable with the SD2IEC?
No. Theoretically the hardware could be extended for that. However, the standard CBM serial bus is already quite fast (see the benchmarks on the sd2iec firmware article).
- It is the only file required to programm manually using serial (ISP) or parallel programmer, it reads firmware .bin file from SD card (FAT16 and FAT12 supported) and updates ATMega flash if needed
- On powerup, red LED is on. If an updated firmware is found on SD card, green light blinks for some seconds during flashing. If no updated firmware is found, green light flashes once. When complete, both LEDs turn off.
- Firmware (.bin) needs to reside in the SD card's root directory. Only file size and signature have to match.
- avrdude flashing command: avrdude -p m644 -U flash:w:sd2iec_bootloader.hex:i -U hfuse:w:0xDA:m -U efuse:w:0xFD:m -U lfuse:w:0xE7:m
- this programs lfuse/clock settings last so programming without attached crystal is possible (once!)
- programming with a 5V programmer is possible (do not attach an SD card or IEC device during programming then)
- Fuse settings explained...
- BOOTSZ = 01 (boot size 2048 words, start $7800), BOOTRST = 0 (boot reset vector enabled)
- Crystal osc., start-up 16CLK + 4.1ms: CKSEL = 0111, SUT = 10
- CKDIV = 1 (disable clock divider by 8)
- Download: sd2iec bootloader page - the correct binary for the SD2IEC PCB is sw2.
It is a .bin file that is used by bootloader to update AVR from SD CARD. For detailed information and features of the firmware, please see sd2iec.
Download: sd2iec firmware page - the correct binary for the SD2IEC PCB is sw2.