The A26F is a MIDI interface for the Atari, allowing you to sequence chipmusic on a real Atari 2600 console using modern MIDI sequencing software.
If you enjoy this post, please like my Facebook page or follow this blog for future A26F updates.
Many thanks go out to Paul Slocum for his amazing work with Atari 2600 music.
Demonstration of A26F interface
Sequencing and changing notes and instrument sounds
Sequencing drum samples and changing sample rate of playback
Quick Start Instructions
This post marks the release of the Atari 2600 MIDI (A26F) device, as well as the release of the A26F v100 firmware.
The code etc for this is open and free to use. Please do not commercialise this. It is not for making money. It is for making cool chiptune musics. I encourage you to build one of these. It is easy and shouldn't take long. I encourage you to hack the code and play and have fun with it. If you would like to make a batch of these available, please get in touch.
The aim of this post is to cover a simple hardware setup that can be used to create an A26F interface. This is achieved via an Atari Age 4K cartridge, a 2764 EPROM and a Teensy 2 microcontroller. Other methods are possible too.
- The A26F music interface relies on two pieces of firmware, one for a microcontroller and one for the Atari 2600 console.
- Download the firmware for the Atari 2600 console as a ROM here: http://little-scale.com/A26F/A26F_100/A26F_100_ROM.bin and as source code here: http://little-scale.com/A26F/A26F_100/A26F_Source_Code_6507.txt
- Upload the firmware ROM for the Atari 2600 console to a cartridge. Some suggestions on programmable cartridge solutions are made here:http://www.little-scale.blogspot.com.au/2013/03/current-options-for-atari-2600-user.html
- Download the firmware source code for the Teensy microcontroller here: http://little-scale.com/A26F/A26F_100/A26F_Teensy_100.ino
- Upload the firmware source code to the Teensy using the Arduino IDE (http://www.arduino.cc/) and the Teensyduino add-on (http://pjrc.com/teensy/teensyduino.html)
- Make a circuit with the following connections:
- Atari 2600 Player 1 Pin 1 ---> Teensy Port B0 (digital pin 0)
- Atari 2600 Player 1 Pin 2 ---> Teensy Port B1 (digital pin 1)
- Atari 2600 Player 1 Pin 3 ---> Teensy Port B2 (digital pin 2)
- Atari 2600 Player 1 Pin 4 ---> Teensy Port B3 (digital pin 3)
- Atari 2600 Player 1 Pin 6 ---> Teensy Port B7 (digital pin 4)
- Atari 2600 Player 1 Pin 8 ---> Teensy Ground
- Atari 2600 Player 2 Pin 1 ---> Teensy Port D0 (digital pin 5)
- Atari 2600 Player 2 Pin 2 ---> Teensy Port D1 (digital pin 6)
- Atari 2600 Player 2 Pin 3 ---> Teensy Port D2 (digital pin 7)
- Atari 2600 Player 2 Pin 4 ---> Teensy Port D3 (digital pin 8)
- The joystick pinout for the Atari 2600 can be found here: http://old.pinouts.ru/Inputs/JoystickAtari2600_pinout.shtml
- The Teensyduino pinout can be found here: http://pjrc.com/teensy/wiring_pinout2.png
• MIDI Channel 1 is Atari TIA Channel 1
• MIDI Channel 2 is Atari TIA Channel2
• Velocity is mapped to 16 steps of amplitude for each channel
• MIDI CC #1 sets the instrument type
• MIDI CC#11 can also set the volume (independent of the velocity)
• Pitches wrap every 32 MIDI notes, and every pitch on the Atari is playable
• MIDI Channel 2 for notes > 64 will trigger drum samples if instrument 0 is chosen.
Step-by-Step: A26F Interface
• 2 x Atari 2600 or SEGA controller (for cable splicing)
• OR 2 x female DB9 connectors if you don't want to destroy perfectly good controllers! (recommended)
• Teensy 2 microcontroller
• 2 x Small strip / vero board
• 2 x 10 pin header (only 9 pins needed)
• USB A to mini B cable
• Atari 2600 console
• Atari 2600 programmable cartridge
• Breadboard, Breadboard jumpers
• Soldering iron, Solder, Soldering helping hands, Solder cleaner, Wire stripppers, Multi-meter
1. Take the Atari / SEGA controller and cut off the connector. Strip back the insulation.
10. Place the ten pin header in the board, so that each pin has its own vertical strip.
13. Repeat steps 1 - 12 so that there are 2 x pin header --> 9 pin connector cables
Example Atari 2600 Cartridge:
Atari Age 4K
Seb, You DA Man!ReplyDelete
First vid blu me away. and the drum track, well I half to heat up the iron! Yogi
This is an excellent post! Thank you for sharing!
Forgive me if I'm a little bit slow, but I am having trouble finding the 2k/4k Atari 2600 PCB that you mention in your parts list. I found the Krokodile Cartridge and the Harmony Cartridge, but no raw 2k/4k PCB like the one you picture.
Would you mind providing a link to where I can buy one?
Thanks again for the awesome work!
All the best,
I am getting a few errors while compiling which means I cannot acquire the hex version. I don't have a Teeny board, just an atmega32. I wish I knew how to correct these, but I am stuck asking for help.ReplyDelete
Here are the errors:
A26F_Teensy_100.ino: In function 'void setup()':
A26F_Teensy_100:205: error: 'usbMIDI' was not declared in this scope
A26F_Teensy_100.ino: In function 'void loop()':
A26F_Teensy_100:234: error: 'usbMIDI' was not declared in this scope
The way to get rid of this is to either:
1) get a teensy and install the Teensyduino add on and the Teensy loader
2) port this to Arduino proper
@ Gopal: I know that they are not currently being sold, BUT hopefully there will be on sale again at some stage.ReplyDelete