Skip to content

How to update NET processor firmware (Neuron, Nano, etc.)

This guide shows you how to update your firmware on the NET processor, which is used on the Neuron Controller, Nano Controller, and the FAST Retro controllers. This guide uses the Neuron as an example, but the process is the same for a Nano Controller. (Just make sure you use the Nano firmware file for a Nano, etc.)

The firmware code itself is just a text file that you send to the FAST controller using terminal emulator software such as CoolTerm. Most likely you're familiar with CoolTerm, and how to connect to the proper port and processor. If not, check out the getting started guide for the Neuron Controller or the Nano Controller for details.

The NET processor firmware also includes the firmware for the I/O boards. That process is covered further down on this page.

Only update your firmware if you bought your boards from FAST Pinball directly

These instructions are only for people who bought their FAST Pinball boards directly from FAST Pinball. If you have a FAST Pinball board that was part of a machine or conversion kit you bought from another company, then their update process will update the firmware if it's needed. If you update the firmware directly on your own then there's a chance you'll update to a version that doesn't work with their code and it might be difficult to roll it back.

  1. Before you connect to the FAST controller via CoolTerm, you'll need to change a couple of options in order to send the file. Click the "Options" button in the CoolTerm menu bar, then click on the Transmit page.

    • Check the box for Use transmit line delay
    • Set Delay (ms): to 200
    • Set Delay characters (hex): to 0D (Note that is a zero, not the letter O)
    • (Nano Only) On the "Serial Port" page, check the box for Flow Control: XON
    • Click OK and connect

    We've found a 200ms line delay to be sufficient, but if your updates are failing partway through you can try a larger line delay. It won’t hurt anything, it just makes the update process a bit slower.

    Transmit settings

  2. Send an ID: command to verify you're connected to the correct port for that processor. Here's an example using the Neuron Controller, NET processor, which is currently running firmware version 2.06:

    id:
    ID:NET FP-CPU-2000  02.06
    

    Note that if you have a Nano Controller, the model number returned by the ID: command might be FP-CPU-002 or FP-CPU-003. That's ok. There is only one firmware file for the Nano, and it's the FP-CPU-003_NET_x_xx_firmware.txt file.

  3. In CoolTerm, go to the Connection menu and select Send Text/Binary File...

    Send text file

    Browse to the firmware file you downloaded, select it, and click Open. The file will be sent to the processor.

    Select file

    Pro Tip: You can also drag and drop the file onto the CoolTerm window

    If you prefer, you can also drag and drop the firmware file onto the CoolTerm window.

    CoolTerm will show the progress of the file transfer, and lots of text will scroll by in the terminal window.

    Alt text

    Pro Tip: You can disable local echo in the Options screen

    If you don't want to see the contents of the firmware file scroll by in the terminal window, you can disable local echo in the Options screen. This can make it easier to see any errors since they might get lost otherwise. Click the Options button in the CoolTerm menu bar, then click on the Terminal page. Uncheck the box for Local echo and click OK.

    When the file transfer is complete, the processor will reboot and you'll see messages in CoolTerm something like this. (The exact messages will vary. In this example using the Neuron, the !B:02 message indicates the controller is up and running after the reboot.)

    Alt text

  4. Verify the new version by sending an id: command. (We like to hit Enter a few times to verify we're talking to the board. That's what those XX:F messages are in the image below.)

    Alt text

That's it! You're NET processor is up to date. Next you should verify the firmware on your I/O boards is up to date.

How to update your I/O board firmware

The FAST I/O boards have firmware on them too. The firmware for them is included in the NET processor firmware, so updating I/O boards is as simple as running a command which tells the controller to update the connected boards. Here's the walkthrough of how to do it for a Neuron Controller, but the process is the same for a Nano.

  1. Not every NET firmware version change includes new I/O board firmware. So first check the firmware page to see what the latest I/O board firmware is. Then, in coolterm, send a cn: command to see what version of firmware is on your I/O boards. Here's an example with a single 3208 attached, but you'll see an entry for each I/O board if you have more than one connected:

    cn:
    
    Nodes Configuration:
        ID Health   = FFFF
      Packet Health = FFFF
    Node  Name             Ver   SW DR Node Serial Number
    NN:00 FP-I/O-3208-3    1.09  20 08 E4C60AED514E544A34202020FF13360F
    

    (The SW and DR values are in hex, so 20 is actually 32 in decimal for the 3208 in the example above.)

    In this example, we see that this 3208 is running firmware version 1.09, and the firmware page (at the time of this writing) shows that 1.10 is the latest firmware, so we need to run a command to update it.

  2. Send the command bn:aa55. This tells the controller to update the firmware on all connected I/O boards. You will not see much output in the terminal window, (the Neuron will only respond with a !S:E0 for example).

    bn:aa55
    !S:E0
    

    After a second or two, the LEDs on the I/O boards should flash in a way that tells you it's being updated, with a quick flashing between the two outer LEDs, then the middle one, like this on quick repeat:

    🟢⚫🟢

    ⚫🟢⚫

    You'll see this happen on all the connected I/O boards at the same time.

  3. When the flashing stops, that means the I/O boards have been updated. You can send a cn: command again to verify the firmware version. In this example, we see that the firmware version is now 1.10:

    cn:
    
    Nodes Configuration:
        ID Health   = C340
      Packet Health = FC1D
    Node  Name             Ver   SW DR Node Serial Number
    NN:00 FP-I/O-3208-3    1.10  20 08 E4C60AED514E544A34202020FF13360F
    

    You might notice that the health values are not FFFF. This is fine, since the I/O boards rebooted after the firmware update, and the health values are computed over time. If you send a cn: command again, you'll should see the values increase, and after about 10 seconds or so they should both be FFFF again.

What happens if one of the I/O boards doesn't update?

Sometimes the firmware update process doesn't update every board. That's fine. Just run the bn:aa55 command again. There is no harm in running it multiple times. Wait until you see health values of FFFF before running it.

N or > jump the next page, P or < for previous, search with S or ?