WM2000 Programmable Wireless IIoT Module

wm2000

Introduction

The WM2000 is the first programmable wireless IIoT module offered by Tibbo. The device incorporates Wi-Fi and Bluetooth Low Energy (BLE) interfaces that introduce several new features, such as Wi-Fi auto-connects (automatic association), wireless debugging, over-the-air (OTA) updates, and Transport Layer Security (TLS).

The WM2000's hardware incorporates two high-speed serial ports. It also features software I²C/SPI ports, onboard flash and EEPROM, a real-time clock, and ten GPIO lines, two of which work as external interrupts. Nine lines can be configured to provide Pulse-width Modulation (PWM) output.

The WM2000 is fully supported by Tibbo IDE software and a dedicated WM2000 platform that covers all of the module's hardware facilities (see the TIDE, TiOS, Tibbo BASIC, and Tibbo C Manual).

Dual Tibbo BASIC/C apps

The WM2000 is the first Tibbo device that can store up to two compiled Tibbo BASIC/C binaries — "APP0" and "APP1" (only one can run at any given time).  

All our earlier products store a single app that can take up all of the flash space not occupied by the Monitor/Loader (M/L) and TiOS. The WM2000 — which has at least four times the flash storage of any predecessor — allows you to store the second app — APP1 — in the space left over from the M/L, TiOS, and APP0.

A Device Configuration Block (DCB) stored in the flash memory allows you to define which of the two apps runs when the WM2000 is powered up or reboots (there is also an override through the MD line that forces execution of APP0). We have provided a convenient web app called BLE Terminal to interface with a new BLE console, allowing you to access the DCB.

Tibbo BASIC/C applications can work with the DCB through a provided API (new properties and methods of several objects). Specifically, your APP0 and APP1 can read and write DCB data, as well as switch between each other.

Tibbo envisions APP0 playing the role of a "secondary Monitor/Loader" and APP1 implementing the main functionality of WM2000-based products. For example, this "secondary M/L" could provide avenues for configuring the product's settings, updating its code from the cloud, or performing other management functions. To this end, we have developed a "companion" application that ships with the WM2000 as APP0. This companion app allows users to view and alter the device's configuration through the L.U.I.S. smartphone app (available on iOS and Android). As this companion app was written in Tibbo BASIC, our customers can alter its code to suit their needs.

Simplified Wi-Fi connectivity

The WM2000's platform features a significantly improved wln. object (see the TIDE, TiOS, Tibbo BASIC, and Tibbo C Manual) supporting automatic association with a designated wireless network. This makes the WM2000's Wi-Fi interface as easy to use as the Ethernet port on "wired-first" Tibbo devices. Set the target Wi-FI network's SSID and password, enable "autoconnect," and the WM2000 will automatically associate with the network and keep associated when in range! This also enables the wireless debugging of your Tibbo BASIC/C apps.

All parameters related to automatic Wi-Fi association are stored in the DCB and can be configured via the BLE console or through Tibbo BASIC/C code. The companion app that ships with the module also allows for configuration of the Wi-Fi interface.

Hardware features

  • 32-bit architecture
  • Powered by Tibbo OS (TiOS)
  • Stores up to two compiled Tibbo BASIC/C binaries (apps)1
  • Built-in Wi-Fi (802.11a/b/g/n) interface
    • TLS1.2 with RSA-2048 cryptosystem3
    • Optional "autoconnect" — automatic association with a designated Wi-Fi network as defined by the DCB2
    • Optional debugging of Tibbo BASIC/C applications via Wi-Fi interface4
  • Built-in Bluetooth Low Energy (BLE 4.2) interface
    • Can access the DCB via the new BLE console2
  • Two high-speed serial ports (CMOS-level)
    • Baud rates of up to 921,600bps
    • None/even/odd/mark/space parity modes
    • 7/8 bits/character
    • Full-duplex mode with RTS/CTS and XON/XOFF flow control
    • Half-duplex mode with direction control
    • Encoding and decoding of Wiegand and clock/data streams
    • One of the ports can function as a serial debugging port5
  • Ten general-purpose I/O lines

Notes:

  1. Although two independent Tibbo BASIC/C compiled binaries (apps) can be stored in the WM2000's flash memory, only one can run at a time.
  2. Several of the WM2000's configuration parameters are stored in the DCB, which is accessible via the BLE console. Our BLE Terminal web app leverages the Web Bluetooth API (compatible with the Chrome, Chromium, Edge, and Opera web browsers) to connect to the WM2000's BLE console. Configuration parameters can also be read and set through Tibbo BASIC/C code.
  3. TLS is supported on a single outgoing TCP connection.
  4. To enable Wi-Fi debugging, you must turn on autoconnect — automatic association with a designated Wi-Fi network. This can be accomplished via the BLE console, the companion app, or in code.
  5. Only one serial port is available to Tibbo BASIC/C apps when in serial debug mode. If you need to use both serial ports, use Wi-Fi debugging instead. The debug mode can be selected via the M/L console or the companion app.
  6. For normal module operation, RTC power must be connected at all times. If there's no backup battery, connect the backup power input to VCC. The backup power input draws power even when the module is active.
  7. The power draw on the backup power input can vary up to ±15 percent depending on the configuration of the attached hardware.

Programming features

  • Platform objects:
    • adc — provides access to three ADC channels
    • beep — generates buzzer patterns1
    • bt — in charge of the BLE (Bluetooth Low Energy) interface1
    • button — monitors the MD (setup) line
    • fd — manages the flash memory file system and direct sector access1
    • io — handles I/O lines, ports, and interrupts
    • kp — works with matrix and binary keypads
    • pat — "plays" patterns on up to five LED pairs
    • ppp — accesses the Internet over a serial modem (GPRS, etc.)
    • pwm — handles pulse-width modulation channels1
    • romfile — facilitates access to resource files (fixed data)
    • rtc — keeps track of date and time
    • ser — controls the serial ports (UART, Wiegand, clock/data modes)1
    • sock — socket comms (up to 32 UDP, TCP, and HTTP sessions) and support for TLS2
    • ssi — controls serial synchronous interface channels (SPI, I²C)
    • stor — provides access to the EEPROM
    • sys — in charge of general device functionality1
    • wln — handles the Wi-Fi interface1

Notes:

  1. These platform objects are either new or have new features (as compared to the EM2000).
  2. TLS1.2 with RSA-2048 cryptosystem, supported on a single outgoing TCP connection.
  • Function groups: String functions, trigonometric functions, date/time conversion functions, encryption/hash calculation functions, and more
  • Variable Types: Byte, char, integer (word), short, dword, long, real, and string, as well as user-defined arrays and structures