<
From version < 75.1 >
edited by Edwin Chen
on 2022/10/13 23:07
To version < 85.1 >
edited by Kilight Cao
on 2022/11/01 15:43
>
Change comment: Uploaded new attachment "1667288597595-714.png", version {1}

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.Edwin
1 +XWiki.Kilight
Content
... ... @@ -98,6 +98,7 @@
98 98  * Tracking: max: 38mA
99 99  
100 100  
101 +
101 101  == 1.3  Features ==
102 102  
103 103  
... ... @@ -117,6 +117,7 @@
117 117  * Datalog
118 118  
119 119  
121 +
120 120  == 1.4  Applications ==
121 121  
122 122  
... ... @@ -124,6 +124,7 @@
124 124  * Human tracking
125 125  
126 126  
129 +
127 127  = 2.1 Use TrackerD =
128 128  
129 129  
... ... @@ -208,9 +208,11 @@
208 208  
209 209  Uplink the device configures with FPORT=5. Once TrackerD Joined the network, it will uplink this message to the server. After the first uplink, TrackerD will uplink Device Status every 12 hours.
210 210  
214 +Use can also get the Device Status uplink through the downlink command: **Downlink:  0x2301**
211 211  
212 -(% border="1.5" style="background-color:#ffffcc; color:green; width:520px" %)
213 -|=(% scope="row" style="width: 108px;" %)**Size(bytes)**|=(% style="width: 82px;" %)**1**|=(% style="width: 83px;" %)**2**|=(% style="width: 94px;" %)**1**|=(% style="width: 84px;" %)**1**|=(% style="width: 44px;" %)2|=(% style="width: 63px;" %)**2**|=(% style="width: 60px;" %)1
216 +
217 +(% border="1.5" style="background-color:#ffffcc; color:green; width:440px" %)
218 +|=(% style="width: 60px;" %)**Size(bytes)**|=(% style="width: 70px;" %)**1**|=(% style="width: 70px;" %)**2**|=(% style="width: 70px;" %)**1**|=(% style="width: 50px;" %)**1**|=(% style="width: 30px;" %)2|=(% style="width: 40px;" %)**2**|=(% style="width: 40px;" %)1
214 214  |=(% style="width: 108px;" %)**Value**|(% style="width:82px" %)Sensor Model|(% style="width:83px" %)Firmware Version|(% style="width:94px" %)Frequency Band|(% style="width:84px" %)Sub-band|(% style="width:44px" %)BAT|(% style="width:63px" %)SMOD|(% style="width:60px" %)Status
215 215  
216 216  [[image:1665301570342-765.png]]
... ... @@ -254,12 +254,11 @@
254 254  Use can also get the Device Status uplink through the downlink command:
255 255  
256 256  
257 -
258 258  (% style="color:#037691" %)**SMOD Field (total 1 byte)**(%%):0x40
259 259  
260 -(% border="1.5" style="background-color:#ffffcc; color:green; width:420px" %)
261 -|(% style="width:75px" %)**Size(bit)**|(% style="width:64px" %)2bits|(% style="width:137px" %)2bit|(% style="width:142px" %)4bit
262 -|(% style="width:75px" %)**Value**|(% style="width:64px" %)SMOD|(% style="width:137px" %)GPS_Settings|(% style="width:142px" %)BLE_Settings
264 +(% border="1.5" style="background-color:#ffffcc; color:green; width:270px" %)
265 +|=(% scope="row" style="width: 60px;" %)**Size(bit)**|(% style="width:50px" %)2bits|(% style="width:80px" %)2bit|(% style="width:80px" %)4bit
266 +|=(% style="width: 75px;" %)**Value**|(% style="width:64px" %)SMOD|(% style="width:104px" %)GPS_Settings|(% style="width:103px" %)BLE_Settings
263 263  
264 264  (% style="color:blue" %)** SMOD:**
265 265  
... ... @@ -282,30 +282,26 @@
282 282  (% style="color:red" %)** 1: ** (%%) BLE Positioning with Strongest iBeacon
283 283  
284 284  
285 -
286 286  (% style="color:#037691" %)**Status Field (total 1 byte)**(%%):  0x02
287 287  
288 -(% border="1.5" style="background-color:#ffffcc; color:green; width:450px" %)
289 -|(% style="width:77px" %)**Size(bit)**|(% style="width:82px" %)5 Bits|(% style="width:106px" %)1 Bit|(% style="width:67px" %)1 Bit|(% style="width:121px" %)1 Bit
290 -|(% style="width:77px" %)**Value**|(% style="width:82px" %)Reserve|(% style="width:106px" %)PNACKMD|(% style="width:67px" %)LON|(% style="width:121px" %)Transport** **Mode
291 +(% border="1.5" style="background-color:#ffffcc; color:green; width:260px" %)
292 +|=(% scope="row" style="width: 50px;" %)**Size(bit)**|(% style="width:50px" %)5 Bits|(% style="width:60px" %)1 Bit|(% style="width:20px" %)1 Bit|(% style="width:80px" %)1 Bit
293 +|=(% style="width: 77px;" %)**Value**|(% style="width:70px" %)Reserve|(% style="width:92px" %)[[PNACKMD>>||anchor="H2.4.4A0UplinkFPORT3D42CHistoryGNSSPositioning"]]|(% style="width:48px" %)[[LON>>||anchor="H3.2.5Disable2FEnableLEDflash"]]|(% style="width:126px" %)[[Transport Mode>>||anchor="H2.9TransportMode"]]
291 291  
292 -
293 293  
294 -
295 295  
296 -
297 297  === 2.4.2 Uplink FPORT~=2, Realtime GNSS Positioning + Temperature & Humidity ===
298 298  
299 299  
300 -User can use **AT+SMOD=1,0** to enable uploading on-board Temperature and humidity values, and the total payload will be 15 bytes, please note that 15 bytes won't work on DR0 on US915/AU915 frequency band.
300 +Users can use **AT+SMOD=1,0,0** to enable uploading on-board Temperature and humidity values, and the total payload will be 15 bytes,
301 301  
302 302  
303 -(% border="1.2" cellspacing="3" style="background-color:#ffffcc; color:green; width:480px" %)
304 -|=(% scope="row" style="width: 50px;" %)(((
303 +(% border="1.2" cellspacing="3" style="background-color:#ffffcc; color:green; width:320px" %)
304 +|=(% scope="row" style="width: 60px;" %)(((
305 305  **Size(bytes)**
306 -)))|(% style="width:60px" %)4|(% style="width:70px" %)4|(% style="width:80px" %)2|(% style="width:73px" %)1|(% style="width:40px" %)(((
306 +)))|(% style="width:50px" %)4|(% style="width:50px" %)4|(% style="width:70px" %)2|(% style="width:30px" %)1|(% style="width:30px" %)(((
307 307  2
308 -)))|(% style="width:87px" %)(((
308 +)))|(% style="width:30px" %)(((
309 309  2
310 310  )))
311 311  |=(% style="width: 69px;" %)**Value**|(% style="width:76px" %)[[Latitude>>||anchor="HLocationinfo:"]]|(% style="width:87px" %)[[Longitude>>||anchor="HLocationinfo:"]]|(% style="width:76px" %)(((
... ... @@ -322,10 +322,11 @@
322 322  |=(% style="width: 72px;" %)**Value**|(% style="width:67px" %)reserve|(% style="width:118px" %)Alarm Indicate|(% style="width:63px" %)[[BAT>>||anchor="HBAT:"]] 
323 323  
324 324  
325 +
325 325  ==== (% style="color:blue" %)**FLAG:**(%%) ====
326 326  
327 -(% border="1.2" cellspacing="3" style="background-color:#ffffcc; color:green; width:250px" %)
328 -|=(% scope="row" style="width: 50px;" %)**Size(bit)**|(% style="width:50px" %)2bits|(% style="width:50px" %)1bit
328 +(% border="1.2" cellspacing="3" style="background-color:#ffffcc; color:green; width:120px" %)
329 +|=(% scope="row" style="width: 50px;" %)**Size(bit)**|(% style="width:30px" %)2bits|(% style="width:30px" %)1bit
329 329  |=(% style="width: 79px;" %)**Value**|(% style="width:55px" %)[[MOD>>||anchor="H3.2.7SetPositioningMode"]]|(% style="width:47px" %)[[LON>>||anchor="HLON:"]]
330 330  
331 331  **Example:** Payload: 0x02863D68 FAC29BAF 4B45 60 0202 011A 
... ... @@ -336,6 +336,8 @@
336 336  * Latitude: 02863D68  ⇒  //if (0x//02863D68//& 0x80000000 = 0 )~://  //value = 02863D68 /1000000 = 42.351976//
337 337  * Longitude: FAC29BAF  ⇒ //if (0x//FAC29BAF// & 0x80000000 = 1 )~://  //value = (0x//FAC29BAF// – 0x 100000000)/1000000 =//-87.9094//57//
338 338  
340 +
341 +
339 339  (% style="color:red" %)**Important note:**
340 340  
341 341  1.  When power is low (<2.84v), GPS won't be able to get location info and GPS feature will be disabled and the location field will be filled with 0x0FFFFFFF, 0x0FFFFFFF.
... ... @@ -372,9 +372,10 @@
372 372  * < 3.39v:  0~~20%
373 373  
374 374  
378 +
375 375  ==== (% style="color:blue" %)**MOD:**(%%) ====
376 376  
377 -**Example: ** (0x60>>6)& 0x3f =1.
381 +**Example: ** (0x60>>6) & 0x3f =1
378 378  
379 379  **Set the format of GPS data uplink link:**
380 380  
... ... @@ -402,7 +402,6 @@
402 402  )))
403 403  
404 404  
405 -
406 406  ==== (% style="color:blue" %)**Hum:**(%%) ====
407 407  
408 408  0202 = //if (0x0202 & 0x8000 = 0 ):  value =// 0x0202 / 100 = +514 ⇒ 51.4 degree
... ... @@ -417,13 +417,13 @@
417 417  === 2.4.3  Uplink FPORT~=3, Realtime GNSS Positioning (Default Mode) ===
418 418  
419 419  
420 -The default uplink payload includes totally 11 bytes. The payload is the first 11 bytes of Uplink FPORT=2, real-time GNSS positioning, (remove the temp and humidity)
423 +The default uplink payload includes total 11 bytes (**AT+SMOD=1,1,0**). The payload is the first 11 bytes of Uplink FPORT=2, real-time GNSS positioning, (remove the temp and humidity)
421 421  
422 422  
423 -(% border="1.2" cellspacing="3" style="background-color:#ffffcc; color:green; width:480px" %)
424 -|=(% scope="row" style="width: 50px;" %)(((
426 +(% border="1.2" cellspacing="3" style="background-color:#ffffcc; color:green; width:300px" %)
427 +|=(% scope="row" style="width: 60px;" %)(((
425 425  **Size(bytes)**
426 -)))|(% style="width:60px" %)4|(% style="width:70px" %)4|(% style="width:80px" %)2|(% style="width:73px" %)1
429 +)))|(% style="width:60px" %)4|(% style="width:60px" %)4|(% style="width:60px" %)2|(% style="width:50px" %)1
427 427  |=(% style="width: 69px;" %)**Value**|(% style="width:76px" %)[[Latitude>>||anchor="HLocationinfo:"]]|(% style="width:87px" %)[[Longitude>>||anchor="HLocationinfo:"]]|(% style="width:76px" %)(((
428 428  [[Alarm & BAT>>||anchor="HAlarm26BAT:"]]
429 429  )))|(% style="width:73px" %)[[FLAG>>||anchor="HFLAG:"]]
... ... @@ -436,7 +436,7 @@
436 436  === 2.4.4  Uplink FPORT~=4, History GNSS Positioning ===
437 437  
438 438  
439 -Set [[PNACKMD=1>>url:http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/#H4.13AutoSendNone-ACKmessages]], and TrackerD will wait for ACK for every uplink, when there is no LoRaWAN network, TrackerD will mark these records with non-ack messages and store the sensor data, and it will send all messages (10s interval) after the network recovery.
442 +Set [[PNACKMD=1>>||anchor="H3.2.10A0A0AutoSendNone-ACKmessages"]], and TrackerD will wait for ACK for every uplink, when there is no LoRaWAN network, TrackerD will mark these records with non-ack messages and store the sensor data, and it will send all messages (10s interval) after the network recovery.
440 440  
441 441  
442 442  (% style="color:red" %)**Note for this mode:**
... ... @@ -443,10 +443,11 @@
443 443  
444 444  * a) TrackerD will do an ACK check for data records sending to make sure every data arrive server.
445 445  * b) TrackerD will send data in (% style="color:blue" %)**CONFIRMED Mode**(%%) when PNACKMD=1, but TrackerD won't re-transmit the packet if it doesn't get ACK, it will just mark it as a NONE-ACK message. In a future uplink, if TrackerD gets an ACK, TrackerD will consider there is a network connection and resend all NONE-ACK Messages.
449 +* c) the total payload will be 15 bytes, while US915/AU915 DR0 accepts only 11 bytes of payload. In this case (DR0 of US915/AU915), the payload on server will show NULL
446 446  
447 447  The payload is 15 bytes, as below.
448 448  
449 -(% border="1.5" style="background-color:#ffffcc; color:green; width:520px" %)
453 +(% border="1.5" style="background-color:#ffffcc; color:green; width:500px" %)
450 450  |=(% scope="row" %)(((
451 451  **Size(bytes)**
452 452  )))|4|4|2|1|1|1|1|1
... ... @@ -459,6 +459,11 @@
459 459  === 2.4.5  Uplink FPORT~=6, BLE Positioning with Strongest iBeacon ===
460 460  
461 461  
466 +TrackerD supports BLE scans for indoor positioning. User can set [[**SMOD**>>||anchor="H3.2.7SetPositioningMode"]] to **BLE pure** or **GPS/BLE hybrid** so TrackerD will scan BLE iBeacon and find the strongest iBeacon info and uplink.
467 +
468 +User can set **[[BLEMASK>>||anchor="H3.2.11A0SetBLEMASKtofilterBLEiBeacon"]]** so TrackerD will only search the iBeacons which have UUID that match the BLEMASK settings.
469 +
470 +
462 462  (% border="1.5" cellspacing="3" style="background-color:#ffffcc; color:green; width:450px" %)
463 463  |=(% scope="row" style="width: 60px;" %)(((
464 464  **Size(bytes)**
... ... @@ -478,7 +478,7 @@
478 478  [[image:1664502425687-834.png]]
479 479  
480 480  
481 -* (% style="color:#037691" %)**BAT: ** (%%) Ex1: 0x4B45 & 0x3FFF ⇒ 3901 (mV).
490 +* (% style="color:#037691" %)**BAT: ** (%%) Ex1:0x4B45 & 0x3FFF ⇒ 3901 (mV).
482 482  * (% style="color:#037691" %)**MODE:   **(%%)Define the payload format.
483 483  * (% style="color:#037691" %)**UUID:     **(%%)The uuid from the strongest iBeacon.
484 484  * (% style="color:#037691" %)**MAJOR:** (%%) The MAJOR from the strongest iBeacon.
... ... @@ -499,8 +499,9 @@
499 499  [[image:1664502649601-895.png]]
500 500  
501 501  
502 -Add the decoder from this link:
511 +Add the decoder from this link: 
503 503  
513 +[[https:~~/~~/github.com/dragino/dragino-end-node-decoder/tree/main/TrackerD>>https://github.com/dragino/dragino-end-node-decoder/tree/main/TrackerD]]
504 504  
505 505  Save the change the uplink message will be parsed. As below:
506 506  
... ... @@ -511,15 +511,10 @@
511 511  == 2.5 Integrate with Datacake ==
512 512  
513 513  
514 -(((
515 515  After TrackerD sends data to LoRaWAN server such as TTN, use can pass the data to Datacake and plot out, currently only support GPS plot.
516 -)))
517 517  
518 -(((
519 519  Instruction is here:  [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Notes%20for%20Data%20Cake/#H7.Example~~-~~-AddTrackerDGPSTrackingInDataCake>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Notes%20for%20Data%20Cake/#H7.Example--AddTrackerDGPSTrackingInDataCake]]
520 -)))
521 521  
522 -
523 523  [[image:1664502695771-538.png]]
524 524  
525 525  
... ... @@ -527,15 +527,12 @@
527 527  == 2.6 Integrate with Tago ==
528 528  
529 529  
530 -(((
531 -After TrackerD sends data to LoRaWAN server such as TTN, use can pass the data to Datacake and plot out, currently only support GPS plot.
532 -)))
535 +After TrackerD sends data to LoRaWAN server such as TTN, user can pass the data to Datacake and plot out, currently only support GPS plot.
533 533  
534 -(((
535 535  Instruction is here: [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Tago.IO/#H3.A0Example-CreateTrackerD2FLGT92positioningwidget>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Tago.IO/#H3.A0Example-CreateTrackerD2FLGT92positioningwidget]]
536 -)))
537 537  
538 538  
540 +
539 539  [[image:1664502715371-321.png]]
540 540  
541 541  
... ... @@ -543,8 +543,9 @@
543 543  == 2.7  Datalog Feature ==
544 544  
545 545  
546 -total 273 entries,by default disable
548 +total 273 entries,by default,
547 547  
550 +User can set [[PNACKMD=1>>||anchor="H3.2.10A0A0AutoSendNone-ACKmessages"]], to enable Datalog feature.
548 548  
549 549  Example use case.
550 550  
... ... @@ -564,7 +564,7 @@
564 564  
565 565  
566 566  (((
567 -Once enter Alarm mode, the (% style="color:green" %)**GREEN LED**(%%) will flash 3 times, the buzzer will alarm for 5 seconds, then TrackerD will immediately send a packet without location info and then send a data packet with GPS positioning information. After that, the device will send 60 packets at 1-minute intervals. The Alarm flag in the payload will be set for the next 60 packets unless exit alert mode.
570 +Once enter Alarm mode, the (% style="color:green" %)**GREEN LED**(%%) will flash 3 times, the buzzer will alarm for 5 seconds, then TrackerD will immediately send a packet without location info and then send a data packet with GPS positioning information. After that, the device will send 60 packets at 1-minute intervals. The Alarm flag in the payload will be set for the next 60 packets unless exits alert mode.
568 568  )))
569 569  
570 570  
... ... @@ -572,7 +572,7 @@
572 572  Two ways to exit alarm mode:
573 573  )))
574 574  
575 -* Server send a downlink command to exit.
578 +* Server sends a downlink command to exit.
576 576  * User fast press the RED button 10 times.
577 577  
578 578  (((
... ... @@ -622,8 +622,8 @@
622 622  [[image:1664502854406-763.png]]
623 623  
624 624  
625 -(% border="1.5" style="background-color:#ffffcc; color:green; width:520px" %)
626 -|=(% style="width: 100px;" %)**Function**|=(% style="width: 210px;" %)**Action**|=(% style="width: 210px;" %)**Description**
628 +(% border="1" style="background-color:#ffffcc; color:green; width:510px" %)
629 +|=(% style="width: 100px;" %)**Function**|=(% style="width: 205px;" %)**Action**|=(% style="width: 205px;" %)**Description**
627 627  |(% style="width:135px" %)Send Alarm|(% style="width:220px" %)Keep Pressing (% style="color:red" %)**RED**(%%) button for more than 5 seconds|(% style="width:265px" %)Enter Alarm Mode.  See [[Alarm Mode>>||anchor="H2.6AlarmMode"]]
628 628  |(% style="width:135px" %)Exit Alarm Mode|(% style="width:220px" %)Fast press the (% style="color:red" %)**RED** (%%)button 10 times|(% style="width:265px" %)Exit Alarm Mode
629 629  |(% style="width:135px" %)Enter Deep Sleep Mode|(% style="width:220px" %)Press and hold the button for 10 seconds, then quickly press the device 3 times to enter deep sleep|(% style="width:265px" %)This is the mode ship out from factory. CPU will be complete in sleep mode and no LoRa activity, only use before deploy.
... ... @@ -666,11 +666,9 @@
666 666  [[image:1664503022490-662.png]]
667 667  
668 668  
669 -
670 670  [[image:1664503035713-500.png]]
671 671  
672 672  
673 -
674 674  [[image:1664503047675-651.png]]
675 675  
676 676  
... ... @@ -784,7 +784,7 @@
784 784  === 3.2.7 Set Positioning Mode ===
785 785  
786 786  
787 -SMOD define the how TrackerD scan and uplink data:
788 +SMOD define how TrackerD scan and uplink data:
788 788  
789 789  
790 790  * (% style="color:blue" %)**AT Command:**
... ... @@ -808,7 +808,7 @@
808 808  
809 809  (% style="color:blue" %)**Example:**
810 810  
811 - AT+ SMOD =1,0 ,0 ~-~->  GPS+ BAT+ State+Tem&Hum
812 + AT+ SMOD =1,0,0 ~-~->  GPS+ BAT+ State+Tem&Hum
812 812   AT+ SMOD =1,1,0 ~-~->  GPS +BAT State
813 813   AT+ SMOD =2,0,1 ~-~->  (iBeacon)UUID+ Major + Minor+Power+Rssi+BAT+State
814 814  
... ... @@ -906,6 +906,27 @@
906 906  Example: 0x3401  ~/~/  Same as AT+PNACKMD=1
907 907  
908 908  
910 +
911 +=== 3.2.11  Set BLEMASK to filter BLE iBeacon ===
912 +
913 +
914 +BLEMASK is to filter the unwanted BLE iBeacons during scan. For example, if BLEMASK is 123456. LBT1 will only uplink UUID info which includes 123456. It will ignore all other iBeacons which doesn’t contact 123456 in the UUID.
915 +
916 +(% style="color:red" %)**Note: BLEMASK range is 6 ~~ 10 bytes. If AT+BLEMASK < 6 bytes, BLEMASK will be disabled.**
917 +
918 +(% style="color:blue" %)**AT Command:**
919 +
920 + (% style="color:#037691" %)**AT+BLEMASK=123456**   (%%) ~/~/ Set BLEMASK = 123456
921 +
922 + (% style="color:#037691" %)**AT+BLEMASK=0**  (%%) ~/~/ disable BLEMASK
923 +
924 +
925 +(% style="color:blue" %)**Downlink Payload: (Prefix : 0xA5)**
926 +
927 +Example: 0xA5010203040506    ~/~/ Set BLEMASK to 123456
928 +
929 +
930 +
909 909  = 4. Setting for Different Scenarios =
910 910  
911 911  
... ... @@ -946,6 +946,7 @@
946 946  [[image:1664503574618-659.png]]
947 947  
948 948  
971 +
949 949  (% style="color:blue" %)**Step5:** (%%) Select the firmware file (.bin format), com port and proper SPI configure. Clink Start. Bin file location:
950 950  
951 951  [[https:~~/~~/github.com/dragino/TrackerD/releases>>https://github.com/dragino/TrackerD/releases]]
... ... @@ -991,7 +991,18 @@
991 991  [[image:1664503715811-892.png]]
992 992  
993 993  
1017 +(% id="cke_bm_4554S" style="display:none" %) (%%)Find the path of SP32 installation, find the file as shown in Figure 1, and change the SPI pin to the shown in Figure 2.
994 994  
1019 +[[image:image-20221024105643-1.png]]
1020 +
1021 +**~ Figure1**
1022 +
1023 +
1024 +[[image:image-20221024105643-2.png]]
1025 +
1026 + **Figure2**
1027 +
1028 +
995 995  * **Download the latest TrackerD from the dragino github: [[https:~~/~~/github.com/dragino/TrackerD>>url:https://github.com/dragino/TrackerD]]**
996 996  
997 997  Put the Library in the TrackerD directory into the libraries file in the Arduino directory:
1667288597595-714.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +27.9 KB
Content
image-20221024105643-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +11.3 KB
Content
image-20221024105643-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +64.5 KB
Content
Copyright ©2010-2024 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0