send GPS uplinks in Cayenne LPP format
Dependencies: lib_gps lorawan1v1
radio chip selection
Radio chip driver is not included, because two options are available.
If you're using SX1272 or SX1276, then import sx127x driver into your program.
if you're using SX1261 or SX1262, then import sx126x driver into your program.
If you're using NAmote72 or Murata discovery, then you must import only sx127x driver.
See LoRaWAN library page for provisioning onto network: Commissioning.h
Connection To GPS Receiver
This demonstration depends on GPS receiver sending NMEA into one of the UART on your target CPU.
Such as GP-20U7.
Sends uplink in cayenne LPP format.
Connection to NUCLEO form factor
Jumper for auto-uplink: PC6->PC8 = CN10-2->CN10-4
name | connector pin | CPU pin |
Vdd | CN7-5 | |
Gnd | CN7-8 | |
UART | CN7-2 | PC11 |
Connection to DISCO_L072CZ_LRWAN1
Jumper for auto-uplink: PA11->PA12 = CN3-14->CN3-15
name | connector pin | CPU pin |
Vdd | CN3-5 | |
Gnd | CN3-6 | |
UART | CN3-21 | PA10 |
Commissioning.h@3:2f57b7856222, 2018-08-14 (annotated)
- Committer:
- Wayne Roberts
- Date:
- Tue Aug 14 09:34:49 2018 -0700
- Revision:
- 3:2f57b7856222
- Parent:
- 0:d467d869e49c
update libraries to latest
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Wayne Roberts |
0:d467d869e49c | 1 | /* |
Wayne Roberts |
0:d467d869e49c | 2 | / _____) _ | | |
Wayne Roberts |
0:d467d869e49c | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ |
Wayne Roberts |
0:d467d869e49c | 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ |
Wayne Roberts |
0:d467d869e49c | 5 | _____) ) ____| | | || |_| ____( (___| | | | |
Wayne Roberts |
0:d467d869e49c | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| |
Wayne Roberts |
0:d467d869e49c | 7 | (C)2018 Semtech |
Wayne Roberts |
0:d467d869e49c | 8 | |
Wayne Roberts |
0:d467d869e49c | 9 | Description: End device commissioning parameters |
Wayne Roberts |
0:d467d869e49c | 10 | |
Wayne Roberts |
0:d467d869e49c | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project |
Wayne Roberts |
0:d467d869e49c | 12 | |
Wayne Roberts |
0:d467d869e49c | 13 | */ |
Wayne Roberts |
0:d467d869e49c | 14 | #ifndef __LORA_COMMISSIONING_H__ |
Wayne Roberts |
0:d467d869e49c | 15 | #define __LORA_COMMISSIONING_H__ |
Wayne Roberts |
0:d467d869e49c | 16 | |
Wayne Roberts |
0:d467d869e49c | 17 | //#define USE_BAND_915_HYBRID |
Wayne Roberts |
0:d467d869e49c | 18 | #define USE_BAND_915 |
Wayne Roberts |
0:d467d869e49c | 19 | //#define USE_BAND_ARIB_8CH |
Wayne Roberts |
0:d467d869e49c | 20 | //#define USE_BAND_868 |
Wayne Roberts |
0:d467d869e49c | 21 | //#define USE_BAND_433 |
Wayne Roberts |
0:d467d869e49c | 22 | //#define USE_BAND_470 |
Wayne Roberts |
0:d467d869e49c | 23 | //#define USE_BAND_780 |
Wayne Roberts |
0:d467d869e49c | 24 | |
Wayne Roberts |
0:d467d869e49c | 25 | #define SENETCO |
Wayne Roberts |
0:d467d869e49c | 26 | |
Wayne Roberts |
0:d467d869e49c | 27 | #ifdef ENABLE_VT100 |
Wayne Roberts |
0:d467d869e49c | 28 | #define ROW_MLME_IND (ROW_END+1) |
Wayne Roberts |
0:d467d869e49c | 29 | #define ROW_MLME_CONF (ROW_END+2) |
Wayne Roberts |
0:d467d869e49c | 30 | #define ROW_MCPS_IND (ROW_END+3) |
Wayne Roberts |
0:d467d869e49c | 31 | #define ROW_MCPS_CONF (ROW_END+4) |
Wayne Roberts |
0:d467d869e49c | 32 | #define ROW_MIC (ROW_END+5) |
Wayne Roberts |
0:d467d869e49c | 33 | #else |
Wayne Roberts |
0:d467d869e49c | 34 | #define ROW_MIC 0 |
Wayne Roberts |
0:d467d869e49c | 35 | #endif |
Wayne Roberts |
0:d467d869e49c | 36 | |
Wayne Roberts |
0:d467d869e49c | 37 | /*! |
Wayne Roberts |
0:d467d869e49c | 38 | * Indicates if the end-device is to be connected to a private or public network |
Wayne Roberts |
0:d467d869e49c | 39 | */ |
Wayne Roberts |
0:d467d869e49c | 40 | #define LORAWAN_PUBLIC_NETWORK true |
Wayne Roberts |
0:d467d869e49c | 41 | |
Wayne Roberts |
0:d467d869e49c | 42 | /*! |
Wayne Roberts |
0:d467d869e49c | 43 | * Mote device IEEE EUI (big endian) |
Wayne Roberts |
0:d467d869e49c | 44 | * |
Wayne Roberts |
0:d467d869e49c | 45 | * \remark In this application the value is automatically generated by calling |
Wayne Roberts |
0:d467d869e49c | 46 | * BoardGetUniqueId function |
Wayne Roberts |
0:d467d869e49c | 47 | */ |
Wayne Roberts |
0:d467d869e49c | 48 | |
Wayne Roberts |
0:d467d869e49c | 49 | #ifdef SENETCO |
Wayne Roberts |
0:d467d869e49c | 50 | #define LORAWAN_DEVICE_EUI {0x00,0x25,0x0C,0x01,0x00,0x00,0x00,0x08} |
Wayne Roberts |
0:d467d869e49c | 51 | #define LORAWAN_JOIN_EUI {0x00,0x25,0x0C,0x00,0x00,0x01,0x00,0x01} |
Wayne Roberts |
0:d467d869e49c | 52 | #define LORAWAN_ROOT_NWKKEY {0x3D,0xFD,0xF3,0x80,0x45,0x0E,0x8B,0x8D,0x3E,0xD5,0x89,0x25,0xAA,0xD4,0x23,0x53} |
Wayne Roberts |
0:d467d869e49c | 53 | #else |
Wayne Roberts |
0:d467d869e49c | 54 | #define LORAWAN_DEVICE_EUI { 0x19,0x51,0x34,0x30,0x9E,0x30,0x6A,0x37 } // home net 000001 |
Wayne Roberts |
0:d467d869e49c | 55 | //#define LORAWAN_DEVICE_EUI { 0x3e,0xbe,0x24,0xb1,0x6b,0x7b,0x9c,0xfc } // home net 6000ff |
Wayne Roberts |
0:d467d869e49c | 56 | /*! |
Wayne Roberts |
0:d467d869e49c | 57 | * Join IEEE EUI (big endian): undefine for ABP |
Wayne Roberts |
0:d467d869e49c | 58 | */ |
Wayne Roberts |
0:d467d869e49c | 59 | #define LORAWAN_JOIN_EUI { 0x64,0x7F,0xDA,0x80,0x00,0x00,0x01,0x2E } |
Wayne Roberts |
0:d467d869e49c | 60 | |
Wayne Roberts |
0:d467d869e49c | 61 | /*! |
Wayne Roberts |
0:d467d869e49c | 62 | * AES encryption/decryption cipher application key |
Wayne Roberts |
0:d467d869e49c | 63 | * 00112233445566778899aabbccddeeff */ |
Wayne Roberts |
0:d467d869e49c | 64 | #define LORAWAN_ROOT_NWKKEY { 0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff } |
Wayne Roberts |
0:d467d869e49c | 65 | |
Wayne Roberts |
0:d467d869e49c | 66 | // d2fc83ea58cf0fbc973dbd07a7115486 lorawan-1.1 OTA only |
Wayne Roberts |
0:d467d869e49c | 67 | //#define LORAWAN_ROOT_APPKEY { 0xd2,0xfc,0x83,0xea,0x58,0xcf,0x0f,0xbc,0x97,0x3d,0xbd,0x07,0xa7,0x11,0x54,0x86 } // uncomment for lorawan1v1, or comment for lorawan1v0 |
Wayne Roberts |
0:d467d869e49c | 68 | #endif /* SENETCO */ |
Wayne Roberts |
0:d467d869e49c | 69 | |
Wayne Roberts |
0:d467d869e49c | 70 | #ifndef LORAWAN_JOIN_EUI /* ABP mote: */ |
Wayne Roberts |
0:d467d869e49c | 71 | /* |
Wayne Roberts |
0:d467d869e49c | 72 | * AppSkey: 09763a2d1c29831ea073b24d5d12f084 |
Wayne Roberts |
0:d467d869e49c | 73 | * FNwkSIntKey: 15aed1b53c90518e1c6170c12a315429 |
Wayne Roberts |
0:d467d869e49c | 74 | * SNwkSintKey: 37fe10c4c31a26f9d027180bc192567f 1v1 ABP |
Wayne Roberts |
0:d467d869e49c | 75 | * NwkSEncKey: f765291c0b18720d9f62a13c4c01ef73 1v1 ABP |
Wayne Roberts |
0:d467d869e49c | 76 | */ |
Wayne Roberts |
0:d467d869e49c | 77 | #define LORAWAN_FNwkSIntKey {0x15, 0xae, 0xd1, 0xb5, 0x3c, 0x90, 0x51, 0x8e, 0x1c, 0x61, 0x70, 0xc1, 0x2a, 0x31, 0x54, 0x29} |
Wayne Roberts |
0:d467d869e49c | 78 | #define LORAWAN_APPSKEY {0x09, 0x76, 0x3a, 0x2d, 0x1c, 0x29, 0x83, 0x1e, 0xa0, 0x73, 0xb2, 0x4d, 0x5d, 0x12, 0xf0, 0x84} |
Wayne Roberts |
0:d467d869e49c | 79 | //#define LORAWAN_SNwkSIntKey {0x37, 0xfe, 0x10, 0xc4, 0xc3, 0x1a, 0x26, 0xf9, 0xd0, 0x27, 0x18, 0x0b, 0xc1, 0x92, 0x56, 0x7f} // 1v1 |
Wayne Roberts |
0:d467d869e49c | 80 | //#define LORAWAN_NwkSEncKey {0xf7, 0x65, 0x29, 0x1c, 0x0b, 0x18, 0x72, 0x0d, 0x9f, 0x62, 0xa1, 0x3c, 0x4c, 0x01, 0xef, 0x73} // 1v1 |
Wayne Roberts |
0:d467d869e49c | 81 | #if defined(LORAWAN_SNwkSIntKey) && defined(LORAWAN_NwkSEncKey) |
Wayne Roberts |
0:d467d869e49c | 82 | #define OPTNEG |
Wayne Roberts |
0:d467d869e49c | 83 | #define LORAWAN_DEVICE_ADDRESS ( uint32_t )0x02000555 // 1v1 provisioned netid 000001 |
Wayne Roberts |
0:d467d869e49c | 84 | //#define LORAWAN_DEVICE_ADDRESS ( uint32_t )0xe3fc0555 // 1v1 provisioned netid 6000ff |
Wayne Roberts |
0:d467d869e49c | 85 | #else |
Wayne Roberts |
0:d467d869e49c | 86 | #undef OPTNEG |
Wayne Roberts |
0:d467d869e49c | 87 | #define LORAWAN_DEVICE_ADDRESS ( uint32_t )0x02000aaa // 1v0 provisioned |
Wayne Roberts |
0:d467d869e49c | 88 | #endif |
Wayne Roberts |
0:d467d869e49c | 89 | #else |
Wayne Roberts |
0:d467d869e49c | 90 | #ifdef LORAWAN_ROOT_APPKEY |
Wayne Roberts |
0:d467d869e49c | 91 | #define OPTNEG |
Wayne Roberts |
0:d467d869e49c | 92 | #else |
Wayne Roberts |
0:d467d869e49c | 93 | #undef OPTNEG |
Wayne Roberts |
0:d467d869e49c | 94 | #endif |
Wayne Roberts |
0:d467d869e49c | 95 | #endif |
Wayne Roberts |
0:d467d869e49c | 96 | |
Wayne Roberts |
0:d467d869e49c | 97 | #endif // __LORA_COMMISSIONING_H__ |
Wayne Roberts |
0:d467d869e49c | 98 |