Dragino SDI-12-NB NB-IoT Sensor Node
Introduction
What is NB-IoT Analog Sensor
The Dragino SDI-12-NB is a NB-IoT Analog Sensor for Internet of Things solution. SDI-12-NB has 5v and 12v output, 4~20mA, 0~30v input interface to power and get value from Analog Sensor. SDI-12-NB will convert the Analog Value to NB-IoT wireless data and send to IoT platform via NB-IoT network.
- SDI-12-NB supports different uplink methods including MQTT, MQTTs, UDP & TCP for different application requirement, and support uplinks to various IoT Servers.
- SDI-12-NB supports BLE configure and OTA update which make user easy to use.
- SDI-12-NB is powered by 8500mAh Li-SOCI2 battery, it is designed for long-term use up to several years.
- SDI-12-NB has optional built-in SIM card and default IoT server connection version. Which makes it works with simple configuration.
PS-NB-NA in a NB-loT Network
Features
- NB-IoT Bands: B1/B2/B3/B4/B5/B8/B12/B13/B17/B18/B19/B20/B25/B28/B66/B70/B85
- Ultra-low power consumption
- 1 x 0~20mA input , 1 x 0~30v input
- 5v and 12v output to power external sensor
- Multiply Sampling and one uplink
- Support Bluetooth remote configure and update firmware
- Uplink on periodically
- Downlink to change configure
- 8500mAh Battery for long term use
- IP66 Waterproof Enclosure
- Uplink via MQTT, MQTTs, TCP, or UDP
- Nano SIM card slot for NB-IoT SIM
Specification
Common DC Characteristics:
- Supply Voltage: 2.5v ~ 3.6v
- Operating Temperature: -40 ~ 85°C
Current Input (DC) Measuring :
- Range: 0 ~ 20mA
- Accuracy: 0.02mA
- Resolution: 0.001mA
Voltage Input Measuring:
- Range: 0 ~ 30v
- Accuracy: 0.02v
- Resolution: 0.001v
NB-IoT Spec:
NB-IoT Module: BC660K-GL
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
- B20 @H-FDD: 790MHz
- B28 @H-FDD: 750MHz
- B66 @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
Applications
- Smart Buildings & Home Automation
- Logistics and Supply Chain Management
- Smart Metering
- Smart Agriculture
- Smart Cities
- Smart Factory
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.
Button & LEDs
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.
BLE connection
SDI-12-NB 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.
Pin Definitions , Switch & SIM Direction
SDI-12-NB use the mother board which as below.
Jumper JP2
Power on Device when put this jumper.
BOOT MODE / SW1
- 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.
- Flash: work mode, device starts to work and send out console output for further debug
Reset Button
Press to reboot the device.
SIM Card Direction
See this link. How to insert SIM Card.
Use SDI-12-NB to communicate with IoT Server
Send data to IoT server via NB-IoT network
The SDI-12-NB is equipped with a NB-IoT module, the pre-loaded firmware in SDI-12-NB 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 SDI-12-NB. Below shows the network structure:
PS-NB-NA in a NB-loT Network
There are two version: -GE and -1D version of SDI-12-NB.
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 SDI-12-NB 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
1D Version: This version has 1NCE SIM card pre-installed and configure to send value to DataCake. User Just need to select the sensor type in DataCake and Activate SDI-12-NB and user will be able to see data in DataCake. See here for DataCake Config Instruction
Payload Types
To meet different server requirements, SDI-12-NB 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,0 // Use MQTT Connection & hex Payload
- AT+PRO=3,1 // Use MQTT Connection & ThingSpeak
- AT+PRO=3,3 // Use MQTT Connection & ThingsBoard
- AT+PRO=3,5 // Use MQTT Connection & Json Payload
- AT+PRO=4,0 // Use TCP Connection & hex Payload
- AT+PRO=4,5 // Use TCP Connection & Json Payload
General Json Format(Type=5)
This is the General Json Format. As below: {“IMEI”:”866207053462705″,”Model”:”PSNB”,” idc_intput”:0.000,”vdc_intput”:0.000,”battery”:3.513,”signal”:23,”1″:{0.000,5.056,2023/09/13 02:14:41},”2″:{0.000,3.574,2023/09/13 02:08:20},”3″:{0.000,3.579,2023/09/13 02:04:41},”4″: {0.000,3.584,2023/09/13 02:00:24},”5″:{0.000,3.590,2023/09/13 01:53:37},”6″:{0.000,3.590,2023/09/13 01:50:37},”7″:{0.000,3.589,2023/09/13 01:47:37},”8″:{0.000,3.589,2023/09/13 01:44:37}}
Notice, from above payload:
- Idc_input , Vdc_input , Battery & Signal are the value at uplink time.
- Json entry 1 ~ 8 are the last 1 ~ 8 sampling data as specify by AT+NOUD=8 Command. Each entry includes (from left to right): Idc_input , Vdc_input, Sampling time.
HEX format Payload(Type=0)
This is the HEX Format. As below:
f866207053462705 0165 0dde 13 0000 00 00 00 00 0fae 0000 64e2d74f 10b2 0000 64e2d69b 0fae 0000 64e2d5e7 10b2 0000 64e2d47f 0fae 0000 64e2d3cb 0fae 0000 64e2d263 0fae 0000 64e2d1af 011a 01e8 64d494ed 0118 01e8 64d4943d
Version:
These bytes include the hardware and software version.
- Higher byte: Specify Sensor Model: 0x01 for SDI-12-NB
- Lower byte: Specify the software version: 0x65=101, which means firmware version 1.0.1
BAT (Battery Info):
Check the battery voltage for SDI-12-NB.
- Ex1: 0x0dde = 3550mV
- Ex2: 0x0B49 = 2889mV
Signal Strength:
NB-IoT Network Signal Strength.
Ex1: 0x13 = 19
- 0 -113dBm or less
- 1 -111dBm
- 2…30 -109dBm… -53dBm
- 31 -51dBm or greater
- 99 Not known or not detectable
Probe Model:
SDI-12-NB might connect to different kind of probes, 4~20mA represent the full scale of the measuring range. So a 12mA output means different meaning for different probe.
For example.
User can set different probe model for above probes. So IoT server is able to se identical how it should parse the 4~20mA or 0~30v sensor value and get the correct value.
IN1 & IN2:
- IN1 and IN2 are used as Digital input pins.
Example:
- 01 (H): IN1 or IN2 pin is high level.
- 00 (L): IN1 or IN2 pin is low level.
- GPIO_EXTI Level:
- GPIO_EXTI is used as Interrupt Pin.
Example:
- 01 (H): GPIO_EXTI pin is high level.
- 00 (L): GPIO_EXTI pin is low level.
GPIO_EXTI Flag:
This data field shows if this packet is generated by Interrupt Pin or not.
Note: The Interrupt Pin is a separate pin in the screw terminal.
Example:
- 0x00: Normal uplink packet.
- 0x01: Interrupt Uplink Packet.
0~20mA:
Example:
27AE(H) = 10158 (D)/1000 = 10.158mA.
Connect to a 2 wire 4~20mA sensor.
0~30V:
Measure the voltage value. The range is 0 to 30V.
Example:
138E(H) = 5006(D)/1000= 5.006V
TimeStamp:
- Unit TimeStamp Example: 64e2d74f(H) = 1692587855(D)
- Put the decimal value into this link(https://www.epochconverter.com))to get the time.
ThingsBoard Payload(Type=3)
Type3 payload special design for ThingsBoard, it will also configure another default server to ThingsBoard.
{“IMEI”: “866207053462705”,”Model”: “PS-NB”,”idc_intput”: 0.0,”vdc_intput”: 3.577,”battery”: 3.55,”signal”: 22}
ThingSpeak Payload(Type=1)
This payload meets ThingSpeak platform requirement. It includes only four fields. Form 1~4 are: Idc_input , Vdc_input , Battery & Signal. This payload type only valid for ThingsSpeak Platform
As below:
field1=idc_intput value&field2=vdc_intput value&field3=battery value&field4=signal value
Test Uplink and Change Update Interval
By default, Sensor will send uplinks every 2 hours & AT+NOUD=8 User can use below commands to change the uplink interval
AT+TDC=600 // Set Update Interval to 600s
User can also push the button for more than 1 seconds to activate an uplink.
Multi-Samplings and One uplink
Notice: The AT+NOUD feature is upgraded to Clock Logging, please refer Clock Logging Feature.
To save battery life, SDI-12-NB will sample Idc_input & Vdc_input data every 15 minutes and send one uplink every 2 hours. So each uplink it will include 8 stored data + 1 real-time data. They are defined by:
- AT+TR=900 // The unit is seconds, and the default is to record data once every 900 seconds (15 minutes, the minimum can be set to 180 seconds)
- AT+NOUD=8 // The device uploads 8 sets of recorded data by default. Up to 32 sets of record data can be uploaded.
The diagram below explains the relationship between TR, NOUD, and TDC more clearly:
Trggier an uplink by external interrupt
SDI-12-NB has an external trigger interrupt function. Users can use the GPIO_EXTI pin to trigger the upload of data packets.
AT command:
- AT+INTMOD // Set the trigger interrupt mode
- AT+INTMOD=0 // Disable Interrupt,as a digital input pin
- AT+INTMOD=1 // Trigger by rising and falling edge
- AT+INTMOD=2 // Trigger by falling edge
- AT+INTMOD=3 // Trigger by rising edge
Set Power Output Duration
Control the output duration 3V3 , 5V or 12V. Before each sampling, device will
- first enable the power output to external sensor,
- keep it on as per duration, read sensor value and construct uplink payload
- final, close the power output.
Set the Probe Model
Users need to configure this parameter according to the type of external probe. In this way, the server can decode according to this value, and convert the current value output by the sensor into water depth or pressure value.
AT Command: AT +PROBE
- AT+PROBE=aabb
- When aa=00, it is the water depth mode, and the current is converted into the water depth value; bb is the probe at a depth of several meters.
- When aa=01, it is the pressure mode, which converts the current into a pressure value; bb represents which type of pressure sensor it is.
Clock logging (Since firmware version v1.0.5)
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,0,15,8
Device will log data to memory start from the 0″ second (11:00 00″ of first hour and then sampling and log every 15 minutes. Every TDC uplink, the uplink payload will consist: Battery info + last 8 memory record with timestamp + the latest sample at uplink time) . See below for the example.
Example:
AT+CLOCKLOG=1,65535,1,3
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 3 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.
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.
Uplink log query
- AT Command: AT +GETLOG
This command can be used to query upstream logs of data packets.
Scheduled domain name resolution
This command is used to set up scheduled domain name resolution
AT Command:
- AT+DNSTIMER=XX // Unit: hour
After setting this command, domain name resolution will be performed regularly.
Configure SDI-12-NB
Configure Methods
SDI-12-NB supports below configure method:
- AT Command via Bluetooth Connection (Recommended): BLE Configure Instruction.
- AT Command via UART Connection : See UART Connection.
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
- ATZ : MCU Reset
- AT+TDC : Application Data Transmission Interval
- AT+CFG : Print all configurations
- AT+MODEL :Get module information
- AT+SLEEP :Get or set the sleep status
- AT+DEUI : Get or set the Device ID
- AT+INTMOD : Set the trigger interrupt mode
- AT+APN : Get or set the APN
- AT+3V3T : Set extend the time of 3V3 power
- AT+5VT : Set extend the time of 5V power
- AT+12VT : Set extend the time of 12V power
- AT+PROBE : Get or Set the probe model
- AT+PRO : Choose agreement
- AT+RXDL : Extend the sending and receiving time
- AT+TR : Get or set data record time
- AT+CDP : Read or Clear cached data
- AT+NOUD : Get or Set the number of data to be uploaded
- AT+DNSCFG : Get or Set DNS Server
- AT+CSQTIME : Get or Set the time to join the network
- AT+DNSTIMER : Get or Set the NDS timer
- AT+TLSMOD : Get or Set the TLS mode
- AT+GETSENSORVALUE: Returns the current sensor measurement
- AT+SERVADDR : Server Address
MQTT Management
- AT+CLIENT : Get or Set MQTT client
- AT+UNAME : Get or Set MQTT Username
- AT+PWD : Get or Set MQTT password
- AT+PUBTOPIC : Get or Set MQTT publish topic
- AT+SUBTOPIC : Get or Set MQTT subscription topic
Information
- AT+FDR : Factory Data Reset
- AT+PWORD : Serial Access Password
- AT+LDATA : Get the last upload data
- AT+CDP : Read or Clear cached data
Battery & Power Consumption
SDI-12-NB use ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace. Battery Info & Power Consumption Analyze .
Firmware update
User can change device firmware to::
- Update with new features.
- Fix bugs.
Firmware and changelog can be downloaded from : the Firmware download link
Methods to Update Firmware:
- (Recommended way) OTA firmware update via BLE: Instruction.
- Update through UART TTL interface : Instruction.
FAQ
How can I access t BC660K-GL AT Commands?
User can access to BC660K-GL directly and send AT Commands. See BC660K-GL AT Command set
How to configure the device through the MQTT subscription function?(Since version v1.0.3)
Subscription content: {AT COMMAND}
Example:
Setting AT+5VT=500 through Node-RED requires MQTT to send the content {AT+5VT=500}.
Order Info
Part Number: SDI-12-NB-XX-YY XX:
- GE: General version ( Exclude SIM card)
- 1D: with 1NCE* 10 years 500MB SIM card and Pre-configure to DataCake server
YY: The grand connector hole size
- M12: M12 hole
- M16: M16 hole
- M20: M20 hole
Packing Info
Package Includes:
- SDI-12-NB NB-IoT Analog Sensor x 1
- External antenna x 1
Dimension and weight:
- Device Size: cm
- Device Weight: g
- Package Size / pcs : cm
- Weight / pcs : g
Support
- Support is provided Monday to Friday, from 09:00 to 18:00 GMT+8. Due to different time zones 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.
FCC Statement
FCC Caution:
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:
- This device may not cause harmful interference, and
- this device must accept any interference received, including interference that may cause undesired operation.
This transmitter must not be co-located or operating in conjunction with any other antenna or transmitter.
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.
FCC Radiation Exposure Statement:
This equipment complies with FCC radiation exposure limits set forth for uncontrolled environments.This equipment should be installed and operated with minimum distance 20cm between the radiator& your body.
Documents / Resources
![]() |
Dragino SDI-12-NB NB-IoT Sensor Node [pdf] User Guide SDI-12-NB NB-IoT Sensor Node, SDI-12-NB, NB-IoT Sensor Node, Sensor Node, Node |