Port to Arduino


I was contacted recently by Andrea Ottaviani who was in the process of porting the smartport part over to an Arduino based board with an SD Card. He was kind to share his work on here for others to use and enjoy.

Andrea replaced the compact flash part with SD card storage/software and there were some adjustments needed to the timing for the assembler code to make it work with the 16MHz clock speed. He has used this with an Arduino Uno and Nano, and tested this with an Apple IIGS, IIc and IIe with Liron card too!  This is using the raw format directly onto the SDCard. (ie not Fat)

He then placed it into an empty Unidisk 3.5 shell he had and added some extra functions as described here in his words:

"Since i mounted the arduino and sdcard into an unidisk case I had, I added also a status led to port PA4 and the eject button connected to port PA3, for changing boot disk (when pressed, it skip to next partition (mod 4) and store it to eeprom, then halt itself). You need to power off and on the apple to apply new boot partitions.
The drive are not detected as boot (except with GS, where you can select boot slot), and you need to ctrl+apple+reset once or twice to start... I made few test with hex file without bootloader, maybe it can be improved to a faster start."
Very nice work!!


Cable pin details

IIc     DB 19     Arduino

GND      1        GND to board        
GND      2
GND      3
GND      4
-12V     5
+5V      6        +5v to board
+12V     7
+12V     8
WRPROT   10       PA5   (ACK for smartport)
PH0      11       PD2   (REQ for smartport)
PH1      12       PD3
PH2      13       PD4
PH3      14       PD5
WREQ     15         
(NC)     16       
DRVEN    17      
RDDATA   18       PD6
WRDATA   19       PD7




Here are some pictures from Andrea showing his setup:




And here is a picture of my testing of this on a China special Uno and Data logger shield:



Arduino Source:

27/04/17 Working version.


21/04/20 Updated version - including fix to block numbers .






















This Web Page Created with PageBreeze Free HTML Editor