Skip to the content
PCBKitNew board
2 layers20.3 × 47.6 mmC64-Kernal Switcher, the printed circuit board in 3D

C64-Kernal Switcher

tebl/C64-Kernal-Switcher33

Switchless kernal switcher for the common breadbin Commodore 64, "longboards". Reuses power LED for easier use.

Size
20.3 × 47.6 mm
Copper layers
2
Thickness
1.6 mm
Parts
12
Nets
32
Pads
86
Tracks, vias
156, 15
Pours
1
Routed
Yes
KiCad
KiCad 4
Created
23 Jun 2019
Updated
8 Aug 2019

Overview

C64-Kernal Switcher is an open-source printed circuit board by tebl, from the tebl/C64-Kernal-Switcher repository on GitHub. It is a 2-layer board of 20.3 × 47.6 mm with 12 parts on 32 nets, routed with 156 tracks and 15 vias.

It is built around the PIC12F629-I/P and 27C256-17/J. Its parts include 3 resistors, 3 ICs, 3 connectors and 1 capacitor. It belongs with the retro computing and games boards and the PIC boards of this library.

Main components

2

README

README.md

C64 Kernal Switcher

Originally started this design with the idea of using an Arduino as a way to switch between Commodore 64 kernal ROMs, but ended up adapting BWACKs design into it instead and like him opted for the PIC12F629 instead. This particular version of a quad kernal switcher for the Commodore 64 is only compatible with Commodore 64 "longboards" (usually breadbins, but you never really know what you get with Commodore so check first).

BWACKs design has been adapted into mine, changing along the way a few of the features to my liking - in particular, reusing the original power LEDs as well as support for manual switches (find it more adaptable that way). Original pinouts and RGB headers have been kept the same in order to not have to do a manual like he did, but note that I've rotated them for easier use with angled pin headers to save on space within the newer and tighter C64C-style cases. Reusing the original LED makes it easier because RGB LEDs in a size that fits a C64C case is harder to find, not to mention fiddly to wire up for beginners with access to a soldering iron.

With only the single LED available, the code supplied with this project has been rewritten so that when you hold down the RESTORE it counts the flashes - then when you let go it performs the actions according to the following list:

  1. RESET
  2. Next kernal
  3. Kernal 0
  4. Kernal 1
  5. Kernal 2
  6. Kernal 3

Single LED

The board itself should be functionally identical to the one made by bwack, if you want the original behavior using the RGB header with an RGB LED - use the code provided with that project.

Building the switcher

Soldering together the few components should be easy going as long as you have access to reasonable tools, personally I'm using a cheap soldering station with adjustable temperature so no need to go expensive if you don't have to. Use 60/40 soldering tin, the lead free makes to job a lot harder if you're new to the hobby.

Start by studying the PCB, both sides and perform dry fits to see that you have an idea of where everything goes since removing things is always a lot harder than getting it right in the first place (match orientation to symbols, see gallery images for reference).

With a lot going on for such a tiny board, you'd need to pay some attention to the sequence of components getting soldered in. The list below is the one I recommend, note that with some sockets you'll have less space underneath and it'll be a lot easier getting it into place if you trim the pins after they have been soldered into place. When aligning the two 12-pin (round) pin-headers I recommend using a round-pin socket to help keep them straight, that way you won't get issues trying to install it into the Commodore 64.

  1. Resistors
  2. 8-pin socket (solder on reverse-side)
  3. 12pin-header on the right side (solder on reverse-side)
  4. 28-pin socket
  5. 12-pin header on the left side (solder on reverse-side)
  6. Capacitor
  7. Remaining pin headers as needed

Topside Underside

Alternative build

The PCB doubles up as a 27c256 to 2364 adapter board, which means that you can also use it to replace the other ROM ICs used in the longboard versions of the motherboard. While there aren't many alternatives available for the basic and character ROM, but replacing them may lead to lower power use as well as decreased heat within the computer case - personally I use one as a handy way of having a 4-in-1 replacement when troubleshooting failed systems. The build process is the same as the one above, but there is no need to add resistors, 12-pin socket since the 12f629 won't be used and then add pin headers at the top in order select active ROM image. You can generate a suitable bin-file to flash 27c256 using the following command (substitute kernal4 with one of your own choice):

copy /b basic.901226-01.bin+kernal.901227-03.bin+characters.901225-01.bin+kernal4.bin 27C256_longboard_4in1.bin

Installation

First of all, check that you have a C64 with a "longboard", these are physically larger - the later common C64C boards had combined basic and kernal ROMs on a single chip, requiring a different solution altogether! First locate the kernal ROM, it should be marked 901227-03 and preferably already socketed.

If it is not socketed and you don't have experience desoldering ICs from older PCBs, I would suggest that you have someone with more experience perform this task for you - if you still go through with it, you live with the consequences! If you are really doing it anyway, cut off all the legs as close to the IC as possible and then remove leftovers with tweezers and solder-braid - IC will be dead, but the board itself will probably be happier!

When installing in the computer, the pin on the bottom are inserted into the socket. You'll now need to find suitable places to attach the signal wires to the mainboard, you'll need to find a spot for the RESET and the RESTORE lines. RESET will have continuity to pin 40 on the 6510 processor, a spot for RESTORE can be found by tracing from pin 3 of the keyboard connector (pin 2 is missing). As with all things Commodore, Ray Carlsen will probably have a picture of those points for your specific revision so take a look http://personalpages.tds.net/~rcarlsen/cbm/switchless%20JiffyDOS/.

Installed

Kernals

There have been made several kernals for the Commodore 64, this solution allows you to add 3 other kernals in addition to the original one (you'll need it for compatibility). Among my favourites are the SD2IEC Kernal ROM, Turbo Tape Kernal ROM and JiffyDOS. Note that JiffyDOS, while a popular choice is still under license so you should therefore seek to obtain a registered license for it!

On windows you can generate a 32kb file with your selected kernals by using the copy command, this can then be flashed to a blank 27C256 EPROM. Substitute kernals 2-4 with those of your choice:

copy /b kernal.901227-03.bin+kernal2.bin+kernal3.bin+kernal4.bin 27C256_breadbin.bin

Custom ROM

Original design

As a large part of this project, schematic and code, was based on the one originally made by bwack, I've included the following section from that projects README.txt here in accordance with the license specified.

C64 Switchless Multi Kernel Switch - 27C256 rom adapter for C64's with long motherboard

Designed by BWACK. CERN OPEN HARDWARE LICENSE v1.2 http://www.ohwr.org/

The Eagle CAD files are available on GitHub: https://github.com/bwack/C64-Switchless-Multi-Kernal-27C256-adapter

All text above must be included in any redistribution

Schematic

The supplied KiCad files should be sufficient as both a schematic and as a starting point for ordering PCBs (basically you could just zip the contents of the export folder and upload that on a fabrication site), the schematic is also available in PDF-format and this is what you'll need to print and work your way through this things don't work as expected after assembly.

BOM

Most parts should be easy to get a hold of from your favourite local electronic component shop, but given that I don't have access to such shops where I live so everything was based on whatever I could get cheapest from ebay/AliExpress (free shipping, plan on usually waiting 3-4 weeks though). The list below should be everything you'll need in addition to a workable soldering iron and some 60/40 soldering tin. Other tools needed for this project is an EPROM-ereaser as well as an EPROM-programmer for the two ICs (I use MiniPro TL866 for both).

Pin headers you order in bulk and snap off parts as needed, but note that you should get round pin headers for the part that goes into the socket - while you can use the regular kind, you may easily wear out or break the socket.

Components in parenthesis are those used for extra features, you can omit these if you want to or have no need of those features (adding switches makes no sense if using MCU). RGB header can be left off, this is optional if you wish to use code from the original project! Sockets are always recommended though technically not needed.

ReferenceItemCount
PCBFabricate using Gerber files (order)1
C1100nF capacitor1
R11k ohm resistor(1)
R23k3 ohm resistor(1)
R3560 ohm resistor1
U112-pin straight round header2
U2PIC12F629 DIP-81
U2 (socket)8-pin socket(1)
U327C256 EPROM DIP-281
U3 (socket)28-pin wide socket(1)
A13,A143-pin straight header(2)
Signal, LED3-pin angled header2
RGB2x3-pin straight header(1)

Parts

12
QtyValueFootprintReferences
1100nFCapacitors_THT:C_Disc_D4.7mm_W2.5mm_P5.00mmC1
11kResistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1
123642364:DIP-24_W15.24mm_SocketU1
127C256Housings_DIP:DIP-28_W15.24mm_SocketU3
13k3Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR2
1560Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR3
1A13_SELPin_Headers:Pin_Header_Straight_1x03_Pitch2.54mmJP1
1A14_SELPin_Headers:Pin_Header_Straight_1x03_Pitch2.54mmJP2
1LEDPin_Headers:Pin_Header_Angled_1x03_Pitch2.54mmJ3
1PIC12F629Housings_DIP:DIP-8_W7.62mm_SocketU2
1RGBPin_Headers:Pin_Header_Straight_2x03_Pitch2.54mmJ2
1SignalsPin_Headers:Pin_Header_Angled_1x03_Pitch2.54mmJ1

Questions

How big is the C64-Kernal Switcher PCB?

It measures 20.3 × 47.6 mm and has 2 copper layers, 1.6 mm thick.

What parts does the C64-Kernal Switcher use?

12 parts, built around the PIC12F629-I/P and 27C256-17/J. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the C64-Kernal Switcher KiCad files?

From the tebl/C64-Kernal-Switcher repository on GitHub, at the commit this page was made from: the board is C64 Kernal Switcher.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the C64-Kernal Switcher design in my own project?

Its repository states no licence, so its author keeps all rights: ask tebl before reusing the design.

Similar boards

  • 4 layers184.9 × 243.8 mmProject NuXT, the printed circuit board in 3D

    Project NuXT

    monotech/NuXT

    MicroATX Turbo XT Motherboard, with VGA, Floppy, CF, Serial

    223 parts121GPL-3.0
  • 2 layers101.5 × 83 mmSd2snes, the printed circuit board in 3D

    Sd2snes

    mrehkopf/sd2snes

    SD card based multi-purpose cartridge for the SNES

    154 parts722GPL-2.0
  • 2 layers152.4 × 101.6 mm8088-FE2010A SBC, the printed circuit board in 3D

    8088-FE2010A SBC

    skiselev/micro_8088

    Micro 8088 - IBM XT Compatible Processor Board based on Faraday FE2010 chipset

    72 parts412GPL-3.0
  • 2 layers116.2 × 79.2 mmSNES Advanced UV 1-0 new, the printed circuit board in 3D

    SNES Advanced UV 1-0 new

    MouseBiteLabs/Super-Nintendo-Cartridges

    A collection of Super Nintendo cartridge circuit boards

    66 parts70CC-BY-SA-4.0
  • 4 layers110.7 × 69.8 mmSgb mbc5 1-4, the printed circuit board in 3D

    Sgb mbc5 1-4

    MouseBiteLabs/Super-Game-Boy-Plus

    A replacement circuit board for improving the Super Game Boy, or for creating a standalone Game Boy game for the SNES.

    95 parts41CC-BY-SA-4.0
  • 2 layers110.1 × 101.6 mmNano8088, the printed circuit board in 3D

    Nano8088

    monotech/Nano8088

    Smaller SMD version of Sergey Kiselev's Micro 8088 SBC, with XT-CF added

    78 parts17GPL-3.0
  • 2 layers97.6 × 76.8 mm12f675-mppt, the printed circuit board in 3D

    12f675-mppt

    rasberryrabbit/PIC12F675MPPT

    Solar MPPT circuit.

    45 parts9GPL-3.0
  • 2 layers37.1 × 17.5 mmKB AT2XT, the printed circuit board in 3D

    KB AT2XT

    hkzlab/Another_AT2XT

    Another AT2XT Keyboard adapter PCB

    9 parts4