Pi1541 Zero edition

This version of the Pi1541 is made just as small as the Raspberry Pi Zero. It will run on Raspberry Pi 1, Zero, Pi2 and Pi3, but the small size makes it perfect for the Pi Zero computer. Size limitation made no room for a screen, but all the other accessories are there, like Power LED, activity LED, Buzzer to emulate drive sound, reset button and 5X menu buttons.

Note: currently the Pi’s HDMI screen is not suppported on the Pi Zero, 1 or 2.
Note: currently the USB keyboard and drives are not suppported on the Pi Zero, 1 or 2.
Note: currently the emulated drive sounds are not suppported on the Pi Zero, 1 or 2.
These will be supported later, and the hardware is already set up for it when it is supported.

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 1, Zero, 2 or 3 to emulate a Commodore 1541 floppy drive. (If you want to overclock those older Pi models, Use the config.txt to set the values. The sign # is used to make the Pi ignore the text. Remove it to enable the settings.) 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. 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, it supports more file versions and it now also supports USB thumbdrives too!

Look at the size difference between the Zero and the “normal” Pi1541. The one in the picture has the limited edition 1.3″ OLED screen.

SD CARD SETUP FOR Option A version (NON SMD)

1. Format an SD card to Fat32.

2. Download the Raspberry Pi Firmware from the Raspberry Pi Foundation.

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

5. (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. This will enable Commodore charset on the screen.

6. Copy your disk images and folders into the 1541 folder now found on the SD card. Or, simply download the below pre made setup and extract it to a SD card. You can start with that to be up and running right away.

This is the root contents on my SD card when using a Pi3. Just an example.

This is the root contents on my SD card when using a Pi2. Just an example.

This is the root contents on my SD card when using a Pi Zero. Just an example.

This is the root contents on my SD card when using a Pi 1. Just an example.

This is the root contents on my SD card when using a Pi Zero SMD Version. Just an example.

The only 2 differences between this setup and the one from my full version, is this setting in the options.txt file found in the root folder of the SD card: “splitIECLines = 1” must be used on Option B setups, and if it is Option A, it must be changed to: “// splitIECLines = 1” and Each version of Raspberry Pi needs their own files due to different CPU and speed. Choose the one you have from the list above.

The SMD version of this is a Option B, and in this file setup, the Pi Zero is 10% overclocked. If you dont want to use overclocking, you can edit the config.txt and add a # in front of these lines:

# 10% overclock
arm_freq=1100
over_voltage=8
sdram_freq=500
sdram_over_voltage=2

 

Partslist

  • PCB
  • R1                   220 or 330 Ohm
  • R2                   220 or 330 Ohm
  • ACT LED 3MM Green
  • PWR LED 3MM Red
  • 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

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. Resistors are not polarized, so put them in any direction you want.

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. There might be several versions of the PCB, so make sure you follow the markings on the PCB.

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 see 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 2 pin jumper is easy. Just solder it on one leg first, then reheat and align if its crooked. Then you can solder the second pin. 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 connector are next. Notice that the legs have 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.

Now for the level shifter. On this model, the levelshifter is to be mounted on the top side.  The easiest way to mount it, is to first put the 2 pin headers in the 6 holes short end of the pins facing down, 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, It looks better that way. Solder only one pin, and check if the level shifter is flat and nice befor soldering the rest.  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 underside. 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.

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
or from Sellmyretro.com

4 player adapter for Commodore 64/128

 

This little adapter plugs to the user port of the C64, C128, VIC-20 or CBM 610 computers. Here is a list of some of the games that support this adapter:
 
    • Alone in the Green
    • Amazing Maze
    • Bomb Mania
    • Garrison
    • Hockey Mania
    • IK+ Gold
    • Marble Madness
    • M.U.L.E.
    • Pac It
    • Phong!
    • Quadris
    • Quadtron
    • Rampage Gold
    • Snacks 4 Snakes
    • Space Lords
    • Square Attack
    • Ivan ‘Ironman’ Stewart’s Super Off Road
    • Tanks 3000
    • Team Patrol
    • Tour de France 2005
When I made this, I wanted more than just to add 2 more joystick ports.
Since a lot of C64 models does not support a reset via the serial port. (I made the Pi1541 with a reset button on the serial port) I figured I should at least add a reset button on this device. Using the user port to reset the C64 is probably the safest and easiest way to ensure a reset that works on all models. But, I did not stop there. The user port is also a port that connects to both the internal AC 9V, and the DC 5V. So I made one LED for each of these power rails, so that this module can be used to verify if the computer actually gets any power. When the power light on the computer lights up, it does not mean that the AC 9V is working, and to test it, you will have to open it up and do the measurements manually. Measuring the PSU at the plug is risky business, since a slip can short your PSU. Now, all you have to do is to plug this in to verify that the power is working. Since LEDs use power, and might be annoying, I made sure they can be disabled with a jumper too. Notice how none of the other 4 player adapters have all these features! Most don’t even have pullup resistors!
This one is FULLY LOADED!
Why a reset button?
The reset button is useful in several ways. For a gamer, it is handy is if you have some resident code in high part of the memory, beyond what many programs use. For example “Turbo Tape 64” relocates itself to SYS 50000 [$C350] which mean after loading a game with the turbo, you can often hit the reset button, type in SYS 50000 and the turbo was reenabled and ready to load the next program. Of course if the loaded program extended beyond this address you would have to reload the turbo program from tape or disk.
A reset button will retain almost all the RAM contents, so you can recover from a crash. Powering the computer off and on will clear the memory completely
Another use would be to enter cheats to games, which came as POKEs to various locations in memory to give you infinite lives etc., with a SYS call to restart the game.
As a coder: Hit the reset button and sys 32768 and you are back in Turbo Assembler. All other resident programs would still be there, like a tape turbo. Best of all, you’d keep on hacking the night away without having to reload your source.
Partslist:

2x D-SUB 9
2x LEDs
8x 10k Resistors
1x Diode
1X 220R resistor
1x 1k resistor
1x Custom PCB
1x 100nF Capacitor
2x Jumpers
2x 2 pin
1x Tactile switch
1x User port connector
1x Data Selector/Multiplexer

This project with PCB and parts can be purchased on ebay:  https://www.ebay.com/usr/kirsti_73
or from Sellmyretro.com