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

nameconnector pinCPU pin
VddCN7-5
GndCN7-8
UARTCN7-2PC11

Connection to DISCO_L072CZ_LRWAN1

Jumper for auto-uplink: PA11->PA12 = CN3-14->CN3-15

nameconnector pinCPU pin
VddCN3-5
GndCN3-6
UARTCN3-21PA10
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?

UserRevisionLine numberNew 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