I decided to make my own Pi1541.
Notice how I made a IEC output for cable in the middle there. I did it because the 6PIN DIN cables are hard to find, and expensive too. With this, soldering your own would be easy. I put the IEC connectors on the same side as all the other Pi connectors, freeing up the other side for the screen, and keeping the Display Flex Slot available too. The activity LED is useful if you find yourself wondering if the thing is actually loading, or if the computer froze up, leaving you to wait untill spring before you realize it has stopped loading. I like the small piezo speaker that can make drive sounds. I also like that it has a jumper so it can be easily disabled. 😉
3D printed case!
So what is this Pi1541? The Pi1541 is a real time, cycle exact 1541 emulator by Steve White. It basically connects to a Raspberry Pi 3 to emulate a Commodore 1541 floppy drive. Why do we need this when there is the SD2IEC? Its because a lot of games and demos utilize the chips inside the 1541 floppy drive, so without them, the program or game will not work. Here, the Pi is emulating those chips, so that the games will work.
No more games that wont load due to incompatibility. There is a potential issue with the 7406 chip, so I always test them one by one by loading the Game Ghosts ‘n Goblins to see if it works. I have never found a chip with issues so far.
The Pi1541 has all the buttons, LEDs, connectors and stuff that ports the Pi to your old computer. It can be used with your Commodore 64 or 128, VIC20, C16 or even the Plus/4.
All you have to do is to copy the files over to the root of the Pi memory card, and copy your games and program into the same SD-card and insert it into the Raspberry Pi. You should check out the authors website for the latest version of the software. Link is below.
There are several ways to use this, but I decided to use it the same way I used to use the SD2IEC. I just start the File Browser and use the C64 keyboard to select my game. When everything is connected and turned on, I just use it as if it was a normal 1541 floppy. The latest news it that now, it also can emulate the Commodore 1581 floppy drive, and it now also supports USB thumbdrives too!
The file browser will now start, and all you have to do is to use the arrow buttons to select the content of the memory card, and enter to select. Dont you just love the fact that you get to use the same commands as you did way back? Personally, I just ignore all the fancy buttons and features, and just use it from the C64 itself.
There is also a great feature in the options.txt file. If you want, you can let the machine boot straight into File Browser. No typing needed. I just fell in love with that option, and with the Final Cartridge III installed, the load time is boosted to a mean 10X original speed, so browsing games and Demo’s are now so much more fun since the wait is gone. As if that is not all, the Final Cartridge III also has a reset button, so now you wont have to wear out that on/off button. I’ve replaced or refurbished tons of those over the years.
The software is in constant development, but already it support a lot more games than the old SD2IEC did. Sooner or later, it will probably be more or less 100% compatible, and have many new features, which is awesome!
The hardware was made from the authors schematics, but several features was added, such as extra LED for activity, OLED screen and reset button etc.
SD CARD SETUP
1. Format an SD card to Fat32.
2. Download the Raspberry Pi Firmware from the Raspberry Pi Foundation. (Or use all the files from my setup)
3. Copy the files bootcode.bin, fixup.dat and start.elf (found in firmware-master\boot)) into the root folder of your SD card.
4. Unzip the supplied zip file (Pi1541.zip) to the blank SD card. (This will create a folder called 1541 in the root folder of the SD card. This is where you can place your Commodore disk images and folders).
5. Copy over a file that contains a 1541 ROM image into the root folder of the SD card. The ROM must be called dos1541 or d1541.rom or d1541II or Jiffy.bin.
6. (OPTIONAL) Copy over a file that contains a CBM font ROM (eg vice-3.1\C64\chargen) into the root folder of the SD card. The ROM must be called chargen
7. Copy your disk images and folders into the 1541 folder now found on the SD card.
This is the root contents on my SD card. Just an example.
I did not include a ROM file here, so copy over a file that contains a 1541 ROM image (eg vice-3.1\DRIVES\dos1541) into the root folder of the SD card. The ROM must be called dos1541 or d1541.rom or d1541II or Jiffy.bin
Partslist
- PCB
- R1 220 Ohm
- R2 220 Ohm
- R3 1k Ohm
- R4 1k Ohm
- SN7406N or 74LS06 Hex inverter/buffer
- ACT LED 3MM Green
- PWR LED 3MM Red
- C1 100nF capacitor
- 4 channel Level Shifter with pin headers
- 6mm RESET tactile switch
- SW1 tactile switch 6x6x6
- SW2 tactile switch 6x6x6
- SW3 tactile switch 6x6x6
- SW4 tactile switch 6x6x6
- SW5 tactile switch 6x6x6
- 2×20 pin female connector
- BUZZER
- SPKR Enable jumper + pins
- IEC1 din6
- IEC2 din6
- Optional: OLED screen
(0.96″ IIC Serial OLED Display Module 128X64 I2C SSD1306)
Assembly:
The assembly is very straight forward. Just follow the markings on the PCB and look at the images of the already soldered Pi1541 boards here. I like to start with the shortest parts first. The R1 and R2 resistors are for the red and green LEDS. If you think that the red LED is too bright, you can replace R2 with a different value resistor. Anything between 220 Ohm and 680 Ohm looks good. Dont forget to solder the R3 and R4 pullups too. Resistors are not polarized, so put them in any direction you want.
The 7406 hex inverter is easy. The orientation is marked on the PCB. Look for the small notch on the chip and align it with the one drawn on the PCB. You can add a socket for this chip if you want, but it’s not included in the KIT.
Next part is the 2×20 pin female connector. Make sure you solder it on the correct side. Look at the pictures to make sure.
Next in line is the 2 LEDs. Green is for activity, and red is for power. You can swap them if you want. Maybe you got a fancy color LED you want to substitute? There is a trick I use to find the orientation of LEDS, just look at the pin holes. One of them is connected to the ground plane, and that is the cathode, (shorter pin) You can see how the ground plane pin has connections to all sides in a cross pattern. Look at both and you will soon se which is the correct one. If you are still unsure, you can also use a multimeter to verify which one is ground. The LED itself also has a tell. If you look inside, you will see a small pin, and a bigger “chunk” of metal. The big one is cathode (GND)
Next in line is all the tactile switches, including the one marked reset. Just pop them carefully in and remember to solder all 4 legs. Note that the reset button only works on C64 revisions that support reset via the serial port. It will do no damage to unsupported machines, it will simply not work.
The C1 100nF capacitor are not polarized, so just pop it in. Same with the 2 pin jumper. The jumper is there to enable the buzzer.
Next put in the buzzer. It has a + sign on the component and on the PCB, so align those. The buzzer is there to simulate the stepper motor drive sounds.
The large DIN connectors are next. Notice that the legs has a flat side. It can be smart to put the soldering iron on the flat side to transfer enough heat for a good solder joint. Make sure to solder all pins. Sometimes the buzzer or one of the LEDs gets too close to the DIN connector. If that happens, snip off some of the plastic on the DIN connector with a side cutter or knife.
Now for the level shifter. Turn the pcb over, because this is going on the under side of the PCB. The easiest way to mount it, is to first put the 2 pin headers in the 6 holes, and then the level shifter pcb on top, while making sure that the letters and numbers on the level shifter match the text on the PCB. Make sure that the level shifter is as close to the PCB as possible, so it wont come in contact with anything on the Raspberry Pi later. Confirm that the pins are long enough on both sides of the PCB. If they are short on one side, you must turn the pin headers over. Start by soldering the pins on top of the level shifter, and then afterwards you flip the PCB over and solder the ones on the top side. Keep the soldering iron on the outside of the level shifter so that you wont accidentally disturb or heat the SMD parts in the middle.
If you plan to buy a OLED, make sure it has the correct pinout. Look at the images for pinout.
What to do if it wont work? The usual suspects when this device does not work, is the PSU, the SD card and the contents of your memorycard. Many people try to use a phone charger or a cheap chinese power supply. Im not saying all of these are crap, but these are known to have issues with the Pi, so getting a genuine Pi power supply will save you from a lot of hassle. Second, the Pi are known for not accepting all SD cards. Even some good quality ones. So try several cards just to be sure. The contents of your card is also essential. Please try my sample file if you get into trouble. For legal reasons the ROMS are not included in the setup. This device fully support the cheaper Raspberry Pi 3A, but make sure you use the latest files from Pi foundation.
Note that these instructions are only for the Bruktmoped designs.
This project with PCB and parts can be purchased on ebay: https://www.ebay.com/usr/kirsti_73
Author of the software:
https://cbm-pi1541.firebaseapp.com
Leave a Reply