Updating Firmware without an Internet Connection

In order for the Updater to retrieve a firmware image from the Acroname servers, a connection to the public internet is required. However, in certain circumstances, a BrainStem device may be used on a system which is unable to access the external internet. In this case, some additional steps are necessary to retrieve the required firmware image for a product.

Using your computer’s operating systems terminal interface, navigate to the “Bin” folder located in the Brainstem Dev Kit download. Downloads for all of Acroname’s products can be found at Download Center under the Support tab.

Make sure your device is connected and has power. Refer to the Getting Started page for additional information.

Retrieve the Serial Number for the device to be updated

This command will check for USB devices connected to your machine:

$> ./Updater -D

Looking at the output below you can see that two devices were discovered, one USBHub3+ and one USBHub3c. In this example we will be using the USBHub3c information. This information will be handy in the next step as we will need the serial number of our device in order to update it.

Updater (Version: 2.10.1 Sep 28 2023)
Searching for BrainStem devices
Discovered Devices: (USB)
    Device    Module   Router  Model          Firmware Version (Build)
    3C43352C  06       06      USBHub3c       2.10.2 (1234567890)
    F7D9AFB6  06       06      USBHub3p       2.10.2 (4101717688)

Getting the latest firmware from Acroname’s servers

Using the serial number for the relevant device above, we will construct the following command. The “-G” will pull the most recent firmware from Acroname’s server for the given device serial number (“-d”).

$> ./Updater -G -d 0x3C43352C
Updater (Version: 2.10.1 Sep 28 2023)
Retrieving firmware for device with serial number 3C43352C
No build specified
Using Latest build
Retrieving build 1256480617
Validating build 1256480617 with server
Build 1256480617 is valid

The firmware files will be stored in a hidden directory in the user’s home directory:

  1. Windows: \Users\<username>\.acroname\updater\<serial number>\

  2. Mac/Linux: ~/.acroname/updater/<serial number>/

The directory for each serial number will have at least one <build number>.bird file; these files are the firmware image to be flashed onto the device. The build number in the filename corresponds to the build number in the output of the Updater command.

These files can be copied to the offline computer that is attached to the device that is to be updated.

Note

The downloaded firmware files are specific to one serial number; a .bird file that was downloaded for one serial number cannot be installed onto a different device.

Loading the firmware files

After the firmware files for the hub to be updated are copied to the offline host computer, the following command will apply the firmware file to the given device.

$> ./Updater -U -d 0x3C43352C -f <path to .bird file>
Updater (Version: 2.10.1 Sep 28 2023)
Updating from Birdfile: /Users/cgoss/.acroname/updater/3C43352C/1256480617.bird
Transferring loader to device
Transferring loader block 1 of 3, 65540 bytes
Transferring loader block 2 of 3, 50068 bytes
Transferring loader block 3 of 3, 12288 bytes
Transferred 3 blocks, 127896 total bytes
Starting Load on Device
Transferring firmware block 1 of 20, 65540 bytes
Transferring firmware block 2 of 20, 65540 bytes
Transferring firmware block 3 of 20, 65540 bytes
Transferring firmware block 4 of 20, 65540 bytes
Transferring firmware block 5 of 20, 65540 bytes
Transferring firmware block 6 of 20, 65540 bytes
Transferring firmware block 7 of 20, 65540 bytes
Transferring firmware block 8 of 20, 49268 bytes
Transferring firmware block 9 of 20, 57348 bytes
Transferring firmware block 10 of 20, 65540 bytes
Transferring firmware block 11 of 20, 65540 bytes
Transferring firmware block 12 of 20, 65540 bytes
Transferring firmware block 13 of 20, 65540 bytes
Transferring firmware block 14 of 20, 65540 bytes
Transferring firmware block 15 of 20, 65540 bytes
Transferring firmware block 16 of 20, 49268 bytes
Transferring firmware block 17 of 20, 3924 bytes
Transferring firmware block 18 of 20, 3924 bytes
Transferring firmware block 19 of 20, 4104 bytes
Transferring firmware block 20 of 20, 8 bytes
Transferred 20 blocks, 1019864 total bytes
Update time: 57.5460 sec

At this point the firmware has been downloaded to the device and the device has reset and is running with the new firmware.