Updating NESRGB4 MCU firmware

There are two versions of FPGA firmware. Boards with the date code on the silkscreen 2238 all have V2 FPGA firmware. Boards with the earlier date code 2231 almost all have V1 FPGA firmware except for a small amount which have "V2" written on the FPGA (the big 144 pin Lattice chip) itself.

FPGA firmware is not reprogrammable. MCU firmware is.

FPGA firmware V1

Version 1.0 MCU firmware contains two bugs.

NESRGB kits shipped between 22nd and 25th of August have version 1.0 firmware loaded.

Version 1.1 corrects both of these bugs.

FPGA firmware V2

Version 2.0 firmware contains a bug that causes it try to set the palette at power up before the FPGA is ready. This causes some boards to power up in the disabled state.

Version 2.1 corrects this by waiting an additonal 2ms for the FPGA to come up.

How to update

The microcontroller can be updated via its serial bootloader. Locate the serial port header. The pins are as follows (they are also labelled on the back of the board).

  1. +5V
  2. Ground
  3. TX
  4. RX
  5. PRG# (connect to ground)

The PRG# pin is connected to ground to enable the bootloader. I recommend connecting it through a 1k resistor, this prevents damage to the board if the serial port header is accidentally connected backwards.



A USB to TTL to serial adapter and Windows PC is required.

A short 2.54mm pin strip makes it convenient to connect the serial port wires.



The RX and TX pins must be swapped around. That is, the RX pin on the USB to TTL serial adapter must be connected to the TX pin on the NESRGB board and vice versa.



Downloads
NESRGB MCU update tool V1.1
NESRGB MCU update tool V2.0
NESRGB MCU update tool V2.1




Procedure for updating the NESRGB board, powered from the USB to TTL serial adapter.
  1. Plug the USB to TTL serial adapter into the PC and install the driver if necessary.
  2. Run the NESRGB4 MCU update tool.
  3. Select the your USB to TTL serial adapter device from the COM port list. If you don't know which one it is, unplug it and see which one disappears from the list.
  4. Connect ground (GND), TX and RX wires to the NESRGB board (RX and TX must be swapped).
  5. Click the download button. The tool will report "Checking target MCU ... "
  6. Connect the +5V wire to NESRGB board to power it and the updating process will start automatically. Normally it takes about two seconds to complete.

Procedure for updating the NESRGB board, which is already installed in a console.

Change Log
8/12/2022 - Added V2.0, V2.1 MCU firmware and bug description.
31/8/2022 - Page created.