1
0
mirror of https://github.com/kalymos/PsNee.git synced 2026-04-28 12:48:29 +00:00
55
Personal recipe to make a good PSNee
kalymos edited this page 2026-04-19 19:00:52 +02:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This method allows you to cover all the possibilities offered by PSNee

List of equipment

  • Arduino board (e.g., Nano or Uno) to act as the ISP programmer
  • Your target device to become the modchip (e.g., Nano Pro, ATtiny)
  • A soldering iron (the TS_100, found in most Chinese stores, is a good compromise)
  • A little soldering wire
  • And thin cable (awg26-30)
  • BIOS dumper if you want to install it on an old Japanese console

Part 1:

Install the Arduino IDE

Installing the Arduino IDE 2.x provides the necessary environment for the project, with the official tutorial serving as a key resource. The project, which utilizes ATmega 168 microcontrollers, is currently focused on the code injection phase.

https://docs.arduino.cc/software/ide-v2/tutorials/getting-started/ide-v2-downloading-and-installing/

Part 2:

Add a board with the Boards Manager

This step is necessary for ATtinyX5 with ATTinyCore, and ATmega 168/328PB with MiniCore. I generally recommend using these cores as they provide more options and better performance.

These cores can be installed using the boards manager by following these steps:

For MiniCore

  • https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json
  1. File->Preferences on a PC, or Arduino->Preferences on a Mac, enter the above URL in "Additional Boards Manager URLs
  2. Tools -> Boards -> Boards Manager...
  3. Search for and select "MiniCore by MCUdude" or "ATTinyCore by Spence Konde", then click "Install".

For more details, visit the [Arduino support page] (https://support.arduino.cc/hc/en-us/articles/360016119519-Add-boards-to-Arduino-IDE)

Part 3:

  • Connect your board
  • File -> example -> 01. Basic -> blink
  • Tools -> Board -> Select the Core related to your target -> your board (programmer)
  • Tools -> port -> select your boards port (programmer)
  • Tools -> Processor -> your variant (programmer)
  • Tools -> programmer -> Your card's programmer
  • Sketch -> upload

For ATmega32U4 you can use this diagram, and modify the Blink sketch accordingly (Unlike normal Arduinos, these platforms do not have LED_BUILTIN and you have to add one)

  • Tools -> Board -> Arduino AVR Board -> Arduino Yũn (The corresponding core for ATmega32U4)
  • ATmega32U4 LED_BUILTIN -> PIN 10

Part 4:

Convert an Arduino into an ISP programmer

  • File -> example -> 11.ArduinoISP -> ArduinoISP
  • Sketch -> upload

https://docs.arduino.cc/built-in-examples/arduino-isp/ArduinoISP/

Part 5:

Connect your Arduino board or the MCU you want to use as a modchip, to your ISP programmer that you just created, following the schematics.

Here the bling test is less necessary with MiniCore, at the end of the injection it checks that the program has been injected correctly.

Arduino_ISP_wires

Check if your ISP programmer can correctly inject the code into your target, by running the Blink test again:

  • File -> example -> 01. Basic -> blink
  • Tools -> Board -> Select the Core related to your target -> your MCU for the modchip (target)
  • Tools -> Processor -> your MCU variant for the modchip (target)
  • Tools -> port -> the port of ISP programmer
  • Tools -> programmer -> Arduino as ISP
  • Sketch -> upload using a programmer

Normally your target should flash
blink-ISP
For ATtiny, and ATmega32U4 you can use this diagram, and modify the Blink sketch accordingly (Unlike normal Arduinos, these platforms do not have LED_BUILTIN and you have to add one)

  • ATtiny LED_BUILTIN -> PIN 3
  • ATmega32U4 LED_BUILTIN -> PIN 10

Troubleshooting (Common Errors)

  1. Error: avrdude: stk500_getsync() attempt X of 10: not in sync

    • Check your connections: A jumper wire might be loose.
    • Capacitor: If you are using an Arduino Uno as the programmer, you might need a 10µF capacitor between the Reset and GND pins of the programmer (after uploading the ArduinoISP sketch).
    • Wrong Port: Verify in Tools -> Port that you have selected the port of your programmer.
  2. Error: avrdude: Yikes! Invalid device signature.

    • Target Power: Ensure your target MCU is correctly powered by the 5V (or 3.3V) and GND pins of the programmer.
    • Wrong Board selected: Double-check that you selected the correct target MCU in Tools -> Board (e.g., ATtiny85 vs ATtiny45).
  3. The LED doesn't blink (Blink test)

    • Polarity: Check if your LED is connected in the right direction (Long leg is +).
    • Wrong Pin: Ensure you modified the sketch for ATtiny (Pin 3) or ATmega32U4 (Pin 10) as mentioned above.

Part 6:

Selecting options in the sketch.

  • Select the PSNee.ino file.
  • Choose your target console in the first section, "CONSOLE MODEL SELECTION" by uncommenting the appropriate line.
  • //#define SCPH_102 -> #define SCPH_102, for example.

To determine your BIOS version, use the BIOS dumper.

Part 7:

Compile and inject the program.

  • Sketch -> upload using a programmer

Your PSNee should now be ready to install in your PlayStation.

Part 8:

Install your PSNee in your console following the schematics available in the Wiki.

If your console does not require a BIOS patch, ignore the AX, AY, DX, and RESET pins.
If your console requires a BIOS patch, follow the BIOS pin diagram for the AX, AY, and DX pins.
AY pin is only needed on machines with BIOS V1.0j or V1.1j, SCPH-1000 SCPH-3000.

LED activities during boot with BIOS patch:
boot-BIOS
Now you can enjoy your delicious pancakes hot off the burner on your PS1 ;P