SD2IEC

From C64-Wiki
Jump to navigationJump to search
This page covers the SD2IEC hardware device. For the firmware used by the SD2IEC hardware, see sd2iec (firmware). For similar hardware projects, see MMC2IEC, µIEC, and arm2iec.
SD2IEC
SD2IEC 1.2
Type: Mass Storage
Producer: Shadowolf
Price: $30 – $80 USD
Released: 2008
Discontinued:
Processor: ATmega644/ATmega1284P
Memory:
OS: sd2iec (firmware)
Info: Licensed GPL 2


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).

History[edit | edit source]

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.

  • 2014 sees the emergence of another commercial variant of SD2IEC hardware. thefuturewas8bit SD2IEC Versions are available packaged to resemble a miniature 1541 disk drive. It has illuminated disk change and reset buttons accessible from the top of the case.
  • 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.
SD2IEC connected to a C64
An SD2IEC purchased from e-Bay. It is connected to the serial port but a separate connector takes power from the datasette port. Therefore the datesette cannot be connected at the same time. Note that the KCS Power Cartridge on the right is disconnected. This cartridge uses so much power that the SD2IEC does not function when the cartridge is also connected.

Features[edit | edit source]

  • 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.
  • sd2iec_12a_full.zip - updated v1.2a layouts with modern full-size and half-size SD card connector support (Eagle and Gerber files) by Jussi Säily
  • cass_adapter2.zip - cassette port adapter (Gerber files) by Jussi Säily

Firmware features[edit | edit source]

For detailed information and features of the firmware, please see sd2iec.

How does the SD2IEC compare with the 1541-III and 1541 Ultimate?[edit | edit source]

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?[edit | edit source]

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).

Software[edit | edit source]

Bootloader[edit | edit source]

  • It is the only file required to program 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.

Firmware[edit | edit source]

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.

See also[edit | edit source]

Links[edit | edit source]