SN50v3-CB -- NB-IoT/LTE-M Sensor Node User Manual
Table of Contents:
- 1. Introduction
- 2. Use SN50v3-CB to communicate with IoT Server
- 2.1 Send data to IoT server via NB-IoT network
- 2.2 Working Mode & Uplink Payload
- 2.2.1 CFGMOD=1 (Default Mode)
- 2.2.2 CFGMOD=2 (Distance Mode)
- 2.2.3 CFGMOD=3 (3 ADC + I2C)
- 2.2.4 CFGMOD=4 (3 x DS18B20)
- 2.2.5 CFGMOD=5 (Weight Measurement by HX711)
- 2.2.6 CFGMOD=6 (Counting mode)
- 2.2.7 CFGMOD=7(3xADC + 3xDS18B20 mode)
- 2.2.8 CFGMOD=8(Three interrupts or three counting modes)
- 2.2.9 CFGMOD=9 (Count+SHT31 mode)
- 2.2.10 CFGMOD=10 (TMP117 Temperature Sensor Mode)
- 2.3 Payload Types
- 3. Configure SN50v3-CB
- 3.1 Configure Methods
- 3.2 Serial Access Password
- 3.3 AT Commands Set
- 3.4 Test Uplink and Change Update Interval
- 3.5 Set the working mode
- 3.6 Set the receiving time
- 3.7 Reset
- 3.8 +5V
- 3.9 Trggier an uplink by external interrupt
- 3.10 Set the QoS level
- 3.11 Clock logging
- 3.12 Set the TLS mode
- 3.13 Set GNSS open time
- 3.14 Turn on/off GPS
- 3.15 Set GPS positioning interval
- 3.16 Set the search network time
- 3.17 Set the IPv4 or IPv6
- 3.18 Configure Network Category to be Searched for under LTE RAT.
- 3.19 Factory data reset
- 3.20 Set CoAP option
- 3.21 Power on / power off BG95 module
- 3.22 Example Query saved historical records
- 3.23 Uplink log query
- 3.24 Get or Set Count value
- 4. Analogue Digital Converter (ADC)
- 5. Battery & Power Consumption
- 6. Firmware update
- 7. Get and compile Software
- 8. FAQ
- 9. Order Info
- 10. Packing Info
- 11. Support
- 12. FCC Warning
1. Introduction
1.1 What is SN50v3-CB NB-IoT/LTE-M Sensor Node
SN50v3-CB is a Long Range NB-IoT/LTE-M Sensor Node. It is designed to facilitate developers to quickly deploy industrial level NB-IoT/LTE-M solutions. It helps users to turn the idea into a practical application and make the Internet of Things a reality. It is easy to program, create and connect your things everywhere.
SN50v3-CB wireless part is based on NB model allows the user to send data and reach extremely long ranges at low data-rates.It provides ultra-long range spread spectrum communication and high interference immunity whilst minimising current consumption.It targets professional wireless sensor network applications such as irrigation systems, smart metering, smart cities, building automation, and so on.
SN50v3-CB uses STM32l0x chip from ST, STML0x is the ultra-low-power STM32L072xxxx microcontrollers incorporate the connectivity power of the universal serial bus (USB 2.0 crystal-less) with the high-performance ARM® Cortex®-M0+ 32-bit RISC core operating at a 32 MHz frequency, a memory protection unit (MPU), high-speed embedded memories (192 Kbytes of Flash program memory, 6 Kbytes of data EEPROM and 20 Kbytes of RAM) plus an extensive range of enhanced I/Os and peripherals.
SN50v3-CB is an open source product, it is based on the STM32Cube HAL drivers and lots of libraries can be found in ST site for rapid development.
SN50v3-CB supports different uplink methods including MQTT, MQTTs, UDP , TCP or CoAP for different application requirement, and support uplinks to various IoT Servers.
SN50v3-CB supports BLE configure and OTA update which make user easy to use.
SN50v3-CB is powered by 8500mAh Li-SOCI2 battery, it is designed for long-term use up to several years.
SN50v3-CB has optional built-in SIM card and default IoT server connection version. Which makes it works with simple configuration.
1.2 Features
- For -NB Bands: B1/B2/B3/B4/B5/B8/B12/B13/B17/B18/B19/B20/B25/B28/B66/B70/B85
- For -CB Bands: B1/B2/B3/B4/B5/B8/B12/B13//B18/B19/B20/B25/B28/B66/B71/B85
- CAT-M1 / LTE-M Bands: B1/B2/B3/B4/B5/B8/B12/B13/B18/B19/B20/B25/B26/B27/B28/B66/B85
- Ultra-low power consumption
- Open-source hardware / software
- Multiply Sampling and one uplink
- Support Bluetooth v5.1 remote configure and update firmware
- GNSS for Location Report
- Uplink via MQTT, MQTTs, TCP, UDP or CoAP
- Uplink on periodically
- Downlink to change configure
- 8500mAh Battery for long term use
- Nano SIM card slot for NB-IoT SIM
1.3 Specification
Common DC Characteristics:
- Supply Voltage: 2.6v ~ 3.6v
- Operating Temperature: -40 ~ 85°C
I/O Interface:
- Battery output (2.6v ~ 3.6v depends on battery)
- +5v controllable output
- 3 x Interrupt or Digital IN/OUT pins
- 3 x one-wire interfaces
- 1 x UART Interface
- 1 x I2C Interface
NB-IoT Spec:
NB-IoT Module: BG95-NGFF
Support Bands:
- B1 @H-FDD: 2100MHz
- B2 @H-FDD: 1900MHz
- B3 @H-FDD: 1800MHz
- B4 @H-FDD: 2100MHz
- B5 @H-FDD: 860MHz
- B8 @H-FDD: 900MHz
- B12 @H-FDD: 720MHz
- B13 @H-FDD: 740MHz
- B17 @H-FDD: 730MHz
- B18 @H-FDD: 870MHz
- B19 @H-FDD: 870MHz
- B20 @H-FDD: 790MHz
- B25 @H-FDD: 1900MHz
- B28 @H-FDD: 750MHz
- B66 @H-FDD: 2000MHz
- B70 @H-FDD: 2000MHz
- B85 @H-FDD: 700MHz
Battery:
- Li/SOCI2 un-chargeable battery
- Capacity: 8500mAh
- Self Discharge: <1% / Year @ 25°C
- Max continuously current: 130mA
- Max boost current: 2A, 1 second
Power Consumption
- STOP Mode: 10uA @ 3.3v
- Max transmit power: 350mA@3.3v
1.4 Applications
- Smart Buildings & Home Automation
- Logistics and Supply Chain Management
- Smart Metering
- Smart Agriculture
- Smart Cities
- Smart Factory
1.5 Sleep mode and working mode
Deep Sleep Mode: Sensor doesn't have any NB-IoT activate. This mode is used for storage and shipping to save battery life.
Working Mode: In this mode, Sensor will work as NB-IoT Sensor to Join NB-IoT network and send out sensor data to server. Between each sampling/tx/rx periodically, sensor will be in IDLE mode), in IDLE mode, sensor has the same power consumption as Deep Sleep mode.
1.6 Button & LEDs
Behavior on ACT | Function | Action |
---|---|---|
Pressing ACT between 1s < time < 3s | Send an uplink | If sensor has already attached to NB-IoT network, sensor will send an uplink packet, blue led will blink once. |
Pressing ACT for more than 3s | Active Device | Green led will fast blink 5 times, device will enter OTA mode for 3 seconds. And then start to attach NB-IoT network. |
Fast press ACT 5 times. | Deactivate Device | Red led will solid on for 5 seconds. Means device is in Deep Sleep Mode. |
Note: When the device is executing a program, the buttons may become invalid. It is best to press the buttons after the device has completed the program execution.
1.7 BLE connection
SN50v3-CB support BLE remote configure and firmware update.
BLE can be used to configure the parameter of sensor or see the console output from sensor. BLE will be only activate on below case:
- Press button to send an uplink
- Press button to active device.
- Device Power on or reset.
If there is no activity connection on BLE in 60 seconds, sensor will shut down BLE module to enter low power mode.
1.8 Pin Definitions , Switch & SIM Direction
SN50v3-CB use the mother board which as below.
1.8.1 Jumper JP2
Power on Device when put this jumper.
1.8.2 BOOT MODE / SW1
1) ISP: upgrade mode, device won't have any signal in this mode. but ready for upgrade firmware. LED won't work. Firmware won't run.
2) Flash: work mode, device starts to work and send out console output for further debug
1.8.3 Reset Button
Press to reboot the device.
1.8.4 SIM Card Direction
See this link. How to insert SIM Card.
2. Use SN50v3-CB to communicate with IoT Server
2.1 Send data to IoT server via NB-IoT network
The SN50v3-CB is equipped with a NB-IoT module, the pre-loaded firmware in SN50v3-CB will get environment data from sensors and send the value to local NB-IoT network via the NB-IoT module. The NB-IoT network will forward this value to IoT server via the protocol defined by SN50v3-CB.
Below shows the network structure:
There are two version: -GE and -1T version of SN50v3-CB.
GE Version: This version doesn't include SIM card or point to any IoT server. User needs to use AT Commands to configure below two steps to set SN50v3-CB send data to IoT server.
- Install NB-IoT SIM card and configure APN. See instruction of Attach Network.
- Set up sensor to point to IoT Server. See instruction of Configure to Connect Different Servers.
Below shows result of different server as a glance.
Servers | Dash Board | Comments |
Node-Red | ||
DataCake | ||
Tago.IO | ||
General UDP | Raw Payload. Need Developer to design Dash Board | |
General MQTT | Raw Payload. Need Developer to design Dash Board | |
ThingSpeak | ||
ThingsBoard |
1T Version: This version has 1NCE SIM card pre-installed and configure to send value to ThingsEye. User Just need to select the sensor type in ThingsEyeand Activate SN50v3-CB and user will be able to see data in ThingsEye. See here for ThingsEye Config Instruction.
2.2 Working Mode & Uplink Payload
SN50v3-CB has different working mode for the connections of different type of sensors. This section describes these modes. User can use the AT Command AT+CFGMOD to set SN50v3-CB to different working modes.
For example:
AT+CFGMOD=2 // will set the SN50v3-CB to work in MOD=2 distance mode which target to measure distance via Ultrasonic Sensor.
NOTE:
1. All modes share the same Payload Explanation from HERE.
2. By default, the device will send an uplink message every 1 hour.
2.2.1 CFGMOD=1 (Default Mode)
Here is the HEX format of the uplink payload for mode 1:
In this mode, the uplink payload usually contains 41 bytes.
If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the CB sensor uplink data.
The payload is ASCII string, representative same HEX: f868508065628110f460240210507481 4c6e 0cba 16 01 0104 00 00 00 0001 00fe 01fd 6756bb09 00000000 00000000 00000000
Device ID(f+IMEI): 0xf868508065628110 = 868508065628110
SIM Card ID(f+IMSI): 0xf460240210507481 = 460240210507481
Version: 0x4c: SN50v3-CB, 0x6e=110=1.1.0
BAT: 0x0cba = 3258 mV = 3.258V
Singal: 0x16 = 22
Model: 0x01 = 1
Temperature by DS18b20:
Ex1: 0xffff // The DS18B20 is not connected(PC13 pin).
Ex2: 0x0104 = 260/10=26.0℃
PA4_level: 0x00 =0
Interrupt: 0x00 = 0
Interrupt_level: 0x00 =0
ADC: 0x0001=1=1mV // The error value is 50mV.
Temperature by SHT20/SHT31: 0x00fe = 254 = 25.4 °C
Humidity by SHT20/SHT31: 0x01fd= 509 = 50.9 %rh
Timestamp: 6756BB09 = 1733737225= 2024-12-09 17:40:25
Latitude:
Ex1: 0x00000000(H)=0, The GPS is not enabled or the location fails.
Ex2: 0x015a775a(H)=22706010(D): 22.706010
Longitude:
Ex1: 0x00000000(H)=0, The GPS is not enabled or the location fails.
Ex2: 0x06CF35D6(H)=114243030(D): 114.243030
GPS_Timestamp:
Ex1: 0x00000000(H)=0 (1970-01-01T00:00:00Z), The GPS is not enabled or the location fails.
Ex2: 0x6756AB30 =1733733168 = 2024-12-09 16:32:48
Here is the JSON format of the uplink payload for mode 1:
Notice, from above payload:
- Mode, Battery, Signal, time, Latitude, Longitude, GPS_Time, DS18B20_Temp, Digital_In, Interrupt, Interrupt_Level, ADC, Temperature& Humidity are the value at uplink time.
- Json entry 1 ~ 8 are the last 1 ~ 8 sampling data as specify by AT+CLOCKLOG=1,65535,1,8 Command. Each entry includes (from left to right): Temperature, Humidity, ADC, DS18B20_Temp & Sampling time.
2.2.2 CFGMOD=2 (Distance Mode)
Here is the HEX format of the uplink payload for mode 2:
This mode is target to measure the distance. Total 37 bytes.
If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the CB sensor uplink data.
So the payload is 0xf8643700643945154c640d361b02Ffff000000000203336682595d015a77dc06cf3c7a6682595d
where:
Device ID: 0xf864370064394515 = 864370064394515
Version: 0x4c: SN50v3-CB, 0x64=100=1.0.0
BAT: 0x0d36 = 3382mV = 3.382 V
Singal: 0x1b = 27
Model: 0x02 = 2
Temperature by DS18b20:
Ex1: 0xffff /The DS18B20 is not connected(PC13 pin).
Ex2: 0x00f7 = 247/10=24.7℃
PA4_level: 0x00= 0
Interrupt: 0x00= 0
Interrupt_level: 0x00 =0
ADC:
Ex1: 0x0002=2=2mV /The error value is 50mV.
Ex2: 0x0ca8 =3240= 3240.00mv
Distance by LIDAR-Lite V3HP/Ultrasonic Sensor: 0x0333 = 819 cm
Timestamp: 0x6682595d(H)=1719818589(D): 2024-07-01 15:23:09
Latitude: 0x015a77dc(H)=22706410(D): 22.706410
Longitutde: 0x06cf3c7a(H)=114244730(D): 114.244730
GPS_Timestamp: 0x6682595d =1719818589 = 2024-07-01 15:23:09
Connection of LIDAR-Lite V3HP:
Connection to Ultrasonic Sensor:
Need to remove R1 and R2 resistors to get low power,otherwise there will be 240uA standby current.
Here is the JSON format of the uplink payload for mode 2:
Notice, from above payload:
- Mode, Battery, Signal, Latitude, Longitude, GPS_Time, DS18B20_Temp, Digital_In, Interrupt, Interrupt_Level, ADC, Distance are the value at uplink time.
- Json entry 1 ~ 8 are the last 1 ~ 8 sampling data as specify by AT+CLOCKLOG=1,65535,1,8 Command. Each entry includes (from left to right): Diatance , ADC, DS18B20_Temp& Sampling time.
2.2.3 CFGMOD=3 (3 ADC + I2C)
Here is the HEX format of the uplink payload for mode 3:
This mode has total 43 bytes. Include 3 x ADC + 1 x I2C.
ADC1 uses pin PA4 to measure
ADC2 uses pin PA5 to measure
ADC3 uses pin PA8 to measure
(Suitable for motherboard version: LSN50 v3.1)
If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the CB sensor uplink data.
So the payload is 0xf864370643945154c640d461e0300010000000003013702b5000066826910015a778206cf345066826524
where:
Device ID: f864370064394515 = 864370064394515
Version: 0x4c: SN50v3-CB, 0x64=100=1.0.0
BAT: 0x0d46 = 3398 mV = 3.398 V
Singal: 0x1e = 30
Model: 0x03 = 3
ADC1:
Ex1: 0x0001=1=1mV /The error value is 50mV.
Ex2: 0x0ca8 =3240= 3240.00mv
PA4_level: 0x00 =0
Interrupt: 0x00 = 0
Interrupt_level: 0x00 =0
ADC2: 0x0003 =3 mv
Temperature by SHT20/SHT31: 0x0137 = 311 = 31.1 °C
Humidity by SHT20/SHT31: 0x02b5 =693 = 69.3 %rh
ADC3: 0x0000 = 0 mv
Timestamp: 0x66826910(H)=1719822608(D): 2024-07-01 16:30:08
Latitude: 0x015a7782(H)=22706050(D): 22.706050
Longitutde: 0x06cf3c7a(H)=114244730(D): 114.244730
GPS_Timestamp: 0x66826524 =1719821604 = 2024-07-01 16:13:24
Here is the JSON format of the uplink payload for mode 3:
Notice, from above payload:
- Mode, Battery, Signal, Latitude, Longitude, GPS_Time, adc1, Digital_In, Interrupt, Interrupt_Level, adc2, temperature, humidity, adc3 are the value at uplink time.
- Json entry 1 ~ 8 are the last 1 ~ 8 sampling data as specify by AT+CLOCKLOG=1,65535,1,8 Command. Each entry includes (from left to right): temperature, humidity,adc1, adc2, adc3 & Sampling time.
2.2.4 CFGMOD=4 (3 x DS18B20)
Here is the HEX format of the uplink payload for mode 4:
Hardware connection is as below.
This mode has total 41 bytes. As shown below:
If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the CB sensor uplink data.
If the payload is 0x f868508065628110 f460240210507481 4c6e 0cc0 19 04 010f 0001 00 00 00 011b 0117 6756ab30 00000000 00000000 00000000
where:
Device ID(f+IMEI): 0xf868508065628110 = 868508065628110
SIM Card ID(f+IMSI): 0xf460240210507481 = 460240210507481
Version: 0x4c: SN50v3-CB, 0x6e=110=1.1.0
BAT: 0x0cc0 = 3264mV = 3.264 V
Singal: 0x19 = 25
Model: 0x04 = 4
Temperature1 by DS18b20:
Ex1: 0xffff /The DS18B20 is not connected(PC13 pin).
Ex2: 0x010f = 271 = 27.1 °C
ADC:
Ex1: 0x0001=1=1mV /The error value is 50mV.
Ex2: 0x0ca8 =3240= 3240.00mv
PA4_level: 0x00 =0
Interrupt: 0x00 = 0
Interrupt_level: 0x00 =0
Temperature2 by DS18b20: 0x011b =283= 28.3°C
Temperature3 by DS18b20: 0x0117 =279= 27.9 °C
Timestamp: 0x6756AB30 =1733733168= 2024-12-09 16:32:48
Latitude:
Ex1: 0x00000000(H)=0, The GPS is not enabled or the location fails.
Ex2: 0x015a775a(H)=22706010(D): 22.706010
Longitude:
Ex1: 0x00000000(H)=0, The GPS is not enabled or the location fails.
Ex2: 0x06CF35D6(H)=114243030(D): 114.243030
GPS_Timestamp:
Ex1: 0x00000000(H)=0 (1970-01-01T00:00:00Z), The GPS is not enabled or the location fails.
Ex2: 0x6756AB30 =1733733168 = 2024-12-09 16:32:48
Here is the JSON format of the uplink payload for mode 4:
Notice, from above payload:
- Mode, Battery, Signal, time, Latitude, Longitude, GPS_Time, DS18B20_Temp, adc1, Digital_In, Interrupt, Interrupt_Level, DS18B20_Temp2, DS18B20_Temp3 are the value at uplink time.
- Json entry 1 ~ 8 are the last 1 ~ 8 sampling data as specify by AT+CLOCKLOG=1,65535,1,8 Command. Each entry includes (from left to right): ADC, DS18B20_Temp, DS18B20_Temp2, DS18B20_Temp3 & Sampling time.
2.2.5 CFGMOD=5 (Weight Measurement by HX711)
Notes about hardware connection:
- Don't connect the HX711 module VCC to SN50v3-CB 3.3v VCC, in this case, the SN50v3-CB will always power on HX711 and the battery will run out soon.
- HX711 support 5v VCC, but while connect the SN50v3-CB's +5V to HX711 VCC, the value from HX711 is not stable.
- Connect SN50v3-CB +5V to HX711 VCC via a LDO module is stable.
Each HX711 need to be calibrated before used. User need to do below two steps:
- Zero calibration. Don't put anything on load cell and run AT+WEIGRE to calibrate to Zero gram.
- Adjust calibration factor (default value 400): Put a known weight thing on load cell and run AT+WEIGAP to adjust the Calibration Factor.
For example:
AT+WEIGAP =403.0
Response: Weight is 401 g
Check the response of this command and adjust the value to match the real value for thing.
Here is the HEX format of the uplink payload for mode 5:
This mode has total 39 bytes. As shown below:
If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the CB sensor uplink data.
So the payload is 0xf8643700643945154c640d281a05Ffff0001000000000066835a29015a793006cf33e266835a29
where:
Device ID:f864370064394515 = 864370064394515
Version: 0x4c: SN50v3-CB, 0x64=100=1.0.0
BAT: 0x0d28 = 3368 mV = 3.368 V
Singal: 0x1a = 26
Model: 0x05 = 5
Temperature by DS18b20:
Ex1: 0xffff /The DS18B20 is not connected(PC13 pin).
Ex2: 0x0136 = 310 = 31.0 °C
ADC:
Ex1: 0x0001=1=1mV /The error value is 50mV.
Ex2: 0x0ca8 =3240= 3240.00mv
PA4_level: 0x00 =0
Interrupt: 0x00 = 0
Interrupt_level: 0x00 =0
Weigt by HX711:
Ex1: 0x0000 = 0 g
Ex2: 0x003a = 58 g
Timestamp: 0x66835a29 = 1719884329= 2024-07-02 09:38:49
Latitude: 0x015a7930(H)=22706480(D): 22.706480
Longitude: 0x06cf33e2(H)=114242530(D): 114.242530
GPS_Timestamp: 0x66835a29 =1719884329 =2024-07-02 09:38:49
Here is the JSON format of the uplink payload for mode 5:
Notice, from above payload:
- Mode, Battery, Signal, Latitude, Longitude, GPS_Time, DS18B20_Temp, adc1, Digital_In, Interrupt, Interrupt_Level, weight are the value at uplink time.
- Json entry 1 ~ 8 are the last 1 ~ 8 sampling data as specify by AT+CLOCKLOG=1,65535,1,8 Command. Each entry includes (from left to right): adc1, DS18B20_Temp, weight & Sampling time.
2.2.6 CFGMOD=6 (Counting mode)
Here is the HEX format of the uplink payload for mode 6:
In this mode, uplink payload includes in total 34 bytes.
If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the CB sensor uplink data.
The payload is ASCII string, representative same HEX: 0xf8643700643945154c640d891d06000027106684f800015a78b806cf253c6684f800
where:
Device ID: f864370064394515 = 864370064394515
Version: 0x4c: SN50v3-CB, 0x64=100=1.0.0
BAT: 0x0d89 =3465mV =3.465V
Singal: 0x1d = 29
Model: 0x06 = 6
Pulse count: 0x00002710(H)= 10000(D)
Timestamp: 0x6684f800 = 1719990272= 2024-07-03 15:04:32
Latitude: 0x015a78b8(H)=22706360(D): 22.706360
Longitude: 0x06cf253c(H)=114238780(D): 114.238780
GPS_Timestamp: 0x6684f800 =1719990272 =2024-07-03 15:04:32
Here is the JSON format of the uplink payload for mode 6:
Notice, from above payload:
- Mode, Battery, Signal, Latitude, Longitude, GPS_Time, count are the value at uplink time.
- Json entry 1 ~ 8 are the last 1 ~ 8 sampling data as specify by AT+CLOCKLOG=1,65535,1,8 Command. Each entry includes (from left to right): Count & Sampling time.
2.2.7 CFGMOD=7(3xADC + 3xDS18B20 mode)
Here is the HEX format of the uplink payload for mode 7:
In this mode, uplink payload includes in total 45 bytes.(Note: Added since firmware version v1.0.2)
If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the CB sensor uplink data.
The payload is ASCII string, representative same HEX: 0xf8624060791456174c660d3919070100000cd50cd80cd100f600f700f666dfeb58015a78e006cf341466dfeb58
where:
Device ID: f862406079145617 = 862406079145617
Version: 0x4c: SN50v3-CB, 0x66=102=1.0.2
BAT: 0x0d39 =3385mV =3.385V
Singal: 0x19 = 25
Model: 0x07 = 7
PA4_level: 0x00 =0
Interrupt: 0x00 = 0
Interrupt_level: 0x00 =0
ADC1(PA4):
Ex1: 0x0001=1=1mV /The error value is 50mV.
Ex2: 0x0cd5 =3285= 3285mv
ADC2(PA5):
Ex1: 0x0001=1=1mV /The error value is 50mV.
Ex2: 0x0cd8 =3288 = 3288mv
ADC3(PA8):
Ex1: 0x0001=1=1mV /The error value is 50mV.
Ex2: 0x0cd1 =3281= 3281mv
Temperature1 by DS18b20:
Ex1: 0xffff /The DS18B20 is not connected(PC13 pin).
Ex2: 0x00f6 = 246/10 = 24.6 °C
Temperature2 by DS18b20:
Ex1: 0xffff /The DS18B20 is not connected(PB9 pin).
Ex2: 0x00f7 = 247/10 = 24.7°C
Temperature3 by DS18b20:
Ex1: 0xffff /The DS18B20 is not connected(PB8 pin).
Ex2: 0x00f6 = 246/10 = 24.6 °C
Timestamp: 0x66dfeb58 = 1725950808 = 2024-09-10 14:46:48
Latitude: 0x015a78e0(H)=22706400(D): 22.706400
Longitude: 0x06cf3414(H)=114242580(D): 114.242580
GPS_Timestamp: 0x66dfeb58 =1725950808 =2024-09-10 14:46:48
Here is the JSON format of the uplink payload for mode 7:
Notice, from above payload:
- Mode, Battery, Signal, Latitude, Longitude, GPS_Time, Digital_In, Interrupt, Interrupt_Level, adc1, adc2, adc3, DS18B20_Temp, DS18B20_Temp2, DS18B20_Temp3 are the value at uplink time.
- Json entry 1 ~ 8 are the last 1 ~ 8 sampling data as specify by AT+CLOCKLOG=1,65535,1,8 Command. Each entry includes (from left to right): adc2, adc3, DS18B20_Temp, DS18B20_Temp2, DS18B20_Temp3 & Sampling time.
2.2.8 CFGMOD=8(Three interrupts or three counting modes)
2.2.8.a Three interrupts modes:
Here is the HEX format of the uplink payload for mode 8(a):
In this mode, uplink payload includes in total 40 bytes.(Note: Added since firmware version v1.0.2)
If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the CB sensor uplink data.
The payload is ASCII string, representative same HEX: 0xf8624060791456174c660d3b1d080000Ffff00000000000066e0f956015a778c06cf33ba66e0f956
where:
Device ID: f862406079145617 = 862406079145617
Version: 0x4c: SN50v3-CB, 0x66=102=1.0.2
BAT: 0x0d1c =3356mV =3.356V
Singal: 0x1b = 27
Model: 0x08 = 8
ADC2(PA5): 0x0000 = 0mV
DS18B20_temp:
Ex1: 0xffff /The DS18B20 is not connected(PC13 pin).
Ex2: 0x00f6 = 246/10 = 24.6 °C
Interrupt: 0x00 = 0
Interrupt_level: 0x00 = 0
Interrupt_pa4: 0x00 = 0
Interrupt_level_pa4: 0x00 = 0
Interrupt_pa8: 0x00 = 0
Interrupt_level_pa8: 0x00 = 0
Timestamp: 0x66e0f956 = 1726019926 = 2024-09-11 09:58:46
latitude: 0x015a778c(H) = 22706060(D): 22.706060
longitude: 0x06cf33ba =114242490(D): 114.242490
gps_timestamp: 0x66e0f956 = 1726019926 = 2024-09-11 09:58:46
Here is the JSON format of the uplink payload for mode 8(a):
Notice, from above payload:
- Mode, Battery, Signal, Latitude, Longitude, GPS_Time, adc2(PA5), DS18B20_Temp, Interrupt(PB15), Interrupt_Level(PB15), interrupt_pa4, interrupt_level_pa4, interrupt_pa8, interrupt_level_pa8 are the value at uplink time.
- Json entry 1 ~ 8 are the last 1 ~ 8 sampling data as specify by AT+CLOCKLOG=1,65535,1,8 Command. Each entry includes (from left to right): adc2, DS18B20_Temp & Sampling time.
2.2.8.b Three counting modes:
Here is the HEX format of the uplink payload for mode 8(b):
In this mode, uplink payload includes in total 42 bytes.(Note: Added since firmware version v1.0.2)
If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the CB sensor uplink data.
The payload is ASCII string, representative same HEX: 0xf8624060791456174c660d1c1b08000001d2000003d50000007d66e00aff015a900a06cef0f866e00674
where:
Device ID: f862406079145617 = 862406079145617
Version: 0x4c: SN50v3-CB, 0x66=102=1.0.2
BAT: 0x0d1c =3356mV =3.356V
Singal: 0x1b = 27
Model: 0x08 = 8
Count1(PB15): 0x000001d2 = 466
Count2(PA4): 0x000003d5=981
Count3(PA8): 0x0000007d = 125
Timestamp: 0x66e00aff = 1725958911= 2024-09-10 17:01:51
Latitude: 0x015a900a (H)=22712330(D): 22.712330
Longitude: 0x06cef0f8(H)=114225400(D): 114.225400
GPS_Timestamp: 0x66e00674 =1725957748 =2024-09-10 16:42:28
Here is the JSON format of the uplink payload for mode 8(b):
Notice, from above payload:
- Mode, Battery, Signal, Latitude, Longitude, GPS_Time, count1, count2, count3 are the value at uplink time.
- Json entry 1 ~ 8 are the last 1 ~ 8 sampling data as specify by AT+CLOCKLOG=1,65535,1,8 Command. Each entry includes (from left to right): count1, count2, count3 & Sampling time.
2.2.9 CFGMOD=9 (Count+SHT31 mode)
Here is the HEX format of the uplink payload for mode 9:
In this mode, uplink payload includes in total 39 bytes.(Note: Added since firmware version v1.0.2)
If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the CB sensor uplink data.
The payload is ASCII string, representative same HEX: 0xf8624060791456174c660d0c1b0900000000000101022566e10eb7015a78d606cf336066e10220
where:
Device ID: f862406079145617 = 862406079145617
Version: 0x4c: SN50v3-CB, 0x66=102=1.0.2
BAT: 0x0d1c =3356mV =3.356V
Singal: 0x1b = 27
Model: 0x08 = 8
digital in: 0x00 = 0( 0:low level; 1:high level)
count(PA8): 0x00000000 = 0
Temp(sht31): 0x0101 = 257/10 = 25.7℃
Hum(sht31): 0x0225 = 549/10 = 54.9%rh
Timestamp: 0x66e10eb7 = 1,726,025,399 = 2024-09-11 11:29:59
Latitude: 0x015a78d6 (H)=22706390(D): 22.706390
Longitude: 0x06cf3360(H)=114242400(D): 114.242400
GPS_Timestamp: 0x66e10220 =1725957748 = 2024-09-11 10:36:16
Here is the JSON format of the uplink payload for mode 9:
Notice, from above payload:
- Mode, Battery, Signal, Latitude, Longitude, GPS_Time, digital_in, count, temperature, humidity are the value at uplink time.
- Json entry 1 ~ 8 are the last 1 ~ 8 sampling data as specify by AT+CLOCKLOG=1,65535,1,8 Command. Each entry includes (from left to right): temperature, humidity, count & Sampling time.
2.2.10 CFGMOD=10 (TMP117 Temperature Sensor Mode)
Here is the HEX format of the uplink payload for mode 10:
In this mode, uplink payload includes in total 38 bytes.(Note: Added since firmware version v1.0.2)
If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the CB sensor uplink data.
The payload is ASCII string, representative same HEX: 0xf8624060791456174c660d151a0aFfff0000000009f566e13d5a015a76f606cf370266e13969
Device ID: f862406079145617 = 862406079145617
Version: 0x4c: SN50v3-CB, 0x66=102=1.0.2
BAT: 0x0d15 = 3349 mV = 3.349 V
Singal: 0x1a = 26
Model: 0x0a = 10
DS18B20_temp:
Ex1: 0xffff /The DS18B20 is not connected(PC13 pin).
Ex2: 0x00f6 = 246/10 = 24.6 °C
ADC1(PA4): 0x0000 = 0mV
Interrupt: 0x00 = 0
Interrupt_level: 0x00 =0
Temp(TMP117): 0x09f5 = 2549/100 = 25.49℃
Timestamp: 0x66e13d5a = 1726037338= 2024-09-11 14:48:58
Latitude: 0x015a76f6 (H)=22705910(D): 22.705910
Longitude: 0x06cf3702(H)=114243330(D): 114.243330
GPS_Timestamp: 0x66e13969 = 1726036329 = 2024-09-11 14:32:09
Here is the JSON format of the uplink payload for mode 10:
Notice, from above payload:
- Mode, Battery, Signal, Latitude, Longitude, GPS_Time, DS18B20_Temp, adc1, interrupt, interrupt_level, temperature(TEM117) are the value at uplink time.
- Json entry 1 ~ 8 are the last 1 ~ 8 sampling data as specify by AT+CLOCKLOG=1,65535,1,8 Command. Each entry includes (from left to right): DS18B20_Temp, adc1, temperature(TEM117) & Sampling time.
2.3 Payload Types
To meet different server requirement, SN50v3-CB supports different payload type.
Includes:
- General JSON format payload. (Type=5)
- HEX format Payload. (Type=0)
- ThingSpeak Format. (Type=1)
- ThingsBoard Format. (Type=3)
User can specify the payload type when choose the connection protocol. Example:
AT+PRO=2,0 // Use UDP Connection & hex Payload
AT+PRO=2,5 // Use UDP Connection & Json Payload
AT+PRO=3,5 // Use MQTT Connection & Json Payload
2.3.1 General Json Format(Type=5)
This is the General Json Format. As below:
{"IMEI":"864370064394515","Model":"SN50V3-CB","mod":1,"battery":3.51,"signal":28,"latitude":22.706410,"longitude":114.242470,"gps_time":"2024-07-01T02:33:11Z","DS18B20_Temp":-409.5,"digital_in":0,"interrupt":0,"interrupt_level":0,"adc1":1,"temperature":26.4,"humidity":55.7,"1":[26.3,55.4,1,-409.5,"2024-07-01T06:18:11Z"],"2":[26.2,55.2,2,-409.5,"2024-07-01T06:17:11Z"],"3":[26.3,54.9,2,-409.5,"2024-07-01T06:16:11Z"],"4":[26.4,55.1,2,-409.5,"2024-07-01T06:15:11Z"],"5":[26.3,55.1,2,-409.5,"2024-07-01T06:14:11Z"],"6":[26.3,55.1,2,-409.5,"2024-07-01T06:13:11Z"],"7":[26.3,55.3,2,-409.5,"2024-07-01T06:12:11Z"],"8":[26.2,55.4,2,-409.5,"2024-07-01T06:11:11Z"]}
Notice, from above payload:
- Mode, Battery, Signal, Latitude, Longitude, GPS_Time, DS18B20_Temp, Digital_In, Interrupt, Interrupt_Level, ADC, Temperature& Humidity are the value at uplink time.
- Json entry 1 ~ 8 are the last 1 ~ 8 sampling data as specify by AT+CLOCKLOG=1,65535,15,8 Command. Each entry includes (from left to right): Temperature, Humidity, ADC, DS18B20_Temp & Sampling time.
2.3.2 HEX format Payload(Type=0)
This is the HEX Format. As below:
f8643700643945154c640dac1b01Ffff00000000010106022966824788015a78ea06cf33a6668215670002f0010106022a668247530001f0010107022a668247170002f0010106022b668246db0001f0010108022d6682469f0001f00101070228668246630001f00101080226668246270001f00101080225668245eb0001f00101070225668245af
Note: Only hex payload contains PA4_level bytes, JSON payload does not contain PA4_level.
Version:
These bytes include the hardware and software version.
Higher byte: Specify Sensor Model: 0x4c for SN50v3-CB
Lower byte: Specify the software version: 0x64=100, means firmware version 1.0.0
BAT (Battery Info):
Ex1: 0x0dac = 3500mV
Signal Strength:
NB-IoT Network signal Strength.
Ex1: 0x1b = 27
0 -113dBm or less
1 -111dBm
2...30 -109dBm... -53dBm
31 -51dBm or greater
99 Not known or not detectable
Temperature:
If payload is: 0105(H): (0105 & 8000 == 0), temp = 0105H /10 = 26.1 degree
If payload is: FF3F(H): (FF3F & 8000 == 1), temp = (FF3FH - 65536)/10 = -19.3 degrees.
(FF3F & 8000: Judge whether the highest bit is 1, when the highest bit is 1, it is negative)
If payload is: FFFF(H): (FFFF & 8000 == 1), Fixed display temp = -409.5℃, Indicates that the DS18B20 sensor is not connected.
Humidity:
Read:0229(H)=553(D) Value: 553/10=55.3, So 55.3%
TimeStamp & GPS Timestamp:
Unit TimeStamp Example: 66824788(H) = 1719814024(D)
Put the decimal value into this link(https://www.epochconverter.com/https://www.epochconverter.com/) to get the time.
Latitude:
Example: 0x015A7A7A(H)=22706810(D)=22.706810
Longitude:
Example: 0x06CF33CE(H)=114242510(D)=114.242510
2.3.3 ThingsBoard Payload(Type=3)
Type3 payload special design for ThingsBoard, it will also configure other default server to ThingsBoard.
{
"topic": "002_CB",
"payload": {
"IMEI": "862406079145617",
"IMSI": "454312901015182",
"Model": "SN50V3-CB",
"mod": 1,
"battery": 3.21,
"signal": 23,
"time": "2024-12-18T03:16:28Z",
"latitude": 0.0,
"longitude": 0.0,
"gps_time": "1970-01-01T00:00:00Z",
"DS18B20_Temp": -409.5,
"digital_in": 0,
"interrupt": 0,
"interrupt_level": 0,
"adc1": 1,
"temperature": 21.5,
"humidity": 34.1,
"1": [21.5, 33.8, 0, -409.5, "2024-12-18T03:01:49Z"],
"2": [21.5, 36.3, 1, -409.5, "2024-12-18T02:46:49Z"],
"3": [21.7, 36.1, 0, -409.5, "2024-12-18T02:31:49Z"],
"4": [0.0, 0.0, 1, -409.5, "2024-12-18T01:56:54Z"],
"5": [0.0, 0.0, 0, -409.5, "2024-12-18T01:41:54Z"],
"6": [130.0, 0.0, 0, -409.5, "2024-12-16T06:36:49Z"],
"7": [130.0, 0.0, 0, -409.5, "2024-12-13T07:00:43Z"],
"8": [130.0, 0.0, 0, -409.5, "2024-12-13T06:50:43Z"]
}
}
2.3.4 ThingSpeak Payload(Type=1)
This payload meets ThingSpeak platform requirement. It includes only four fields. Form 1~7 are:
Mode, Battery, Signal, Latitude, Longitude, Digital_In, Interrupt. This payload type only valid for ThingSpeak Platform.
As below:
field1=mode value&field2=battery value&field3=Signal value&field4=latitude value&field5=longitude value&field6=digital_in value&field7=interrupt value.
3. Configure SN50v3-CB
3.1 Configure Methods
SN50v3-CB supports below configure method:
- AT Command via Bluetooth Connection (Recommended): BLE Configure Instruction.
- AT Command via UART Connection : See UART Connection.
3.2 Serial Access Password
After the Bluetooth or UART connection is successful, use the Serial Access Password to enter the AT command window.
The label on the box of the node will print the initial password: AT+PIN=xxxxxx, and directly use the six-digit password to access the AT instruction window.
If you need to change the password, use AT+PWORD=xxxxxx (6 characters), CB nodes only support lowercase letters.
Note: After entering the command, you need to add a line break, and you can also set automatic line breaks in the Bluetooth tool or UART connection tool.
3.3 AT Commands Set
AT+<CMD>? : Help on <CMD>
AT+<CMD> : Run <CMD>
AT+<CMD>=<value> : Set the value
AT+<CMD>=? : Get the value
General Commands
AT : Attention
AT? : Short Help
AT+MODEL : Get module information
ATZ : Trig a reset of the MCU
AT+CFGMOD : Working mode selection
AT+DEUI : Get or set the Device ID
AT+CFG : Print all settings
AT+TDC : Get or set the application data transmission interval in s
AT+SERVADDR : Get or Set the Server address
AT+INTMOD : Get or Set the trigger interrupt mode (0:input,1:falling or rising,2:falling,3:rising)
AT+APN : Get or set the APN
AT+5VT : Get or Set extend the time of 5V power
AT+PRO : Get or Set usage agreement (1:COAP,2:UDP,3:MQTT,4:TCP)
AT+RXDL : Get or Set the receiving time
AT+EXT : Get or Set Count value
AT+GETSENSORVALUE : Returns the current sensor measurement
AT+DNSCFG : Get or Set DNS Server
AT+CSQTIME : Get or Set the time to join the network
AT+GDNS : Get or Set the DNS
AT+TLSMOD : Get or Set the TLS mode
AT+SLEEP : Get or Set the sleep mode
AT+IPTYPE : Set the IPv4 or IPv6
AT+QSW : Power on and power off BG95 module
AT+GETLOG : Print serial port logs
AT+CLOCKLOG: Get or set SHT record time
AT+QBAND: Get or set Frequency Band
AT+IOTMOD: Configure Network Category to be Searched for under LTE RAT
MQTT Management
AT+CLIENT : Get or Set the MQTT clientID
AT+UNAME : Get or Set the MQTT Username
AT+PWD : Get or Set the MQTT password
AT+PUBTOPIC : Get or set MQTT publishing topic
AT+SUBTOPIC : Get or set MQTT subscription topic
AT+MQOS : Set the QoS level of MQTT
Coap Management
AT+URI1: Get or set CoAP option 1
AT+URI2: Get or set CoAP option 2
AT+URI3: Get or set CoAP option 3
AT+URI4: Get or set CoAP option 4
AT+URI5: Get or set CoAP option 5
AT+URI6: Get or set CoAP option 6
AT+URI7: Get or set CoAP option 7
AT+URI8: Get or set CoAP option 8
GPS
AT+GNSST : Extend the time to turn on GNSS
AT+GPS : Turn off and on GPS
AT+GTDC : Get or set GPS positioning interval in units of h
Information
AT+LDATA : Get the last upload data
AT+CDP : Read or Clear cached data
AT+PWORD : Get or set the System password
AT+FDR1 : Reset parameters to factory default values except for passwords
AT+FDR : Reset Parameters to Factory Default
Print or clear historical data
AT+PDTA : Print the sector data from start page to stop page
AT+PLDTA : Print the last few sets of data
AT+CLRDTA : Clear the storage, record position back to 1st
3.4 Test Uplink and Change Update Interval
By default, Sensor will send uplinks every 2 hours.
User can use below commands to change the uplink interval.
AT Command: AT+TDC
Example: AT+TDC=7200 // Set Update Interval to 7200 seconds
Downlink Commands: 0x01
Format: Command Code (0x01) followed by 3 bytes.
Example: 12 hours= 43200 seconds 43200(D)=0xA8C0(H)
Downlink Payload: 01 00 A8 C0 // AT+TDC=43200, Set Update Interval to 12 hours.
Note: User can also push the button for more than 1 seconds to activate an uplink.
3.5 Set the working mode
Feature: Working mode selection
AT Command: AT+CFGMOD
Example: AT+CFGMOD=2 // Set the working mode to 2(Distance Mode).
Downlink Commands: 0x02
Format: Command Code (0x02) followed by 1 byte.
Example: Downlink Payload: 02 02 //AT+CFGMOD=2
3.6 Set the receiving time
Feature: Extend the receiving time
AT Command: AT+RXDL
Example: AT+RXDL=1000 // Set the receiving time delay to 1000ms
Downlink Commands: 0x03
Format: Command Code (0x03) followed by 3 bytes.
Example: Downlink Payload: 03 00 03 E8 //AT+RXDL=1000
3.7 Reset
Feature: Trig a reset of the MCU.
AT Command: ATZ
Downlink Commands: 0x04FF
3.8 +5V
Feature: Set extend the time of 5V power.
AT Command: AT+5VT
Example: AT+5VT=2000 //Set extend the time of 5V power to 2000 ms
Downlink Commands: 0x05
Format: Command Code (0x05) followed by 3 bytes.
Example: Downlink Payload: 05 00 07 D0 //AT+5VT=2000
3.9 Trggier an uplink by external interrupt
Feature, Set Interrupt mode for PB15,PA4,PA8.
AT command:AT+INTMOD
Command Example | Function | Response |
---|---|---|
AT+INTMOD? | Get or Set the trigger interrupt mode | 1:0,2:0,3:0(default) |
AT+INTMOD=? | Get current trigger mode 0:input 1:falling or rising 2:falling 3:rising | 1:1,2:1,3:1 OK
|
AT+INTMOD=a,b,c | Parameter a sets the PB15 interrupt triggering mode, parameter b sets the PA4 interrupt triggering mode, and parameter c sets the PA8 interrupt triggering mode. | OK |
Example:
- AT+INTMOD=1,0,2 //Set the PB15 interrupt to be triggered by a rising or falling edge; set the PA4 interrupt function off and PA4 as a signal input pin; set the PA8 interrupt to be triggered by a falling edge.
- AT+INTMOD=0,1,3 //Set the PB15 interrupt function off and PB15 as a signal input pin; set the PA4 interrupt to be triggered by a rising or falling edge; set the PA8 interrupt to be triggered by a rising edge.
Downlink command: 0x06
Format: Command Code (0x06) followed by 3 byte.
Ex1: Downlink payload: 0x06010002 //Equal to AT+INTMOD=1,0,2
Ex2: Downlink payload: 0x06000103 //Equal to AT+INTMOD=0,1,3
3.10 Set the QoS level
This command is used to set the QoS level of MQTT.
AT command:
- AT+MQOS=xx // 0~2
Downlink command: 0x07
Format: Command Code (0x07) followed by 1 byte.
Ex1: Downlink payload: 0x0700 //AT+MQOS=0
Ex2: Downlink payload: 0x0701 //AT+MQOS=1
3.11 Clock logging
Sometimes when we deploy lots of end nodes in field. We want all sensors sample data at the same time, and upload these data together for analyze. In such case, we can use clock loging feature.
We can use this command to set the start time of data recording and the time interval to meet the requirements of the specific collection time of data.
AT command: AT+CLOCKLOG=a,b,c,d
a: 0: Disable Clock logging. 1: Enable Clock Logging
b: Specify First sampling start second: range (0 ~ 3599, 65535) // Note: If parameter b is set to 65535, the log period starts after the node accesses the network and sends packets.
c: Specify the sampling interval: range (0 ~ 255 minutes)
d: How many entries should be uplink on every TDC (max 32)
Note: To disable clock recording, set the following parameters: AT+CLOCKLOG=1,65535,0,0
Example:
AT+CLOCKLOG=1,65535,1,5
After the node sends the first packet, data is recorded to the memory at intervals of 1 minute. For each TDC uplink, the uplink load will include: battery information + the last 5 memory records (payload + timestamp).
Note: Users need to synchronize the server time before configuring this command. If the server time is not synchronized before this command is configured, the command takes effect only after the node is reset.
Downlink command: 0x08
Format: Command Code (0x08) followed by 5 bytes.
- Example 1: Downlink Payload: 08 01 FFFF 0F 08 // Set SHT record time: AT+CLOCKLOG=1,65535,15,8
- Example 2: Downlink Payload: 08 01 04B0 0F 08 // Set SHT record time: AT+CLOCKLOG=1,1200,15,8
Note: When entering the downlink payload, there must be no Spaces between bytes.
3.12 Set the TLS mode
Refer to this link (MQTT Connection to send data to Tago.io)to use the TLS mode.
AT Command: AT+TLSMOD
Example 1: AT+TLSMOD=0,0 // Disable TLS Mode.
Example 2: AT+TLSMOD=1,0 // No authentication
AT+TLSMOD=1,1 // Perform server authentication
AT+TLSMOD=1,2 // Perform server and client authentication if requested by the remote server
Downlink command: 0x09
Format: Command Code (0x09) followed by 2 bytes.
Example1: Downlink Payload: 09 00 00 // AT+TLSMOD=0,0
Example2: Downlink Payload: 09 01 02 // AT+TLSMOD=1,2
3.13 Set GNSS open time
Extend the time to turn on GNSS. The automatic GPS location time is extended when the node is activated.
AT Command: AT+GNSST
Example: AT+GNSST=30 // Set the GPS positioning time to 30 seconds
Downlink command: 0x10
Format: Command Code (0x10) followed by 2 bytes.
Example: Downlink Payload: 10 00 1E // AT+GNSST=30
3.14 Turn on/off GPS
AT Command: AT+GPS
Ex1: AT+GPS=0 //Turn off GPS
Ex2: AT+GPS=1 //Turn on GPS
Downlink command: 0x11
Format: Command Code (0x11) followed by 1 byte.
Example: Downlink Payload: 11 01 //AT+GPS=1
3.15 Set GPS positioning interval
Feature: Set GPS positioning interval (unit: hour).
When GPS is enabled, the node automatically locates and uplinks each time it passes GTDC time after activation.
AT Command: AT+GTDC
Example: AT+GTDC=24 // Set the GPS positioning interval to 24h.
Downlink command: 0x12
Format: Command Code (0x12) followed by 3 bytes.
Example: 24 hours: 24(D)=0x18(H)
Downlink Payload: 12 00 00 18 // AT+GTDC=24
3.16 Set the search network time
Feature: Get or Set the time to join the network(unit: minutes).
AT Command: AT+CSQTIME
Example: AT+CSQTIME=10 // Set the search time to 10 minutes.
Downlink command: 0x13
Format: Command Code (0x13) followed by 1 byte.
Example: Downlink Payload: 13 0A // AT+CSQTIME=10
3.17 Set the IPv4 or IPv6
This command is used to set IP version.
AT command:
- AT+IPTYPE=1 // IPv4
- AT+IPTYPE=2 // IPv6
3.18 Configure Network Category to be Searched for under LTE RAT.
AT command: AT+IOTMOD=xx
xx: 0: eMTC
1: NB-IoT
2: eMTC and NB-IoT
3.19 Factory data reset
Two different restore factory Settings configurations.
AT command:
- AT+FDR // Reset Parameters to Factory Default.
- AT+FDR1 // Reset parameters to factory default values except for passwords.
3.20 Set CoAP option
Feature: Set CoAP option, follow this link to set up the CoaP protocol.
AT command: AT+URI1~AT+URI8
AT+URI1=11,"i" // "i/" indicates that the endpoint supports observation mode. In -CB products, fixed setting AT+URI1=11,"i"
AT+URI2=11,"CoAP endpoint URl" // 11 is a fixed parameter.
Example: i/13a35fbe-9515-6e55-36e8-081fb6aacf86
AT+URI1=11,"i"
AT+URI2=11,"13a35fbe-9515-6e55-36e8-081fb6aacf86"
-->If multiple groups of CoAP endpoint urls:
AT+URI3=11,"i"
AT+URI4=11,"CoAP endpoint URl"
3.21 Power on / power off BG95 module
This command is used to power on and power off BG95 module.
- AT command: AT+QSW
The module is powered on after the command is sent for the first time, and powered off after the command is sent again.
3.22 Example Query saved historical records
- AT command: AT+CDP
This command can be used to search the saved history, recording up to 32 groups of data, each group of historical data contains a maximum of 100 bytes.
3.23 Uplink log query
- AT command: AT+GETLOG
This command can be used to query upstream logs of data packets.
3.24 Get or Set Count value
Feature,Get or set the count value and set the interrupt mode or count mode.(Note: Added since firmware version v1.0.2)
AT command:AT+EXT
Command Example | Function | Response |
---|---|---|
AT+EXT? | Get or Set Count value | OK |
AT+EXT=? | Get count value and current mode The last parameter: 0: interrupt trigger mode; 1: count mode. | 1:108,2:92,3:78,1 OK |
AT+EXT=a,b,c,1 | Set to count mode, parameter a sets the count for PB15, parameter b sets the count for PA4, and parameter c sets the count for PA8. | OK |
Example:
- AT+EXT=0,0,0,0 // Set to interrupt trigger mode, invalid count value recommended fixed setting of 0.
- AT+EXT=0,0,0,1 // Set to counting mode, PB15,PA4,PA8 start counting from 0.
- AT+EXT=50,100,200,1 // Set to count mode, set PB15 count value to 50, set PA4 count value to 100, set PA8 count value to 200.
Note:
- There is no down command for this instruction, it can only be set through the serial port.
- The last parameter of the current instruction sets the pin's operating mode to interrupt-triggered or count mode.(can only be set to 0 or 1)
- This command only works in modes where the payload contains counts or interrupts, such as mode 6 and mode 8. For mode 9, the count pin is PA8, so users can use this command to set the count value of PA8, for example: AT+EXT=0,0,50,1 //Set the count value of PA8 to 50.
4. Analogue Digital Converter (ADC)
The ADC pins in SN50V3-CB can measure range from 0~Vbat, it use reference voltage from STM32. If user need to measure a voltage > VBat, please use resistors to divide this voltage to lower than VBat, otherwise, it may destroy the ADC pin.
Note: minimum VBat is 2.5v, when batrrey lower than this value. Device won't be able to send LoRa Uplink.
The ADC monitors the voltage on the PA0 line, in mV.
Ex: 0x021F = 543mv,
Note: If the ADC type sensor needs to be powered by SN50_v3, it is recommended to use +5V to control its switch.Only sensors with low power consumption can be powered with VDD.
The position of PA5 on the hardware after SN50 v3.3 is changed to the position shown in the figure below, and the collected voltage becomes one-sixth of the original.
5. Battery & Power Consumption
SN50v3-CB use ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace.
Battery Info & Power Consumption Analyze .
6. Firmware update
User can change device firmware to::
- Update with new features.
- Fix bugs.
Firmware and changelog can be downloaded from : Firmware download link
Methods to Update Firmware:
- (Recommended way) OTA firmware update via BLE: Instruction.
- Update through UART TTL interface : Instruction.
7. Get and compile Software
NBSN95 is an open-source project, developer can compile their firmware for customized applications. User can get the source code from:
- Software Source Code: https://github.com/dragino/SN50V3-NB
- Compile instruction: http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20Compile%20Instruction%20--%20STM32/
- Upgrade firmware instruction
See FAQ of this file.
The project file is in: SN50V3-NB\MDK-ARM\uvprojx
8. FAQ
8.1 How can I access the BG95-NGFF AT Commands?
User can access to BG95-NGFF directly and send AT Commands.
8.2 General Manual for -CB , -CS models
Users can follow the instructions in this link to see how to configure to connect to different servers.
9. Order Info
Part Number: SN50v3-CB-XX
XX:
- GE: General version ( Exclude SIM card)
- 1T: with 1NCE* 10 years 500MB SIM card Pre-confgure to ThingsEye server
YY: The grand connector hole size
- M12: M12 hole
- M16: M16 hole
- M20: M20 hole
10. Packing Info
Package Includes:
- SN50v3-CB NB-IoT/LTE-M Sensor Node x 1
- External antenna x 1
Dimension and weight:
- Device Size: 13.0 x 5 x 4.5 cm
- Device Weight: 150g
- Package Size / pcs : 14.0 x 8x 5 cm
- Weight / pcs : 180g
11. Support
- Support is provided Monday to Friday, from 09:00 to 18:00 GMT+8. Due to different timezones we cannot offer live support. However, your questions will be answered as soon as possible in the before-mentioned schedule.
- Provide as much information as possible regarding your enquiry (product models, accurately describe your problem and steps to replicate it etc) and send a mail to Support@dragino.cc.
12. FCC Warning
Any Changes or modifications not expressly approved by the party responsible for compliance could void the user's authority to operate the equipment.
This device complies with part 15 of the FCC Rules. Operation is subject to the following two conditions: (1) This device may not cause harmful interference, and (2) this device must accept any interference received, including interference that may cause undesired operation.
Note: This equipment has been tested and found to comply with the limits for a Class B digital device, pursuant to part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interference in a residential installation. This equipment generates, uses and can radiate radio frequency energy and, if not installed and used in accordance with the instructions, may cause harmful interference to radio communications. However, there is no guarantee that interference will not occur in a particular installation. If this equipment does cause harmful interference to radio or television reception, which can be determined by turning the equipment off and on, the user is encouraged to try to correct the interference by one or more of the following measures:
—Reorient or relocate the receiving antenna.
—Increase the separation between the equipment and receiver.
—Connect the equipment into an outlet on a circuit different from that to which the receiver is connected.
—Consult the dealer or an experienced radio/TV technician for help.
This equipment complies with FCC radiation exposure limits set forth for an uncontrolled environment. This equipment should be installed and operated with minimum distance 20cm between the radiator& your body.