Skip to content
Drasko DRASKOVIC edited this page Mar 15, 2015 · 13 revisions

WeIO Recovery - Manual Update

Sometimes we might find ourselves with unusable board. This can be for several reasons:

  • Update that did not finished correctly
  • Some installations that broke something into the system
  • ...

In order to recover WeIO board to working version, we implemented mechanism of WeIO Recovery.

This mechanism takes WeIO FW in binary form from external storage and replaces (destructivly) all current SW on WeIO with it.

N.B. Back up all your projects before executing WeIO Recovery

Procedure is following:

  • Get weio_recovery.bin from latest release (for example here: https://github.com/nodesign/weio/releases/tag/v1.0)
  • Put this binary on SD card or USB key
  • Unplug power from WeIO
  • Plug SD card / USBkey to WeIO
  • Press and hold SOFT RESET button on WeIO
  • Plug power to WeIO while keeping the SOFT RESET button pressed
  • You will see STA led blink 3 times
  • After this you can release the button and wait until update process is finished
  • You will see new Linux booting and blinking the LEDs
  • When only AP led is lit - boot is finished and WeIO is up

N.B. currently there is bug in the WeIO that demands one reboot after WeIO Recovery for WeIO to function correctly.

To explain a bit this procedure for the people who would like to know how this works:

  • There is a U-Boot booatloader (http://www.denx.de/wiki/U-Boot) on the board that loads Linux from NOR flash (internal non-volatile memory of the Carambola 2 HW module on WeIO board) in the normal case.
  • In the special case (when SOFT RESET button is held on power-on) U-Boot will scan all external storage for the binary named weio_recovery.bin
  • If this bianry is found, it will load it in RAM from external storage, then erase current system from internal flash and then write new form RAM into the flash
  • Then u-boot will reset the board and boot in the normal way, loading Linux from flash - but this time there will be new system image (this one that was just written previously)