Troubleshooting startup issues
Normally you should update firmware by following these instructions.
However, sometimes something goes wrong and the module will not start up properly. In that case, there is a way to install updated firmware using a USB cable.
USB DFU Bootloader
-
Download the latest firmware release and unzip the it. Look inside the metamodule-firmware folder. You should see a file called main.uimg.
-
Connect a USB cable from a computer to the module. It must be a USB cable capable of transmitting data, not just a charging cable.
-
Power cycle the module while holding down the rotary encoder.
-
The button will be flashing green, this tells you that you are in USB-DFU bootloader mode
-
Open Chrome browser (other browsers will not work). Go to this web page: Web DFU
-
Click Connect, and then select “STM Device in DFU Mode”.
-
Click “Choose File” and select the main.uimg file you just downloaded.
-
Click “Download”.
-
Wait a couple minutes… it takes a while. There will be this error message:
DFU GETSTATUS failed: ControlTransferIn failed: NetworkError: Failed to execute 'controlTransferIn' on 'USBDevice': A transfer error has occurred.
This is normal, and is not a problem. It’s safe to ignore this. -
When the web page says it’s done, unplug the USB cable and power cycle the module
SD Card restore
This method is more involved, but is the only way to restore damaged bootloaders.
It requires an SD Card which will be formatted. The SD Card must be at least 2GB. We recommend using the SD Card included with your MetaModule.
-
Download the metamodule restore image zip file
-
Unzip the restore image. The resulting file should be should be exactly 2GB and called
metamodule-restore-v1.6.4.img
. -
Download Balena Etcher and install it according to the instructions for your OS.
-
Launch Etcher.
-
Insert the SD Card you want to format into your computer. All data on this card will be lost, so make sure to backup anything you need.
-
Click "Flash from File" and select the
metamodule-restore-v1.6.4.img
file you unzipped. -
Click "Select target" and pick the SD Card device. Double-check you selected the right device. ALL DATA WILL BE LOST ON THE DEVICE YOU PICK SO TRIPLE-CHECK YOU PICKED THE RIGHT ONE!
-
Click "Flash" to begin the process. It may take 20 minutes or more if you have a slow card.
-
When it's complete, power off the MetaModule and insert the SD Card.
-
Unscrew the MetaModule from your case and locate the small DIP switch labeled "BOOT0_2". It's located roughly under the rotary encoder, in the upper-left corner of the MetaModule (as viewed from the PCB side).
-
Carefully flip the bottom switch to the left. Now both the top and bottom switches should be in the left position.
-
Power up the MetaModule. The module will boot from the SD Card into firmware 1.6.4.
-
Go to
Settings > Update
on the MetaModule, and follow the update procedure normally. Make sure you still have the rescue SD Card inserted into the MetaModule, and that you don't have a USB drive inserted. The rescue SD Card contains a firmare update folder that has the bootloaders. Do not replace this with another version, or change it in any way. The goal of this step is to re-install the bootloaders from the rescue SD Card's into the MetaModule's internal memory. -
When the firmware update is complete, power off the MetaModule.
-
Remove the SD Card.
-
Flip the lower DIP switch back to the right. The top switch should be to the left and the bottom switch to the right.
-
Power on the MetaModule. It should boot into firmware v1.6.4, but this time it's booting from the internal memory, not from the SD Card.
-
Your MetaModule is now in fully working order. If there is a newer firmware available, you can download it from MetaModule Downloads and update normally.