Wiki source code of LT-22222-L -- LoRa I/O Controller User Manual
Last modified by Xiaoling on 2025/03/20 15:59
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | (% style="text-align:center" %) | ||
2 | [[image:image-20220523163353-1.jpeg||height="604" width="500"]] | ||
3 | |||
4 | |||
5 | |||
6 | |||
7 | |||
8 | |||
9 | |||
10 | **Table of Contents:** | ||
11 | |||
12 | {{toc/}} | ||
13 | |||
14 | |||
15 | |||
16 | |||
17 | |||
18 | |||
19 | |||
20 | = 1. Introduction = | ||
21 | |||
22 | == 1.1 What is the LT-22222-L I/O Controller? == | ||
23 | |||
24 | |||
25 | ((( | ||
26 | ((( | ||
27 | {{info}} | ||
28 | **This manual is also applicable to the LT-33222-L.** | ||
29 | {{/info}} | ||
30 | |||
31 | The Dragino (% style="color:blue" %)**LT-22222-L I/O Controller**(%%) is an advanced LoRaWAN end device designed to provide seamless wireless long-range connectivity with various I/O options, including analog current and voltage inputs, digital inputs and outputs, and relay outputs. | ||
32 | |||
33 | The LT-22222-L I/O Controller simplifies and enhances I/O monitoring and controlling. It is ideal for professional applications in wireless sensor networks, including irrigation systems, smart metering, smart cities, building automation, and more. These controllers are designed for easy, cost-effective deployment using LoRa wireless technology. | ||
34 | ))) | ||
35 | ))) | ||
36 | |||
37 | ((( | ||
38 | With the LT-22222-L I/O Controller, users can transmit data over ultra-long distances with low power consumption using LoRa, a spread-spectrum modulation technique derived from chirp spread spectrum (CSS) technology that operates on license-free ISM bands. | ||
39 | ))) | ||
40 | |||
41 | ((( | ||
42 | You can connect the LT-22222-L I/O Controller to a LoRaWAN network service provider in several ways: | ||
43 | |||
44 | * If there is public LoRaWAN network coverage in the area where you plan to install the device (e.g., The Things Stack Community Network), you can select a network and register the LT-22222-L I/O controller with it. | ||
45 | * If there is no public LoRaWAN coverage in your area, you can set up a LoRaWAN gateway, or multiple gateways, and connect them to a LoRaWAN network server to create adequate coverage. Then, register the LT-22222-L I/O controller with this network. | ||
46 | * Setup your own private LoRaWAN network. | ||
47 | ))) | ||
48 | |||
49 | ((( | ||
50 | |||
51 | |||
52 | The network diagram below illustrates how the LT-22222-L communicates with a typical LoRaWAN network. | ||
53 | ))) | ||
54 | |||
55 | (% class="wikigeneratedid" %) | ||
56 | [[image:lorawan-nw.jpg||height="354" width="900"]] | ||
57 | |||
58 | |||
59 | == 1.2 Specifications == | ||
60 | |||
61 | |||
62 | (% style="color:#037691" %)**Hardware System:** | ||
63 | |||
64 | * STM32L072xxxx MCU | ||
65 | * SX1276/78 Wireless Chip | ||
66 | * Power Consumption: | ||
67 | ** Idle: 4mA@12V | ||
68 | ** 20dB Transmit: 34mA@12V | ||
69 | * Operating Temperature: -40 ~~ 85 Degrees, No Dew | ||
70 | |||
71 | (% style="color:#037691" %)**Interface for Model: LT22222-L:** | ||
72 | |||
73 | * 2 x Digital dual direction Input (Detect High/Low signal, Max: 50V, or 220V with optional external resistor) | ||
74 | * 2 x Digital Output (NPN output. Max pull-up voltage 36V,450mA) | ||
75 | * 2 x Relay Output (5A@250VAC / 30VDC) | ||
76 | * 2 x 0~~20mA Analog Input (res:0.01mA) | ||
77 | * 2 x 0~~30V Analog Input (res:0.01V) | ||
78 | * Power Input 7~~ 24V DC. | ||
79 | |||
80 | (% style="color:#037691" %)**LoRa Spec:** | ||
81 | |||
82 | * Frequency Range: | ||
83 | ** Band 1 (HF): 862 ~~ 1020 MHz | ||
84 | ** Band 2 (LF): 410 ~~ 528 MHz | ||
85 | * 168 dB maximum link budget. | ||
86 | * +20 dBm - 100 mW constant RF output vs. | ||
87 | * +14 dBm high-efficiency PA. | ||
88 | * Programmable bit rate up to 300 kbps. | ||
89 | * High sensitivity: down to -148 dBm. | ||
90 | * Bullet-proof front end: IIP3 = -12.5 dBm. | ||
91 | * Excellent blocking immunity. | ||
92 | * Low RX current of 10.3 mA, 200 nA register retention. | ||
93 | * Fully integrated synthesizer with a resolution of 61 Hz. | ||
94 | * FSK, GFSK, MSK, GMSK, LoRaTM and OOK modulation. | ||
95 | * Built-in bit synchronizer for clock recovery. | ||
96 | * Preamble detection. | ||
97 | * 127 dB Dynamic Range RSSI. | ||
98 | * Automatic RF Sense and CAD with ultra-fast AFC. | ||
99 | * Packet engine up to 256 bytes with CRC. | ||
100 | |||
101 | == 1.3 Features == | ||
102 | |||
103 | |||
104 | * LoRaWAN Class A & Class C modes | ||
105 | * Optional Customized LoRa Protocol | ||
106 | * Frequency Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/RU864/IN865/MA869 | ||
107 | * AT Commands to change parameters | ||
108 | * Remotely configure parameters via LoRaWAN Downlink | ||
109 | * Firmware upgradable via program port | ||
110 | * Counting | ||
111 | |||
112 | == 1.4 Applications == | ||
113 | |||
114 | |||
115 | * Smart buildings & home automation | ||
116 | * Logistics and supply chain management | ||
117 | * Smart metering | ||
118 | * Smart agriculture | ||
119 | * Smart cities | ||
120 | * Smart factory | ||
121 | |||
122 | == 1.5 Hardware Variants == | ||
123 | |||
124 | |||
125 | (% border="1" cellspacing="3" style="width:510px" %) | ||
126 | |(% style="background-color:#4f81bd; color:white; width:94px" %)**Model**|(% style="background-color:#4f81bd; color:white; width:172px" %)**Photo**|(% style="background-color:#4f81bd; color:white; width:244px" %)**Description** | ||
127 | |(% style="width:94px" %)**LT-33222-L**|(% style="width:172px" %)((( | ||
128 | (% style="text-align:center" %) | ||
129 | [[image:lt33222-l.jpg||height="110" width="95"]] | ||
130 | )))|(% style="width:256px" %)((( | ||
131 | * 3 x Digital Input (Bi-direction) | ||
132 | * 3 x Digital Output | ||
133 | * 2 x Relay Output (5A@250VAC / 30VDC) | ||
134 | * 2 x 0~~20mA Analog Input (res:0.01mA) | ||
135 | * 2 x 0~~30V Analog Input (res:0.01v) | ||
136 | * 1 x Counting Port | ||
137 | ))) | ||
138 | |||
139 | = 2. Assembling the device = | ||
140 | |||
141 | == 2.1 Connecting the antenna == | ||
142 | |||
143 | |||
144 | Connect the LoRa antenna to the antenna connector, **ANT**,** **located on the top right side of the device, next to the upper screw terminal block. Secure the antenna by tightening it clockwise. | ||
145 | |||
146 | {{warning}} | ||
147 | **Warning! Do not power on the device without connecting the antenna.** | ||
148 | {{/warning}} | ||
149 | |||
150 | |||
151 | == 2.2 Terminals == | ||
152 | |||
153 | |||
154 | The LT-22222-L has two screw terminal blocks. The upper screw terminal block has 6 screw terminals and the lower screw terminal block has 10 screw terminals. | ||
155 | |||
156 | **Upper screw terminal block (from left to right):** | ||
157 | |||
158 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:381px" %) | ||
159 | |=(% style="width: 139px;background-color:#4f81bd;color:white" %)Screw Terminal|=(% style="width: 242px;background-color:#4f81bd;color:white" %)Function | ||
160 | |(% style="width:139px" %)GND|(% style="width:242px" %)Ground | ||
161 | |(% style="width:139px" %)VIN|(% style="width:242px" %)Input Voltage | ||
162 | |(% style="width:139px" %)AVI2|(% style="width:242px" %)Analog Voltage Input Terminal 2 | ||
163 | |(% style="width:139px" %)AVI1|(% style="width:242px" %)Analog Voltage Input Terminal 1 | ||
164 | |(% style="width:139px" %)ACI2|(% style="width:242px" %)Analog Current Input Terminal 2 | ||
165 | |(% style="width:139px" %)ACI1|(% style="width:242px" %)Analog Current Input Terminal 1 | ||
166 | |||
167 | **Lower screw terminal block (from left to right):** | ||
168 | |||
169 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:253px" %) | ||
170 | |=(% style="width: 125px;background-color:#4f81bd;color:white" %)Screw Terminal|=(% style="width: 128px;background-color:#4f81bd;color:white" %)Function | ||
171 | |(% style="width:125px" %)RO1-2|(% style="width:128px" %)Relay Output 1 | ||
172 | |(% style="width:125px" %)RO1-1|(% style="width:128px" %)Relay Output 1 | ||
173 | |(% style="width:125px" %)RO2-2|(% style="width:128px" %)Relay Output 2 | ||
174 | |(% style="width:125px" %)RO2-1|(% style="width:128px" %)Relay Output 2 | ||
175 | |(% style="width:125px" %)DI2+|(% style="width:128px" %)Digital Input 2 | ||
176 | |(% style="width:125px" %)DI2-|(% style="width:128px" %)Digital Input 2 | ||
177 | |(% style="width:125px" %)DI1+|(% style="width:128px" %)Digital Input 1 | ||
178 | |(% style="width:125px" %)DI1-|(% style="width:128px" %)Digital Input 1 | ||
179 | |(% style="width:125px" %)DO2|(% style="width:128px" %)Digital Output 2 | ||
180 | |(% style="width:125px" %)DO1|(% style="width:128px" %)Digital Output 1 | ||
181 | |||
182 | == 2.3 Connecting LT-22222-L to a Power Source == | ||
183 | |||
184 | |||
185 | The LT-22222-L I/O Controller can be powered by a **7–24V DC** power source. Connect your power supply’s **positive wire** to the **VIN** and the **negative wire** to the **GND** screw terminals. The power indicator **(PWR) LED** will turn on when the device is properly powered. | ||
186 | |||
187 | {{warning}} | ||
188 | **We recommend that you power on the LT-22222-L after adding its registration information to the LoRaWAN network server. Otherwise, the device will continuously send join-request messages to attempt to join a LoRaWAN network but will fail.** | ||
189 | {{/warning}} | ||
190 | |||
191 | |||
192 | [[image:1653297104069-180.png]] | ||
193 | |||
194 | |||
195 | = 3. Registering LT-22222-L with a LoRaWAN Network Server = | ||
196 | |||
197 | |||
198 | The LT-22222-L supports both OTAA (Over-the-Air Activation) and ABP (Activation By Personalization) methods to activate with a LoRaWAN Network Server. However, OTAA is the most secure method for activating a device with a LoRaWAN Network Server. OTAA regenerates session keys upon initial registration and regenerates new session keys after any subsequent reboots. By default, the LT-22222-L is configured to operate in LoRaWAN Class C mode. | ||
199 | |||
200 | |||
201 | == 3.1 Prerequisites == | ||
202 | |||
203 | |||
204 | The LT-22222-L comes with device registration information such as DevEUI, AppEUI, and AppKey which allows you to register it with a LoRaWAN network. This registration information can be found on a sticker that can be found inside the package. Please keep the **registration information** sticker in a safe place for future reference. | ||
205 | |||
206 | [[image:image-20230425173427-2.png||height="246" width="530"]] | ||
207 | |||
208 | {{info}} | ||
209 | If you are unable to set the provided root key and other identifiers in the network server, you must generate new keys and identifiers with the network server and configure the device with them using AT commands. | ||
210 | {{/info}} | ||
211 | |||
212 | The following subsections explain how to register the LT-22222-L with different LoRaWAN network server providers. | ||
213 | |||
214 | |||
215 | == 3.2 The Things Stack == | ||
216 | |||
217 | |||
218 | This section guides you through how to register your LT-22222-L with The Things Stack Sandbox. | ||
219 | |||
220 | {{info}} | ||
221 | The Things Stack Sandbox was formally called The Things Stack Community Edition. | ||
222 | {{/info}} | ||
223 | |||
224 | |||
225 | The network diagram below illustrates the connection between the LT-22222-L and The Things Stack, as well as how the data can be integrated with the ThingsEye IoT platform. | ||
226 | |||
227 | |||
228 | [[image:dragino-lorawan-nw-lt-22222-n.jpg||height="374" width="1400"]] | ||
229 | |||
230 | {{info}} | ||
231 | You can use a LoRaWAN gateway, such as the [[Dragino LPS8N>>https://www.dragino.com/products/lora-lorawan-gateway/item/200-lps8n.html]], to expand or create LoRaWAN coverage in your area. | ||
232 | {{/info}} | ||
233 | |||
234 | |||
235 | === 3.2.1 Setting up === | ||
236 | |||
237 | |||
238 | * Sign up for a free account with [[The Things Stack Sandbox>>https://eu1.cloud.thethings.network]] if you do not have one yet. | ||
239 | * Log in to your The Things Stack Sandbox account. | ||
240 | * Create an **application** with The Things Stack if you do not have one yet (E.g., dragino-docs). | ||
241 | * Go to your application's page and click on the **End devices** in the left menu. | ||
242 | * On the End devices page, click on **+ Register end device**. Two registration options are available: | ||
243 | |||
244 | ==== 3.2.1.1 Using the LoRaWAN Device Repository ==== | ||
245 | |||
246 | |||
247 | * On the **Register end device** page: | ||
248 | ** Select the option **Select the end device in the LoRaWAN Device Repository **under **Input method**. | ||
249 | ** Select the **End device brand**, **Model**, **Hardware version**, **Firmware version**, and **Profile (Region)** from the respective dropdown lists. | ||
250 | *** **End device brand**: Dragino Technology Co., Limited | ||
251 | *** **Model**: LT22222-L I/O Controller | ||
252 | *** **Hardware ver**: Unknown | ||
253 | *** **Firmware ver**: 1.6.0 | ||
254 | *** **Profile (Region)**: Select the region that matches your device. | ||
255 | ** Select the **Frequency plan** that matches your device from the **Frequency plan** dropdown list. | ||
256 | |||
257 | [[image:lt-22222-l-dev-repo-reg-p1.png]] | ||
258 | |||
259 | |||
260 | * Register end device page continued... | ||
261 | ** Enter the **AppEUI** in the **JoinEUI** field and click the **Confirm** button. If The Things Stack accepts the JoinEUI you provided, it will display the message 'This end device can be registered on the network'. | ||
262 | ** In the **DevEUI** field, enter the **DevEUI**. | ||
263 | ** In the **AppKey** field, enter the **AppKey.** | ||
264 | ** In the **End device ID** field, enter a unique name for your LT-22222-L within this application. | ||
265 | ** Under **After registration**, select the **View registered end device** option. | ||
266 | ** Click **Register end device** button. | ||
267 | |||
268 | [[image:lt-22222-l-dev-repo-reg-p2.png]] | ||
269 | |||
270 | |||
271 | * You will be navigated to the **Device overview** page. | ||
272 | |||
273 | [[image:lt-22222-device-overview.png]] | ||
274 | |||
275 | |||
276 | ==== 3.2.1.2 Adding device manually ==== | ||
277 | |||
278 | |||
279 | * On the **Register end device** page: | ||
280 | ** Select the option **Enter end device specifies manually** under **Input method**. | ||
281 | ** Select the **Frequency plan** that matches your device from the **Frequency plan** dropdown list. | ||
282 | ** Select the **LoRaWAN version** as **LoRaWAN Specification 1.0.3** | ||
283 | ** Select the **Regional Parameters version** as** RP001 Regional Parameters 1.0.3 revision A** | ||
284 | ** Click **Show advanced activation, LoRaWAN class and cluster settings** link to expand the hidden section. | ||
285 | ** Select the option **Over the air activation (OTAA)** under the **Activation mode.** | ||
286 | ** Select **Class C (Continuous)** from the **Additional LoRaWAN class capabilities** dropdown list. | ||
287 | |||
288 | [[image:lt-22222-l-manually-p1.png]] | ||
289 | |||
290 | |||
291 | * Register end device page continued... | ||
292 | ** Enter the **AppEUI** in the **JoinEUI** field and click the **Confirm** button. If The Things Stack accepts the JoinEUI you provided, it will display the message '//**This end device can be registered on the network**//' | ||
293 | ** In the **DevEUI** field, enter the **DevEUI**. | ||
294 | ** In the **AppKey** field, enter the **AppKey**. | ||
295 | ** In the **End device ID** field, enter a unique name for your LT-22222-N within this application. | ||
296 | ** Under **After registration**, select the **View registered end device** option. | ||
297 | ** Click the **Register end device** button. | ||
298 | |||
299 | [[image:lt-22222-l-manually-p2.png]] | ||
300 | |||
301 | |||
302 | You will be navigated to the **Device overview** page. | ||
303 | |||
304 | |||
305 | [[image:lt-22222-device-overview.png]] | ||
306 | |||
307 | |||
308 | === 3.2.2 Joining === | ||
309 | |||
310 | |||
311 | On the end device's page (in this case, lt-22222-l), click on **Live data** tab. The Live data panel for your device will display. Initially, it is blank. | ||
312 | |||
313 | Now power on your LT-22222-L. The **TX LED** will **fast-blink 5 times** which means the LT-22222-L will enter the **work mode** and start to **join** The Things Stack network server. The **TX LED** will be on for **5 seconds** after joining the network. In the **Live data** panel, you can see the **join-request** and **join-accept** messages exchanged between the device and the network server. | ||
314 | |||
315 | |||
316 | [[image:lt-22222-l-joining.png]] | ||
317 | |||
318 | |||
319 | === 3.2.3 Uplinks === | ||
320 | |||
321 | |||
322 | After successfully joining, the device will send its first **uplink data message** to The Things Stack application it belongs to (in this example, it is **dragino-docs**). When the LT-22222-L sends an uplink message to the server, the **TX LED** turns on for **1 second**. By default, you will receive an uplink data message from the device every 10 minutes. | ||
323 | |||
324 | Click on one of the **Forward uplink data messages **to see its payload content. The payload content is encapsulated within the **decode_payload {}** JSON object. | ||
325 | |||
326 | [[image:lt-22222-ul-payload-decoded.png]] | ||
327 | |||
328 | |||
329 | If you can't see the decoded payload, it is because you haven't added the uplink formatter code. To add the uplink formatter code, select **Applications > [your application] > End devices** > [**your end device]** > **Payload formatters** > **Uplink**. Then select **Use Device repository formatters** for the **Formatter type** dropdown. Click the **Save changes** button to apply the changes. | ||
330 | |||
331 | {{info}} | ||
332 | The Things Stack provides two levels of payload formatters: application level and device level. The device-level payload formatters **override **the application-level payload formatters. | ||
333 | {{/info}} | ||
334 | |||
335 | [[image:lt-22222-ul-payload-fmt.png]] | ||
336 | |||
337 | |||
338 | We have written a payload formatter that resolves some decoding issues present in The Things Stack Device Repository payload formatter. You can add it under the **Custom JavaScript formatter**. It can be found [[here>>https://github.com/dragino/dragino-end-node-decoder/blob/main/LT22222-L/v1.6_decoder_ttn%20.txt]]: | ||
339 | |||
340 | (% class="wikigeneratedid" %) | ||
341 | [[image:lt-22222-l-js-custom-payload-formatter.png]] | ||
342 | |||
343 | |||
344 | === 3.2.4 Downlinks === | ||
345 | |||
346 | |||
347 | When the LT-22222-L receives a downlink message from the LoRaWAN Network Server, the **RX LED** turns on for **1 second**. | ||
348 | |||
349 | |||
350 | == 3.3 Working Modes and Uplink Payload formats == | ||
351 | |||
352 | |||
353 | The LT-22222-L has 5 **working modes**. It also has an interrupt/trigger mode for different types of applications that can be used together with any working mode as an additional feature. The default mode is MOD1 and you can switch between these modes using AT commands. | ||
354 | |||
355 | * (% style="color:blue" %)**MOD1**(%%): (default mode/factory set): 2ACI + 2AVI + DI + DO + RO | ||
356 | |||
357 | * (% style="color:blue" %)**MOD2**(%%): Double DI Counting + DO + RO | ||
358 | |||
359 | * (% style="color:blue" %)**MOD3**(%%): Single DI Counting + 2 x ACI + DO + RO | ||
360 | |||
361 | * (% style="color:blue" %)**MOD4**(%%): Single DI Counting + 1 x Voltage Counting + DO + RO | ||
362 | |||
363 | * (% style="color:blue" %)**MOD5**(%%): Single DI Counting + 2 x AVI + 1 x ACI + DO + RO | ||
364 | |||
365 | * (% style="color:blue" %)**ADDMOD6**(%%): Trigger Mode, Optional, used together with MOD1 ~~ MOD5 | ||
366 | |||
367 | The uplink messages are sent over LoRaWAN FPort=2. By default, an uplink message is sent every 10 minutes. | ||
368 | |||
369 | |||
370 | === 3.3.1 AT+MOD~=1, 2ACI+2AVI === | ||
371 | |||
372 | |||
373 | ((( | ||
374 | This is the default mode. | ||
375 | |||
376 | The uplink payload is 11 bytes long. | ||
377 | (% style="display:none" wfd-invisible="true" %) | ||
378 | |||
379 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) | ||
380 | |(% style="background-color:#4f81bd; color:white" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white" %)**2**|(% style="background-color:#4f81bd; color:white" %)**2**|(% style="background-color:#4f81bd; color:white" %)**2**|(% style="background-color:#4f81bd; color:white" %)**2**|(% style="background-color:#4f81bd; color:white" %)**1**|(% style="background-color:#4f81bd; color:white" %)**1**|(% style="background-color:#4f81bd; color:white" %)**1** | ||
381 | |Value|((( | ||
382 | AVI1 voltage | ||
383 | )))|((( | ||
384 | AVI2 voltage | ||
385 | )))|((( | ||
386 | ACI1 Current | ||
387 | )))|((( | ||
388 | ACI2 Current | ||
389 | )))|**DIDORO***|((( | ||
390 | Reserve | ||
391 | )))|MOD | ||
392 | ))) | ||
393 | |||
394 | ((( | ||
395 | (% style="color:#4f81bd" %)*** DIDORO**(%%) is a combination of RO1, RO2, DI3, DI2, DI1, DO3, DO2 and DO1, and its size is1 byte long as shown below. | ||
396 | |||
397 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) | ||
398 | |**bit 7**|**bit 6**|**bit 5**|**bit 4**|**bit 3**|**bit 2**|**bit 1**|**bit 0** | ||
399 | |RO1|RO2|--DI3--|DI2|DI1|--DO3--|DO2|DO1 | ||
400 | ))) | ||
401 | |||
402 | * RO is for the relay. ROx=1: CLOSED, ROx=0 always OPEN. | ||
403 | * DI is for digital input. DIx=1: HIGH or FLOATING, DIx=0: LOW. | ||
404 | * DO is for reverse digital output. DOx=1: LOW, DOx=0: HIGH or FLOATING. | ||
405 | |||
406 | (% style="color:red" %)**Note: DI3 and DO3 bits are not valid for LT-22222-L** | ||
407 | |||
408 | For example, if the payload is: [[image:image-20220523175847-2.png]] | ||
409 | |||
410 | |||
411 | **The interface values can be calculated as follows: ** | ||
412 | |||
413 | AVI1 channel voltage is 0x04AB/1000=1195(DEC)/1000=1.195V | ||
414 | |||
415 | AVI2 channel voltage is 0x04AC/1000=1.196V | ||
416 | |||
417 | ACI1 channel current is 0x1310/1000=4.880mA | ||
418 | |||
419 | ACI2 channel current is 0x1300/1000=4.864mA | ||
420 | |||
421 | The last byte 0xAA= **10101010**(b) means, | ||
422 | |||
423 | * [1] The RO1 relay channel is CLOSED, and the RO1 LED is ON. | ||
424 | * [0] The RO2 relay channel is OPEN, and the RO2 LED is OFF. | ||
425 | * **[1] DI3 - not used for LT-22222-L.** | ||
426 | * [0] DI2 channel input is LOW, and the DI2 LED is OFF. | ||
427 | * [1] DI1 channel input state: | ||
428 | ** DI1 is FLOATING when no sensor is connected between DI1+ and DI1-. | ||
429 | ** DI1 is HIGH when a sensor is connected between DI1- and DI1+ and the sensor is ACTIVE. | ||
430 | ** DI1 LED is ON in both cases. | ||
431 | * **[0] DO3 - not used for LT-22222-L.** | ||
432 | * [1] DO2 channel output is LOW, and the DO2 LED is ON. | ||
433 | * [0] DO1 channel output state: | ||
434 | ** DO1 is FLOATING when there is no load between DO1 and V+. | ||
435 | ** DO1 is HIGH and there is a load between DO1 and V+. | ||
436 | ** DO1 LED is OFF in both cases. | ||
437 | |||
438 | Reserve = 0 | ||
439 | |||
440 | MOD = 1 | ||
441 | |||
442 | |||
443 | === 3.3.2 AT+MOD~=2, (Double DI Counting) === | ||
444 | |||
445 | |||
446 | ((( | ||
447 | **For LT-22222-L**: In this mode, **DI1 and DI2** are used as counting pins. | ||
448 | ))) | ||
449 | |||
450 | ((( | ||
451 | The uplink payload is 11 bytes long. | ||
452 | |||
453 | (% style="color:red" %)**Note:The maximum count depends on the bytes it is. | ||
454 | The maximum count for four bytes is FFFFFFFF (hex) = 4294967295 (dec). | ||
455 | It starts counting again when it reaches the maximum value.** | ||
456 | |||
457 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) | ||
458 | |(% style="background-color:#4f81bd; color:white" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white" %)**4**|(% style="background-color:#4f81bd; color:white" %)**4**|(% style="background-color:#4f81bd; color:white" %)**1**|(% style="background-color:#4f81bd; color:white" %)**1**|(% style="background-color:#4f81bd; color:white" %)**1** | ||
459 | |Value|COUNT1|COUNT2 |DIDORO*|((( | ||
460 | Reserve | ||
461 | )))|MOD | ||
462 | ))) | ||
463 | |||
464 | ((( | ||
465 | (% style="color:#4f81bd" %)***DIDORO**(%%) is a combination of RO1, RO2, FIRST, Reserve, Reserve, DO3, DO2 and DO1, and its size is 1 byte long as shown below. | ||
466 | |||
467 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) | ||
468 | |**bit 7**|**bit 6**|**bit 5**|**bit 4**|**bit 3**|**bit 2**|**bit 1**|**bit 0** | ||
469 | |RO1|RO2|FIRST|Reserve|Reserve|--DO3--|DO2|DO1 | ||
470 | |||
471 | * RO is for the relay. ROx=1: CLOSED, ROx=0 always OPEN. | ||
472 | ))) | ||
473 | |||
474 | * FIRST: Indicates that this is the first packet after joining the network. | ||
475 | * DO is for reverse digital output. DOx=1: LOW, DOx=0: HIGH or FLOATING. | ||
476 | |||
477 | ((( | ||
478 | (% style="color:red" %)**Note: DO3 bit is not valid for LT-22222-L** | ||
479 | |||
480 | |||
481 | ))) | ||
482 | |||
483 | ((( | ||
484 | **To activate this mode, run the following AT commands:** | ||
485 | ))) | ||
486 | |||
487 | ((( | ||
488 | (% class="box infomessage" %) | ||
489 | ((( | ||
490 | **AT+MOD=2** | ||
491 | |||
492 | **ATZ** | ||
493 | ))) | ||
494 | ))) | ||
495 | |||
496 | ((( | ||
497 | |||
498 | |||
499 | (% style="color:#4f81bd" %)**AT Commands for counting:** | ||
500 | ))) | ||
501 | |||
502 | ((( | ||
503 | **For LT22222-L:** | ||
504 | |||
505 | (% style="color:blue" %)**AT+TRIG1=0,100**(%%)** (sets the DI1 port to trigger on a LOW level. The valid signal duration is 100ms) ** | ||
506 | |||
507 | (% style="color:blue" %)**AT+TRIG1=1,100**(%%)** (sets the DI1 port to trigger on a HIGH level. The valid signal duration is 100ms) ** | ||
508 | |||
509 | (% style="color:blue" %)**AT+TRIG2=0,100**(%%)** (sets the DI2 port to trigger on a LOW level. The valid signal duration is 100ms) ** | ||
510 | |||
511 | (% style="color:blue" %)**AT+TRIG2=1,100**(%%)** (sets the DI2 port to trigger on a HIGH level. The valid signal duration is 100ms) ** | ||
512 | |||
513 | (% style="color:blue" %)**AT+SETCNT=1,60**(%%)** (sets the COUNT1 value to 60)** | ||
514 | |||
515 | (% style="color:blue" %)**AT+SETCNT=2,60 **(%%)**(sets the COUNT2 value to 60)** | ||
516 | ))) | ||
517 | |||
518 | |||
519 | === 3.3.3 AT+MOD~=3, Single DI Counting + 2 x ACI === | ||
520 | |||
521 | |||
522 | (% style="color:red" %)**Note: The maximum count depends on the bytes it is. | ||
523 | The maximum count for four bytes is FFFFFFFF (hex) = 4294967295 (dec). | ||
524 | It starts counting again when it reaches the maximum value.** | ||
525 | |||
526 | **LT22222-L**: In this mode, the DI1 is used as a counting pin. | ||
527 | |||
528 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) | ||
529 | |(% style="background-color:#4f81bd; color:white" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white" %)**4**|(% style="background-color:#4f81bd; color:white" %)**2**|(% style="background-color:#4f81bd; color:white" %)**2**|(% style="background-color:#4f81bd; color:white" %)**1**|(% style="background-color:#4f81bd; color:white" %)**1**|(% style="background-color:#4f81bd; color:white" %)**1** | ||
530 | |Value|COUNT1|((( | ||
531 | ACI1 Current | ||
532 | )))|((( | ||
533 | ACI2 Current | ||
534 | )))|DIDORO*|Reserve|MOD | ||
535 | |||
536 | ((( | ||
537 | (% style="color:#4f81bd" %)***DIDORO**(%%) is a combination of RO1, RO2, DI3, DI2, DI1, DO3, DO2 and DO1, for a total of 1 byte, as shown below. | ||
538 | |||
539 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) | ||
540 | |**bit 7**|**bit 6**|**bit 5**|**bit 4**|**bit 3**|**bit 2**|**bit 1**|**bit 0** | ||
541 | |RO1|RO2|FIRST|Reserve|Reserve|--DO3--|DO2|DO1 | ||
542 | ))) | ||
543 | |||
544 | * RO is for the relay. ROx=1: closed, ROx=0 always open. | ||
545 | * FIRST: Indicates that this is the first packet after joining the network. | ||
546 | * DO is for reverse digital output. DOx=1: output low, DOx=0: high or floating. | ||
547 | |||
548 | ((( | ||
549 | (% style="color:red" %)**Note: DO3 bit is not valid for LT-22222-L.** | ||
550 | ))) | ||
551 | |||
552 | |||
553 | ((( | ||
554 | **To activate this mode, run the following AT commands:** | ||
555 | ))) | ||
556 | |||
557 | ((( | ||
558 | (% class="box infomessage" %) | ||
559 | ((( | ||
560 | **AT+MOD=3** | ||
561 | |||
562 | **ATZ** | ||
563 | ))) | ||
564 | ))) | ||
565 | |||
566 | ((( | ||
567 | AT Commands for counting: | ||
568 | |||
569 | The AT Commands for counting are similar to the [[MOD2 Counting Command>>||anchor="H3.3.2AT2BMOD3D22C28DoubleDICounting29"]]s. | ||
570 | ))) | ||
571 | |||
572 | |||
573 | === 3.3.4 AT+MOD~=4, Single DI Counting + 1 x Voltage Counting === | ||
574 | |||
575 | |||
576 | (% style="color:red" %)**Note:The maximum count depends on the bytes it is. | ||
577 | The maximum count for four bytes is FFFFFFFF (hex) = 4294967295 (dec). | ||
578 | It starts counting again when it reaches the maximum value.** | ||
579 | |||
580 | |||
581 | ((( | ||
582 | **LT22222-L**: In this mode, the DI1 is used as a counting pin. | ||
583 | ))) | ||
584 | |||
585 | ((( | ||
586 | The AVI1 is also used for counting. It monitors the voltage and checks it every **60 seconds**. If the voltage is higher or lower than VOLMAX mV, the AVI1 count increases by 1, allowing AVI1 counting to be used to measure a machine's working hours. | ||
587 | |||
588 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) | ||
589 | |(% style="background-color:#4f81bd; color:white" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white" %)**4**|(% style="background-color:#4f81bd; color:white" %)**4**|(% style="background-color:#4f81bd; color:white" %)**1**|(% style="background-color:#4f81bd; color:white" %)**1**|(% style="background-color:#4f81bd; color:white" %)**1** | ||
590 | |Value|COUNT1|AVI1 Counting|DIDORO*|((( | ||
591 | Reserve | ||
592 | )))|MOD | ||
593 | ))) | ||
594 | |||
595 | ((( | ||
596 | (% style="color:#4f81bd" %)**DIDORO **(%%)is a combination of RO1, RO2, DI3, DI2, DI1, DO3, DO2 and DO1, for a total of 1 byte, as shown below. | ||
597 | |||
598 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) | ||
599 | |**bit 7**|**bit 6**|**bit 5**|**bit 4**|**bit 3**|**bit 2**|**bit 1**|**bit 0** | ||
600 | |RO1|RO2|FIRST|Reserve|Reserve|--DO3--|DO2|DO1 | ||
601 | ))) | ||
602 | |||
603 | * RO is for the relay. ROx=1: closed, ROx=0 always open. | ||
604 | * FIRST: Indicates that this is the first packet after joining the network. | ||
605 | * DO is for reverse digital output. DOx=1: output low, DOx=0: high or floating. | ||
606 | |||
607 | ((( | ||
608 | (% style="color:red" %)**Note: DO3 bit is not valid for LT-22222-L.** | ||
609 | |||
610 | |||
611 | ))) | ||
612 | |||
613 | ((( | ||
614 | **To activate this mode, run the following AT commands:** | ||
615 | ))) | ||
616 | |||
617 | ((( | ||
618 | (% class="box infomessage" %) | ||
619 | ((( | ||
620 | **AT+MOD=4** | ||
621 | |||
622 | **ATZ** | ||
623 | ))) | ||
624 | ))) | ||
625 | |||
626 | ((( | ||
627 | AT Commands for counting are similar to the [[MOD2 Counting Command>>||anchor="H3.3.2AT2BMOD3D22C28DoubleDICounting29"]]s. | ||
628 | ))) | ||
629 | |||
630 | ((( | ||
631 | **In addition to that, below are the commands for AVI1 Counting:** | ||
632 | |||
633 | (% style="color:blue" %)**AT+SETCNT=3,60 **(%%)**(Sets AVI1 Count to 60)** | ||
634 | |||
635 | (% style="color:blue" %)**AT+VOLMAX=20000 **(%%)**(If the AVI1 voltage is higher than VOLMAX (20000mV =20V), the counter increases by 1)** | ||
636 | |||
637 | (% style="color:blue" %)**AT+VOLMAX=20000,0 **(%%)**(If the AVI1 voltage is lower than VOLMAX (20000mV =20V), counter increases by 1)** | ||
638 | |||
639 | (% style="color:blue" %)**AT+VOLMAX=20000,1 **(%%)**(If the AVI1 voltage is higher than VOLMAX (20000mV =20V), counter increases by 1)** | ||
640 | ))) | ||
641 | |||
642 | |||
643 | === 3.3.5 AT+MOD~=5, Single DI Counting + 2 x AVI + 1 x ACI === | ||
644 | |||
645 | |||
646 | (% style="color:red" %)**Note:The maximum count depends on the bytes it is. | ||
647 | The maximum count for four bytes is FFFF (hex) = 65535 (dec). | ||
648 | It starts counting again when it reaches the maximum value.** | ||
649 | |||
650 | |||
651 | **LT22222-L**: In this mode, the DI1 is used as a counting pin. | ||
652 | |||
653 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) | ||
654 | |(% style="background-color:#4f81bd; color:white" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white" %)**2**|(% style="background-color:#4f81bd; color:white" %)**2**|(% style="background-color:#4f81bd; color:white" %)**2**|(% style="background-color:#4f81bd; color:white" %)**2**|(% style="background-color:#4f81bd; color:white" %)**1**|(% style="background-color:#4f81bd; color:white" %)**1**|(% style="background-color:#4f81bd; color:white" %)**1** | ||
655 | |Value|((( | ||
656 | AVI1 voltage | ||
657 | )))|((( | ||
658 | AVI2 voltage | ||
659 | )))|((( | ||
660 | ACI1 Current | ||
661 | )))|COUNT1|DIDORO*|((( | ||
662 | Reserve | ||
663 | )))|MOD | ||
664 | |||
665 | ((( | ||
666 | (% style="color:#4f81bd" %)**DIDORO**(%%) is a combination of RO1, RO2, DI3, DI2, DI1, DO3, DO2 and DO1, for a total of 1 byte, as shown below. | ||
667 | |||
668 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) | ||
669 | |**bit 7**|**bit 6**|**bit 5**|**bit 4**|**bit 3**|**bit 2**|**bit 1**|**bit 0** | ||
670 | |RO1|RO2|FIRST|Reserve|Reserve|DO3|DO2|DO1 | ||
671 | ))) | ||
672 | |||
673 | * RO is for the relay. ROx=1: closed, ROx=0 always open. | ||
674 | * FIRST: Indicates that this is the first packet after joining the network. | ||
675 | * ((( | ||
676 | DO is for reverse digital output. DOx=1: output low, DOx=0: high or floating. | ||
677 | ))) | ||
678 | |||
679 | ((( | ||
680 | (% style="color:red" %)**Note: DO3 bit is not valid for LT-22222-L.** | ||
681 | ))) | ||
682 | |||
683 | ((( | ||
684 | **To activate this mode, run the following AT commands:** | ||
685 | ))) | ||
686 | |||
687 | ((( | ||
688 | (% class="box infomessage" %) | ||
689 | ((( | ||
690 | **AT+MOD=5** | ||
691 | |||
692 | **ATZ** | ||
693 | ))) | ||
694 | ))) | ||
695 | |||
696 | ((( | ||
697 | Other AT Commands for counting are similar to the [[MOD2 Counting Command>>||anchor="H3.3.2AT2BMOD3D22C28DoubleDICounting29"]]s. | ||
698 | ))) | ||
699 | |||
700 | |||
701 | === 3.3.6 AT+ADDMOD~=6 (Trigger Mode, Optional) === | ||
702 | |||
703 | |||
704 | (% style="color:#4f81bd" %)**This mode is optional and intended for trigger purposes. It can operate __alongside__ with other modes.** | ||
705 | |||
706 | For example, if you configure the following commands: | ||
707 | |||
708 | * **AT+MOD=1 ** **~-~->** Sets the default working mode | ||
709 | * **AT+ADDMOD6=1** **~-~->** Enables trigger mode | ||
710 | |||
711 | The LT-22222-L will continuously monitor AV1, AV2, AC1, and AC2 every 5 seconds. It will send uplink packets in two cases: | ||
712 | |||
713 | 1. Periodic uplink: Based on TDC time. The payload is the same as in normal mode (MOD=1 as set above). These are (% style="color:#4f81bd" %)**unconfirmed**(%%) uplinks. | ||
714 | 1. ((( | ||
715 | Trigger uplink: sent when a trigger condition is met. In this case, LT will send two packets | ||
716 | |||
717 | * The first uplink uses the payload specified in trigger mode (MOD=6). | ||
718 | * The second packet uses the normal mode payload (MOD=1 as set above). Both are (% style="color:#4f81bd" %)**confirmed uplinks.** | ||
719 | ))) | ||
720 | |||
721 | (% style="color:#037691" %)**AT Commands to set Trigger Conditions**: | ||
722 | |||
723 | (% style="color:#4f81bd" %)**Trigger based on voltage**: | ||
724 | |||
725 | Format: AT+AVLIM=<AV1_LIMIT_LOW>,< AV1_LIMIT_HIGH>,<AV2_LIMIT_LOW>,< AV2_LIMIT_HIGH> | ||
726 | |||
727 | |||
728 | **Example:** | ||
729 | |||
730 | AT+AVLIM=3000,6000,0,2000 (triggers an uplink if AVI1 voltage is lower than 3V or higher than 6V, or if AV2 voltage is higher than 2V) | ||
731 | |||
732 | AT+AVLIM=5000,0,0,0 (triggers an uplink if AVI1 voltage is lower than 5V. Use 0 for parameters that are not in use) | ||
733 | |||
734 | |||
735 | (% style="color:#4f81bd" %)**Trigger based on current**: | ||
736 | |||
737 | Format: AT+ACLIM=<AC1_LIMIT_LOW>,< AC1_LIMIT_HIGH>,<AC2_LIMIT_LOW>,< AC2_LIMIT_HIGH> | ||
738 | |||
739 | |||
740 | **Example:** | ||
741 | |||
742 | AT+ACLIM=10000,15000,0,0 (triggers an uplink if AC1 current is lower than 10mA or higher than 15mA) | ||
743 | |||
744 | |||
745 | (% style="color:#4f81bd" %)**Trigger based on DI status**: | ||
746 | |||
747 | DI status triggers Flag. | ||
748 | |||
749 | Format: AT+DTRI=<DI1_TIRGGER_FlAG>,< DI2_TIRGGER_FlAG > | ||
750 | |||
751 | |||
752 | **Example:** | ||
753 | |||
754 | AT+ DTRI =1,0 (Enable DI1 trigger / disable DI2 trigger) | ||
755 | |||
756 | |||
757 | (% style="color:#037691" %)**LoRaWAN Downlink Commands for Setting the Trigger Conditions:** | ||
758 | |||
759 | **Type Code**: 0xAA. Downlink command same as AT Command **AT+AVLIM, AT+ACLIM** | ||
760 | |||
761 | **Format**: AA xx yy1 yy1 yy2 yy2 yy3 yy3 yy4 yy4 | ||
762 | |||
763 | AA: Type Code for this downlink Command: | ||
764 | |||
765 | xx: **0**: Limit for AV1 and AV2; **1**: limit for AC1 and AC2; **2**: DI1and DI2 trigger enable/disable. | ||
766 | |||
767 | yy1 yy1: AC1 or AV1 LOW limit or DI1/DI2 trigger status. | ||
768 | |||
769 | yy2 yy2: AC1 or AV1 HIGH limit. | ||
770 | |||
771 | yy3 yy3: AC2 or AV2 LOW limit. | ||
772 | |||
773 | Yy4 yy4: AC2 or AV2 HIGH limit. | ||
774 | |||
775 | |||
776 | **Example 1**: AA 00 13 88 00 00 00 00 00 00 | ||
777 | |||
778 | Same as AT+AVLIM=5000,0,0,0 (triggers an uplink if AVI1 voltage is lower than 5V. Use 0s for parameters that are not in use) | ||
779 | |||
780 | |||
781 | **Example 2**: AA 02 01 00 | ||
782 | |||
783 | Same as AT+ DTRI =1,0 (Enable DI1 trigger / disable DI2 trigger) | ||
784 | |||
785 | |||
786 | (% style="color:#4f81bd" %)**Trigger Settings Payload Explanation:** | ||
787 | |||
788 | MOD6 Payload: a total of 11 bytes | ||
789 | |||
790 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:515px" %) | ||
791 | |(% style="background-color:#4f81bd; color:white; width:60px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:69px" %)**1**|(% style="background-color:#4f81bd; color:white; width:69px" %)**1**|(% style="background-color:#4f81bd; color:white; width:109px" %)**1**|(% style="background-color:#4f81bd; color:white; width:49px" %)**6**|(% style="background-color:#4f81bd; color:white; width:109px" %)**1**|(% style="background-color:#4f81bd; color:white; width:50px" %)**1** | ||
792 | |Value|((( | ||
793 | TRI_A FLAG | ||
794 | )))|((( | ||
795 | TRI_A Status | ||
796 | )))|((( | ||
797 | TRI_DI FLAG+STA | ||
798 | )))|Reserve|Enable/Disable MOD6|((( | ||
799 | MOD(6) | ||
800 | ))) | ||
801 | |||
802 | (% style="color:#4f81bd" %)**TRI FLAG1**(%%) is a combination to show if the trigger is set for this part. Total 1 byte as below. | ||
803 | |||
804 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:515px" %) | ||
805 | |**bit 7**|**bit 6**|**bit 5**|**bit 4**|**bit 3**|**bit 2**|**bit 1**|**bit 0** | ||
806 | |((( | ||
807 | AV1_LOW | ||
808 | )))|((( | ||
809 | AV1_HIGH | ||
810 | )))|((( | ||
811 | AV2_LOW | ||
812 | )))|((( | ||
813 | AV2_HIGH | ||
814 | )))|((( | ||
815 | AC1_LOW | ||
816 | )))|((( | ||
817 | AC1_HIGH | ||
818 | )))|((( | ||
819 | AC2_LOW | ||
820 | )))|((( | ||
821 | AC2_HIGH | ||
822 | ))) | ||
823 | |||
824 | * Each bit shows if the corresponding trigger has been configured. | ||
825 | |||
826 | **Example:** | ||
827 | |||
828 | 10100000: This means the system is configured to use the triggers AV1_LOW and AV2_LOW. | ||
829 | |||
830 | |||
831 | (% style="color:#4f81bd" %)**TRI Status1**(%%) is a combination to show which condition is triggered. Total 1 byte as below. | ||
832 | |||
833 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:515px" %) | ||
834 | |**bit 7**|**bit 6**|**bit 5**|**bit 4**|**bit 3**|**bit 2**|**bit 1**|**bit 0** | ||
835 | |((( | ||
836 | AV1_LOW | ||
837 | )))|((( | ||
838 | AV1_HIGH | ||
839 | )))|((( | ||
840 | AV2_LOW | ||
841 | )))|((( | ||
842 | AV2_HIGH | ||
843 | )))|((( | ||
844 | AC1_LOW | ||
845 | )))|((( | ||
846 | AC1_HIGH | ||
847 | )))|((( | ||
848 | AC2_LOW | ||
849 | )))|((( | ||
850 | AC2_HIGH | ||
851 | ))) | ||
852 | |||
853 | * Each bit shows which status has been triggered on this uplink. | ||
854 | |||
855 | **Example:** | ||
856 | |||
857 | 10000000: The uplink is triggered by AV1_LOW, indicating that the voltage is too low. | ||
858 | |||
859 | |||
860 | (% style="color:#4f81bd" %)**TRI_DI FLAG+STA **(%%)is a combination to show which condition is triggered. Total 1 byte as below. | ||
861 | |||
862 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:515px" %) | ||
863 | |(% style="width:50px" %)**bit 7**|(% style="width:50px" %)**bit 6**|(% style="width:50px" %)**bit 5**|(% style="width:50px" %)**bit 4**|(% style="width:90px" %)**bit 3**|(% style="width:80px" %)**bit 2**|(% style="width:90px" %)**bit 1**|(% style="width:95px" %)**bit 0** | ||
864 | |(% style="width:49px" %)N/A|(% style="width:53px" %)N/A|(% style="width:53px" %)N/A|(% style="width:55px" %)N/A|(% style="width:99px" %)DI2_STATUS|(% style="width:83px" %)DI2_FLAG|(% style="width:98px" %)DI1_STATUS|(% style="width:85px" %)DI1_FLAG | ||
865 | |||
866 | * Each bit shows which status has been triggered on this uplink. | ||
867 | |||
868 | **Example:** | ||
869 | |||
870 | 00000111: This means both DI1 and DI2 triggers are enabled, and this packet is triggered by DI1. | ||
871 | |||
872 | 00000101: This means both DI1 and DI2 triggers are enabled. | ||
873 | |||
874 | |||
875 | (% style="color:#4f81bd" %)**Enable/Disable MOD6 **(%%): 0x01: MOD6 is enabled. 0x00: MOD6 is disabled. | ||
876 | |||
877 | Downlink command to poll/request MOD6 status: | ||
878 | |||
879 | **AB 06** | ||
880 | |||
881 | When the device receives this command, it will send the MOD6 payload. | ||
882 | |||
883 | |||
884 | === 3.3.7 Payload Decoder === | ||
885 | |||
886 | ((( | ||
887 | |||
888 | |||
889 | **Decoder for TTN/loraserver/ChirpStack**: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder/tree/main/LT22222-L]] | ||
890 | ))) | ||
891 | |||
892 | |||
893 | == 3.4 Configure LT-22222-L via AT Commands or Downlinks == | ||
894 | |||
895 | |||
896 | ((( | ||
897 | You can configure LT-22222-L I/O Controller via AT Commands or LoRaWAN Downlinks. | ||
898 | ))) | ||
899 | |||
900 | ((( | ||
901 | ((( | ||
902 | There are two types of commands: | ||
903 | ))) | ||
904 | ))) | ||
905 | |||
906 | * (% style="color:blue" %)**Common commands**(%%): | ||
907 | |||
908 | * (% style="color:blue" %)**Sensor-related commands**(%%): | ||
909 | |||
910 | === 3.4.1 Common commands === | ||
911 | |||
912 | |||
913 | ((( | ||
914 | These are available for each sensor and include actions such as changing the uplink interval or resetting the device. For firmware v1.5.4, you can find the supported common commands under: [[End Device AT Commands and Downlink Command>>doc:Main.End Device AT Commands and Downlink Command.WebHome]]s. | ||
915 | |||
916 | |||
917 | ))) | ||
918 | |||
919 | === 3.4.2 Sensor-related commands === | ||
920 | |||
921 | |||
922 | These commands are specially designed for the LT-22222-L. Commands can be sent to the device using options such as an AT command or a LoRaWAN downlink payload. | ||
923 | |||
924 | |||
925 | ==== 3.4.2.1 Set Transmit/Uplink Interval ==== | ||
926 | |||
927 | |||
928 | Sets the uplink interval of the device. The default uplink transmission interval is 10 minutes. | ||
929 | |||
930 | (% style="color:#037691" %)**AT command** | ||
931 | |||
932 | (% border="2" style="width:500px" %) | ||
933 | |**Command**|AT+TDC=<time> | ||
934 | |**Parameters**|**time **: uplink interval in milliseconds | ||
935 | |**Get**|AT+TDC=? | ||
936 | |**Response**|((( | ||
937 | current uplink interval | ||
938 | |||
939 | OK | ||
940 | ))) | ||
941 | |**Set**|AT+TDC=<time> | ||
942 | |**Response**|OK | ||
943 | |**Example**|((( | ||
944 | AT+TDC=30000 | ||
945 | |||
946 | Sets the uplink interval to **30 seconds** (30000 milliseconds) | ||
947 | ))) | ||
948 | |||
949 | (% style="color:#037691" %)**Downlink payload** | ||
950 | |||
951 | (% border="2" style="width:500px" %) | ||
952 | |**Payload**|((( | ||
953 | <prefix><time> | ||
954 | ))) | ||
955 | |**Parameters**|((( | ||
956 | **prefix** : 0x01 | ||
957 | |||
958 | **time** : uplink interval in **seconds**, represented by **3 bytes** in **hexadecimal**. | ||
959 | ))) | ||
960 | |**Example**|((( | ||
961 | 01 **00 00 1E** | ||
962 | |||
963 | Sets the uplink interval to **30 seconds** | ||
964 | |||
965 | Conversion: 30 (dec) = 00 00 1E (hex) | ||
966 | |||
967 | See [[RapidTables>>https://www.rapidtables.com/convert/number/decimal-to-hex.html?x=30]] | ||
968 | |||
969 | [[image:Screenshot 2024-11-23 at 18.27.11.png]] | ||
970 | ))) | ||
971 | |||
972 | ==== 3.4.2.2 Set the Working Mode (AT+MOD) ==== | ||
973 | |||
974 | |||
975 | Sets the working mode. | ||
976 | |||
977 | (% style="color:#037691" %)**AT command** | ||
978 | |||
979 | (% border="2" style="width:500px" %) | ||
980 | |(% style="width:97px" %)**Command**|(% style="width:413px" %)AT+MOD=<working_mode> | ||
981 | |(% style="width:97px" %)**Parameters**|(% style="width:413px" %)((( | ||
982 | **working_mode** : | ||
983 | |||
984 | 1 = (Default mode/factory set): 2ACI + 2AVI + DI + DO + RO | ||
985 | |||
986 | 2 = Double DI Counting + DO + RO | ||
987 | |||
988 | 3 = Single DI Counting + 2 x ACI + DO + RO | ||
989 | |||
990 | 4 = Single DI Counting + 1 x Voltage Counting + DO + RO | ||
991 | |||
992 | 5 = Single DI Counting + 2 x AVI + 1 x ACI + DO + RO | ||
993 | |||
994 | 6 = Trigger Mode, Optional, used together with MOD1 ~~ MOD5 | ||
995 | ))) | ||
996 | |(% style="width:97px" %)**Get**|(% style="width:413px" %)AT+MOD=? | ||
997 | |(% style="width:97px" %)**Response**|(% style="width:413px" %)((( | ||
998 | Current working mode | ||
999 | |||
1000 | OK | ||
1001 | ))) | ||
1002 | |(% style="width:97px" %)**Set**|(% style="width:413px" %)AT+MOD=<working_mode> | ||
1003 | |(% style="width:97px" %)**Response**|(% style="width:413px" %)((( | ||
1004 | Attention:Take effect after ATZ | ||
1005 | |||
1006 | OK | ||
1007 | ))) | ||
1008 | |(% style="width:97px" %)**Example**|(% style="width:413px" %)((( | ||
1009 | AT+MOD=2 | ||
1010 | |||
1011 | Sets the device to working mode 2 (Double DI Counting + DO + RO) | ||
1012 | ))) | ||
1013 | |||
1014 | (% class="wikigeneratedid" %) | ||
1015 | (% style="color:#037691" %)**Downlink payload** | ||
1016 | |||
1017 | (% border="2" style="width:500px" %) | ||
1018 | |(% style="width:98px" %)**Payload**|(% style="width:400px" %)<prefix><working_mode> | ||
1019 | |(% style="width:98px" %)**Parameters**|(% style="width:400px" %)((( | ||
1020 | **prefix** : 0x0A | ||
1021 | |||
1022 | **working_mode** : Working mode, represented by 1 byte in hexadecimal. | ||
1023 | ))) | ||
1024 | |(% style="width:98px" %)**Example**|(% style="width:400px" %)((( | ||
1025 | 0A **02** | ||
1026 | |||
1027 | Sets the device to working mode 2 (Double DI Counting + DO + RO) | ||
1028 | ))) | ||
1029 | |||
1030 | ==== 3.4.2.3 Request an uplink from the device ==== | ||
1031 | |||
1032 | |||
1033 | Requests an uplink from LT-22222-L. The content of the uplink payload varies based on the device's current working mode. | ||
1034 | |||
1035 | (% style="color:#037691" %)**AT command** | ||
1036 | |||
1037 | There is no AT Command available for this feature. | ||
1038 | |||
1039 | (% style="color:#037691" %)**Downlink payload** | ||
1040 | |||
1041 | (% border="2" style="width:500px" %) | ||
1042 | |(% style="width:101px" %)**Payload**|(% style="width:397px" %)<prefix>FF | ||
1043 | |(% style="width:101px" %)**Parameters**|(% style="width:397px" %)**prefix** : 0x08 | ||
1044 | |(% style="width:101px" %)**Example**|(% style="width:397px" %)((( | ||
1045 | 08 **FF** | ||
1046 | |||
1047 | Requests an uplink from LT-22222-L. | ||
1048 | ))) | ||
1049 | |||
1050 | ==== 3.4.2.4 Enable/Disable Trigger Mode ==== | ||
1051 | |||
1052 | |||
1053 | Enable or disable the trigger mode for the current working mode (see also [[ADDMOD6>>||anchor="H3.3.6AT2BADDMOD3D628TriggerMode2COptional29"]]). | ||
1054 | |||
1055 | (% style="color:#037691" %)**AT Command** | ||
1056 | |||
1057 | (% border="2" style="width:500px" %) | ||
1058 | |(% style="width:95px" %)**Command**|(% style="width:403px" %)AT+ADDMOD6=<enable/disable trigger_mode> | ||
1059 | |(% style="width:95px" %)**Response**|(% style="width:403px" %) | ||
1060 | |(% style="width:95px" %)**Parameters**|(% style="width:403px" %)((( | ||
1061 | **enable/disable trigger_mode** : | ||
1062 | |||
1063 | 1 = enable trigger mode | ||
1064 | |||
1065 | 0 = disable trigger mode | ||
1066 | ))) | ||
1067 | |(% style="width:95px" %)**Example**|(% style="width:403px" %)((( | ||
1068 | AT+ADDMOD6=1 | ||
1069 | |||
1070 | Enable trigger mode for the current working mode | ||
1071 | ))) | ||
1072 | |||
1073 | (% style="color:#037691" %)**Downlink payload** | ||
1074 | |||
1075 | (% border="2" style="width:500px" %) | ||
1076 | |(% style="width:97px" %)**Payload**|(% style="width:401px" %)<prefix><enable/disable trigger_mode> | ||
1077 | |(% style="width:97px" %)**Parameters**|(% style="width:401px" %)((( | ||
1078 | **prefix** : 0x0A 06 (two bytes in hexadecimal) | ||
1079 | |||
1080 | **enable/disable trigger_mode** : enable (1) or disable (0), represented by 1 byte in hexadecimal. | ||
1081 | ))) | ||
1082 | |(% style="width:97px" %)**Example**|(% style="width:401px" %)((( | ||
1083 | 0A 06 **01** | ||
1084 | |||
1085 | Enable trigger mode for the current working mode | ||
1086 | ))) | ||
1087 | |||
1088 | ==== 3.4.2.5 Request trigger settings ==== | ||
1089 | |||
1090 | |||
1091 | Requests the trigger settings. | ||
1092 | |||
1093 | (% style="color:#037691" %)**AT Command:** | ||
1094 | |||
1095 | There is no AT Command available for this feature. | ||
1096 | |||
1097 | (% style="color:#037691" %)**Downlink Payload** | ||
1098 | |||
1099 | (% border="2" style="width:500px" %) | ||
1100 | |(% style="width:95px" %)**Payload**|(% style="width:403px" %)<prefix> | ||
1101 | |(% style="width:95px" %)**Parameters**|(% style="width:403px" %)**prefix **: AB 06 (two bytes in hexadecimal) | ||
1102 | |(% style="width:95px" %)**Example**|(% style="width:403px" %)((( | ||
1103 | AB 06 | ||
1104 | |||
1105 | Uplink the trigger settings. | ||
1106 | ))) | ||
1107 | |||
1108 | ==== 3.4.2.6 Enable/Disable DI1/DI2/DI3 as a trigger ==== | ||
1109 | |||
1110 | |||
1111 | Enable or disable DI1/DI2/DI3 as a trigger. | ||
1112 | |||
1113 | (% style="color:#037691" %)**AT Command** | ||
1114 | |||
1115 | (% border="2" style="width:500px" %) | ||
1116 | |(% style="width:98px" %)**Command**|(% style="width:400px" %)AT+DTRI=<DI1_trigger>,<DI2_trigger> | ||
1117 | |(% style="width:98px" %)**Response**|(% style="width:400px" %) | ||
1118 | |(% style="width:98px" %)**Parameters**|(% style="width:400px" %)((( | ||
1119 | **DI1_trigger:** | ||
1120 | |||
1121 | 1 = enable DI1 trigger | ||
1122 | |||
1123 | 0 = disable DI1 trigger | ||
1124 | |||
1125 | **DI2 _trigger** | ||
1126 | |||
1127 | 1 = enable DI2 trigger | ||
1128 | |||
1129 | 0 = disable DI2 trigger | ||
1130 | ))) | ||
1131 | |(% style="width:98px" %)**Example**|(% style="width:400px" %)((( | ||
1132 | AT+DTRI=1,0 | ||
1133 | |||
1134 | Enable DI1 trigger, disable DI2 trigger | ||
1135 | ))) | ||
1136 | |||
1137 | (% class="wikigeneratedid" %) | ||
1138 | (% style="color:#037691" %)**Downlink Payload** | ||
1139 | |||
1140 | (% border="2" style="width:500px" %) | ||
1141 | |(% style="width:101px" %)**Payload**|(% style="width:397px" %)<prefix><DI1_trigger><DI2_trigger> | ||
1142 | |(% style="width:101px" %)**Parameters**|(% style="width:397px" %)((( | ||
1143 | **prefix :** AA 02 (two bytes in hexadecimal) | ||
1144 | |||
1145 | **DI1_trigger:** | ||
1146 | |||
1147 | 1 = enable DI1 trigger, represented by 1 byte in hexadecimal. | ||
1148 | |||
1149 | 0 = disable DI1 trigger, represented by 1 byte in hexadecimal. | ||
1150 | |||
1151 | **DI2 _trigger** | ||
1152 | |||
1153 | 1 = enable DI2 trigger, represented by 1 byte in hexadecimal. | ||
1154 | |||
1155 | 0 = disable DI2 trigger, represented by 1 byte in hexadecimal. | ||
1156 | ))) | ||
1157 | |(% style="width:101px" %)**Example**|(% style="width:397px" %)((( | ||
1158 | AA 02 **01 00** | ||
1159 | |||
1160 | Enable DI1 trigger, disable DI2 trigger | ||
1161 | ))) | ||
1162 | |||
1163 | ==== 3.4.2.7 Trigger1 – Set DI1 or DI3 as a trigger ==== | ||
1164 | |||
1165 | |||
1166 | Sets DI1 or DI3 (for LT-33222-L) as a trigger. | ||
1167 | |||
1168 | (% style="color:#037691" %)**AT Command** | ||
1169 | |||
1170 | (% border="2" style="width:500px" %) | ||
1171 | |(% style="width:101px" %)**Command**|(% style="width:397px" %)AT+TRIG1=<interrupt_mode>,<minimum_signal_duration> | ||
1172 | |(% style="width:101px" %)**Response**|(% style="width:397px" %) | ||
1173 | |(% style="width:101px" %)**Parameters**|(% style="width:397px" %)((( | ||
1174 | **interrupt_mode** : 0: falling edge; 1: rising edge, 2: falling and raising edge (for MOD=1). | ||
1175 | |||
1176 | **minimum_signal_duration** : the **minimum signal duration** required for the DI1 port to recognize a valid trigger. | ||
1177 | ))) | ||
1178 | |(% style="width:101px" %)**Example**|(% style="width:397px" %)((( | ||
1179 | AT+TRIG1=1,100 | ||
1180 | |||
1181 | Set the DI1 port to trigger on a rising edge; the valid signal duration is 100 ms. | ||
1182 | ))) | ||
1183 | |||
1184 | (% class="wikigeneratedid" %) | ||
1185 | (% style="color:#037691" %)**Downlink Payload** | ||
1186 | |||
1187 | (% border="2" style="width:500px" %) | ||
1188 | |(% style="width:101px" %)**Payload**|(% style="width:397px" %)<prefix><interrupt_mode><minimum_signal_duration> | ||
1189 | |(% style="width:101px" %)**Parameters**|(% style="width:397px" %)((( | ||
1190 | **prefix** : 09 01 (hexadecimal) | ||
1191 | |||
1192 | **interrupt_mode** : 0: falling edge; 1: rising edge, 2: falling and raising edge (for MOD=1), represented by 1 byte in hexadecimal. | ||
1193 | |||
1194 | **minimum_signal_duration** : in milliseconds, represented two bytes in hexadecimal. | ||
1195 | ))) | ||
1196 | |(% style="width:101px" %)**Example**|(% style="width:397px" %)((( | ||
1197 | 09 01 **01 00 64** | ||
1198 | |||
1199 | Set the DI1 port to trigger on a rising edge; the valid signal duration is 100 ms. | ||
1200 | ))) | ||
1201 | |||
1202 | ==== 3.4.2.8 Trigger2 – Set DI2 as a trigger ==== | ||
1203 | |||
1204 | |||
1205 | Sets DI2 as a trigger. | ||
1206 | |||
1207 | (% style="color:#037691" %)**AT Command** | ||
1208 | |||
1209 | (% border="2" style="width:500px" %) | ||
1210 | |(% style="width:94px" %)**Command**|(% style="width:404px" %)AT+TRIG2=<interrupt_mode>,<minimum_signal_duration> | ||
1211 | |(% style="width:94px" %)**Response**|(% style="width:404px" %) | ||
1212 | |(% style="width:94px" %)**Parameters**|(% style="width:404px" %)((( | ||
1213 | **interrupt_mode **: 0: falling edge; 1: rising edge, 2: falling and raising edge (for MOD=1). | ||
1214 | |||
1215 | **minimum_signal_duration** : the **minimum signal duration** required for the DI1 port to recognize a valid trigger. | ||
1216 | ))) | ||
1217 | |(% style="width:94px" %)**Example**|(% style="width:404px" %)((( | ||
1218 | AT+TRIG2=0,100 | ||
1219 | |||
1220 | Set the DI1 port to trigger on a falling edge; the valid signal duration is 100 ms. | ||
1221 | ))) | ||
1222 | |||
1223 | (% style="color:#037691" %)**Downlink Payload** | ||
1224 | |||
1225 | (% border="2" style="width:500px" %) | ||
1226 | |(% style="width:96px" %)**Payload**|(% style="width:402px" %)<prefix><interrupt_mode><minimum_signal_duration> | ||
1227 | |(% style="width:96px" %)**Parameters**|(% style="width:402px" %)((( | ||
1228 | **prefix** : 09 02 (hexadecimal) | ||
1229 | |||
1230 | **interrupt_mode **: 0: falling edge; 1: rising edge, 2: falling and raising edge (for MOD=1), represented by 1 byte in hexadecimal. | ||
1231 | |||
1232 | **minimum_signal_duration** : in milliseconds, represented two bytes in hexadecimal | ||
1233 | ))) | ||
1234 | |(% style="width:96px" %)**Example**|(% style="width:402px" %)09 02 **00 00 64** | ||
1235 | |||
1236 | ==== 3.4.2.9 Trigger – Set AC (current) as a trigger ==== | ||
1237 | |||
1238 | |||
1239 | Sets the current trigger based on the AC port. See also [[trigger mode>>||anchor="H3.3.6AT2BADDMOD3D628TriggerMode2COptional29"]] | ||
1240 | |||
1241 | (% style="color:#037691" %)**AT Command** | ||
1242 | |||
1243 | (% border="2" style="width:500px" %) | ||
1244 | |(% style="width:104px" %)**Command**|(% style="width:394px" %)((( | ||
1245 | AT+ACLIM=<AC1_LIMIT_LOW>,< AC1_LIMIT_HIGH>,<AC2_LIMIT_LOW>,< AC2_LIMIT_HIGH> | ||
1246 | ))) | ||
1247 | |(% style="width:104px" %)**Response**|(% style="width:394px" %) | ||
1248 | |(% style="width:104px" %)**Parameters**|(% style="width:394px" %)((( | ||
1249 | **AC1_LIMIT_LOW** : lower limit of the current to be checked | ||
1250 | |||
1251 | **AC1_LIMIT_HIGH **: higher limit of the current to be checked | ||
1252 | |||
1253 | **AC2_LIMIT_HIGH **: lower limit of the current to be checked | ||
1254 | |||
1255 | **AC2_LIMIT_LOW** : higher limit of the current to be checked | ||
1256 | ))) | ||
1257 | |(% style="width:104px" %)**Example**|(% style="width:394px" %)((( | ||
1258 | AT+ACLIM=10000,15000,0,0 | ||
1259 | |||
1260 | Triggers an uplink if AC1 current is lower than 10mA or higher than 15mA | ||
1261 | ))) | ||
1262 | |(% style="width:104px" %)Note|(% style="width:394px" %)See also, [[trigger mode>>||anchor="H3.3.6AT2BADDMOD3D628TriggerMode2COptional29"]] | ||
1263 | |||
1264 | (% style="color:#037691" %)**Downlink Payload** | ||
1265 | |||
1266 | (% border="2" style="width:500px" %) | ||
1267 | |(% style="width:104px" %)**Payload**|(% style="width:394px" %)<prefix><AC1_LIMIT_LOW>,< AC1_LIMIT_HIGH>,<AC2_LIMIT_LOW>,< AC2_LIMIT_HIGH> | ||
1268 | |(% style="width:104px" %)**Parameters**|(% style="width:394px" %)((( | ||
1269 | **prefix **: AA 01 (hexadecimal) | ||
1270 | |||
1271 | **AC1_LIMIT_LOW** : lower limit of the current to be checked, two bytes in hexadecimal | ||
1272 | |||
1273 | **AC1_LIMIT_HIGH **: higher limit of the current to be checked, two bytes in hexadecimal | ||
1274 | |||
1275 | **AC2_LIMIT_HIGH **: lower limit of the current to be checked, two bytes in hexadecimal | ||
1276 | |||
1277 | **AC2_LIMIT_LOW** : higher limit of the current to be checked, two bytes in hexadecimal | ||
1278 | ))) | ||
1279 | |(% style="width:104px" %)**Example**|(% style="width:394px" %)((( | ||
1280 | AA 01 **27** **10 3A** **98** 00 00 00 00 | ||
1281 | |||
1282 | Triggers an uplink if AC1 current is lower than 10mA or higher than 15mA. Set all values to zero for AC2 limits because we are only checking AC1 limits. | ||
1283 | ))) | ||
1284 | |(% style="width:104px" %)Note|(% style="width:394px" %)See also, [[trigger mode>>||anchor="H3.3.6AT2BADDMOD3D628TriggerMode2COptional29"]] | ||
1285 | |||
1286 | ==== 3.4.2.10 Trigger – Set AV (voltage) as trigger ==== | ||
1287 | |||
1288 | |||
1289 | Sets the current trigger based on the AV port. See also [[trigger mode>>||anchor="H3.3.6AT2BADDMOD3D628TriggerMode2COptional29"]] | ||
1290 | |||
1291 | (% style="color:#037691" %)**AT Command** | ||
1292 | |||
1293 | (% border="2" style="width:500px" %) | ||
1294 | |(% style="width:104px" %)**Command**|(% style="width:387px" %)AT+AVLIM= AV1_LIMIT_LOW>,< AV1_LIMIT_HIGH>,<AV2_LIMIT_LOW>,< AV2_LIMIT_HIGH> | ||
1295 | |(% style="width:104px" %)**Response**|(% style="width:387px" %) | ||
1296 | |(% style="width:104px" %)**Parameters**|(% style="width:387px" %)((( | ||
1297 | **AC1_LIMIT_LOW** : lower limit of the current to be checked | ||
1298 | |||
1299 | **AC1_LIMIT_HIGH **: higher limit of the current to be checked | ||
1300 | |||
1301 | **AC2_LIMIT_HIGH **: lower limit of the current to be checked | ||
1302 | |||
1303 | **AC2_LIMIT_LOW** : higher limit of the current to be checked | ||
1304 | ))) | ||
1305 | |(% style="width:104px" %)**Example**|(% style="width:387px" %)((( | ||
1306 | AT+AVLIM=3000,6000,0,2000 | ||
1307 | |||
1308 | Triggers an uplink if AVI1 voltage is lower than 3V or higher than 6V, or if AV2 voltage is higher than 2V | ||
1309 | ))) | ||
1310 | |(% style="width:104px" %)**Note**|(% style="width:387px" %)See also, [[trigger mode>>||anchor="H3.3.6AT2BADDMOD3D628TriggerMode2COptional29"]] | ||
1311 | |||
1312 | (% style="color:#037691" %)**Downlink Payload** | ||
1313 | |||
1314 | (% border="2" style="width:500px" %) | ||
1315 | |(% style="width:104px" %)**Payload**|(% style="width:394px" %)<prefix><AV1_LIMIT_LOW>,< AV1_LIMIT_HIGH>,<AV2_LIMIT_LOW>,< AV2_LIMIT_HIGH> | ||
1316 | |(% style="width:104px" %)**Parameters**|(% style="width:394px" %)((( | ||
1317 | **prefix **: AA 00 (hexadecimal) | ||
1318 | |||
1319 | **AV1_LIMIT_LOW** : lower limit of the voltage to be checked, two bytes in hexadecimal | ||
1320 | |||
1321 | **AV1_LIMIT_HIGH **: higher limit of the voltage to be checked, two bytes in hexadecimal | ||
1322 | |||
1323 | **AV2_LIMIT_HIGH **: lower limit of the voltage to be checked, two bytes in hexadecimal | ||
1324 | |||
1325 | **AV2_LIMIT_LOW** : higher limit of the voltage to be checked, two bytes in hexadecimal | ||
1326 | ))) | ||
1327 | |(% style="width:104px" %)**Example**|(% style="width:394px" %)((( | ||
1328 | AA 00 **0B B8 17 70 00 00 07 D0** | ||
1329 | |||
1330 | Triggers an uplink if AVI1 voltage is lower than 3V or higher than 6V, or if AV2 voltage is higher than 2V. | ||
1331 | ))) | ||
1332 | |(% style="width:104px" %)**Note**|(% style="width:394px" %)See also, [[trigger mode>>||anchor="H3.3.6AT2BADDMOD3D628TriggerMode2COptional29"]] | ||
1333 | |||
1334 | ==== 3.4.2.11 Trigger – Set the minimum interval ==== | ||
1335 | |||
1336 | |||
1337 | Sets the AV and AC trigger minimum interval. The device won't respond to a second trigger within this set time after the first trigger. | ||
1338 | |||
1339 | (% style="color:#037691" %)**AT Command** | ||
1340 | |||
1341 | (% border="2" style="width:500px" %) | ||
1342 | |(% style="width:113px" %)**Command**|(% style="width:385px" %)AT+ATDC=<time> | ||
1343 | |(% style="width:113px" %)**Response**|(% style="width:385px" %) | ||
1344 | |(% style="width:113px" %)**Parameters**|(% style="width:385px" %)((( | ||
1345 | **time** : in minutes | ||
1346 | ))) | ||
1347 | |(% style="width:113px" %)**Example**|(% style="width:385px" %)((( | ||
1348 | AT+ATDC=5 | ||
1349 | |||
1350 | The device won't respond to the second trigger within 5 minutes after the first trigger. | ||
1351 | ))) | ||
1352 | |(% style="width:113px" %)**Note**|(% style="width:385px" %)(% style="color:red" %)**The time must be greater than 5 minutes.** | ||
1353 | |||
1354 | (% style="color:#037691" %)**Downlink Payload** | ||
1355 | |||
1356 | (% border="2" style="width:500px" %) | ||
1357 | |(% style="width:112px" %)**Payload**|(% style="width:386px" %)<prefix><time> | ||
1358 | |(% style="width:112px" %)**Parameters**|(% style="width:386px" %)((( | ||
1359 | **prefix** : AC (hexadecimal) | ||
1360 | |||
1361 | **time **: in minutes (two bytes in hexadecimal) | ||
1362 | ))) | ||
1363 | |(% style="width:112px" %)**Example**|(% style="width:386px" %)((( | ||
1364 | AC **00 05** | ||
1365 | |||
1366 | The device won't respond to the second trigger within 5 minutes after the first trigger. | ||
1367 | ))) | ||
1368 | |(% style="width:112px" %)**Note**|(% style="width:386px" %)(% style="color:red" %)**The time must be greater than 5 minutes.** | ||
1369 | |||
1370 | ==== 3.4.2.12 DO ~-~- Control Digital Output DO1/DO2/DO3 ==== | ||
1371 | |||
1372 | |||
1373 | Controls the digital outputs DO1, DO2, and DO3 | ||
1374 | |||
1375 | (% style="color:#037691" %)**AT Command** | ||
1376 | |||
1377 | There is no AT Command to control the Digital Output. | ||
1378 | |||
1379 | |||
1380 | (% style="color:#037691" %)**Downlink Payload** | ||
1381 | |||
1382 | (% border="2" style="width:500px" %) | ||
1383 | |(% style="width:115px" %)**Payload**|(% style="width:383px" %)<prefix><DO1><DO2><DO3> | ||
1384 | |(% style="width:115px" %)**Parameters**|(% style="width:383px" %)((( | ||
1385 | **prefix** : 02 (hexadecimal) | ||
1386 | |||
1387 | **DOI** : 01: Low, 00: High, 11: No action (1 byte in hex) | ||
1388 | |||
1389 | **DO2** : 01: Low, 00: High, 11: No action (1 byte in hex) | ||
1390 | |||
1391 | **DO3 **: 01: Low, 00: High, 11: No action (1 byte in hex) | ||
1392 | ))) | ||
1393 | |(% style="width:115px" %)**Examples**|(% style="width:383px" %)((( | ||
1394 | 02 **01 00 01** | ||
1395 | |||
1396 | If there is a load between V+ and DOx, it means DO1 is set to low, DO2 is set to high, and DO3 is set to low. | ||
1397 | |||
1398 | **More examples:** | ||
1399 | |||
1400 | ((( | ||
1401 | 01: Low, 00: High, 11: No action | ||
1402 | |||
1403 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:383px" %) | ||
1404 | |(% style="background-color:#4f81bd; color:white; width:126px" %)**Downlink Code**|(% style="background-color:#4f81bd; color:white; width:85px" %)**DO1**|(% style="background-color:#4f81bd; color:white; width:86px" %)**DO2**|(% style="background-color:#4f81bd; color:white; width:86px" %)**DO3** | ||
1405 | |(% style="width:126px" %)02 01 00 11|(% style="width:85px" %)Low|(% style="width:86px" %)High|(% style="width:86px" %)No Action | ||
1406 | |(% style="width:126px" %)02 00 11 01|(% style="width:85px" %)High|(% style="width:86px" %)No Action|(% style="width:86px" %)Low | ||
1407 | |(% style="width:126px" %)02 11 01 00|(% style="width:85px" %)No Action|(% style="width:86px" %)Low|(% style="width:86px" %)High | ||
1408 | ))) | ||
1409 | |||
1410 | ((( | ||
1411 | ((( | ||
1412 | (% style="color:red" %)**Note: For the LT-22222-L, there is no DO3; the last byte can have any value.** | ||
1413 | ))) | ||
1414 | |||
1415 | ((( | ||
1416 | (% style="color:red" %)**The device will upload a packet if downlink code executes successfully.** | ||
1417 | ))) | ||
1418 | ))) | ||
1419 | ))) | ||
1420 | |||
1421 | ==== 3.4.2.13 DO ~-~- Control Digital Output DO1/DO2/DO3 with time control ==== | ||
1422 | |||
1423 | |||
1424 | (% style="color:#037691" %)**AT command** | ||
1425 | |||
1426 | There is no AT command to control the digital output. | ||
1427 | |||
1428 | |||
1429 | (% style="color:#037691" %)**Downlink payload** | ||
1430 | |||
1431 | (% border="2" style="width:500px" %) | ||
1432 | |(% style="width:116px" %)**Prefix**|(% style="width:382px" %)0xA9 | ||
1433 | |(% style="width:116px" %)**Parameters**|(% style="width:382px" %)((( | ||
1434 | **inverter_mode**: 1 byte in hex. | ||
1435 | |||
1436 | **01:** DO pins revert to their original state after the timeout. | ||
1437 | **00:** DO pins switch to an inverted state after the timeout. | ||
1438 | |||
1439 | |||
1440 | **DO1_control_method_and_port_status **- 1 byte in hex | ||
1441 | |||
1442 | 0x01 : DO1 set to low | ||
1443 | |||
1444 | 0x00 : DO1 set to high | ||
1445 | |||
1446 | 0x11 : DO1 NO action | ||
1447 | |||
1448 | |||
1449 | **DO2_control_method_and_port_status** - 1 byte in hex | ||
1450 | |||
1451 | 0x01 : DO2 set to low | ||
1452 | |||
1453 | 0x00 : DO2 set to high | ||
1454 | |||
1455 | 0x11 : DO2 NO action | ||
1456 | |||
1457 | |||
1458 | **DO3_control_method_and_port_status **- 1 byte in hex | ||
1459 | |||
1460 | 0x01 : DO3 set to low | ||
1461 | |||
1462 | 0x00 : DO3 set to high | ||
1463 | |||
1464 | 0x11 : DO3 NO action | ||
1465 | |||
1466 | |||
1467 | **latching_time** : 4 bytes in hex | ||
1468 | |||
1469 | (% style="color:red" %)**Note: ** | ||
1470 | |||
1471 | Since firmware v1.6.0, the latch time supports 4 bytes or 2 bytes | ||
1472 | |||
1473 | Before firmware v1.6.0, the latch time only supported 2 bytes. | ||
1474 | |||
1475 | (% style="color:red" %)**The device will uplink a packet if the downlink code executes successfully.** | ||
1476 | ))) | ||
1477 | |(% style="width:116px" %)**Payload format**|(% style="width:382px" %)<prefix><inverter_mode><DO1_control_method_and_port_status><DO2_control_method_and_port_status><DO2_control_method_and_port_status><latching_time> | ||
1478 | |(% style="width:116px" %)**Example**|(% style="width:382px" %)((( | ||
1479 | **A9 01 01 01 01 07 D0** | ||
1480 | |||
1481 | DO1 pin, DO2 pin, and DO3 pin will be set to low, last for 2 seconds, and then revert to their original state. | ||
1482 | |||
1483 | |||
1484 | **A9 01 00 01 11 07 D0** | ||
1485 | |||
1486 | DO1 pin is set to high, DO2 pin is set to low, and DO3 pin takes no action. This lasts for 2 seconds and then reverts to the original state. | ||
1487 | |||
1488 | |||
1489 | **A9 00 00 00 00 07 D0** | ||
1490 | |||
1491 | DO1 pin, DO2 pin, and DO3 pin will be set to high, last for 2 seconds, and then all change to low. | ||
1492 | |||
1493 | |||
1494 | **A9 00 11 01 00 07 D0** | ||
1495 | |||
1496 | DO1 pin takes no action, DO2 pin is set to low, and DO3 pin is set to high. This lasts for 2 seconds, after which the DO1 pin takes no action, the DO2 pin is set to high, and the DO3 pin is set to low. | ||
1497 | ))) | ||
1498 | |||
1499 | ==== 3.4.2.14 Relay ~-~- Control Relay Output RO1/RO2 ==== | ||
1500 | |||
1501 | |||
1502 | (% style="color:#037691" %)**AT Command:** | ||
1503 | |||
1504 | There is no AT Command to control the Relay Output. | ||
1505 | |||
1506 | |||
1507 | (% style="color:#037691" %)**Downlink Payload** | ||
1508 | |||
1509 | (% border="2" style="width:500px" %) | ||
1510 | |(% style="width:113px" %)**Prefix**|(% style="width:384px" %)0x03 | ||
1511 | |(% style="width:113px" %)**Parameters**|(% style="width:384px" %)((( | ||
1512 | **RO1_status** : 1 byte in hex | ||
1513 | |||
1514 | 00: Close | ||
1515 | |||
1516 | 01: Open | ||
1517 | |||
1518 | 11: No action | ||
1519 | |||
1520 | |||
1521 | **RO2_status** : 1 byte in hex | ||
1522 | |||
1523 | 00: Close | ||
1524 | |||
1525 | 01: Open | ||
1526 | |||
1527 | 11: No action | ||
1528 | ))) | ||
1529 | |(% style="width:113px" %)**Payload format**|(% style="width:384px" %)<prefix><RO1_status><RO2_status> | ||
1530 | |(% style="width:113px" %)**Example**|(% style="width:384px" %)((( | ||
1531 | (% border="2" %) | ||
1532 | |=Payload|=RO1|=RO2 | ||
1533 | |03 00 11|Open|No action | ||
1534 | |03 01 11|Close|No action | ||
1535 | |03 11 00|No action|Open | ||
1536 | |03 11 01|No action|Close | ||
1537 | |03 00 00|Open|Open | ||
1538 | |03 01 01|Close|Close | ||
1539 | |03 01 00|Close|Open | ||
1540 | |03 00 01|Open|Close | ||
1541 | |||
1542 | (% style="color:red" %)**The device will transmit an uplink packet if the downlink payload is executed successfully.** | ||
1543 | ))) | ||
1544 | |||
1545 | ==== 3.4.2.15 Relay ~-~- Control Relay Output RO1/RO2 with time control ==== | ||
1546 | |||
1547 | |||
1548 | Controls the relay output time. | ||
1549 | |||
1550 | |||
1551 | (% style="color:#037691" %)**AT Command:** | ||
1552 | |||
1553 | There is no AT Command to control the Relay Output | ||
1554 | |||
1555 | |||
1556 | (% style="color:#037691" %)**Downlink Payload (prefix 0x05):** | ||
1557 | |||
1558 | (% style="color:blue" %)**0x05 aa bb cc dd ** (%%)~/~/ Sets RO1/RO2 relays with time control | ||
1559 | |||
1560 | |||
1561 | This controls the relay output time and includes 4 bytes: | ||
1562 | |||
1563 | (% style="color:#4f81bd" %)**First byte **(%%)**:** Type code (0x05) | ||
1564 | |||
1565 | (% style="color:#4f81bd" %)**Second byte (aa)**(%%): Inverter Mode | ||
1566 | |||
1567 | 01: Relays will change back to their original state after a timeout. | ||
1568 | |||
1569 | 00: Relays will change to the inverter state after a timeout. | ||
1570 | |||
1571 | |||
1572 | (% style="color:#4f81bd" %)**Third byte (bb)**(%%): Control Method and Ports status: | ||
1573 | |||
1574 | [[image:image-20221008095908-1.png||height="364" width="564"]] | ||
1575 | |||
1576 | |||
1577 | (% style="color:#4f81bd" %)**Fourth/Fifth/Sixth/Seventh bytes (cc)**(%%): Latching time. Unit: ms | ||
1578 | |||
1579 | |||
1580 | (% style="color:red" %)**Note:** | ||
1581 | |||
1582 | Since firmware v1.6.0, the latch time supports both 4 bytes and 2 bytes. | ||
1583 | |||
1584 | Before firmware v1.6.0, the latch time only supported 2 bytes. | ||
1585 | |||
1586 | |||
1587 | (% style="color:red" %)**The device will uplink a packet if the downlink code executes successfully.** | ||
1588 | |||
1589 | |||
1590 | **Example payload:** | ||
1591 | |||
1592 | **~1. 05 01 11 07 D0** | ||
1593 | |||
1594 | Relay1 and Relay2 will be set to NC, lasting 2 seconds, then revert to their original state | ||
1595 | |||
1596 | **2. 05 01 10 07 D0** | ||
1597 | |||
1598 | Relay1 will change to NC, Relay2 will change to NO, lasting 2 seconds, and then both will revert to their original state. | ||
1599 | |||
1600 | **3. 05 00 01 07 D0** | ||
1601 | |||
1602 | Relay1 will change to NO, Relay2 will change to NC, lasting 2 seconds, then Relay1 will change to NC, and Relay2 will change to NO. | ||
1603 | |||
1604 | **4. 05 00 00 07 D0** | ||
1605 | |||
1606 | Relay1 and Relay2 will change to NO, lasting 2 seconds, then both will change to NC. | ||
1607 | |||
1608 | |||
1609 | |||
1610 | ==== 3.4.2.16 Counting ~-~- Voltage threshold counting ==== | ||
1611 | |||
1612 | |||
1613 | When the voltage exceeds the threshold, counting begins. For details, see [[MOD4>>||anchor="H3.3.4AT2BMOD3D42CSingleDICounting2B1xVoltageCounting"]] | ||
1614 | |||
1615 | (% style="color:#037691" %)**AT Command** | ||
1616 | |||
1617 | (% border="2" style="width:500px" %) | ||
1618 | |(% style="width:137px" %)**Command**|(% style="width:361px" %)AT+VOLMAX=<voltage>,<logic> | ||
1619 | |(% style="width:137px" %)**Response**|(% style="width:361px" %) | ||
1620 | |(% style="width:137px" %)**Parameters**|(% style="width:361px" %)((( | ||
1621 | **voltage** : voltage threshold in mV | ||
1622 | |||
1623 | **logic**: | ||
1624 | |||
1625 | **0** : lower than | ||
1626 | |||
1627 | **1**: higher than | ||
1628 | |||
1629 | if you leave the logic parameter blank, it is considered 0 | ||
1630 | ))) | ||
1631 | |(% style="width:137px" %)**Examples**|(% style="width:361px" %)((( | ||
1632 | AT+VOLMAX=20000 | ||
1633 | |||
1634 | If AVI1 voltage higher than VOLMAX (20000mV =20v), counter increase 1 | ||
1635 | |||
1636 | AT+VOLMAX=20000,0 | ||
1637 | |||
1638 | If AVI1 voltage lower than VOLMAX (20000mV =20v), counter increase 1 | ||
1639 | |||
1640 | AT+VOLMAX=20000,1 | ||
1641 | |||
1642 | If AVI1 voltage higher than VOLMAX (20000mV =20v), counter increase 1 | ||
1643 | ))) | ||
1644 | |||
1645 | (% style="color:#037691" %)**Downlink Payload** | ||
1646 | |||
1647 | (% border="2" style="width:500px" %) | ||
1648 | |(% style="width:140px" %)**Payload**|(% style="width:358px" %)<prefix><voltage><logic> | ||
1649 | |(% style="width:140px" %)**Parameters**|(% style="width:358px" %)((( | ||
1650 | **prefix** : A5 (hex) | ||
1651 | |||
1652 | **voltage** : voltage threshold in mV (2 bytes in hex) | ||
1653 | |||
1654 | **logic**: (1 byte in hexadecimal) | ||
1655 | |||
1656 | **0** : lower than | ||
1657 | |||
1658 | **1**: higher than | ||
1659 | |||
1660 | if you leave the logic parameter blank, it is considered 1 (higher than) | ||
1661 | ))) | ||
1662 | |(% style="width:140px" %)**Example**|(% style="width:358px" %)((( | ||
1663 | A5 **4E 20** | ||
1664 | |||
1665 | If AVI1 voltage higher than VOLMAX (20000mV =20v), counter increase 1 | ||
1666 | |||
1667 | A5 **4E 20 00** | ||
1668 | |||
1669 | If AVI1 voltage lower than VOLMAX (20000mV =20v), counter increase 1 | ||
1670 | |||
1671 | A5 **4E 20 01** | ||
1672 | |||
1673 | If AVI1 voltage higher than VOLMAX (20000mV =20v), counter increase 1 | ||
1674 | ))) | ||
1675 | |||
1676 | ==== 3.4.2.17 Counting ~-~- Pre-configure the Count Number ==== | ||
1677 | |||
1678 | |||
1679 | This command allows users to pre-configure specific count numbers for various counting parameters such as Count1, Count2, or AVI1 Count. Use the AT command to set the desired count number for each configuration. | ||
1680 | |||
1681 | (% style="color:#037691" %)**AT Command** | ||
1682 | |||
1683 | (% border="2" style="width:500px" %) | ||
1684 | |(% style="width:134px" %)**Command**|(% style="width:364px" %)AT+SETCNT=<counting_parameter>,<number> | ||
1685 | |(% style="width:134px" %)**Response**|(% style="width:364px" %) | ||
1686 | |(% style="width:134px" %)**Parameters**|(% style="width:364px" %)((( | ||
1687 | **counting_parameter** : | ||
1688 | |||
1689 | 1: COUNT1 | ||
1690 | |||
1691 | 2: COUNT2 | ||
1692 | |||
1693 | 3: AVI1 Count | ||
1694 | |||
1695 | **number** : Start number | ||
1696 | ))) | ||
1697 | |(% style="width:134px" %)**Example**|(% style="width:364px" %)((( | ||
1698 | AT+SETCNT=1,10 | ||
1699 | |||
1700 | Sets the COUNT1 to 10. | ||
1701 | ))) | ||
1702 | |||
1703 | (% style="color:#037691" %)**Downlink Payload** | ||
1704 | |||
1705 | (% border="2" style="width:500px" %) | ||
1706 | |(% style="width:135px" %)**Payload**|(% style="width:363px" %)<prefix><counting_parameter><number> | ||
1707 | |(% style="width:135px" %)**Parameters**|(% style="width:363px" %)((( | ||
1708 | prefix : A8 (hex) | ||
1709 | |||
1710 | **counting_parameter** : (1 byte in hexadecimal) | ||
1711 | |||
1712 | 1: COUNT1 | ||
1713 | |||
1714 | 2: COUNT2 | ||
1715 | |||
1716 | 3: AVI1 Count | ||
1717 | |||
1718 | **number** : Start number, 4 bytes in hexadecimal | ||
1719 | ))) | ||
1720 | |(% style="width:135px" %)**Example**|(% style="width:363px" %)((( | ||
1721 | A8 **01 00 00 00 0A** | ||
1722 | |||
1723 | Sets the COUNT1 to 10. | ||
1724 | ))) | ||
1725 | |||
1726 | ==== 3.4.2.18 Counting ~-~- Clear Counting ==== | ||
1727 | |||
1728 | |||
1729 | This command clears the counting in counting mode. | ||
1730 | |||
1731 | (% style="color:#037691" %)**AT Command** | ||
1732 | |||
1733 | (% border="2" style="width:500px" %) | ||
1734 | |(% style="width:142px" %)**Command**|(% style="width:356px" %)AT+CLRCOUNT | ||
1735 | |(% style="width:142px" %)**Response**|(% style="width:356px" %)- | ||
1736 | |||
1737 | (% style="color:#037691" %)**Downlink Payload** | ||
1738 | |||
1739 | (% border="2" style="width:500px" %) | ||
1740 | |(% style="width:141px" %)**Payload**|(% style="width:357px" %)<prefix><clear?> | ||
1741 | |(% style="width:141px" %)**Parameters**|(% style="width:357px" %)((( | ||
1742 | prefix : A6 (hex) | ||
1743 | |||
1744 | clear? : 01 (hex) | ||
1745 | ))) | ||
1746 | |(% style="width:141px" %)**Example**|(% style="width:357px" %)A6 **01** | ||
1747 | |||
1748 | ==== 3.4.2.19 Counting ~-~- Set Saving Interval for 'Counting Result' ==== | ||
1749 | |||
1750 | |||
1751 | This command allows you to configure the device to save its counting result to internal flash memory at specified intervals. By setting a save time, the device will periodically store the counting data to prevent loss in case of power failure. The save interval can be adjusted to suit your requirements, with a minimum value of 30 seconds. | ||
1752 | |||
1753 | (% style="color:#037691" %)**AT Command** | ||
1754 | |||
1755 | (% border="2" style="width:500px" %) | ||
1756 | |(% style="width:124px" %)**Command**|(% style="width:374px" %)AT+COUTIME=<time> | ||
1757 | |(% style="width:124px" %)**Response**|(% style="width:374px" %) | ||
1758 | |(% style="width:124px" %)**Parameters**|(% style="width:374px" %)time : seconds (0 to 16777215) | ||
1759 | |(% style="width:124px" %)**Example**|(% style="width:374px" %)((( | ||
1760 | AT+COUTIME=60 | ||
1761 | |||
1762 | Sets the device to save its counting results to the memory every 60 seconds. | ||
1763 | ))) | ||
1764 | |||
1765 | (% style="color:#037691" %)**Downlink Payload** | ||
1766 | |||
1767 | (% border="2" style="width:500px" %) | ||
1768 | |(% style="width:123px" %)**Payload**|(% style="width:375px" %)<prefix><time> | ||
1769 | |(% style="width:123px" %)**Parameters**|(% style="width:375px" %)((( | ||
1770 | prefix : A7 | ||
1771 | |||
1772 | time : seconds, 3 bytes in hexadecimal | ||
1773 | ))) | ||
1774 | |(% style="width:123px" %)**Example**|(% style="width:375px" %)((( | ||
1775 | A7 **00 00 3C** | ||
1776 | |||
1777 | Sets the device to save its counting results to the memory every 60 seconds. | ||
1778 | ))) | ||
1779 | |||
1780 | ==== 3.4.2.20 Reset saved RO and DO states ==== | ||
1781 | |||
1782 | |||
1783 | This command allows you to reset the saved relay output (RO) and digital output (DO) states when the device joins the network. By configuring this setting, you can control whether the device should retain or reset the relay states after a reset and rejoin to the network. | ||
1784 | |||
1785 | (% style="color:#037691" %)**AT Command** | ||
1786 | |||
1787 | (% border="2" style="width:500px" %) | ||
1788 | |(% style="width:127px" %)**Command**|(% style="width:371px" %)AT+RODORESET=<state> | ||
1789 | |(% style="width:127px" %)**Response**|(% style="width:371px" %) | ||
1790 | |(% style="width:127px" %)**Parameters**|(% style="width:371px" %)((( | ||
1791 | **state** : | ||
1792 | |||
1793 | **0** : RODO will close when the device joins the network. (default) | ||
1794 | |||
1795 | **1**: After the device is reset, the previously saved RODO state (limited to MOD2 to MOD5) is read, and it will not change when the device reconnects to the network. | ||
1796 | ))) | ||
1797 | |(% style="width:127px" %)**Example**|(% style="width:371px" %)((( | ||
1798 | (% style="color:blue" %)**AT+RODORESET=1 ** | ||
1799 | |||
1800 | RODO will close when the device joins the network. (default) | ||
1801 | |||
1802 | (% style="color:blue" %)**AT+RODORESET=0 ** | ||
1803 | |||
1804 | After the device is reset, the previously saved RODO state (limited to MOD2 to MOD5) is read, and it will not change when the device reconnects to the network. | ||
1805 | ))) | ||
1806 | |||
1807 | (% style="color:#037691" %)**Downlink Payload** | ||
1808 | |||
1809 | (% border="2" style="width:500px" %) | ||
1810 | |(% style="width:127px" %)**Payload**|(% style="width:371px" %)<prefix><state> | ||
1811 | |(% style="width:127px" %)**Parameters**|(% style="width:371px" %)((( | ||
1812 | **prefix** : AD | ||
1813 | |||
1814 | **state** : | ||
1815 | |||
1816 | **0** : RODO will close when the device joins the network. (default), represents as 1 byte in hexadecimal. | ||
1817 | |||
1818 | **1**: After the device is reset, the previously saved RODO state (limited to MOD2 to MOD5) is read, and it will not change when the device reconnects to the network. - represents as 1 byte in hexadecimal | ||
1819 | ))) | ||
1820 | |(% style="width:127px" %)**Example**|(% style="width:371px" %)((( | ||
1821 | AD **01** | ||
1822 | |||
1823 | RODO will close when the device joins the network. (default) | ||
1824 | |||
1825 | AD **00** | ||
1826 | |||
1827 | After the device is reset, the previously saved RODO state (limited to MOD2 to MOD5) is read, and it will not change when the device reconnects to the network. | ||
1828 | ))) | ||
1829 | |||
1830 | ==== 3.4.2.21 Encrypted payload ==== | ||
1831 | |||
1832 | |||
1833 | This command allows you to configure whether the device should upload data in an encrypted format or in plaintext. By default, the device encrypts the payload before uploading. You can toggle this setting to either upload encrypted data or transmit it without encryption. | ||
1834 | |||
1835 | (% style="color:#037691" %)**AT Command:** | ||
1836 | |||
1837 | (% border="2" style="width:500px" %) | ||
1838 | |(% style="width:127px" %)**Command**|(% style="width:371px" %)AT+DECRYPT=<state> | ||
1839 | |(% style="width:127px" %)**Response**|(% style="width:371px" %) | ||
1840 | |(% style="width:127px" %)**Parameters**|(% style="width:371px" %)((( | ||
1841 | **state** : | ||
1842 | |||
1843 | **1** : The payload is uploaded without encryption | ||
1844 | |||
1845 | **0** : The payload is encrypted when uploaded (default) | ||
1846 | ))) | ||
1847 | |(% style="width:127px" %)**Example**|(% style="width:371px" %)((( | ||
1848 | AT+DECRYPT=1 | ||
1849 | |||
1850 | The payload is uploaded without encryption | ||
1851 | |||
1852 | AT+DECRYPT=0 | ||
1853 | |||
1854 | The payload is encrypted when uploaded (default) | ||
1855 | ))) | ||
1856 | |||
1857 | There is no downlink payload for this configuration. | ||
1858 | |||
1859 | |||
1860 | ==== 3.4.2.22 Get sensor value ==== | ||
1861 | |||
1862 | |||
1863 | This command allows you to retrieve and optionally uplink sensor readings through the serial port. | ||
1864 | |||
1865 | (% style="color:#037691" %)**AT Command** | ||
1866 | |||
1867 | (% border="2" style="width:500px" %) | ||
1868 | |(% style="width:127px" %)**Command**|(% style="width:371px" %)AT+GETSENSORVALUE=<state> | ||
1869 | |(% style="width:127px" %)**Response**|(% style="width:371px" %) | ||
1870 | |(% style="width:127px" %)**Parameters**|(% style="width:371px" %)((( | ||
1871 | **state** : | ||
1872 | |||
1873 | **0 **: Retrieves the current sensor reading via the serial port. | ||
1874 | |||
1875 | **1 **: Retrieves and uploads the current sensor reading via the serial port. | ||
1876 | ))) | ||
1877 | |(% style="width:127px" %)**Example**|(% style="width:371px" %)((( | ||
1878 | AT+GETSENSORVALUE=0 | ||
1879 | |||
1880 | Retrieves the current sensor reading via the serial port. | ||
1881 | |||
1882 | AT+GETSENSORVALUE=1 | ||
1883 | |||
1884 | Retrieves and uplinks the current sensor reading via the serial port. | ||
1885 | ))) | ||
1886 | |||
1887 | There is no downlink payload for this configuration. | ||
1888 | |||
1889 | |||
1890 | ==== 3.4.2.23 Resetting the downlink packet count ==== | ||
1891 | |||
1892 | |||
1893 | This command manages how the node handles mismatched downlink packet counts. It offers two modes: one disables the reception of further downlink packets if discrepancies occur, while the other resets the downlink packet count to align with the server, ensuring continued communication. | ||
1894 | |||
1895 | (% style="color:#037691" %)**AT Command** | ||
1896 | |||
1897 | (% border="2" style="width:500px" %) | ||
1898 | |(% style="width:130px" %)**Command**|(% style="width:368px" %)AT+DISFCNTCHECK=<state> | ||
1899 | |(% style="width:130px" %)**Response**|(% style="width:368px" %)((( | ||
1900 | |||
1901 | ))) | ||
1902 | |(% style="width:130px" %)**Parameters**|(% style="width:368px" %)((( | ||
1903 | **state **: | ||
1904 | |||
1905 | **0** : When the downlink packet count sent by the server is less than the node's downlink packet count or exceeds 16,384, the node stops receiving further downlink packets (default). | ||
1906 | |||
1907 | |||
1908 | **1** : When the downlink packet count sent by the server is less than the node's downlink packet count or exceeds 16,384, the node resets its downlink packet count to match the server's, ensuring consistency. | ||
1909 | ))) | ||
1910 | |(% style="width:130px" %)**Example**|(% style="width:368px" %)((( | ||
1911 | AT+DISFCNTCHECK=0 | ||
1912 | |||
1913 | When the downlink packet count sent by the server is less than the node's downlink packet count or exceeds 16,384, the node stops receiving further downlink packets (default). | ||
1914 | |||
1915 | AT+DISFCNTCHECK=1 | ||
1916 | |||
1917 | When the downlink packet count sent by the server is less than the node's downlink packet count or exceeds 16,384, the node resets its downlink packet count to match the server's, ensuring consistency. | ||
1918 | ))) | ||
1919 | |||
1920 | There is no downlink payload for this configuration. | ||
1921 | |||
1922 | |||
1923 | ==== 3.4.2.24 When the limit bytes are exceeded, upload in batches ==== | ||
1924 | |||
1925 | |||
1926 | This command controls the behavior of the node when the combined size of the MAC commands (MACANS) from the server and the payload exceed the allowed byte limit for the current data rate (DR). The command provides two modes: one enables splitting the data into batches to ensure compliance with the byte limit, while the other prioritizes the payload and ignores the MACANS in cases of overflow. | ||
1927 | |||
1928 | (% style="color:#037691" %)**AT Command** | ||
1929 | |||
1930 | (% border="2" style="width:500px" %) | ||
1931 | |(% style="width:127px" %)**Command**|(% style="width:371px" %)AT+DISMACANS=<state> | ||
1932 | |(% style="width:127px" %)**Response**|(% style="width:371px" %) | ||
1933 | |(% style="width:127px" %)**Parameters**|(% style="width:371px" %)((( | ||
1934 | **state** : | ||
1935 | |||
1936 | **0** : When the combined size of the MACANS from the server and the payload exceeds the byte limit (11 bytes for DR0 of US915, DR2 of AS923, DR2 of AU915), the node sends a packet with a payload of 00 and a port of 4. (default) | ||
1937 | |||
1938 | **1** : When the combined size of the MACANS from the server and the payload exceeds the byte limit for the current DR, the node ignores the MACANS and only uploads the payload. | ||
1939 | ))) | ||
1940 | |(% style="width:127px" %)**Example**|(% style="width:371px" %)((( | ||
1941 | AT+DISMACANS=0 | ||
1942 | |||
1943 | When the combined size of the MACANS from the server and the payload exceeds the byte limit (11 bytes for DR0 of US915, DR2 of AS923, DR2 of AU915), the node sends a packet with a payload of 00 and a port of 4. (default) | ||
1944 | |||
1945 | AT+DISMACANS=1 | ||
1946 | |||
1947 | When the combined size of the MACANS from the server and the payload exceeds the byte limit for the current DR, the node ignores the MACANS and only uploads the payload. | ||
1948 | ))) | ||
1949 | |||
1950 | (% style="color:#037691" %)**Downlink Payload** | ||
1951 | |||
1952 | (% border="2" style="width:500px" %) | ||
1953 | |(% style="width:126px" %)**Payload**|(% style="width:372px" %)<prefix><state> | ||
1954 | |(% style="width:126px" %)**Parameters**|(% style="width:372px" %)((( | ||
1955 | **prefix** : 21 | ||
1956 | |||
1957 | **state** : (2 bytes in hexadecimal) | ||
1958 | |||
1959 | **0** : When the combined size of the MACANS from the server and the payload exceeds the byte limit (11 bytes for DR0 of US915, DR2 of AS923, DR2 of AU915), the node sends a packet with a payload of 00 and a port of 4. (default) | ||
1960 | |||
1961 | **1 **: When the combined size of the MACANS from the server and the payload exceeds the byte limit for the current DR, the node ignores the MACANS and only uploads the payload. | ||
1962 | ))) | ||
1963 | |(% style="width:126px" %)**Example**|(% style="width:372px" %)((( | ||
1964 | 21 **00 01** | ||
1965 | |||
1966 | Set DISMACANS=1 | ||
1967 | ))) | ||
1968 | |||
1969 | ==== 3.4.2.25 Copy downlink to uplink ==== | ||
1970 | |||
1971 | |||
1972 | This command enables the device to immediately uplink the payload of a received downlink packet back to the server. The command allows for quick data replication from downlink to uplink, with a fixed port number of 100. | ||
1973 | |||
1974 | (% style="color:#037691" %)**AT Command**(%%)**:** | ||
1975 | |||
1976 | (% style="color:blue" %)**AT+RPL=5** (%%) ~/~/ After receiving a downlink payload from the server, the device will immediately uplink the payload back to the server using port number 100. | ||
1977 | |||
1978 | Example:**aa xx xx xx xx** ~/~/ **aa** indicates whether the configuration has changed: **00** means YES, and **01** means NO. **xx xx xx xx** are the bytes uplinked back. | ||
1979 | |||
1980 | |||
1981 | [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/image-20220823173747-6.png?width=1124&height=165&rev=1.1||alt="image-20220823173747-6.png"]] | ||
1982 | |||
1983 | For example, sending 11 22 33 44 55 66 77 will return invalid configuration 00 11 22 33 44 55 66 77. | ||
1984 | |||
1985 | [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/image-20220823173833-7.png?width=1124&height=149&rev=1.1||alt="image-20220823173833-7.png"]] | ||
1986 | |||
1987 | For example, if 01 00 02 58 is issued, a valid configuration of 01 01 00 02 58 will be returned. | ||
1988 | |||
1989 | |||
1990 | (% style="color:#037691" %)**Downlink Payload**(%%)**:** | ||
1991 | |||
1992 | There is no downlink option available for this feature. | ||
1993 | |||
1994 | |||
1995 | ==== 3.4.2.26 Query firmware version, frequency band, subband, and TDC time ==== | ||
1996 | |||
1997 | |||
1998 | This command is used to query key information about the device, including its firmware version, frequency band, subband, and TDC time. By sending the specified payload as a downlink, the server can retrieve this essential data from the device. | ||
1999 | |||
2000 | * ((( | ||
2001 | (% style="color:#037691" %)**Downlink Payload**(%%)**:** | ||
2002 | |||
2003 | (% style="color:blue" %)**26 01 ** (%%) ~/~/ The downlink payload 26 01 is used to query the device's firmware version, frequency band, subband, and TDC time. | ||
2004 | |||
2005 | |||
2006 | ))) | ||
2007 | |||
2008 | **Example:** | ||
2009 | |||
2010 | [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/image-20220823173929-8.png?width=1205&height=76&rev=1.1||alt="image-20220823173929-8.png"]] | ||
2011 | |||
2012 | |||
2013 | == 3.5 Integrating with ThingsEye.io == | ||
2014 | |||
2015 | |||
2016 | The Things Stack application supports integration with ThingsEye.io. Once integrated, ThingsEye.io acts as an MQTT client for The Things Stack MQTT broker, allowing it to subscribe to upstream traffic and publish downlink traffic. | ||
2017 | |||
2018 | |||
2019 | === 3.5.1 Configuring The Things Stack === | ||
2020 | |||
2021 | |||
2022 | We use The Things Stack Sandbox in this example: | ||
2023 | |||
2024 | * In **The Things Stack Sandbox**, go to the **Application **for the LT-22222-L you added. | ||
2025 | * Select **MQTT** under **Integrations** in the left menu. | ||
2026 | * In the **Connection information **section, under **Connection credentials**, The Things Stack displays an auto-generated **username**. You can use it or provide a new one. | ||
2027 | * Click the **Generate new API key** button to generate a password. You can view it by clicking on the **visibility toggle/eye** icon. The API key works as the password. | ||
2028 | |||
2029 | {{info}} | ||
2030 | The username and password (API key) you created here are required in the next section. | ||
2031 | {{/info}} | ||
2032 | |||
2033 | [[image:tts-mqtt-integration.png]] | ||
2034 | |||
2035 | |||
2036 | === 3.5.2 Configuring ThingsEye.io === | ||
2037 | |||
2038 | |||
2039 | The ThingsEye.io IoT platform is not open for self-registration at the moment. If you are interested in testing the platform, please send your project information to admin@thingseye.io, and we will create an account for you. | ||
2040 | |||
2041 | * Login to your [[ThingsEye.io >>https://thingseye.io]]account. | ||
2042 | * Under the **Integrations center**, click **Integrations**. | ||
2043 | * Click the **Add integration** button (the button with the **+** symbol). | ||
2044 | |||
2045 | [[image:thingseye-io-step-1.png]] | ||
2046 | |||
2047 | |||
2048 | On the **Add integration** window, configure the following: | ||
2049 | |||
2050 | **Basic settings:** | ||
2051 | |||
2052 | * Select **The Things Stack Community** from the **Integration type** list. | ||
2053 | * Enter a suitable name for your integration in the **Name **text** **box or keep the default name. | ||
2054 | * Ensure the following options are turned on. | ||
2055 | ** Enable integration | ||
2056 | ** Debug mode | ||
2057 | ** Allow creating devices or assets | ||
2058 | * Click the **Next** button. you will be navigated to the **Uplink data converter** tab. | ||
2059 | |||
2060 | [[image:thingseye-io-step-2.png]] | ||
2061 | |||
2062 | |||
2063 | **Uplink data converter:** | ||
2064 | |||
2065 | * Click the **Create new** button if it is not selected by default. | ||
2066 | * Enter a suitable name for the uplink data converter in the **Name **text** **box or keep the default name. | ||
2067 | * Click the **JavaScript** button. | ||
2068 | * Paste the uplink decoder function into the text area (first, delete the default code). The demo uplink decoder function can be found [[here>>https://raw.githubusercontent.com/ThingsEye-io/te-platform/refs/heads/main/Data%20Converters/The_Things_Network_MQTT_Uplink_Converter.js]]. | ||
2069 | * Click the **Next** button. You will be navigated to the **Downlink data converter **tab. | ||
2070 | |||
2071 | [[image:thingseye-io-step-3.png]] | ||
2072 | |||
2073 | |||
2074 | **Downlink data converter (this is an optional step):** | ||
2075 | |||
2076 | * Click the **Create new** button if it is not selected by default. | ||
2077 | * Enter a suitable name for the downlink data converter in the **Name **text** **box or keep the default name. | ||
2078 | * Click the **JavaScript** button. | ||
2079 | * Paste the downlink decoder function into the text area (first, delete the default code). The demo downlink decoder function can be found [[here>>https://raw.githubusercontent.com/ThingsEye-io/te-platform/refs/heads/main/Data%20Converters/The_Things_Network_MQTT_Downlink_Converter.js]]. | ||
2080 | * Click the **Next** button. You will be navigated to the **Connection** tab. | ||
2081 | |||
2082 | [[image:thingseye-io-step-4.png]] | ||
2083 | |||
2084 | |||
2085 | **Connection:** | ||
2086 | |||
2087 | * Choose **Region** from the **Host type**. | ||
2088 | * Enter the **cluster** of your **The Things Stack** in the **Region** textbox. You can find the cluster in the url (e.g., https:~/~/**eu1**.cloud.thethings.network/...). | ||
2089 | * Enter the **Username** and **Password** of the MQTT integration in the **Credentials** section. The **username **and **password **can be found on the MQTT integration page of your The Things Stack account (see **3.5.1 Configuring The Things Stack**). | ||
2090 | * Click the **Check connection** button to test the connection. If the connection is successful, you will see the message saying **Connected**. | ||
2091 | |||
2092 | [[image:message-1.png]] | ||
2093 | |||
2094 | |||
2095 | * Click the **Add** button. | ||
2096 | |||
2097 | [[image:thingseye-io-step-5.png]] | ||
2098 | |||
2099 | |||
2100 | Your integration has been added to the** Integrations** list and will be displayed on the **Integrations** page. Check whether the status is shown as **Active**. If not, review your configuration settings and correct any errors. | ||
2101 | |||
2102 | [[image:thingseye.io_integrationsCenter_integrations.png]] | ||
2103 | |||
2104 | |||
2105 | ==== 3.5.2.1 Viewing integration details ==== | ||
2106 | |||
2107 | |||
2108 | Click on your integration from the list. The **Integration details** window will appear with the **Details **tab selected. The **Details **tab shows all the settings you have provided for this integration. | ||
2109 | |||
2110 | [[image:integration-details.png]] | ||
2111 | |||
2112 | |||
2113 | If you want to edit the settings you have provided, click on the **Toggle edit mode** button. Once you have done click on the **Apply changes **button. | ||
2114 | |||
2115 | {{info}} | ||
2116 | See also [[ThingsEye documentation>>https://wiki.thingseye.io/xwiki/bin/view/Main/]]. | ||
2117 | {{/info}} | ||
2118 | |||
2119 | |||
2120 | ==== 3.5.2.2 Viewing events ==== | ||
2121 | |||
2122 | |||
2123 | The **Events **tab displays all the uplink messages from the LT-22222-L. | ||
2124 | |||
2125 | * Select **Debug **from the **Event type** dropdown. | ||
2126 | * Select the** time frame** from the **time window**. | ||
2127 | |||
2128 | [[image:thingseye-events.png]] | ||
2129 | |||
2130 | |||
2131 | * To view the **JSON payload** of a message, click on the **three dots (...)** in the **Message** column of the desired message. | ||
2132 | |||
2133 | [[image:thingseye-json.png]] | ||
2134 | |||
2135 | |||
2136 | ==== 3.5.2.3 Deleting an integration ==== | ||
2137 | |||
2138 | |||
2139 | If you want to delete an integration, click the **Delete integratio**n button on the Integrations page. | ||
2140 | |||
2141 | |||
2142 | ==== 3.5.2.4 Viewing sensor data on a dashboard ==== | ||
2143 | |||
2144 | |||
2145 | You can create a dashboard with ThingsEye to visualize the sensor data coming from the LT-22222-L. The following image shows a dashboard created for the LT-22222-L. See **Creating a dashboard** in ThingsEye documentation for more information. | ||
2146 | |||
2147 | [[image:lt-22222-l-dashboard.png]] | ||
2148 | |||
2149 | |||
2150 | == 3.6 Interface Details == | ||
2151 | |||
2152 | === 3.6.1 Digital Input Ports: DI1/DI2/DI3 (For LT-33222-L, Low Active) === | ||
2153 | |||
2154 | |||
2155 | Supports** NPN-type **sensors. | ||
2156 | |||
2157 | [[image:1653356991268-289.png]] | ||
2158 | |||
2159 | |||
2160 | === 3.6.2 Digital Input Ports: DI1/DI2 === | ||
2161 | |||
2162 | |||
2163 | ((( | ||
2164 | The DI ports of the LT-22222-L can support **NPN**, **PNP**, or **dry contact** output sensors. | ||
2165 | ))) | ||
2166 | |||
2167 | ((( | ||
2168 | ((( | ||
2169 | The part of the internal circuit of the LT-22222-L shown below includes the NEC2501 photocoupler. The active current from NEC2501 pin 1 to pin 2 is 1 mA, with a maximum allowable current of 50 mA. When active current flows from NEC2501 pin 1 to pin 2, the DI becomes active HIGH and the DI LED status changes. | ||
2170 | |||
2171 | |||
2172 | ))) | ||
2173 | ))) | ||
2174 | |||
2175 | [[image:1653357170703-587.png]] | ||
2176 | |||
2177 | ((( | ||
2178 | ((( | ||
2179 | (% style="color:#000000; font-family:Arial,sans-serif; font-size:11pt; font-style:normal; font-variant-alternates:normal; font-variant-east-asian:normal; font-variant-ligatures:normal; font-variant-numeric:normal; font-variant-position:normal; font-weight:400; text-decoration:none; white-space:pre-wrap" %)When connecting a device to the DI port, both DI1+ and DI1- must be connected. | ||
2180 | ))) | ||
2181 | ))) | ||
2182 | |||
2183 | ((( | ||
2184 | |||
2185 | ))) | ||
2186 | |||
2187 | ((( | ||
2188 | (% style="color:#0000ff" %)**Example 1**(%%): Connecting to a low-active sensor. | ||
2189 | ))) | ||
2190 | |||
2191 | ((( | ||
2192 | This type of sensor outputs a low (GND) signal when active. | ||
2193 | ))) | ||
2194 | |||
2195 | * ((( | ||
2196 | Connect the sensor's output to DI1- | ||
2197 | ))) | ||
2198 | * ((( | ||
2199 | Connect the sensor's VCC to DI1+. | ||
2200 | ))) | ||
2201 | |||
2202 | ((( | ||
2203 | When the sensor is active, the current between NEC2501 pin 1 and pin 2 will be: | ||
2204 | ))) | ||
2205 | |||
2206 | ((( | ||
2207 | [[image:1653968155772-850.png||height="23" width="19"]]**= DI1**+** / 1K.** | ||
2208 | ))) | ||
2209 | |||
2210 | ((( | ||
2211 | For example, if** DI1+ **= **12V**, the resulting current is [[image:1653968155772-850.png||height="23" width="19"]]= 12mA. Therefore, the LT-22222-L will be able to detect this active signal. | ||
2212 | ))) | ||
2213 | |||
2214 | ((( | ||
2215 | |||
2216 | ))) | ||
2217 | |||
2218 | ((( | ||
2219 | (% style="color:#0000ff" %)**Example 2**(%%): Connecting to a high-active sensor. | ||
2220 | ))) | ||
2221 | |||
2222 | ((( | ||
2223 | This type of sensor outputs a high signal (e.g., 24V) when active. | ||
2224 | ))) | ||
2225 | |||
2226 | * ((( | ||
2227 | Connect the sensor's output to DI1+ | ||
2228 | ))) | ||
2229 | * ((( | ||
2230 | Connect the sensor's GND DI1-. | ||
2231 | ))) | ||
2232 | |||
2233 | ((( | ||
2234 | When the sensor is active, the current between NEC2501 pin1 and pin2 will be: | ||
2235 | ))) | ||
2236 | |||
2237 | ((( | ||
2238 | [[image:1653968155772-850.png||height="23" width="19"]]**= DI1+ / 1K.** | ||
2239 | ))) | ||
2240 | |||
2241 | ((( | ||
2242 | If **DI1+ = 24V**, the resulting current[[image:1653968155772-850.png||height="23" width="19"]] is 24mA, Therefore, the LT-22222-L will detect this high-active signal. | ||
2243 | ))) | ||
2244 | |||
2245 | ((( | ||
2246 | |||
2247 | ))) | ||
2248 | |||
2249 | ((( | ||
2250 | (% style="color:#0000ff" %)**Example 3**(%%): Connecting to a 220V high-active sensor. | ||
2251 | ))) | ||
2252 | |||
2253 | ((( | ||
2254 | Assume that you want to monitor an active signal higher than 220V without damaging the photocoupler | ||
2255 | ))) | ||
2256 | |||
2257 | * ((( | ||
2258 | Connect the sensor's output to DI1+ with a 50K resistor in series. | ||
2259 | ))) | ||
2260 | * ((( | ||
2261 | Connect the sensor's GND DI1-. | ||
2262 | ))) | ||
2263 | |||
2264 | ((( | ||
2265 | When the sensor is active, the current between NEC2501 pin1 and pin2 will be: | ||
2266 | ))) | ||
2267 | |||
2268 | ((( | ||
2269 | [[image:1653968155772-850.png||height="23" width="19"]]**= DI1+ / 51K.** | ||
2270 | ))) | ||
2271 | |||
2272 | ((( | ||
2273 | If the sensor output is 220V, then [[image:1653968155772-850.png||height="23" width="19"]](% id="cke_bm_243359S" style="display:none" wfd-invisible="true" %)[[image:image-20220524095628-8.png]](%%) = DI1+ / 51K = 4.3mA. Therefore, the LT-22222-L will be able to safely detect this high-active signal. | ||
2274 | ))) | ||
2275 | |||
2276 | |||
2277 | (% style="color:blue" %)**Example 4**(%%): Connecting to a Dry Contact sensor | ||
2278 | |||
2279 | From the DI port circuit above, activating the photocoupler requires a voltage difference between the DI+ and DI- ports. However, the Dry Contact sensor is a passive component and cannot provide this voltage difference on its own. | ||
2280 | |||
2281 | To detect a Dry Contact, you can supply a power source to one of the pins of the Dry Contact. A reference circuit diagram is shown below. | ||
2282 | |||
2283 | [[image:image-20230616235145-1.png]] | ||
2284 | |||
2285 | (% style="color:blue" %)**Example 5**(%%): Connecting to an Open Collector | ||
2286 | |||
2287 | [[image:image-20240219115718-1.png]] | ||
2288 | |||
2289 | |||
2290 | === 3.6.3 Digital Output Ports: DO1/DO2 === | ||
2291 | |||
2292 | |||
2293 | (% style="color:blue" %)**NPN output**(%%): GND or Float. The maximum voltage that can be applied to the output pin is 36V. | ||
2294 | |||
2295 | (% style="color:red" %)**Note: The DO pins will float when the device is powered off.** | ||
2296 | |||
2297 | [[image:1653357531600-905.png]] | ||
2298 | |||
2299 | |||
2300 | === 3.6.4 Analog Input Interfaces === | ||
2301 | |||
2302 | |||
2303 | The analog input interface is shown below. The LT-22222-L will measure the IN2 voltage to calculate the current passing through the load. The formula is: | ||
2304 | |||
2305 | |||
2306 | (% style="color:blue" %)**AC2 = (IN2 voltage )/12** | ||
2307 | |||
2308 | [[image:1653357592296-182.png]] | ||
2309 | |||
2310 | Example: Connecting a 4~~20mA sensor | ||
2311 | |||
2312 | We will use the wind speed sensor as an example for reference only. | ||
2313 | |||
2314 | |||
2315 | (% style="color:blue" %)**Specifications of the wind speed sensor:** | ||
2316 | |||
2317 | (% style="color:red" %)**Red: 12~~24V** | ||
2318 | |||
2319 | (% style="color:#ffc000" %)**Yellow: 4~~20mA** | ||
2320 | |||
2321 | **Black: GND** | ||
2322 | |||
2323 | **Connection diagram:** | ||
2324 | |||
2325 | [[image:1653357640609-758.png]] | ||
2326 | |||
2327 | [[image:1653357648330-671.png||height="155" width="733"]] | ||
2328 | |||
2329 | |||
2330 | Example: Connecting to a regulated power supply to measure voltage | ||
2331 | |||
2332 | [[image:image-20230608101532-1.png||height="606" width="447"]] | ||
2333 | |||
2334 | [[image:image-20230608101608-2.jpeg||height="379" width="284"]] | ||
2335 | |||
2336 | [[image:image-20230608101722-3.png||height="102" width="1139"]] | ||
2337 | |||
2338 | |||
2339 | (% style="color:blue; font-weight:bold" %)**Specifications of the regulated power supply**(% style="color:blue" %)**:** | ||
2340 | |||
2341 | (% style="color:red" %)**Red: 12~~24v** | ||
2342 | |||
2343 | **Black: GND** | ||
2344 | |||
2345 | |||
2346 | === 3.6.5 Relay Output === | ||
2347 | |||
2348 | |||
2349 | ((( | ||
2350 | The LT-22222-L has two relay interfaces, RO1 and RO2, each using two pins of the screw terminal (ROx-1 and ROx-2 where x is the port number, 1 or 2). You can connect a device's power line in series with one of the relay interfaces (e.g., RO1-1 and RO1-2 screw terminals). See the example below: | ||
2351 | |||
2352 | (% style="color:red" %)**Note:**(%%) The ROx pins will be in the Open (NO) state when the LT-22222-L is powered off. | ||
2353 | ))) | ||
2354 | |||
2355 | [[image:image-20220524100215-9.png]] | ||
2356 | |||
2357 | |||
2358 | [[image:image-20220524100215-10.png||height="382" width="723"]] | ||
2359 | |||
2360 | |||
2361 | == 3.7 LED Indicators == | ||
2362 | |||
2363 | |||
2364 | The table below lists the behaviour of LED indicators for each port function. | ||
2365 | |||
2366 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %) | ||
2367 | |(% style="background-color:#4f81bd; color:white; width:50px" %)**LEDs**|(% style="background-color:#4f81bd; color:white; width:460px" %)**Feature** | ||
2368 | |**PWR**|Always on when there is power | ||
2369 | |**TX**|((( | ||
2370 | ((( | ||
2371 | Device booting: TX blinks 5 times. | ||
2372 | ))) | ||
2373 | |||
2374 | ((( | ||
2375 | Successful network joins: TX remains ON for 5 seconds. | ||
2376 | ))) | ||
2377 | |||
2378 | ((( | ||
2379 | Transmit a LoRa packet: TX blinks once | ||
2380 | ))) | ||
2381 | ))) | ||
2382 | |**RX**|RX blinks once when a packet is received. | ||
2383 | |**DO1**|For LT-22222-L: ON when DO1 is low, OFF when DO1 is high | ||
2384 | |**DO2**|For LT-22222-L: ON when DO2 is low, OFF when DO2 is high | ||
2385 | |**DI1**|((( | ||
2386 | For LT-22222-L: ON when DI1 is high, OFF when DI1 is low | ||
2387 | ))) | ||
2388 | |**DI2**|((( | ||
2389 | For LT-22222-L: ON when DI2 is high, OFF when DI2 is low | ||
2390 | ))) | ||
2391 | |**RO1**|For LT-22222-L: ON when RO1 is closed, OFF when RO1 is open | ||
2392 | |**RO2**|For LT-22222-L: ON when RO2 is closed, OFF when RO2 is open | ||
2393 | |||
2394 | = 4. Using AT Commands = | ||
2395 | |||
2396 | |||
2397 | The LT-22222-L supports programming using AT Commands. | ||
2398 | |||
2399 | |||
2400 | == 4.1 Connecting the LT-22222-L to a PC == | ||
2401 | |||
2402 | |||
2403 | ((( | ||
2404 | You can use a USB-to-TTL adapter/converter along with a 3.5mm Program Cable to connect the LT-22222-L to a PC, as shown below. | ||
2405 | |||
2406 | [[image:usb-ttl-audio-jack-connection.jpg]] | ||
2407 | |||
2408 | |||
2409 | ))) | ||
2410 | |||
2411 | ((( | ||
2412 | On the PC, you need to set the (% style="color:#4f81bd" %)**serial tool **(%%)(such as [[PuTTY>>url:https://www.chiark.greenend.org.uk/~~sgtatham/putty/latest.html]] or [[SecureCRT>>https://www.vandyke.com/cgi-bin/releases.php?product=securecrt]]) to a baud rate of (% style="color:green" %)**9600**(%%) to access the serial console of LT-22222-L. Access to AT commands is disabled by default, and a password (default: (% style="color:green" %)**123456**)(%%) must be entered to enable AT command access, as shown below: | ||
2413 | ))) | ||
2414 | |||
2415 | [[image:1653358355238-883.png]] | ||
2416 | |||
2417 | |||
2418 | ((( | ||
2419 | == 4.2 LT-22222-L related AT commands == | ||
2420 | |||
2421 | |||
2422 | ))) | ||
2423 | |||
2424 | ((( | ||
2425 | The following is the list of all the AT commands related to the LT-22222-L, except for those used for switching between working modes. | ||
2426 | |||
2427 | * **##AT##+<CMD>?** : Help on <CMD> | ||
2428 | * **##AT##+<CMD>** : Run <CMD> | ||
2429 | * **##AT##+<CMD>=<value>** : Set the value | ||
2430 | * **##AT##+<CMD>=?** : Get the value | ||
2431 | * ##**ATZ**##: Trigger a reset of the MCU | ||
2432 | * ##**AT+FDR**##: Reset Parameters to factory default, reserve keys | ||
2433 | * **##AT+DEUI##**: Get or set the Device EUI (DevEUI) | ||
2434 | * **##AT+DADDR##**: Get or set the Device Address (DevAddr) | ||
2435 | * **##AT+APPKEY##**: Get or set the Application Key (AppKey) | ||
2436 | * ##**AT+NWKSKEY**##: Get or set the Network Session Key (NwkSKey) | ||
2437 | * **##AT+APPSKEY##**: Get or set the Application Session Key (AppSKey) | ||
2438 | * **##AT+APPEUI##**: Get or set the Application EUI (AppEUI) | ||
2439 | * **##AT+ADR##**: Get or set the Adaptive Data Rate setting. (0: OFF, 1: ON) | ||
2440 | * ##**AT+TXP**##: Get or set the Transmit Power (0-5, MAX:0, MIN:5, according to LoRaWAN Specification) | ||
2441 | * **##AT+DR##**: Get or set the Data Rate. (0-7 corresponding to DR_X) | ||
2442 | * **##AT+DCS##**: Get or set the ETSI Duty Cycle setting - 0=disable, 1=enable - Only for testing | ||
2443 | * ##**AT+PNM**##: Get or set the public network mode. (0: off, 1: on) | ||
2444 | * ##**AT+RX2FQ**##: Get or set the Rx2 window frequency | ||
2445 | * ##**AT+RX2DR**##: Get or set the Rx2 window data rate (0-7 corresponding to DR_X) | ||
2446 | * ##**AT+RX1DL**##: Get or set the delay between the end of the Tx and the Rx Window 1 in ms | ||
2447 | * ##**AT+RX2DL**##: Get or set the delay between the end of the Tx and the Rx Window 2 in ms | ||
2448 | * ##**AT+JN1DL**##: Get or set the Join Accept Delay between the end of the Tx and the Join Rx Window 1 in ms | ||
2449 | * ##**AT+JN2DL**##: Get or set the Join Accept Delay between the end of the Tx and the Join Rx Window 2 in ms | ||
2450 | * ##**AT+NJM**##: Get or set the Network Join Mode. (0: ABP, 1: OTAA) | ||
2451 | * ##**AT+NWKID**##: Get or set the Network ID | ||
2452 | * ##**AT+FCU**##: Get or set the Frame Counter Uplink (FCntUp) | ||
2453 | * ##**AT+FCD**##: Get or set the Frame Counter Downlink (FCntDown) | ||
2454 | * ##**AT+CLASS**##: Get or set the Device Class | ||
2455 | * ##**AT+JOIN**##: Join Network | ||
2456 | * ##**AT+NJS**##: Get OTAA Join Status | ||
2457 | * ##**AT+SENDB**##: Send hexadecimal data along with the application port | ||
2458 | * ##**AT+SEND**##: Send text data along with the application port | ||
2459 | * ##**AT+RECVB**##: Print the last received data in binary format (with hexadecimal values) | ||
2460 | * ##**AT+RECV**##: Print the last received data in raw format | ||
2461 | * ##**AT+VER**##: Get the current image version and Frequency Band | ||
2462 | * ##**AT+CFM**##: Get or Set the confirmation mode (0-1) | ||
2463 | * ##**AT+CFS**##: Get confirmation status of the last AT+SEND (0-1) | ||
2464 | * ##**AT+SNR**##: Get the SNR of the last received packet | ||
2465 | * ##**AT+RSSI**##: Get the RSSI of the last received packet | ||
2466 | * ##**AT+TDC**##: Get or set the application data transmission interval in ms | ||
2467 | * ##**AT+PORT**##: Get or set the application port | ||
2468 | * ##**AT+DISAT**##: Disable AT commands | ||
2469 | * ##**AT+PWORD**##: Set password, max 9 digits | ||
2470 | * ##**AT+CHS**##: Get or set the Frequency (Unit: Hz) for Single Channel Mode | ||
2471 | * ##**AT+CHE**##: Get or set eight channels mode, Only for US915, AU915, CN470 | ||
2472 | * ##**AT+CFG**##: Print all settings | ||
2473 | ))) | ||
2474 | |||
2475 | |||
2476 | == 4.2 Common AT Command Sequence == | ||
2477 | |||
2478 | === 4.2.1 Multi-channel ABP mode (Use with SX1301/LG308) === | ||
2479 | |||
2480 | ((( | ||
2481 | |||
2482 | |||
2483 | ((( | ||
2484 | (% style="color:blue" %)**If the device has not yet joined the network:** | ||
2485 | ))) | ||
2486 | ))) | ||
2487 | |||
2488 | ((( | ||
2489 | (% style="background-color:#dcdcdc" %)##**123456 ~/~/Enter the password to enable AT command access**## | ||
2490 | ))) | ||
2491 | |||
2492 | ((( | ||
2493 | (% style="background-color:#dcdcdc" %)##**AT+FDR ~/~/Reset parameters to factory default, Reserve keys**## | ||
2494 | ))) | ||
2495 | |||
2496 | ((( | ||
2497 | (% style="background-color:#dcdcdc" %)##**123456 ~/~/Enter the password to enable AT command access**## | ||
2498 | ))) | ||
2499 | |||
2500 | ((( | ||
2501 | (% style="background-color:#dcdcdc" %)##**AT+NJM=0 ~/~/Set to ABP mode**## | ||
2502 | ))) | ||
2503 | |||
2504 | ((( | ||
2505 | (% style="background-color:#dcdcdc" %)##**ATZ ~/~/Reset MCU**## | ||
2506 | ))) | ||
2507 | |||
2508 | |||
2509 | ((( | ||
2510 | (% style="color:blue" %)**If the device has already joined the network:** | ||
2511 | ))) | ||
2512 | |||
2513 | ((( | ||
2514 | (% style="background-color:#dcdcdc" %)##**AT+NJM=0**## | ||
2515 | ))) | ||
2516 | |||
2517 | ((( | ||
2518 | (% style="background-color:#dcdcdc" %)##**ATZ**## | ||
2519 | ))) | ||
2520 | |||
2521 | |||
2522 | === 4.2.2 Single-channel ABP mode (Use with LG01/LG02) === | ||
2523 | |||
2524 | ((( | ||
2525 | |||
2526 | |||
2527 | ((( | ||
2528 | (% style="background-color:#dcdcdc" %)**123456**(%%) ~/~/ Enter the password to enable AT commands access | ||
2529 | ))) | ||
2530 | ))) | ||
2531 | |||
2532 | ((( | ||
2533 | (% style="background-color:#dcdcdc" %)** AT+FDR**(%%) ~/~/ Reset parameters to Factory Default, Reserve keys | ||
2534 | ))) | ||
2535 | |||
2536 | ((( | ||
2537 | (% style="background-color:#dcdcdc" %)** 123456**(%%) ~/~/ Enter the password to enable AT command access | ||
2538 | ))) | ||
2539 | |||
2540 | ((( | ||
2541 | (% style="background-color:#dcdcdc" %)** AT+CLASS=C**(%%) ~/~/ Set to CLASS C mode | ||
2542 | ))) | ||
2543 | |||
2544 | ((( | ||
2545 | (% style="background-color:#dcdcdc" %)** AT+NJM=0**(%%) ~/~/ Set to ABP mode | ||
2546 | ))) | ||
2547 | |||
2548 | ((( | ||
2549 | (% style="background-color:#dcdcdc" %) **AT+ADR=0**(%%) ~/~/ Set the Adaptive Data Rate Off | ||
2550 | ))) | ||
2551 | |||
2552 | ((( | ||
2553 | (% style="background-color:#dcdcdc" %)** AT+DR=5**(%%) ~/~/ Set Data Rate | ||
2554 | ))) | ||
2555 | |||
2556 | ((( | ||
2557 | (% style="background-color:#dcdcdc" %)** AT+TDC=60000**(%%) ~/~/ Set transmit interval to 60 seconds | ||
2558 | ))) | ||
2559 | |||
2560 | ((( | ||
2561 | (% style="background-color:#dcdcdc" %)** AT+CHS=868400000**(%%) ~/~/ Set transmit frequency to 868.4 MHz | ||
2562 | ))) | ||
2563 | |||
2564 | ((( | ||
2565 | (% style="background-color:#dcdcdc" %)** AT+RX2FQ=868400000**(%%) ~/~/ Set RX2 frequency to 868.4 MHz (according to the result from the server) | ||
2566 | ))) | ||
2567 | |||
2568 | ((( | ||
2569 | (% style="background-color:#dcdcdc" %)** AT+RX2DR=5**(%%)** ** ~/~/ Set RX2 DR to match the downlink DR from the server. See below. | ||
2570 | ))) | ||
2571 | |||
2572 | ((( | ||
2573 | (% style="background-color:#dcdcdc" %)** AT+DADDR=26 01 1A F1** (%%) ~/~/ Set Device Address. The Device Address can be found in the application on the LoRaWAN NS. | ||
2574 | ))) | ||
2575 | |||
2576 | ((( | ||
2577 | (% style="background-color:#dcdcdc" %)** ATZ** (%%) ~/~/ Reset MCU | ||
2578 | |||
2579 | |||
2580 | ))) | ||
2581 | |||
2582 | ((( | ||
2583 | (% style="color:red" %)**Note:** | ||
2584 | ))) | ||
2585 | |||
2586 | ((( | ||
2587 | **~1. Ensure that the device is set to ABP mode in the LoRaWAN Network Server.** | ||
2588 | |||
2589 | **2. Verify that the LG01/02 gateway RX frequency matches the AT+CHS setting exactly.** | ||
2590 | |||
2591 | **3. Make sure the SF/bandwidth settings in the LG01/LG02 match the settings of AT+DR. Refer to [[this link>>url:https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/&file=LoRaWAN%201.0.3%20Regional%20Parameters.xlsx]] to see what DR means.** | ||
2592 | |||
2593 | **4. The commands AT+RX2FQ and AT+RX2DR enable downlink functionality. To set the correct parameters, you can check the actual downlink parameters to be used as shown below. Here, RX2FQ should be set to 868400000 and RX2DR should be set to 5.** | ||
2594 | ))) | ||
2595 | |||
2596 | ((( | ||
2597 | [[image:1653359097980-169.png||height="188" width="729"]] | ||
2598 | ))) | ||
2599 | |||
2600 | |||
2601 | === 4.2.3 Change to Class A === | ||
2602 | |||
2603 | |||
2604 | ((( | ||
2605 | (% style="color:blue" %)**If the sensor has JOINED:** | ||
2606 | |||
2607 | (% style="background-color:#dcdcdc" %)**AT+CLASS=A** | ||
2608 | |||
2609 | (% style="background-color:#dcdcdc" %)**ATZ** | ||
2610 | ))) | ||
2611 | |||
2612 | |||
2613 | = 5. Case Study = | ||
2614 | |||
2615 | == 5.1 Counting how many objects pass through the flow line == | ||
2616 | |||
2617 | |||
2618 | See [[How to set up to setup counting for objects passing through the flow line>>How to set up to count objects pass in flow line]]. | ||
2619 | |||
2620 | |||
2621 | = 6. FAQ = | ||
2622 | |||
2623 | |||
2624 | This section contains some frequently asked questions, which can help you resolve common issues and find solutions quickly. | ||
2625 | |||
2626 | |||
2627 | == 6.1 How to update the firmware? == | ||
2628 | |||
2629 | |||
2630 | Dragino frequently releases firmware updates for the LT-22222-L. Updating your LT-22222-L with the latest firmware version helps to: | ||
2631 | |||
2632 | * Support new features | ||
2633 | * Fix bugs | ||
2634 | * Change LoRaWAN frequency bands | ||
2635 | |||
2636 | You will need the following things before proceeding: | ||
2637 | |||
2638 | * 3.5mm programming cable (included with the LT-22222-L as an additional accessory) | ||
2639 | * USB to TTL adapter/converter | ||
2640 | * Download and install the [[STM32 Flash loader>>url:https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/flasher-stm32.html]]. (replaced by STM32CubeProgrammer) | ||
2641 | * Download the latest firmware image from [[LT-22222-L firmware image files>>https://www.dropbox.com/sh/g99v0fxcltn9r1y/AACrbrDN0AqLHbBat0ViWx5Da/LT-22222-L/Firmware?dl=0&subfolder_nav_tracking=1]]. Check the file name of the firmware to find the correct region. | ||
2642 | |||
2643 | {{info}} | ||
2644 | As of this writing, the latest firmware version available for the LT-22222-L is v1.6.1. | ||
2645 | {{/info}} | ||
2646 | |||
2647 | Below is the hardware setup for uploading a firmware image to the LT-22222-L: | ||
2648 | |||
2649 | [[image:usb-ttl-audio-jack-connection.jpg]] | ||
2650 | |||
2651 | |||
2652 | |||
2653 | Start the STM32 Flash Loader and choose the correct COM port to update. | ||
2654 | |||
2655 | ((( | ||
2656 | ((( | ||
2657 | (% style="color:blue" %)**For LT-22222-L**(%%): | ||
2658 | |||
2659 | Hold down the **PRO** button, then briefly press the **RST** button. The **DO1** LED will change from OFF to ON. When the **DO1** LED is ON, it indicates that the device is in firmware download mode. | ||
2660 | ))) | ||
2661 | |||
2662 | |||
2663 | ))) | ||
2664 | |||
2665 | [[image:image-20220524103407-12.png]] | ||
2666 | |||
2667 | |||
2668 | [[image:image-20220524103429-13.png]] | ||
2669 | |||
2670 | |||
2671 | [[image:image-20220524104033-15.png]] | ||
2672 | |||
2673 | |||
2674 | (% style="color:red" %)**Note**(%%): If you have lost the programming cable, you can make one from a 3.5 mm cable. The pin mapping is as follows: | ||
2675 | |||
2676 | [[image:1653360054704-518.png||height="186" width="745"]] | ||
2677 | |||
2678 | |||
2679 | ((( | ||
2680 | ((( | ||
2681 | == 6.2 How to change the LoRaWAN frequency band/region? == | ||
2682 | |||
2683 | |||
2684 | ))) | ||
2685 | ))) | ||
2686 | |||
2687 | ((( | ||
2688 | You can follow the introductions on [[how to upgrade the image>>||anchor="H6.1Howtoupdatethefirmware3F"]]. When downloading, select the required image file. | ||
2689 | ))) | ||
2690 | |||
2691 | ((( | ||
2692 | |||
2693 | |||
2694 | == 6.3 How to set up LT-22222-L to work with a Single Channel Gateway, such as LG01/LG02? == | ||
2695 | |||
2696 | |||
2697 | ))) | ||
2698 | |||
2699 | ((( | ||
2700 | ((( | ||
2701 | In this case, you need to set the LT-22222-L to work in ABP mode and transmit on only one frequency. | ||
2702 | ))) | ||
2703 | ))) | ||
2704 | |||
2705 | ((( | ||
2706 | ((( | ||
2707 | We assume you have an LG01/LG02 working on the frequency 868400000. Below are the steps. | ||
2708 | |||
2709 | |||
2710 | ))) | ||
2711 | ))) | ||
2712 | |||
2713 | ((( | ||
2714 | (% style="color:#0000ff" %)**Step 1**(%%): Log in to The Things Stack Sandbox account and create an ABP device in the application. To do this, use the manual registration option as explained in section 3.2.2.2, //Adding a Device Manually//. Select //Activation by Personalization (ABP)// under Activation Mode. Enter the DevEUI exactly as shown on the registration information sticker, then generate the Device Address, Application Session Key (AppSKey), and Network Session Key (NwkSKey). | ||
2715 | |||
2716 | [[image:lt-22222-l-abp.png||height="686" width="1000"]] | ||
2717 | ))) | ||
2718 | |||
2719 | ((( | ||
2720 | |||
2721 | ))) | ||
2722 | |||
2723 | {{warning}} | ||
2724 | Ensure that the Device Address (DevAddr) and the two keys match between the LT-22222-L and The Things Stack. You can modify them either in The Things Stack or on the LT-22222-L to make them align. In The Things Stack, you can configure the NwkSKey and AppSKey on the settings page, but note that the Device Address is generated by The Things Stack. | ||
2725 | {{/warning}} | ||
2726 | |||
2727 | |||
2728 | ((( | ||
2729 | (% style="color:blue" %)**Step 2**(%%)**: **(% style="color:#000000; font-family:Arial,sans-serif; font-size:11pt; font-style:normal; font-variant-alternates:normal; font-variant-east-asian:normal; font-variant-ligatures:normal; font-variant-numeric:normal; font-variant-position:normal; font-weight:400; text-decoration:none; white-space:pre-wrap" %)Run AT commands to configure the LT-22222-L to operate in single-frequency and ABP mode. The AT commands are as follows: | ||
2730 | |||
2731 | |||
2732 | ))) | ||
2733 | |||
2734 | ((( | ||
2735 | (% style="background-color:#dcdcdc" %)**123456** (%%) : Enter the password to enable AT access. | ||
2736 | |||
2737 | (% style="background-color:#dcdcdc" %)**AT+FDR**(%%) : Reset parameters to factory default, keeping keys reserved. | ||
2738 | |||
2739 | (% style="background-color:#dcdcdc" %)**AT+NJM=0** (%%) : Set to ABP mode. | ||
2740 | |||
2741 | (% style="background-color:#dcdcdc" %)**AT+ADR=0** (%%) : Disable the Adaptive Data Rate (ADR). | ||
2742 | |||
2743 | (% style="background-color:#dcdcdc" %)**AT+DR=5** (%%) : Set Data Rate (Use AT+DR=3 for the 915 MHz band). | ||
2744 | |||
2745 | (% style="background-color:#dcdcdc" %)**AT+TDC=60000 **(%%) : Set transmit interval to 60 seconds. | ||
2746 | |||
2747 | (% style="background-color:#dcdcdc" %)**AT+CHS=868400000**(%%) : Set transmit frequency to 868.4 MHz. | ||
2748 | |||
2749 | (% style="background-color:#dcdcdc" %)**AT+DADDR=xxxx**(%%) : Set the Device Address (DevAddr) | ||
2750 | |||
2751 | (% style="color:#000000; font-family:Arial,sans-serif; font-size:11pt; font-style:normal; font-variant-alternates:normal; font-variant-east-asian:normal; font-variant-ligatures:normal; font-variant-numeric:normal; font-variant-position:normal; font-weight:700; text-decoration:none; white-space:pre-wrap" %)**AT+APPKEY=xxxx**(% style="color:#000000; font-family:Arial,sans-serif; font-size:11pt; font-style:normal; font-variant-alternates:normal; font-variant-east-asian:normal; font-variant-ligatures:normal; font-variant-numeric:normal; font-variant-position:normal; font-weight:400; text-decoration:none; white-space:pre-wrap" %): Get or set the Application Key (AppKey) | ||
2752 | |||
2753 | (% style="color:#000000; font-family:Arial,sans-serif; font-size:11pt; font-style:normal; font-variant-alternates:normal; font-variant-east-asian:normal; font-variant-ligatures:normal; font-variant-numeric:normal; font-variant-position:normal; font-weight:400; text-decoration:none; white-space:pre-wrap" %)**AT+NWKSKEY=xxxx**: Get or set the Network Session Key (NwkSKey) | ||
2754 | |||
2755 | (% style="color:#000000; font-family:Arial,sans-serif; font-size:11pt; font-style:normal; font-variant-alternates:normal; font-variant-east-asian:normal; font-variant-ligatures:normal; font-variant-numeric:normal; font-variant-position:normal; font-weight:400; text-decoration:none; white-space:pre-wrap" %)**AT+APPSKEY=xxxx**: Get or set the Application Session Key (AppSKey) | ||
2756 | |||
2757 | (% style="background-color:#dcdcdc" %)**ATZ** (%%) : Reset MCU. | ||
2758 | ))) | ||
2759 | |||
2760 | |||
2761 | ((( | ||
2762 | (% style="color:#000000; font-family:Arial,sans-serif; font-size:11pt; font-style:normal; font-variant-alternates:normal; font-variant-east-asian:normal; font-variant-ligatures:normal; font-variant-numeric:normal; font-variant-position:normal; font-weight:400; text-decoration:none; white-space:pre-wrap" %)The following figure shows the screenshot of the command set above, issued using a serial tool: | ||
2763 | ))) | ||
2764 | |||
2765 | [[image:1653360498588-932.png||height="485" width="726"]] | ||
2766 | |||
2767 | |||
2768 | == 6.4 How to change the uplink interval? == | ||
2769 | |||
2770 | |||
2771 | Please see this link: [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/How%20to%20set%20the%20transmit%20time%20interval/>>url:http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20set%20the%20transmit%20time%20interval/]] | ||
2772 | |||
2773 | |||
2774 | == 6.5 Can I see the counting event in the serial output? == | ||
2775 | |||
2776 | |||
2777 | ((( | ||
2778 | You can run the AT command **AT+DEBUG** to view the counting event in the serial output. If the firmware is too old and doesn’t support AT+DEBUG, update to the latest firmware first. | ||
2779 | |||
2780 | |||
2781 | == 6.6 Can I use point-to-point communication with LT-22222-L? == | ||
2782 | |||
2783 | |||
2784 | Yes, you can. Please refer to the [[Point-to-Point Communication of LT-22222-L>>https://wiki.dragino.com/xwiki/bin/view/Main/%20Point%20to%20Point%20Communication%20of%20LT-22222-L/]] page. The firmware that supports point-to-point communication can be found [[here>>https://github.com/dragino/LT-22222-L/releases]]. | ||
2785 | |||
2786 | |||
2787 | ))) | ||
2788 | |||
2789 | ((( | ||
2790 | == 6.7 Why does the relay output default to an open relay after the LT-22222-L is powered off? == | ||
2791 | |||
2792 | |||
2793 | * If the device is not properly shut down and is directly powered off. | ||
2794 | * It will default to a power-off state. | ||
2795 | * In modes 2 to 5, the DO/RO status and pulse count are saved to flash memory. | ||
2796 | * After a restart, the status before the power failure will be read from Flash. | ||
2797 | |||
2798 | == 6.8 Can I set up LT-22222-L as an NC (Normally Closed) relay? == | ||
2799 | |||
2800 | |||
2801 | The LT-22222-L's built-in relay is Normally Open (NO). You can use an external relay to achieve a Normally Closed (NC) configuration. The circuit diagram is shown below: | ||
2802 | |||
2803 | |||
2804 | [[image:image-20221006170630-1.png||height="610" width="945"]] | ||
2805 | |||
2806 | |||
2807 | == 6.9 Can the LT-22222-L save the RO state? == | ||
2808 | |||
2809 | |||
2810 | To enable this feature, the firmware version must be 1.6.0 or higher. | ||
2811 | |||
2812 | |||
2813 | == 6.10 Why does the LT-22222-L always report 15.585V when measuring the AVI? == | ||
2814 | |||
2815 | |||
2816 | It is likely that the GND is not connected during the measurement, or that the wire connected to the GND is loose. | ||
2817 | |||
2818 | |||
2819 | = 7. Troubleshooting = | ||
2820 | |||
2821 | |||
2822 | This section provides some known troubleshooting tips. | ||
2823 | |||
2824 | |||
2825 | ))) | ||
2826 | |||
2827 | ((( | ||
2828 | ((( | ||
2829 | == 7.1 Downlink isn't working. How can I solve this? == | ||
2830 | |||
2831 | |||
2832 | ))) | ||
2833 | ))) | ||
2834 | |||
2835 | ((( | ||
2836 | Please refer to this link for debugging instructions: [[LoRaWAN Communication Debug>>doc:Main.LoRaWAN Communication Debug.WebHome||anchor="H5.1Howitwork"]] | ||
2837 | ))) | ||
2838 | |||
2839 | ((( | ||
2840 | |||
2841 | |||
2842 | == 7.2 Having trouble uploading an image? == | ||
2843 | |||
2844 | |||
2845 | ))) | ||
2846 | |||
2847 | ((( | ||
2848 | Please refer to this link for troubleshooting: [[Firmware Upgrade Instruction>>doc:Main.Firmware Upgrade Instruction for STM32 base products.WebHome]] | ||
2849 | ))) | ||
2850 | |||
2851 | ((( | ||
2852 | |||
2853 | |||
2854 | == 7.3 Why can't I join TTN in the US915 /AU915 bands? == | ||
2855 | |||
2856 | |||
2857 | ))) | ||
2858 | |||
2859 | ((( | ||
2860 | It might be related to the channel mapping. [[Please refer to this link for details.>>https://github.com/dragino/LT-22222-L/releases]] | ||
2861 | ))) | ||
2862 | |||
2863 | |||
2864 | == 7.4 Why can the LT-22222-L perform uplink normally, but cannot receive downlink? == | ||
2865 | |||
2866 | |||
2867 | The FCD count of the gateway is inconsistent with the FCD count of the node, causing the downlink to remain in the queue. | ||
2868 | Use this command to synchronize their counts: [[Resets the downlink packet count>>||anchor="H3.4.2.23Resettingthedownlinkpacketcount"]] | ||
2869 | |||
2870 | |||
2871 | = 8. Ordering information = | ||
2872 | |||
2873 | |||
2874 | (% style="color:#4f81bd" %)**LT-22222-L-XXX:** | ||
2875 | |||
2876 | (% style="color:#4f81bd" %)**XXX:** | ||
2877 | |||
2878 | * (% style="color:red" %)**EU433**(%%): LT with frequency bands EU433 | ||
2879 | * (% style="color:red" %)**EU868**(%%): LT with frequency bands EU868 | ||
2880 | * (% style="color:red" %)**KR920**(%%): LT with frequency bands KR920 | ||
2881 | * (% style="color:red" %)**CN470**(%%): LT with frequency bands CN470 | ||
2882 | * (% style="color:red" %)**AS923**(%%): LT with frequency bands AS923 | ||
2883 | * (% style="color:red" %)**AU915**(%%): LT with frequency bands AU915 | ||
2884 | * (% style="color:red" %)**US915**(%%): LT with frequency bands US915 | ||
2885 | * (% style="color:red" %)**IN865**(%%): LT with frequency bands IN865 | ||
2886 | * (% style="color:red" %)**CN779**(%%): LT with frequency bands CN779 | ||
2887 | |||
2888 | = 9. Package information = | ||
2889 | |||
2890 | |||
2891 | **Package includes**: | ||
2892 | |||
2893 | * 1 x LT-22222-L I/O Controller | ||
2894 | * 1 x LoRa antenna matched to the frequency of the LT-22222-L | ||
2895 | * 1 x bracket for DIN rail mounting | ||
2896 | * 1 x 3.5 mm programming cable | ||
2897 | |||
2898 | **Dimension and weight**: | ||
2899 | |||
2900 | * Device Size: 13.5 x 7 x 3 cm | ||
2901 | * Device Weight: 105 g | ||
2902 | * Package Size / pcs : 14.5 x 8 x 5 cm | ||
2903 | * Weight / pcs : 170 g | ||
2904 | |||
2905 | = 10. Support = | ||
2906 | |||
2907 | |||
2908 | * ((( | ||
2909 | Support is available 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 within the aforementioned schedule. | ||
2910 | ))) | ||
2911 | * ((( | ||
2912 | Please provide as much information as possible regarding your inquiry (e.g., product models, a detailed description of the problem, steps to replicate it, etc.) and send an email to [[support@dragino.cc>>mailto:support@dragino.cc]] | ||
2913 | |||
2914 | |||
2915 | ))) | ||
2916 | |||
2917 | = 11. Reference = | ||
2918 | |||
2919 | |||
2920 | * LT-22222-L: [[http:~~/~~/www.dragino.com/products/lora-lorawan-end-node/item/156-lt-22222-l.html>>url:http://www.dragino.com/products/lora-lorawan-end-node/item/156-lt-22222-l.html]] | ||
2921 | * [[Datasheet, Document Base>>https://www.dropbox.com/sh/gxxmgks42tqfr3a/AACEdsj_mqzeoTOXARRlwYZ2a?dl=0]] | ||
2922 | * [[Hardware Source>>url:https://github.com/dragino/Lora/tree/master/LT/LT-33222-L/v1.0]] |