Pad controller updates
The CrossPad has a second chip, the pad controller (an STM32). It reads the pads, watches the power button, runs the charger and drives the screen backlight and the two status LEDs. The pad lights belong to the main processor. Each CrossPad firmware carries the pad controller firmware it was written for, so an update of the main firmware brings the matching pad controller with it. The main processor installs it over the link between the two chips: no programmer and no computer needed.
When it updates
Section titled “When it updates”- At every start the CrossPad compares the pad controller’s version with the one it carries.
- It offers an update when the carried version is newer, or when it speaks a different protocol to the main processor. It never installs an older version, so a switch to an older firmware leaves the pad controller as it is.
- A pad controller firmware built for another board revision is never offered.
- The CrossPad asks first, once the MODE map shows: Update or Later. Later asks again at the next start.
- With less than 20 % battery and no charger, it leaves the update for later: plug in the charger and restart.
- Settings → Programming shows the running and the carried version. It offers Update for a newer version, and Reflash to write the same version again.
The steps and the messages on the screen are in Updates.
How it writes
Section titled “How it writes”- The update takes about 15 s. The pads are off meanwhile, and their lights show the progress, so a CrossPad lying face down still tells you where it is.
- The pad controller programs itself from a small flasher that runs from its RAM. It checks the whole image before it completes the update, and it writes the first page of its flash last.
- An update that is interrupted therefore leaves the pad controller in its built-in USB update mode (DFU). From there Flash the STM32 writes it over a USB cable, and the screen offers Retry.
For app authors
Section titled “For app authors”The pad controller’s version and protocol show in Settings → Info. An app talks to the pads through the SDK, not to the STM32 directly: see Hardware for apps.