Monitor/Loader (M/L)

The Monitor/Loader (M/L) is resident firmware that is present on all Tibbo devices.

The M/L is launched every time a Tibbo device powers up, reboots, or is released from reset. What happens next depends on whether the MD button is pressed (MD line held LOW) when the M/L starts running. On M/L V4 or later, how long the button is pressed for also matters.

All programmable Tibbo devices except the WM2000

If the MD button is not pressed, the M/L verifies the sanity of and launches Tibbo OS (TiOS), the main firmware powering our Tibbo BASIC/C programmable devices. TiOS then verifies your compiled Tibbo BASIC/C application. If the app is valid and compiled for release, TiOS starts the app's execution. If the app is compiled for debugging, it must be started manually from Tibbo IDE (TIDE).

If the MD button is pressed, the M/L enters the firmware update mode. Either just the TiOS firmware or TiOS firmware combined with your compiled Tibbo BASIC/C application binary can be uploaded in this mode. The following upload methods are supported:

Updates performed via the M/L should not be confused with updates performed from within TiOS itself. The difference is that to perform an update from within TiOS, your device must already be running a healthy version of TiOS. If your device is "bricked" (for example, because an incorrect TiOS firmware file was uploaded into it), then the only way to "unbrick" it is by using the update function of the M/L.

For details on M/L behavior, see this flowchart.

The WM2000

The WM2000 introduced M/L V4, which took on additional responsibilities related to the expanded functionality of the WM2000.

First, M/L V4 now allows you to access (read or write) and initialize the Device Configuration Block (DCB) — an area of the WM2000's flash storing the device's configuration parameters. Parameters can be accessed via a new BLE console and initialized (reset) using the MD button.

Second, as the WM2000 can store two compiled Tibbo BASIC/C application binaries referred to as APP0 and APP1, the M/L is now responsible for determining which of the apps is launched at boot. Normally, this is defined by a parameter stored in the DCB, but the MD button can also be used to override this parameter and force-select APP0.

M/L V4 supports the following upload methods:

For details on M/L V4 behavior, see this flowchart.

Status LEDs

The M/L makes extensive use of the status LEDs found on all Tibbo devices. Observe the patterns displayed by these LEDs to see what your Tibbo device is doing.