STICKER Quick Start Guide
This page helps you power up, provision, and activate your STICKER device and connect it to your preferred LoRaWAN Network Server (ChirpStack, The Things Stack, or custom backend).
Before You Start
What STICKER Is
STICKER is an open IoT platform based on the STM32WL SoC with integrated LoRaWAN connectivity and software-selectable proprietary LoRa P2P mode. It is a compact, battery-powered sensor platform built on Zephyr RTOS, running catalog applications like STICKER Clime, Input, and Motion.
For technical details, see the Hardware Description.
You Will Need
- STICKER device (Clime / Input / Motion variant)
- 2× AA batteries (1.5V alkaline or lithium)
- A LoRaWAN Gateway within range
- A LoRaWAN Network Server (ChirpStack / TTS / custom LNS)
- A smartphone with NFC and the HARDWARIO Manager app installed
Useful Links
- NFC Mobile App Guide: HARDWARIO Manager
- STICKER Decoder for firmware v2.0.0: ttn.js on GitHub. The v2.0.0 payload format differs from v1.4.x, so a fleet that mixes both versions must pick the decoder by the firmware version the device reports in its Device Info, not by the payload
- HARDWARIO Datasheets Hub: hardwario.com/resources/datasheets
Step 1: Identify Your STICKER Variant
STICKER comes pre-flashed with one of the catalog applications:
- STICKER Clime: Temperature, humidity, light & barometric pressure monitoring.
Documentation → - STICKER Input: External sensors (1-Wire, Machine Probe) and two external inputs, each set as a digital, 0–24 V analog or S0 pulse input (
cap-gpio-mode,cap-gpio-input-a/cap-gpio-input-b).
Documentation → - STICKER Motion: Ultra-low-power PIR motion detection and 3-axis acceleration tracking.
Documentation →
Step 2: Power Up & Understand Factory Defaults (v1.4.0+)
- Open the enclosure and insert two AA batteries according to the polarity markings.
- Observe the LED Boot Sequence: Red (0.5 s) → Yellow (0.5 s) → Green (1.5 s).
Starting with firmware v1.4.0, STICKER ships with the radio switched off (radio-mode disabled) to prevent battery drain during shipping. The device will not attempt a LoRaWAN Join when the batteries go in. It stays silent until it is activated over NFC in Step 3.
- Status LED Indication: After boot, the LED will flash 1× Yellow every 3 seconds, indicating that the device is running normally but the radio is switched off.
Step 3: Configure & Activate via NFC
STICKER is configured by holding the phone against it, with no cable, no programmer, no desktop software. One tap does a full read or write: hold the phone still until the exchange ends.
Since firmware v2.0.0 every NFC command goes through the mailbox of the NFC chip, which only works while the device runs. Insert the batteries first. A device with no batteries, or with a dead battery, reads as a blank tag.
Start with the HARDWARIO Manager Quick Start Guide, which covers installing the app, switching NFC on, and making the first tap.
- Install the app and switch NFC on. STICKER is configured from an Android phone or an iPhone, the same way on both.
- Add the device to your saved STICKERs, so the app has its secret key, because STICKER answers configuration and key requests only over an encrypted channel.
- Read the keys. Open STICKER → LoRaWAN keys and tap the device. Note the DevEUI, JoinEUI (AppEUI) and AppKey for OTAA, or the DevAddr and session keys for ABP.
- Write the configuration. Open STICKER → Configuration, set the region, activation mode and keys in the LoRaWAN section, switch
radio-modeto LoRaWAN, then tap again to write it back.
Where each step is documented
| What you are doing | Guide |
|---|---|
| Installing the app and switching NFC on | Install the app |
| Holding the phone right (one tap, phone held still) | STICKER over NFC |
| Adding a device and its secret key | Saved STICKERs |
| Reading device info and LoRaWAN keys | Device info and LoRaWAN keys |
| Reading, editing and writing the configuration | Configuration |
| Giving a whole batch the same settings | Templates |
What the LED tells you after the tap
| LED | Meaning | What to do |
|---|---|---|
| Green and yellow for 2 seconds | The tap ended and its last exchange succeeded | Nothing. If the write needs a reboot, the boot sequence follows |
| Red for 2 seconds | The last exchange failed. The request was rejected before it ran (wrong secret key or token, a replayed or damaged frame; nothing is written then), or its reply did not reach the phone. A command the device answers with an error, for example a value out of range, still ends green and yellow; the app shows the error | Check the device is saved with the right secret key in Saved STICKERs, then tap again |
| Heartbeat changes from 1× yellow to yellow + red | The radio is on and the device is joining | Wait. A join can take several attempts |
| Heartbeat settles to 1× green | Joined. The device sends its Device Info payload, followed by a settings-info uplink with its key settings (both on fPort 85) | Nothing. The device is live |
Step 4: Register on your LoRaWAN Network Server
ChirpStack v4
- Register the device using the DevEUI, JoinEUI, and AppKey obtained via HARDWARIO Manager.
- Assign the STICKER payload decoder script.
- Follow the full setup guide: ChirpStack LNS Integration.
The Things Stack (TTS / TTN)
- Add a new end device using OTAA or ABP provisioning keys obtained via HARDWARIO Manager.
- Import the payload decoder.
- Follow the full setup guide: The Things Stack Integration.
Step 5: Post-Commissioning Verification
Once registered and connected:
- Verify Uplinks: Confirm that the initial Device Info uplink (firmware version, battery status, reset cause), the settings-info uplink that follows it, and regular sensor data packets arrive at your LNS dashboard. The device re-sends the Device Info and settings-info pair every
interval-announcehours (default 24 h), so the network keeps an up-to-date copy of its configuration. - Check LED Status: A single green flash every 3 seconds confirms that the device is joined, its link checks pass and no alarm is active.
- Adjust Schedules: Use NFC via HARDWARIO Manager or LoRaWAN Downlink commands (fPort 85) to fine-tune sampling and uplink intervals.
If using STICKER Input, review the terminal block and DIP switch instructions before connecting external probes: STICKER Input Wiring Guide.
Troubleshooting Checklist
The LED is the only feedback STICKER gives locally, so it is the fastest way to tell what a unit is doing. The tables below list every pattern in firmware v2.0.0. Most blinks are deliberately very short (5–10 ms) to save battery, so expect a blip rather than a comfortable blink. The full reference, with timings, is in LED Indication.
Status heartbeat – one pattern every 3 seconds
Only one pattern is ever shown. The firmware checks these conditions in order and the first match wins, so a more serious condition hides a less serious one.
| LED pattern | What it means | What to do |
|---|---|---|
| Red and yellow alternating, twice | Stored configuration could not be loaded. Identity and provisioning are gone, and the device is running on factory defaults | Re-apply the full configuration over NFC with HARDWARIO Manager; if it comes back, the unit needs service |
| 1× yellow, then 1× red ~200 ms later | Joining or rejoining and getting no answer from the network | Check gateway proximity, frequency plan / region, and that DevEUI, JoinEUI and AppKey match the network server |
| 2× yellow, ~200 ms apart | Link degraded. Link checks are failing, but the session is still alive | Check gateway coverage and antenna placement; the device recovers on its own once the link returns |
| 1× yellow | Radio switched off: radio-mode off (the factory default), radio-mode p2p on a device without its P2P keys (AppKey or DevEUI not set), or a LoRaWAN region this firmware image does not support | Write a LoRaWAN or P2P configuration with the radio enabled (Step 3) |
| 1× red | An alarm is active | Read the active alarms in Device info, then review the alarm rules |
| 1× green | Normal operation, joined and healthy | Nothing. This is the target state |
| Green, then yellow | The same, but the unit runs a debug firmware build | Expected on development units; flash a release build for deployment |
| Nothing at all | Either a debug unit is in deep sleep (all channels off; expected, not a fault), or the device has no power, or it switched itself off at power-up because the battery was below 1.8 V | If it is not sleeping, check battery polarity and replace the batteries |
During an NFC tap
While the phone is held against the device, the LED tracks the exchange step by step.
| LED | What it means | What to do |
|---|---|---|
| Green, solid (at most 5 s) | Phone detected in the NFC field, no session started yet | Keep the phone still |
| Green, blinking (~90 ms) | Session running: the phone and the device are exchanging commands | Keep the phone still |
| Green and yellow, 2 s | Session ended, the last exchange succeeded | Nothing |
| Red, 2 s | Session ended, the last exchange failed: the request was rejected before it ran (wrong secret key or vendor token, a replayed or damaged frame; nothing is written then), or its reply did not reach the phone | Check the device is saved with the right secret key, see Saved STICKERs, then tap again |
| Off | Exchange finished | Nothing |
The red result is worth knowing: without it, a failed exchange would look exactly like a successful one to whoever is holding the phone. A command that reboots the device (save, reset, reboot) shows its result first; the boot sequence follows. A command the device answers with an error (for example a value out of range) still ends green and yellow; the app shows the error.
Boot, inputs and calibration
| When | LED pattern | What it means |
|---|---|---|
| Power-up | Red 0.5 s → yellow 0.5 s → green 1.5 s (~3 s carousel) | Normal boot; it also proves all three channels work. The device keeps starting up while it plays, so it does not delay the boot. Seeing it unexpectedly means the device rebooted |
| Power-up with the battery below 1.8 V | Carousel, then a red blink every 200 ms for 5 s, 1 s solid red, then off | The battery is depleted. The device switches itself off and stays off until the batteries are replaced or it is reset with NRST |
| Input becomes active | Green, then orange. 50 ms each | An input on STICKER Input, or a Hall sensor, switched on |
| Input returns to inactive | Orange, then green. 50 ms each | The same input switched off again |
| No input indication at all | (dark) | This commissioning aid switches itself off one hour after power-up; power-cycle the device to get it back while testing |
| Entering calibration | Five fast orange blinks | Calibration mode is starting |
| Calibration running | 1× orange every second | It runs for 120 minutes, then the device reboots on its own |
Problems the LED does not show
| Symptom | What to check |
|---|---|
| No uplinks at the network server, but the heartbeat is 1× green | The device is joined and running. Check that the uplink reaches your application, and that the payload decoder is assigned in ChirpStack or The Things Stack |
| Uplinks arrive but decode as raw bytes | The ttn.js codec is missing, or assigned to the wrong direction, see the setup guide for your network server |
| The phone never reads the device | Check that the device is powered: with no batteries, or with a dead battery, it reads as a blank tag. Then move the phone slowly around its NFC antenna (usually near the top back of the phone), and confirm NFC is switched on, see Install the app |
| Uplinks are too frequent or too sparse | Adjust the sample and report intervals over NFC, or with a downlink command on fPort 85 |