Last modified by Mengting Qiu on 2025/06/18 16:53

Show last authors
1 (% class="wikigeneratedid" %)
2 **Table of Contents:**
3
4 {{toc/}}
5
6
7
8
9 = 1. NB ST-BC660K-GL base Hardware =
10
11
12 Below hardware use NB ST -BC660K-GL module. They support UART Access for AT Command and Firmware Upgrade.
13
14 {{velocity}}
15 $xwiki.ssfx.use("js/xwiki/table/table.css")
16 $xwiki.jsfx.use("js/xwiki/table/tablefilterNsort.js", true)
17 {{/velocity}}
18
19 (% border="1" cellspacing="5" class="doOddEven filterable grid sortable" id="tableid" style="background-color:#f2f2f2; width:880px" %)
20 (% class="sortHeader" %)|=(% style="width: 317px; background-color: rgb(217, 226, 243);" %)Models|=(% style="width: 132px; background-color: rgb(217, 226, 243);" %)**Mother Board**|=(% style="width: 142px; background-color: rgb(217, 226, 243);" %)**UART Wiring**|=(% style="width: 286px; background-color: rgb(217, 226, 243);" %)**UART for Upgrade Firmware**
21 |(% style="width:317px" %)PS-NB, PS-NB-NA, SDI12-NB|(% style="width:132px" %)SIB|(% style="width:142px" %)[[Instruction>>||anchor="H2.2SIBmotherboard"]] |(% style="width:286px" %)[[Instruction>>||anchor="H4.2UpdateFirmware28Assumethedevicealreadyhaveabootloader29"]]
22 |(% style="width:317px" %)(((
23 SN50v3-NB, S31-NB, S31B-NB, D20-NB. D20S-NB, D21-NB, D22-NB, DS03A-NB,
24 )))|(% style="width:132px" %)SN50v3|(% style="width:142px" %)[[Instruction>>||anchor="H2.1SN50v3basemotherboard"]]|(% style="width:286px" %)[[Instruction>>||anchor="H4.2UpdateFirmware28Assumethedevicealreadyhaveabootloader29"]]
25 |(% style="width:317px" %)(((
26 RS485-NB, SE01-NB, SPH01-NB, LMS01-NB, LDS12-NB, LDS40-NB, DDS75-NB, DDS45-NB, DDS04-NB, DDS20-NB, MDS120-NB, MDS200-NB, WSC2-NB
27 )))|(% style="width:132px" %)RS485-BL|(% style="width:142px" %)[[Instruction>>||anchor="H2.3RS485-BLbasemotherboard"]]|(% style="width:286px" %)[[Instruction>>||anchor="H4.2UpdateFirmware28Assumethedevicealreadyhaveabootloader29"]]
28
29 = 2. Hardware Wiring for UART =
30
31
32 Connection Structure:
33
34 [[image:image-20240316235825-1.png||height="157" width="738"]]
35
36 == 2.1 SN50v3 base mother board ==
37
38
39 [[image:微信图片_20230810085700.jpg||height="633" width="817"]]
40
41
42 == 2.2 SIB mother board ==
43
44
45 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/WebHome/image-20221224171304-3.png?width=863&height=545&rev=1.1||alt="image-20221224171304-3.png" height="545" width="863"]]
46
47
48 == 2.3 UART Connection for RS485-BL  V2.1 base mother board ==
49
50
51 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/WebHome/image-20250423150841-1.jpeg?rev=1.1||alt="image-20250423150841-1.jpeg" height="693" width="743"]]
52
53
54 = 3. UART for AT Commands =
55
56
57 (% class="lead" id="H3.1GeneralsoftwaresetupforATCommandsviaUART" %)
58 (% style="color:blue" %)**Step1:**(%%) Connect UART Interface & Set to Flash Mode
59
60 (% class="lead" %)
61 (% style="color:blue" %)**Step2:**(%%) Use Serial Utility to connect
62
63 * 1. Use a general serial tool. Download **[[Serial Port Utility>>https://serialport.en.softonic.com/]]**
64 * 2. Set up serial tool with : BaudRate: 9600, databit:8, No parity, No flow control.
65 * 3. The AT Command Password is printed as AT PIN in the sticker on the giftbox.
66
67 **Example:**
68
69 [[image:image-20240203205807-1.png]]
70
71
72 [[image:image-20240217102816-1.png]]
73
74
75 Notice: When Input AT Command. Please add a new line:
76
77 [[image:image-20240217103108-2.png||height="565" width="728"]]
78
79
80 = 4. Firmware Upgrade =
81
82 == 4.1 Check Your device already has bootloader ==
83
84 === 4.1.1 Firmware Structure ===
85
86
87 The -NB/-NS firmware structure is as below:
88
89
90 === 4.1.2 What is Dragino Bootloader for NB-IoT Model? ===
91
92
93 Dragino NB Bootloader is a bootloader which support below features:
94
95 * OTA Update via BLE
96 * OTA Batch update configure via BLE (Not Finished)
97
98 All Dragino End Devices which support BLE module are shipped with the NB Bootloader.
99
100
101 === 4.1.3 How can i know if my device already have bootloader? ===
102
103
104 If a device has a bootloader. it will output bootloader info to UART when boot. As below:
105
106 [[image:image-20240203171322-1.png]]
107
108
109 === 4.1.4 How to upload bootloader to device? ===
110
111
112 If your is NB ST -BC660K-GL base hardware but doesn't have bootloader or The bootloader is erased by mistake. You can upload a bootloader to it. ( This instruction works no matter the device has bootloader or not)
113
114 **[[Downlink Link for NB-IoT BLE bootloader>>https://www.dropbox.com/scl/fo/yr8vmzoc8eurebj3sban8/h?rlkey=6gmzx592c7x0r13oo034fcw3z&dl=0]].**
115
116
117 (% class="lead" %)
118 (% style="color:blue" %)**Step1:**(%%) download [[STM32 Cubeprogramer>>url:https://www.st.com/en/development-tools/stm32cubeprog.html#get-software]]
119
120 (% class="lead" %)
121 (% style="color:blue" %)**Step2:**(%%) Connect wires to Device's UART interface & Set Device to ISP mode
122
123 See UART Connection method for each device.
124
125 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/Firmware%20Upgrade%20Instruction%20for%20STM32%20base%20products/WebHome/image-20240202115041-1.png?width=590&height=303&rev=1.1||alt="image-20240202115041-1.png" height="303" width="590"]]
126
127
128 (% class="lead" %)
129 (% style="color:blue" %)**Step3:**(%%) Use STM32 Cube to Connect Device
130
131 (% style="color:red" %)**Note: Before clicking the "Connect", users need to press the reset button to reset the node, otherwise the connection may be incorrect**, (%%)for example:
132
133 [[image:image-20240514103635-3.png||height="574" width="985"]]
134
135
136 **Successful connection:**
137
138 [[image:image-20240514103315-1.png||height="574" width="984"]]
139
140
141 (% class="lead" %)
142 (% style="color:blue" %)**Step4:**(%%) Choose NB Bootloader and Start Programming
143
144 [[image:image-20240514104334-4.png||height="550" width="941"]]
145
146 [[image:image-20240514104459-5.png||height="551" width="945"]]
147
148
149 (% class="lead" %)
150 (% style="color:blue" %)**Step5:**(%%) Verify Programming
151
152 [[image:image-20240514104832-6.png||height="548" width="946"]]
153
154
155 (% class="lead" %)
156 (% style="color:blue" %)**Step6:**(%%) Switch Jumper from ISP to Flash mode
157
158
159 == 4.2 Update Firmware (Assume the device already have a bootloader) ==
160
161
162 (% class="lead" %)
163 (% style="color:blue" %)**Step1:**(%%) Download [[STM32 Cubeprogramer>>url:https://www.st.com/en/development-tools/stm32cubeprog.html#get-software]]
164
165 (% class="lead" %)
166 (% style="color:blue" %)**Step2:**(%%) Connect wires to Device's UART interface & Set Device to ISP mode
167
168 See UART Connection method for each device.
169
170 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/Firmware%20Upgrade%20Instruction%20for%20STM32%20base%20products/WebHome/image-20240202115041-1.png?width=590&height=303&rev=1.1||alt="image-20240202115041-1.png" height="303" width="590"]]
171
172
173 (% class="lead" %)
174 (% style="color:blue" %)**Step3:**(%%) Use STM32 Cube to Connect Device
175
176 (% style="color:red" %)**Note: Before clicking the "Connect", users need to press the reset button to reset the node, otherwise the connection may be incorrect**, (%%)for example:
177
178 [[image:image-20240514103635-3.png||height="606" width="1040"]]
179
180
181 **Successful connection:**
182
183 [[image:image-20240514105302-7.png||height="595" width="1035"]]
184
185
186 (% class="lead" %)
187 (% style="color:blue" %)**Step4:**(%%) Choose NB firmware and Start Programming
188
189 (% class="lead" %)
190 NB Firmware download address: [[NB-IoT - Dropbox>>url:https://www.dropbox.com/sh/sxrgszkac4ips0q/AADkCgZKS_Rl9dRG4TQiM6BKa/NB-IoT?e=2&subfolder_nav_tracking=1&dl=0]].  (% class="mark" %)**.hex**(%%) &(% class="mark" %)**.bin**(%%)files can be burned directly.
191
192 [[image:image-20240514110241-8.png||height="595" width="1023"]]
193
194 [[image:image-20240514110349-9.png||height="591" width="1022"]]
195
196
197 (% class="lead" %)
198 (% style="color:blue" %)**Step5:**(%%) Verify Programming
199
200 [[image:image-20240514110514-10.png||height="589" width="1023"]]
201
202
203 (% class="lead" %)
204 (% style="color:blue" %)**Step6:**(%%) Switch Jumper from ISP to Flash mode
205
206
207 = 5. FAQ =
208
209 == 5.1 What is the difference between .hex and .bin file? ==
210
211
212 When compile the firmware, there will be two files .hex and .bin. they are different:
213
214 * .bin : original firmware file. When use .bin file and update in STM32Cube, you need to specify the start address.
215 * .hex : file with control / meta info. When use .hex file and update in STM32Cube, you don't need to specify the start address. They are included in the file so hex file is bigger in size but actually firmware are the same.
216
217 Example:
218
219 * For the .hex firmware, the STM32CubeProgrammer will automatically recognize the burning address as (% style="color:blue" %)**0x8007800**(%%).
220
221 [[image:image-20250421134819-1.png||height="470" width="886"]]
222
223
224 * For the.bin firmware, STM32CubeProgrammer will automatically identify the burning address as (% style="color:blue" %)**0x08000000**(%%).
225
226 [[image:image-20250421135119-2.png||height="432" width="898"]]
227
228
229 * In addition, our boot loader should use the burning address (% style="color:blue" %)**0x08000000**(%%). When burning the boot loader, the STM32CubeProgrammer will also automatically recognize the burning address as (% style="color:blue" %)**0x08000000**(%%).
230
231 [[image:image-20250421135236-3.png||height="407" width="901"]]
232
233
234 Therefore, when using the.bin firmware, users should manually configure the burning address to (% style="color:blue" %)**0x8007800**(%%).
235
236 Otherwise, the working firmware will overwrite the boot loader, and the node will be unusable (the LED indicator light will not respond, and there will be no content when viewing the node startup information).
237
238 For the opened firmware file, modify the address at the place shown in the screenshot below:
239
240 [[image:https://qiye.aliyun.com/attachment/downloadex?ri=%2Falimail%2FinternalLinks%2FrefreshToken&o=1&et=normal&ext=png&e=ting%40dragino.cc&f=3d76da68-f6f5-45df-92b6-b5461bd567a5&m=2_0%3ADzzzzyLyYTm%24---.cSMTIrR&n=temp4cj.png||height="481" width="902"]]
241
242
243 == 5.2 How to use PC to send UART command to NB-IoT Module directly? ==
244
245
246 The default UART Connection as per above instruction is as below. PC is communicating with the MCU instead of NB-IoT Module.
247
248 [[image:image-20240317000017-2.png||height="139" width="653"]]
249
250
251 User can use MCU to pass AT Commands to NB-IoT modules. But in some case, we want the PC to communicate with NB-IoT module directly for advance debugging.
252
253 Structure like below:
254
255 [[image:image-20240317000542-3.png||height="196" width="651"]]
256
257 To do above, below are the step:
258
259 1. Upload a none-working firmware in the MCU STM32L072. So the STM32L072 will not send any AT Command to NB-IoT module to avoid conflict when you use PC to communicate with NB-Iot Module.
260 1. Connect PC to the TXD/RXD/GND pins of NB-IoT module BC660K-GL directly via USB to TTL adapter. Below is the location for the pins:
261
262 [[image:image-20240317001149-4.png||height="424" width="804"]]
263
264
265 Reference: [[**BC660K-GL Module AT Commands & Software Document**>>https://www.dropbox.com/scl/fo/gqphhnxbbsbbixjeb9onc/h?rlkey=xttdj8puf58gxws85fqvpz57l&dl=0]].
266
267
268