Thursday, May 01, 2008

Let's Sync Nanoloop to Prophet 64

Demo video:

This little project lets you control the speed of Nanoloop 1.3 (might work with other versions also) via the Prophet 64 program for the Commodore 64 computer. It works on the basis of converting a Sync 24 signal to a Nanoloop clock signal. It will react to start/stop signals (Commodore Userport pin E --> 08M leg 4) and a sync 24 clock pulse signal (Commodore Userport pin F --> 08M leg 6).

The IC that is used is the inexpensive Picaxe 08M, which can be programmed with an easy-to-make serial download cable and a free software program editor. If you like, I can flash a Picaxe 08M for you, so please feel free to contact me regarding this.

I have not been able to get a hold of the Commodore 64 Userport 24-12 edge connectors at a reasonable price. Instead, I have simply hacked apart a 44-22 edge connector which costs about AU$2.50. A very cheap solution, and it works fine.

Breadboard prototype.

Hardwired version in action.

Using the Interface
1. Make sure everything is turned off. Plug in the Userport connector to the Commodore 64. Plug in the Game Boy link cable connector into the Game Boy.

2. Load up or make some Nanoloop loops. Set Nanoloop to external sync, by going to the tempo indicator and pressing A and B (this in 1.3b, not sure about other versions).

3. Load up the Prophet 64 program on the Commodore. Load or make a song.

4. When you press play or stop on the Commodore, the Game Boy will follow. When you change the tempo on the Commodore, the Game Boy will follow.

Please note that although the Commodore 64 will go back to the beginning of a bar (when using the Sequencer) after pressing stop and then play, Nanoloop will not automatically always start from the start of a bar. So it is a matter of practice to get the sync correct.

Schematic (including Picaxe download circuit, for a blank 08M chip):

Schematic (for a pre-programmed 08M chip):
I am not sure if the 12kΩ resistor is strictly required. You might get away with not including it. But for the extra four cents, just put it in.

Power Source:
The circuit requires a 5V power source. I don't think that the Commodore 64 User Port has a 5V source on it, but I could be completely wrong about this (-- can anyone confirm or deny?). A suitable supply voltage can be obtained from a number of places:
• The joystick ports on the Commodore 64.
• A USB port on a PC or laptop.
• Three AA batteries (1.5V x 3 = 4.5V).
• Four AA rechargeable batteries (1.2V x 4 = 4.8V).
• A 9V battery with a 7805 regulator.
• A 9 to 12V AC/DC mains adaptor with a 7805 regulator.
• The VCC pin of a six wire sync cable for a DMG-01 Game Boy. I am unsure if a Game Boy Colour will be able to supply 5V on this line (-- can anyone confirm or deny?). Thanks for the reminder, Matt.

It really depends on your personal preference which is the most suitable for your setup.

Picaxe Code:
symbol flag = b0
symbol flipflop = b1

if pin1 = 1 and pin3 = 1 and flag = 0 then go_flip
if pin1 = 0 then reset_flag
goto main

if flipflop = 0 then go_high
if flipflop = 1 then go_low

high 2
flipflop = 1
flag = 1
goto main

low 2
flipflop = 0
flag = 1
goto main

flag = 0
goto main

1 comments: said...

It won't truly have success, I believe so.