WM2000 Programmable Wireless IIoT Module
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 (TIDE) and a dedicated programming platform that covers all of the module's hardware facilities.
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 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
- Stores up to two compiled Tibbo BASIC/C binaries (apps)(1)
- A Device Configuration Block (DCB)(2) defines which of the two apps normally runs on power-up
- Forced launch of APP0 through the MD line
- Built-in Wi-Fi (802.11a/b/g/n) interface
- TLS1.2 with RSA-2048 cryptosystem(3)
- Optional "autoconnect" — automatic association with a designated Wi-Fi network as defined by the DCB(2)
- Optional debugging of Tibbo BASIC/C applications via the Wi-Fi interface(4)
- Built-in Bluetooth Low Energy (BLE 4.2) interface
- Can access the DCB via the new BLE console(2)
- 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 port(5)
- Ten general-purpose I/O lines
- Two lines can work as interrupts
- Nine lines can provide pulse-width modulation (PWM) output
- Three lines can function as ADC inputs
- Support for externally connected matrix and binary output keypads
- RTC with a dedicated backup power input(6)
- Only 30µA power draw on the backup power input(7)
- 58KB SRAM for Tibbo BASIC/C variables and data
- 4MB flash for code storage
- Monitor/Loader, TiOS, and the DCB(2) occupy a combined 2,408KB
- 1,688KB available for storing up to two app binaries — APP0 and APP1(1)
- Additional 4MB flash for the hardened fault-tolerant file system
- 2048-byte EEPROM for data storage
- Three onboard status LEDs and control lines for external status LEDs
- Green and red main status LEDs/lines
- Yellow Wi-Fi/BLE link LED/line
- Reliable power-on reset (no brown-out detection)
- Active power: 150mA @ 3.3V (Wi-Fi on and scanning)
- Provisions for a deep power-down "sleep" mode
- Dimensions (L x W x H): 45.1 x 28.15 x 3.5mm
- Prototyping-friendly 2.54mm (100mil) pin pitch
- Operating temperature range: –40°C to +85°C
- Firmware and compiled Tibbo BASIC/C apps can be uploaded via:
- Serial port
- Wi-Fi interface
- Bluetooth Low Energy (BLE) interface
- Tibbo BASIC/C applications can be debugged via the Wi-Fi interface(4) or a serial port(5)
- Supplied with a companion app preloaded as APP0
Notes:
- 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.
- 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.
- TLS is supported on a single outgoing TCP connection.
- 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.
- 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.
- 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.
- The power draw on the backup power input can vary up to ±15% depending on the configuration of the attached hardware.
Programming features
The WM2000 runs Tibbo OS (TiOS). The following is a list of the features supported by its programming platform:
- Objects:
- adc — provides access to three ADC channels
- beep — generates buzzer patterns(1)
- bt — in charge of the BLE (Bluetooth Low Energy) interface(1)
- button — monitors the MD (setup) line
- fd — manages the flash memory file system and direct sector access(1)
- 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 channels(1)
- 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 TLS(2)
- ssi — controls serial synchronous interface channels (SPI, I²C)
- stor — provides access to the EEPROM
- sys — in charge of general device functionality(1)
- wln — handles the Wi-Fi interface(1)
- 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
Notes:
- These platform objects are either new or have new features (as compared to the EM2000).
- TLS1.2 with RSA-2048 cryptosystem, supported on a single outgoing TCP connection.