Thursday, December 24, 2009

NES Arduino PCB - v0.3


So I'm kind of enjoying the revision process.

The original designs were using the digital outputs from 0-14. This is still good for using everything internal to the Arduino, but 0 and 1 are used for serial communication. Don reminded me of the potential of using the PC for control, so I remade the board with a few changes.
- Digital pins 2-13 are used (12 bits of control) to free up serial communication
- The MSB is properly wired, this is something I had fixed in software, but now the pins are mapped more naturally (LSB of arduino matches LSB of button register after latch/clocks)
- I still used the ground plane, but with more isolation to avoid bridging any soldering points (again)

I'm writing up a diagnostic tool to verify that everything is being received properly. I'll use it for any boards I produce after to make sure all the bits are working.

3 comments:

  1. Nice project, like the diagnostics cart graphics.
    Have you tried connecting the nes controller directly to the SPI interface (in slave mode) of the avr? I've got no expirence with the Arduino dev-boards but since the SPI-interface is basically an 8-bit shift register, the avr can be clocked at 20MHz and it takes at least one nes instruction to get one bit it should work.

    ReplyDelete
  2. M: I tried using Arduino directly, and all I could get was it randomly pressing buttons or pressing only the start button. I just kinda shoved wire into the controller port, so my connections were probably bad. I tried translating from the code on the little-scale blog, but I got conflicting information. Pinouts.ru says the NES sends low clock pulses, but the code on little-scale appears to send high pulses. I'm probably reading it wrong, and I don't have a scope to check anything with. Here's my code: http://pastebin.com/LWX6c4KH

    Using the 4021 chip on the controller worked great. For mine, the pinout matched what I found on a different site: http://claymore.engineer.gvsu.edu/~kowalsde/EGR450Project.htm I plan to attach wire to the back of the IC and have it coming out a hole in the top of the controller, so I don't have to remove the chip. Probably need to buy a soldering iron to do that though...

    ReplyDelete