SmartPortSD - lets build it!

eric

Administrator
Staff member
Sep 2, 2021
942
1,542
93
MN
scsi.blue
I recently saw a post about the SmartPortSD project. I found some of the instructions had a few gaps, which I hope to document here for the next people who'd like to build one!

combined-boards.jpg


What is it?:
SmartPortSD is a cheap, simple device based on the Arduino Nano v3.0 that allows you to store up to four 32mb SmartPort drives on an SD card by just dropping files onto a FAT32 SD card (sound familiar?)

It can be used with a SmartPort compatible Apple II systems - //c, //e, IIgs.

//c ROM note:
The original //c ROM does not support SmartPort - you can see if yours is the original by running `PRINT PEEK(64447)` - if it is 255 you will need to upgrade the ROM.

History:
Robert Justice created the initial SmartPortCFA (compact flash) code base that this project is based on.
Andrea Ottaviani did the initial port of the CFA to the SD version.
Katherine Stark fork made some updates and fixes and allowed it to work with total reply.
Chris Tersteeg's fork is the one I'm using which adds LED and button support to the board he provides.
My fork, added some niceties described in this post.

The PCB I'm using is also from Chris and can be found here: https://github.com/djtersteegc/smartportsd-nano-shield

Assembly:
Chris provides a great interactive BOM and a components choices page. It's quite easy to assemble, all through hole.

I ordered my PCB's from JLCPCB and all the parts from Amazon. As with all chips the Nano's are a bit overpriced these days.

Cable:
This is the hardest part - there is no good source of DB-19 and just one connector can cost almost than twice the cost of the entire board! I have not made mine yet but my plan (currently) is to hack up a DB-25 connector.

If you are lucky enough to have a Duo Disk DB-25 to DB-19 cable this board does have a connector for that.

Flashing:
As with any older Arduino project the flashing is trial and error till you get the right combination.

Download code and setup
Download the code from Chris's repo https://gitlab.com/tersteeg/smartportsd
Extract and rename the folder to SmartportSD-1.15 - Arduino needs the main ino file to be in a folder with the same name as the file.

Arduino Settings:
Windows 10 Desktop with
Arduino IDE 1.8.x
My Nano's were clones with a clone bootloader so you need the now defunct manufactures driver. I was only able to find it on a random Google Drive but I scanned it and it seems legit and worked. I've also attached it to this post.

Board Settings:
Board: Aruduino Nano
Processor: Atmega328p (depending on the board you get you may need to select Atmega328p (Old))
Programmer: AVRISP mkII

Add SDFat Libarary
Tools -> Include Library -> Library Manager
Install SDFat - latest 1.x version

Flash:
Plug in the Nano to a USB Port - check device manager on windows if it is unknown install the drivers provided. Note the COM port.
Select the COM port in Arduino IDE
Click Upload

You're now ready to load an SD card up and try it out!

Usage:
Grab a premade PO file from Total Reply, apple-2.com, or build your own with CiderPress to make/load/convert your own images.
Copy them to the SD card with names `PART1.PO`...`PART4.PO` - You can have one or up to four images at a time.

See the README for the complete usage instructions.

I'll update once I get the cable made. I plan to build two for myself, one for my IIgs and another for my //c (after I upgrade the ROM)
 

Attachments

  • CH341SER.zip
    188.9 KB · Views: 176
Last edited:

eric

Administrator
Staff member
Sep 2, 2021
942
1,542
93
MN
scsi.blue
Well since this code is very familiar (re: bluescsi) i decided to make a few updates, though the MCU has very little RAM left so doing things like dynamic file names will need some optimization work. https://github.com/erichelgeson/smartportsd/commits/main
  • Added the ability to switch boot partition without restarting the MCU between each switch.
  • Fixed up logging so Serial is not on during normal operations.
  • Ported from Arduino IDE to PlatformIO, setup debugging, serial monitor, etc with one click.
  • Updated to SDFat 2.1.1 but downgraded again as provided no difference and used more RAM.
  • Added some notes and docs, cleaned up some docs and unused items.
 

Brian

New Tinkerer
Jun 16, 2022
2
0
1
I don't know why, but hdd icon back to normal ...
 

Attachments

  • 139839699_3622069764576412_7890879350205069401_n.jpg
    139839699_3622069764576412_7890879350205069401_n.jpg
    350.1 KB · Views: 107
  • 286478592_333489295628850_5548893390830019001_n.jpg
    286478592_333489295628850_5548893390830019001_n.jpg
    1.6 MB · Views: 116

retr01

Senior Tinkerer
Jun 6, 2022
2,473
1
796
113
Utah, USA
retr01.com
Another SD product for the Apple II series (except //c) that emulates FDD and HDD:

SD DISK][ Plus
(click on "SD Disk II Emulator under "Categories" on the left)

s-l1600.jpg

I have one in my Apple IIgs. It works well, and I am delighted with it. :) Ian Kim from South Korea created this. He made several other products for the Apple II series, too.
 

marcepan

New Tinkerer
Sep 2, 2022
1
0
1
Nice project. I've just build my smartportsd but I'm not able to successfully running them. My IIc had stock rom without smartport support. I burned an eprom with 4X version. It works good, I'm able to enter to the 4X menu (monitor, test, boot from internal/external drive, boot from smartport etc.). But with SmartportSD connected , when I turn on my computer, screen is blocked at "Apple //c" message and reset+control+apple combination doesn't work. Only solution to enter to the 4X menu with smartportsd connected is turn on computer with right apple button pressed. But then, if i choose boot from smartport - screen freezes.
I think my device is good programmed and assembled. I'm not sure if the procedure to mount another partition is ok. First I need to press together eject and arduino reset. Next partition diode start blinking (current diode is ON). After second arduino reset next partition diode is ON and previous partition diode is OFF. I hope it's good sign. Could someone check if connections with my Apple IIc are ok please? My connection schematic is just bellow. I'm new in apple/macintosh world - any help will be appreciated.

apple2diskport.png



apple_smartport.png


IIc DB 19 (Smartport)

GND 1 (8 GND)
GND 2
GND 3
GND 4
-12V 5
+5V 6 (7 5V)
+12V 7
+12V 8
EXTINT 9
WRPROT 10 (9 A5)
PH0 11 (2 D2)
PH1 12 (3 D3)
PH2 13 (4 D4)
PH3 14 (5 D5)
WREQ 15
(NC) 16
DRVEN 17
RDDATA 18 (1 D6)
WRDATA 19 (6 D7)
 

Kay K.M.Mods

Active Tinkerer
Sep 23, 2021
296
653
93
Tokyo
www.kerosmm.com
My bro @Drake pointed me to this thread and I decided to post here first.
I got in touch with my friend Katherine Stark a while back to create a PCB for this device. I also knew on FaceBook that this PCB was announced by Chris Tersteeg, but I was busy with other things so I left it at that. I'm going to be a bit different from his approach and try to be as small as possible.
I've been working hard on MSX lately, but it's time to get back to Apple things, so I decided to do this first.
Ahhhh, of course I work very hard with BlueSCSI yay!

Katherine was like my teacher and taught me a lot about Github and Arduino. I only sent a few Japanese Macintosh items in return lol yea of course, she gave me permission right away, but she also recommended that I contact the two founders, so I did, and they were both really nice guys, and we became fast friends:cool:
Official permission has also been obtained from developers Rob Justice and Andrea Ottaviani. *See the original post by @eric above for the two guys.
I ported it to the Arduino Pro Mini to make it even smaller. I just changed the pin slightly.
You can check the movie at my twitter post:


スクリーンショット 2023-07-25 1.00.53.png

This is a device that can be attached directly to the back of the IIc or IIgs db19 and has a solid protection circuit. I use the largest size chip parts so that amateurs can work easily. We plan to sell PCB only, stay tuned!

I will make another post after this, See you!

Regards,
Kay
 
Last edited: