微信图片_20230822161139.jpg

Table of Contents:

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

1675071855856-879.png

Behavior on ACTFunctionAction
Pressing ACT between 1s < time < 3sSend an uplink

If sensor has already attached to NB-IoT network, sensor will send an uplink packet, blue led will blink once.
Meanwhile, BLE module will be active and user can connect via BLE to configure device.

Pressing ACT for more than 3sActive Device

Green led will fast blink 5 times, device will enter OTA mode for 3 seconds. And then start to  attach NB-IoT network.
Green led will solidly turn on for 5 seconds after joined in network.
Once sensor is active, BLE module will be active and user can connect via BLE to configure device, no matter if device attach NB-IoT network or not.

Fast press ACT 5 times.Deactivate DeviceRed 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.

image-20240716143117-1.png

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:

image-20240720151210-1.jpeg

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.

Below shows result of different server as a glance.

ServersDash BoardComments
Node-Red

image-20240506133928-1.png

 
DataCake

image-20240506141253-3.png

 
Tago.IOimage-20240506141610-4.png 
General UDPRaw Payload. Need Developer to design Dash Board 
General MQTTRaw Payload. Need Developer to design Dash Board 
ThingSpeak

image-20240506134509-2.png

 
ThingsBoard

image-20230819113244-11.png

 

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. 

image-20240706163624-1.png

If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the CB sensor uplink data.

image-20241209174436-5.png

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:

image-20241209174407-4.png

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.

image-20241015153207-4.png

If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the CB sensor uplink data.

image-20240921172606-2.png

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:

image-20240921172746-5.png

Connection to Ultrasonic Sensor:

Need to remove R1 and R2 resistors to get low power,otherwise there will be 240uA standby current.

image-20240921172711-4.png

Here is the JSON format of the uplink payload for mode 2:

image-20241015160913-5.png

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.

image-20240921172812-6.png

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.

image-20240921172819-7.png

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:

image-20241015162548-7.png

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.

image-20230513134006-1.png

This mode has total 41 bytes. As shown below:

image-20240706170411-5.png

 

If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the CB sensor uplink data.

image-20241209163424-2.png

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:

image-20241209163128-1.png

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)

image-20230512164658-2.png

Notes about hardware connection:

  1. 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.
  2. HX711 support 5v VCC, but while connect the SN50v3-CB's +5V to HX711 VCC, the value from HX711 is not stable.
  3. 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:

  1. Zero calibration. Don't put anything on load cell and run AT+WEIGRE to calibrate to Zero gram.
  2. 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:

image-20240706170504-6.png

If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the CB sensor uplink data.

image-20240708101037-7.png

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:

image-20241015170257-9.png

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.

image-20240706170536-7.png

If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the CB sensor uplink data.

image-20240708102150-8.png

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:

image-20241015170640-10.png

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)

image-20241015094918-2.png

If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the CB sensor uplink data.

image-20240910145720-2.png

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:

image-20241015172017-11.png

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)

image-20241015095201-4.png

If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the CB sensor uplink data.

image-20240911101102-2.png

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):

image-20241015173620-13.png

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)

image-20241015095122-3.png

If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the CB sensor uplink data.

image-20240910175952-1.png

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):

image-20241015174515-14.png

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)

image-20241015111008-1.png

If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the CB sensor uplink data.

image-20240911113919-3.png

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

image-20240911141013-5.jpeg

Here is the JSON format of the uplink payload for mode 9:

image-20241015175712-15.png

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)

image-20241015095257-6.png

If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the CB sensor uplink data.

image-20240911145113-6.png

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

image-20240911140719-4.jpeg

Here is the JSON format of the uplink payload for mode 10:

image-20241015181118-17.png

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:

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"]}

image-20240708103107-9.png

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

image-20240708104403-10.png

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"]
    }
}

image-20241218112623-1.png

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.

image-20240708110136-12.png

image-20240708110151-13.png

3. Configure SN50v3-CB

3.1 Configure Methods

SN50v3-CB supports below configure method:

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.

image-20240826180317-1.png

If you need to change the password, use AT+PWORD=xxxxxx (6 characters), CB nodes only support lowercase letters.

image-20240826180321-2.png

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.

image-20240826180330-3.png

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 ExampleFunctionResponse
AT+INTMOD?

Get or Set the trigger interrupt mode

1:0,2:0,3:0(default)
OK 

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,cParameter 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

image-20240315141254-1.png

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).

image-20240708145613-14.png

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.

image-20240708145828-15.png

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.

image-20240708145900-16.png

3.23 Uplink log query

  • AT command: AT+GETLOG

This command can be used to query upstream logs of data packets.

image-20240708145958-17.png

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 ExampleFunctionResponse
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,1Set 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,

图片-20220628150112-1.png

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.

image-20230811113449-1.png

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.

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:

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.

See BG95-NGFF AT Command set

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.

   

Tags:
    
Copyright ©2010-2024 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0