Nintendo 64 Controller Pak Reader for Arduino (Uno+SD Card)
- Author
- sanni, drtrigon
- Date
- 2018-04-24
- Version
- V1C
- See Also
- https://github.com/sanni/cartreader/issues/16
-
https://github.com/sanni/cartreader/blob/master/Cart_Reader/N64.ino
-
http://www.instructables.com/id/Use-an-Arduino-with-an-N64-controller/
* SD lib:
* https://github.com/greiman/SdFat
* Needs EEPROMAnything.h copied into sketch folder:
* https://github.com/sanni/cartreader/blob/master/Cart_Reader/EEPROMAnything.h
* DIY SD Card interface/adapter:
* http://www.instructables.com/id/Cheap-DIY-SD-card-breadboard-socket/
* http://www.bot-thoughts.com/2010/02/logging-data-to-sd-cards.html
* https://www.arduino.cc/en/Reference/SDCardNotes
* Inspect (check/test) MPK data read:
* https://github.com/bryc/mempak
* https://rawgit.com/bryc/mempak/master/index.html
*
* Pinout:
* https://github.com/sanni/cartreader/issues/16#issuecomment-383758731
* N64 - view on controller connector:
* _____
* / \ 1: GND -> Arduino GND
* | 1 2 3 | 2: DATA -> Arduino Pin 2
* |_______| 3: VCC (3.3V) -> Arduino 3.3V
* (contacts start after about 5mm inside the hole)
* SD Card: 1: CS -> Arduino Pin 10
* 2: DI/MOSI -> Arduino Pin 11
* 3: VSS/GND -> Arduino GND
* 4: VDD/+3.3V -> Arduino 3.3V
* 5: SCK/CLK -> Arduino Pin 13
* 7: DO/MISO -> Arduino Pin 12
* Format: use https://github.com/greiman/SdFat/blob/master/examples/SdFormatter/SdFormatter.ino
*
* Can also be used for reading WITHOUT SD Card:
* 1. uncomment "#define ENABLE_SD" below, then compile/upload the code to an Arduino Uno
* 2. $ sudo miniterm.py /dev/ttyACM0 | tee n64-controllerpak-01.log
* in the menu chose '0' to dump to console
* 3. open .log in text-editor (e.g. kate) and remove all lines except
* the ones containing the hex dump and store as it .hex - needs to be 1024 lines
* 4. $ xxd -r -p n64-controllerpak-01.hex n64-controllerpak-01.mpk
* 5. $ ls -la n64-controllerpak-01.mpk
* check size needs to be 32768 and compare the .hex with .mpk using e.g. mc
* finally inspect it on: https://rawgit.com/bryc/mempak/master/index.html
*
* Thanks to:
* Andrew Brown/Peter Den Hartog - N64 send/get functions
* Shaun Taylor - address/data CRC functions
*