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.
-
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):
to200
- Set
Delay characters (hex):
to0D
(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.
- Check the box for
-
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 beFP-CPU-002
orFP-CPU-003
. That's ok. There is only one firmware file for the Nano, and it's theFP-CPU-003_NET_x_xx_firmware.txt
file. -
In CoolTerm, go to the
Connection
menu and selectSend Text/Binary File...
Browse to the firmware file you downloaded, select it, and click
Open
. The file will be sent to the processor.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.
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 theTerminal
page. Uncheck the box forLocal echo
and clickOK
.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.) -
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 thoseXX:F
messages are in the image below.)
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.
-
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
andDR
values are in hex, so20
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 that1.10
is the latest firmware, so we need to run a command to update it. -
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.
-
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 now1.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 acn:
command again, you'll should see the values increase, and after about 10 seconds or so they should both beFFFF
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 ?