C64 Breadbox Rebuild II – With Arduino Due

The first version of my C64 Rebuild is done, but it could be better… with less hardware. So I removed the USB Joystick Adapter and the USB Keyboard Interface 
and replaced all with an Arduino Due. This is the C64 Rebuild II and it’s working fine. For this you need the newest C64 Emu version V1.12, because some things are changed. Also you need the Arduino IDE 1.6.6 for the Sketch Upload into the Arduino Due. With the new version I’ve used the little better Banana Pi M2 Board with Android.


This is what it looks like after all work is done.


What you need:

  • Original C64 case
  • Banana Pi M1 (with “BPI-M1_Android-4.2.2_v2.1_hdmi.img“) or a Banana Pi M2 (with  “BPI-M2_Android-4.4_V4.1_hdmi.img“)
  • Arduino DUE 
  • Some wires and a Power Supply with 5V/1.2A (6 Watt)
  • My Arduino DUE Sketch and the C64.apk (both attached to this post)
  • Also a HDMI Monitor with 720p 50Hz support (if you are using 60Hz then the emu will not produce smooth animations!) 

1. Banana Pi M2 for the Emulation


Hint: Before you install the C64.apk, you have to go to Android Settings -> Display to change the Display Resolution to 720p 50Hz and set “Screen percent” to fill the whole screen. The Banana Pi M2 is a little bit more robust, because of his 4 CPU Cores (no dropouts, even if you have multiple system events).


2. Arduino DUE Joystick and Keyboard Interface for the original C64 Joysticks and Keyboard

C64 Keyboard Connector (Restore Key = Arduino Pin 2, C64 LED = Arduino Pin 13): 

C64 O O O O O O O O O O O O O O O O X O X O
Arduino 4 3 A0 A1 A2 A3 A4 A5 12 11 10 9 8 7 6 5 NC 2 NC GND

C64 Joystick Ports

Joy1 Pin 1 2 3 4 6 8 Joy2 Pin 1 2 3 4 6 8
Arduino 41 39 37 35 33 GND Arduino  31 29 27 25 23 GND

C64.apk (Screenshot of the Emulation Menu, Scroll up/down with Joystick Port 2) 



Special hints: 

– If you want to make the C64 App as default Launcher, open the Android Settings -> Apps -> All -> “TvdLauncher” -> “Launch by default”, click “Clear defaults“, then press C= + ← on the C64 keyboard, select C64 as default Launcher

– Also you have to modify the screen zoom in the Android Display Settings. It has to fit the whole screen.

– If you want to disable the Boot Animation, you can add the line “debug.sf.nobootanimation=1” in the “/system/build.prop” file

– If you want to disable the Boot Logo, you can override the “/mnt/bootloader/bootlogo.bmp” file