Sunday, June 21, 2020

DIY NES to Atari Controller Adapter

I wanted to use my favorite NES controller with my controller-less Atari 65XE and 130XE. The NES controller uses a shift register, while the Atari expects 5 simple buttons. I wrote a simple Arduino program to convert one to the other. Using an Arduino mini, it fits in this little inline enclosure.






#define strobe 3 //PORTD
#define clk 4
#define data 2
void setup() {
DDRD = 1 | (1<<strobe) | (1<<clk); // NES outputs
}
void pulse_pin(byte pin, byte del) {
PORTD |= (1<<pin); //set
delayMicroseconds(del);
PORTD &= ~(1<<pin); //clear
delayMicroseconds(del);
}
void loop() {
byte btns = 0;
pulse_pin(strobe, 10); //latch the controller
for(int i = 0; i < 8; i++) { //read 8 bits
btns = btns << 1 | !(PIND & (1<<data));
pulse_pin(clk, 10); //clock next bit
}
// atari output d12-d8, open collector
DDRB = (btns & 0xf) | (!!(btns & 0xc0) << 4); // dpad + A||B
}

Thursday, June 11, 2020

DIY 1702a Programmer

I've resumed working on the PAiA 8700 computer. It uses some very old, and hard to program EPROMs: 1702As. They require +37V, +47V, +59V and ground to program.

I've come up with a relatively easy to build DIY programmer. It doesn't require a parallel port, or dozens of transistors. It's Arduino based, and uses mostly common parts.
Here's what it looks like:


And here's a schematic:


A boost converter daughter board is used to generate a high voltage, over 60V. It then gets regulated down to the various voltages needed. IC1 (TL783) has to be calibrated to +47V, then the other voltages will fall into place.
An Arduino nano is able to manipulate the high voltages through three ULN2003 transistor arrays, and one IRF520 MOSFET.

Right now the code is very crude, but functional. It's on pastebin here. The binary for the 1702A is included in the Arduino program. On power up/reset the programming sequence begins. It's finished when the pin 13 led stops flashing.

I've now added the Eagle CAD files to my github here.

Pollard Syndrum Schematic Redraw

The original Syndrum schematic isn't the most legible in terms of quality or layout.
I redrew it so that it made more sense to me. Here it is: