Changes for page wiki_test
Last modified by Mengting Qiu on 2024/09/05 17:35
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 0 added, 1 removed)
Details
- Page properties
-
- Content
-
... ... @@ -115,6 +115,7 @@ 115 115 * Smart Cities 116 116 * Smart Factory 117 117 118 + 118 118 == 1.5 Sleep mode and working mode == 119 119 120 120 ... ... @@ -247,7 +247,7 @@ 247 247 248 248 249 249 (% border="1" cellspacing="4" style="width:515px" %) 250 -|(% style="background-color:#4 f81bd;; width:100px" %)**Servers**|(% style="background-color:#4f81bd;; width:300px" %)**Dash Board**|(% style="background-color:#4f81bd;; width:115px" %)**Comments**251 +|(% style="width:100px;background-color:#4F81BD;color:white" %)**Servers**|(% style="width:300px;background-color:#4F81BD;color:white" %)**Dash Board**|(% style="width:115px;background-color:#4F81BD;color:white" %)**Comments** 251 251 |(% style="width:127px" %)[[Node-Red>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.5A0Node-RedA028viaA0MQTT29]]|(% style="width:385px" %)[[image:image-20230819113244-8.png||height="183" width="367"]]|(% style="width:170px" %) 252 252 |(% style="width:127px" %)[[DataCake>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.4Datacake]]|(% style="width:385px" %)[[image:image-20230819113244-9.png||height="120" width="369"]]|(% style="width:170px" %) 253 253 |(% style="width:127px" %)[[Tago.IO>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.7A0Tago.ioA028viaA0MQTT29]]|(% style="width:385px" %) |(% style="width:170px" %) ... ... @@ -257,6 +257,7 @@ 257 257 |(% style="width:127px" %)[[ThingsBoard>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.6A0ThingsBoard.CloudA028viaA0MQTT29]]|(% style="width:385px" %)[[image:image-20230819113244-11.png||height="113" width="293"]]|(% style="width:170px" %) 258 258 |(% style="width:127px" %) |(% style="width:385px" %) |(% style="width:170px" %) 259 259 261 + 260 260 (% style="color:blue" %)**1D Version**(%%): This version has 1NCE SIM card pre-installed and configure to send value to DataCake. User Just need to select the sensor type in DataCake and Activate S31-NB and user will be able to see data in DataCake. See here for [[DataCake Config Instruction>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.4Datacake]]. 261 261 262 262 ... ... @@ -265,7 +265,7 @@ 265 265 266 266 To meet different server requirement, S31-NB supports different payload type. 267 267 268 - **Includes:**270 +Includes: 269 269 270 270 * [[General JSON format payload>>path:#General_Json]]. (Type=5) 271 271 ... ... @@ -277,23 +277,25 @@ 277 277 278 278 User can specify the payload type when choose the connection protocol. Example: 279 279 280 -(% style="color:#037691" %)**AT+PRO=2,0** (%%) ~/~/ 282 +(% style="color:#037691" %)**AT+PRO=2,0** (%%) ~/~/Use UDP Connection & hex Payload 281 281 282 282 (% style="color:#037691" %)**AT+PRO=2,5** (%%) ~/~/ Use UDP Connection & Json Payload 283 283 284 -(% style="color:#037691" %)**AT+PRO=3,5 ** (%%) 286 +(% style="color:#037691" %)**AT+PRO=3,5 ** (%%) ~/~/ Use MQTT Connection & Json Payload 285 285 286 286 287 -=== 2.2.1 General Json Format (Type ~=5) ===289 +=== 2.2.1 General Json Format (Type=5) === 288 288 289 289 290 290 This is the General Json Format. As below: 291 291 294 + 292 292 (% style="color:#4472c4" %)**{"IMEI":866207053462762,"temperature":29.2,"humidity":54.2,"battery":3.27,"signal":24,"Model":S31x-NB, "1":{28.2,48.3,2023/08/10 08:00:37},"2":{28.1,49.1,2023/08/10 07:57:37},"3":{28.1,48.5,2023/08/10 07:54:37},"4":{28.2,48.6,2023/08/10 07:51:37},"5":{28.1,48.9,2023/08/10 07:48:37},"6":{28.2,48.8,2023/08/10 07:45:37},"7":{28.2,48.8,2023/08/10 07:42:37},"8":{28.0,48.8,2023/08/10 07:39:37}}** 293 293 294 294 295 -(% style="color:red" %)**Notice, from above payload:** 296 296 299 +(% style="color:red" %)Notice, from above payload: 300 + 297 297 * Temperature , Humidity , Battery & Signal are the value at uplink time. 298 298 299 299 * Json entry 1 ~~ 8 are the last 1 ~~ 8 sampling data as specify by (% style="color:#037691" %)**AT+NOUD=8 ** (%%)Command. Each entry includes (from left to right): Temperature, Humidity, Sampling time. ... ... @@ -300,7 +300,7 @@ 300 300 301 301 302 302 303 -=== 2.2.2 HEX format Payload(Type ~=0) ===307 +=== 2.2.2 HEX format Payload(Type=0) === 304 304 305 305 306 306 This is the HEX Format. As below: ... ... @@ -307,9 +307,10 @@ 307 307 308 308 (% style="color:#4472c4" %)**f86620705346276200640cba16010000000011011801e864d49c2d011a01e364d49925011901eb64d49871011901e564d497bd011a01e664d49709011901e964d49655011a01e864d495a1011a01e864d494ed011801e864d49439** 309 309 310 -[[image:1692424009971-458.png]] 311 311 315 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png]] 312 312 317 + 313 313 (% style="color:blue" %)**Version:** 314 314 315 315 These bytes include the hardware and software version. ... ... @@ -319,7 +319,7 @@ 319 319 (% style="color:#037691" %)**Lower byte:**(%%) Specify the software version: 0x64=100, means firmware version 100 320 320 321 321 322 -(% style="color: blue" %)**BAT (Battery Info):**327 +(% style="color:#037691" %)**BAT (Battery Info):** 323 323 324 324 Ex1: 0x0CBA = 3258mV 325 325 ... ... @@ -350,6 +350,7 @@ 350 350 (FF3F & 8000:Judge whether the highest bit is 1, when the highest bit is 1, it is negative) 351 351 352 352 358 + 353 353 (% style="color:blue" %)**Humidity: ** 354 354 355 355 Read:0295(H)=661(D) Value: 661 / 10=66.1, So 66.1% ... ... @@ -362,15 +362,16 @@ 362 362 Put the decimal value into this link(https:~/~/www.epochconverter.com/) to get the time. 363 363 364 364 365 -=== 2.2.3 ThingsBoard Payload(Type ~=3) ===371 +=== 2.2.3 ThingsBoard Payload(Type=3) === 366 366 367 367 368 368 Type3 payload special design for ThingsBoard, it will also configure other default server to ThingsBoard. 369 369 376 + 370 370 (% style="color:#4472c4" %)**{"IMEI":866207053462762,"temperature":29.2,"humidity":54.2,"battery":3.27,"signal":24}** 371 371 372 372 373 -=== 2.2.4 ThingSpeak Payload(Type ~=1) ===380 +=== 2.2.4 ThingSpeak Payload(Type=1) === 374 374 375 375 376 376 This payload meets ThingSpeak platform requirement. It includes only four fields. Form 1~~4 are: ... ... @@ -377,6 +377,7 @@ 377 377 378 378 Temperature, Humidity, Battery & Signal. This payload type only valid for ThingsSpeak Platform 379 379 387 + 380 380 As below: 381 381 382 382 (% style="color:#4472c4" %)**field1=27.9&field2=49.9&field3=3.23&field4=28** ... ... @@ -387,25 +387,29 @@ 387 387 388 388 By default, Sensor will send uplinks (% style="color:blue" %)**every 2 hours**(%%) & AT+NOUD=8 389 389 398 + 390 390 User can use below commands to change the (% style="color:blue" %)**uplink interval**. 391 391 392 -(% style="color:#037691" %)**AT+TDC=600 ** (%%) ~/~/ Set Update Interval to 600s 401 +(% style="color:#037691" %)** AT+TDC=600 ** (%%) ~/~/ Set Update Interval to 600s 393 393 403 + 394 394 User can also push the button for more than 1 seconds to activate an uplink. 395 395 396 396 407 + 408 + 397 397 == 2.4 Multi-Samplings and One uplink == 398 398 399 399 400 400 To save battery life, S31-NB will sample temperature & humidity data every 15 minutes and send one uplink every 2 hours. So each uplink it will include 8 stored data + 1 real-time data. They are defined by: 401 401 402 -* (% style="color:#037691" %)**AT+TR=900** (%%) 414 +* (% style="color:#037691" %)**AT+TR=900** (%%) ~/~/ The unit is seconds, and the default is to record data once every 900 seconds (15 minutes, the minimum can be set to 180 seconds) 403 403 404 -* (% style="color:#037691" %)**AT+NOUD=8** 416 +* (% style="color:#037691" %)**AT+NOUD=8** (%%)~/~/ The device uploads 8 sets of recorded data by default. Up to 32 sets of record data can be uploaded. 405 405 406 406 The diagram below explains the relationship between TR, NOUD, and TDC more clearly: 407 407 408 -[[image: 1692424376354-959.png]]420 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png||alt="IMG_256"]] 409 409 410 410 411 411 == 2.5 Humidity and Temperature alarm function == ... ... @@ -418,12 +418,12 @@ 418 418 419 419 (% style="color:#037691" %)**AT+ SHHUM=min,max** 420 420 421 -Example: AT+ SHHUM=50,80 433 +Example: AT+ SHHUM=50,80 ~/~/ Alarm when humidity lower than 50 or higher than 80. 422 422 423 423 424 424 (% style="color:#037691" %)**AT+ SHTEMP=min,max** 425 425 426 -Example: AT+ SHTEMP=20,30 438 +Example: AT+ SHTEMP=20,30 ~/~/ Alarm when temperature lower than 20 or higher than 30 427 427 428 428 429 429 (% style="color:red" %)**Notice:** ... ... @@ -434,6 +434,8 @@ 434 434 435 435 436 436 449 + 450 + 437 437 == 2.6 Trggier an uplink by external interrupt == 438 438 439 439 ... ... @@ -441,17 +441,19 @@ 441 441 442 442 (% style="color:blue" %)**AT command:** 443 443 444 -* (% style="color:#037691" %)**AT+INTMOD **(%%) 458 +* (% style="color:#037691" %)**AT+INTMOD **(%%) ~/~/ Set the trigger interrupt mode 445 445 446 -* (% style="color:#037691" %)**AT+INTMOD=0 **(%%) ~/~/ 460 +* (% style="color:#037691" %)**AT+INTMOD=0 **(%%) ~/~/Disable Interrupt 447 447 448 -* (% style="color:#037691" %)**AT+INTMOD=1 **(%%) 462 +* (% style="color:#037691" %)**AT+INTMOD=1 **(%%) ~/~/Trigger by rising and falling edge 449 449 450 -* (% style="color:#037691" %)**AT+INTMOD=2 **(%%) 464 +* (% style="color:#037691" %)**AT+INTMOD=2 **(%%) ~/~/Trigger by falling edge 451 451 452 -* (% style="color:#037691" %)**AT+INTMOD=3 **(%%) ~/~/ 466 +* (% style="color:#037691" %)**AT+INTMOD=3 **(%%) ~/~/Trigger by rising edge 453 453 454 454 469 + 470 + 455 455 = 3. Configure S31x-NB = 456 456 457 457 == 3.1 Configure Methods == ... ... @@ -463,86 +463,202 @@ 463 463 464 464 * AT Command via UART Connection : See [[UART Connection>>http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H2.3UARTConnectionforSN50v3basemotherboard]]. 465 465 466 - ==3.2ATCommands Set==482 +* LoRaWAN Downlink. Instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section. 467 467 468 468 469 -AT+<CMD>? : Help on <CMD> 470 470 471 -AT+<CMD> : Run <CMD> 472 472 473 - AT+<CMD>=<value>: Set thevalue487 +== 3.2 General Commands == 474 474 475 -AT+<CMD>=? : Get the value 476 476 490 +These commands are to configure: 477 477 478 -(% style="color:blue" %)**General Commands** 492 +* General system settings like: uplink interval. 493 +* LoRaWAN protocol & radio related command. 479 479 480 - AT:Attention495 +They are same for all Dragino Devices which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki: 481 481 482 -AT ? : ShortHelp497 +[[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/]] 483 483 484 -ATZ : MCU Reset 485 485 486 - AT+TDC: Application DataTransmissionInterval500 +== 3.3 Commands special design for S31x-LB == 487 487 488 -AT+CFG : Print all configurations 489 489 490 - AT+CFGMOD: Workingmodeselection503 +These commands only valid for S31x-LB, as below: 491 491 492 -AT+DEUI : Get or set the Device ID 493 493 494 - AT+INTMOD:Setthe triggerinterruptmode506 +=== 3.3.1 Set Transmit Interval Time === 495 495 496 -AT+5VT : Set extend the time of 5V power 497 497 498 - AT+PRO: Chooseagreement509 +Feature: Change LoRaWAN End Node Transmit Interval. 499 499 500 - AT+RXDL: Extend thesendingandreceiving time511 +(% style="color:blue" %)**AT Command: AT+TDC** 501 501 502 -AT+DNSCFG : Get or Set DNS Server 513 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) 514 +|=(% style="width: 156px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 137px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="background-color:#D9E2F3;color:#0070C0" %)**Response** 515 +|(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|((( 516 +30000 517 +OK 518 +the interval is 30000ms = 30s 519 +))) 520 +|(% style="width:156px" %)AT+TDC=60000|(% style="width:137px" %)Set Transmit Interval|((( 521 +OK 522 +Set transmit interval to 60000ms = 60 seconds 523 +))) 503 503 504 - AT+GETSENSORVALUE: Returnsheurrentsensormeasurement525 +(% style="color:blue" %)**Downlink Command: 0x01** 505 505 506 - AT+NOUD:GetorSetthenumberofdatato beuploaded527 +Format: Command Code (0x01) followed by 3 bytes time value. 507 507 508 - AT+CDP: ReadorClearcacheddata529 +If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01. 509 509 510 -AT+SHTEMP: Get or Set alarm of temp 531 +* Example 1: Downlink Payload: 0100001E ~/~/ Set Transmit Interval (TDC) = 30 seconds 532 +* Example 2: Downlink Payload: 0100003C ~/~/ Set Transmit Interval (TDC) = 60 seconds 511 511 512 - AT+SHHUM:GetorSetlarm of moisture534 +=== 3.3.2 Get Device Status === 513 513 514 -AT+SERVADDR : Server Address 515 515 537 +Send a LoRaWAN downlink to ask device send Alarm settings. 516 516 517 -(% style="color:blue" %)** UDPManagement**539 +(% style="color:blue" %)**Downlink Payload: **(%%)0x26 01 518 518 519 - AT+CFM:Uploadconfirmationmode(only valid forUDP)541 +Sensor will upload Device Status via FPORT=5. See payload section for detail. 520 520 521 521 522 - (%style="color:blue"%)**MQTT Management**544 +=== 3.3.3 Set Temperature Alarm Threshold === 523 523 524 -AT+CLIENT : Get or Set MQTT client 525 525 526 - AT+UNAME:GetSetMQTTUsername547 +* (% style="color:blue" %)**AT Command:** 527 527 528 - AT+PWD: Getet MQTT password549 +(% style="color:#037691" %)**AT+SHTEMP=min,max** 529 529 530 -AT+PUBTOPIC : Get or Set MQTT publish topic 551 +* When min=0, and max≠0, Alarm higher than max 552 +* When min≠0, and max=0, Alarm lower than min 553 +* When min≠0 and max≠0, Alarm higher than max or lower than min 531 531 532 - AT+SUBTOPIC : Get or Set MQTT subscription topic555 +Example: 533 533 557 + AT+SHTEMP=0,30 ~/~/ Alarm when temperature higher than 30. 534 534 535 -(% style="color:blue" %)** Information**559 +* (% style="color:blue" %)**Downlink Payload:** 536 536 537 - AT+FDR: Factory Data Reset561 +(% style="color:#037691" %)**0x(0C 01 00 1E)** (%%) ~/~/ Set AT+SHTEMP=0,30 538 538 539 - AT+PWORD:SerialAccessPassword563 +(% style="color:red" %)**(note: 3^^rd^^ byte= 0x00 for low limit(not set), 4^^th^^ byte = 0x1E for high limit: 30)** 540 540 541 -AT+LDATA : Get the last upload data 542 542 543 - AT+CDP: Reador Clearcacheddata566 +=== 3.3.4 Set Humidity Alarm Threshold === 544 544 545 545 569 +* (% style="color:blue" %)**AT Command:** 570 + 571 +(% style="color:#037691" %)**AT+SHHUM=min,max** 572 + 573 +* When min=0, and max≠0, Alarm higher than max 574 +* When min≠0, and max=0, Alarm lower than min 575 +* When min≠0 and max≠0, Alarm higher than max or lower than min 576 + 577 +Example: 578 + 579 + AT+SHHUM=70,0 ~/~/ Alarm when humidity lower than 70%. 580 + 581 +* (% style="color:blue" %)**Downlink Payload:** 582 + 583 +(% style="color:#037691" %)**0x(0C 02 46 00)**(%%) ~/~/ Set AT+SHTHUM=70,0 584 + 585 +(% style="color:red" %)**(note: 3^^rd^^ byte= 0x46 for low limit (70%), 4^^th^^ byte = 0x00 for high limit (not set))** 586 + 587 + 588 +=== 3.3.5 Set Alarm Interval === 589 + 590 + 591 +The shortest time of two Alarm packet. (unit: min) 592 + 593 +* (% style="color:blue" %)**AT Command:** 594 + 595 +(% style="color:#037691" %)**AT+ATDC=30** (%%) ~/~/ The shortest interval of two Alarm packets is 30 minutes, Means is there is an alarm packet uplink, there won't be another one in the next 30 minutes. 596 + 597 +* (% style="color:blue" %)**Downlink Payload:** 598 + 599 +(% style="color:#037691" %)**0x(0D 00 1E)**(%%) **~-~--> ** Set AT+ATDC=0x 00 1E = 30 minutes 600 + 601 + 602 +=== 3.3.6 Get Alarm settings === 603 + 604 + 605 +Send a LoRaWAN downlink to ask device send Alarm settings. 606 + 607 +* (% style="color:#037691" %)**Downlink Payload: **(%%)0x0E 01 608 + 609 +**Example:** 610 + 611 +[[image:image-20230524110211-4.png]] 612 + 613 +**Explain:** 614 + 615 +* Alarm & MOD bit is 0x7C, 0x7C >> 2 = 0x31: Means this message is the Alarm settings message. 616 + 617 +=== 3.3.7 Set Interrupt Mode === 618 + 619 + 620 +Feature, Set Interrupt mode for PA8 of pin. 621 + 622 +When AT+INTMOD=0 is set, PA8 is used as a digital input port. 623 + 624 +(% style="color:blue" %)**AT Command: AT+INTMOD** 625 + 626 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) 627 +|=(% style="width: 155px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 197px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 158px;background-color:#D9E2F3;color:#0070C0" %)**Response** 628 +|(% style="width:154px" %)AT+INTMOD=?|(% style="width:196px" %)Show current interrupt mode|(% style="width:157px" %)((( 629 +0 630 +OK 631 +the mode is 0 =Disable Interrupt 632 +))) 633 +|(% style="width:154px" %)AT+INTMOD=2|(% style="width:196px" %)((( 634 +Set Transmit Interval 635 +0. (Disable Interrupt), 636 +~1. (Trigger by rising and falling edge) 637 +2. (Trigger by falling edge) 638 +3. (Trigger by rising edge) 639 +)))|(% style="width:157px" %)OK 640 + 641 +(% style="color:blue" %)**Downlink Command: 0x06** 642 + 643 +Format: Command Code (0x06) followed by 3 bytes. 644 + 645 +This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06. 646 + 647 +* Example 1: Downlink Payload: 06000000 ~/~/ Turn off interrupt mode 648 +* Example 2: Downlink Payload: 06000003 ~/~/ Set the interrupt mode to rising edge trigger 649 + 650 +=== 3.3.8 Set Power Output Duration === 651 + 652 + 653 +Control the output duration 5V . Before each sampling, device will 654 + 655 +~1. first enable the power output to external sensor, 656 + 657 +2. keep it on as per duration, read sensor value and construct uplink payload 658 + 659 +3. final, close the power output. 660 + 661 +(% style="color:blue" %)**AT Command: AT+5VT** 662 + 663 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) 664 +|=(% style="width: 155px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 197px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 158px;background-color:#D9E2F3;color:#0070C0" %)**Response** 665 +|(% style="width:154px" %)AT+5VT=?|(% style="width:196px" %)Show 5V open time.|(% style="width:157px" %)0 (default) 666 +OK 667 +|(% style="width:154px" %)AT+5VT=1000|(% style="width:196px" %)Close after a delay of 1000 milliseconds.|(% style="width:157px" %)OK 668 + 669 +(% style="color:blue" %)**Downlink Command: 0x07** 670 + 671 +Format: Command Code (0x07) followed by 2 bytes. 672 + 673 +The first and second bytes are the time to turn on. 674 + 675 +* Example 1: Downlink Payload: 070000 **~-~-->** AT+5VT=0 676 +* Example 2: Downlink Payload: 0701F4 **~-~-->** AT+5VT=500 677 + 546 546 = 4. Battery & Power Consumption = 547 547 548 548 ... ... @@ -620,4 +620,5 @@ 620 620 621 621 * Provide as much information as possible regarding your enquiry (product models, accurately describe your problem and steps to replicate it etc) and send a mail to [[Support@dragino.cc>>mailto:Support@dragino.cc]]. 622 622 755 + 623 623 (% style="display:none" %) (%%)
- 1692424376354-959.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.Xiaoling - Size
-
... ... @@ -1,1 +1,0 @@ 1 -146.1 KB - Content