This program is guided to help establish a connection between two RFM95 900MHz LoRa radio modules using Maxim Integrated's Feather MCUs (MAX32630FTHR Mbed and the MAX32620FTHR Mbed). Once the radios are configured after powering on and if the radios are wired correctly, the two radios will self identify as either a master or a slave, and will then proceed to PING and PONG back and forth. Information about what is happening between the radios can be seen if the two boards are hooked up to a USB COM port through the included DAPLINK/MAX32625PICO modules.

Dependencies:   BufferedSerial SX1276GenericLib USBDeviceHT max32630fthr

Fork of MAX326xxFTHR_LoRa_PingPong by Devin Alexander

Committer:
dev_alexander
Date:
Fri Jun 15 18:23:44 2018 +0000
Revision:
21:458f85f54121
Parent:
19:9f035b9e65ec
testing committing again to see if it re-generates the page again

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Helmut64 0:c43b6919ae15 1 /*
Helmut64 17:98f2528e8399 2 * Copyright (c) 2018 Helmut Tschemernjak
Helmut64 0:c43b6919ae15 3 * 30826 Garbsen (Hannover) Germany
Helmut64 0:c43b6919ae15 4 * Licensed under the Apache License, Version 2.0);
Helmut64 0:c43b6919ae15 5 */
Helmut64 0:c43b6919ae15 6
Helmut64 0:c43b6919ae15 7
Helmut64 0:c43b6919ae15 8
Helmut64 0:c43b6919ae15 9 #ifdef TARGET_NUCLEO_L476RG
Helmut64 16:675f4d0ee9e9 10 #define FEATURE_LORA
Helmut64 16:675f4d0ee9e9 11
Helmut64 9:2f9e4be4d046 12 #elif TARGET_DISCO_L072CZ_LRWAN1
Helmut64 16:675f4d0ee9e9 13 #define FEATURE_LORA
Helmut64 16:675f4d0ee9e9 14
Helmut64 16:675f4d0ee9e9 15 #elif TARGET_STM32L432KC
Helmut64 16:675f4d0ee9e9 16 #define HELTEC_STM32L4
Helmut64 16:675f4d0ee9e9 17 #define FEATURE_LORA
Helmut64 16:675f4d0ee9e9 18 #define FEATURE_USBSERIAL
Helmut64 0:c43b6919ae15 19 #endif
Helmut64 0:c43b6919ae15 20
Helmut64 0:c43b6919ae15 21
Helmut64 0:c43b6919ae15 22
Helmut64 13:5a32a1922fbc 23 #if defined(TARGET_DISCO_L072CZ_LRWAN1)
Helmut64 17:98f2528e8399 24 #define LED LED2
Helmut64 0:c43b6919ae15 25
Helmut64 0:c43b6919ae15 26 #define LORA_SPI_MOSI PA_7
Helmut64 0:c43b6919ae15 27 #define LORA_SPI_MISO PA_6
Helmut64 0:c43b6919ae15 28 #define LORA_SPI_SCLK PB_3
Helmut64 0:c43b6919ae15 29 #define LORA_CS PA_15
Helmut64 0:c43b6919ae15 30 #define LORA_RESET PC_0
Helmut64 0:c43b6919ae15 31 #define LORA_DIO0 PB_4
Helmut64 0:c43b6919ae15 32 #define LORA_DIO1 PB_1
Helmut64 0:c43b6919ae15 33 #define LORA_DIO2 PB_0
Helmut64 13:5a32a1922fbc 34 #define LORA_DIO3 PC_13
Helmut64 0:c43b6919ae15 35 #define LORA_DIO4 PA_5
Helmut64 0:c43b6919ae15 36 #define LORA_DIO5 PA_4
Helmut64 0:c43b6919ae15 37 #define LORA_ANT_RX PA_1
Helmut64 0:c43b6919ae15 38 #define LORA_ANT_TX PC_2
Helmut64 0:c43b6919ae15 39 #define LORA_ANT_BOOST PC_1
Helmut64 0:c43b6919ae15 40 #define LORA_TCXO PA_12 // 32 MHz
Helmut64 0:c43b6919ae15 41
Helmut64 0:c43b6919ae15 42
Helmut64 0:c43b6919ae15 43
Helmut64 0:c43b6919ae15 44 #elif defined(TARGET_NUCLEO_L476RG) // using the RFM95 board
Helmut64 0:c43b6919ae15 45
Helmut64 0:c43b6919ae15 46 #define LORA_SPI_MOSI PC_12
Helmut64 0:c43b6919ae15 47 #define LORA_SPI_MISO PC_11
Helmut64 0:c43b6919ae15 48 #define LORA_SPI_SCLK PC_10
Helmut64 0:c43b6919ae15 49 #define LORA_CS PA_0
Helmut64 0:c43b6919ae15 50 #define LORA_RESET PA_1
Helmut64 0:c43b6919ae15 51 #define LORA_DIO0 PD_2 // DIO0=TxDone/RXDone
Helmut64 0:c43b6919ae15 52 #define LORA_DIO1 PB_7 //
Helmut64 0:c43b6919ae15 53 #define LORA_DIO2 PC_14 // DIO2=FhssChangeChannel
Helmut64 0:c43b6919ae15 54 #define LORA_DIO3 PC_15 // DIO3=CADDone
Helmut64 0:c43b6919ae15 55 #define LORA_DIO4 PH_0 // ????
Helmut64 0:c43b6919ae15 56 #define LORA_DIO5 NC // unused?
Helmut64 0:c43b6919ae15 57
Helmut64 16:675f4d0ee9e9 58 #elif defined (HELTEC_STM32L4)
Helmut64 16:675f4d0ee9e9 59
Helmut64 17:98f2528e8399 60 #define USER_BUTTON PH_3 // boot pin
Helmut64 17:98f2528e8399 61 #define LED PB_0 // red
Helmut64 17:98f2528e8399 62 #define LED2 PB_1 // green
Helmut64 18:d5527ce82e6b 63 #define LED1 LED
Helmut64 17:98f2528e8399 64
Helmut64 16:675f4d0ee9e9 65 #define POWER_VEXT PA_3
Helmut64 16:675f4d0ee9e9 66 #define POWER_VEXT_ON 0
Helmut64 16:675f4d0ee9e9 67 #define POWER_VEXT_OFF 1
Helmut64 16:675f4d0ee9e9 68
Helmut64 17:98f2528e8399 69
Helmut64 16:675f4d0ee9e9 70 #define LORA_SPI_MOSI PA_7
Helmut64 16:675f4d0ee9e9 71 #define LORA_SPI_MISO PA_6
Helmut64 18:d5527ce82e6b 72 #define LORA_SPI_SCLK PA_5
Helmut64 16:675f4d0ee9e9 73 #define LORA_CS PA_4
Helmut64 16:675f4d0ee9e9 74 #define LORA_RESET PA_1
Helmut64 16:675f4d0ee9e9 75 #define LORA_DIO0 PA_0 // DIO0=TxDone/RXDone/CADDone
Helmut64 16:675f4d0ee9e9 76 #define LORA_DIO1 NC //
Helmut64 16:675f4d0ee9e9 77 #define LORA_DIO2 NC //
Helmut64 16:675f4d0ee9e9 78 #define LORA_DIO3 NC //
Helmut64 16:675f4d0ee9e9 79 #define LORA_DIO4 NC //
Helmut64 16:675f4d0ee9e9 80 #define LORA_DIO5 NC //
Helmut64 16:675f4d0ee9e9 81
Helmut64 15:c70f65d606c4 82 #elif defined(TARGET_NUCLEO_L432KC) // using the RFM95 board
Helmut64 15:c70f65d606c4 83
Helmut64 17:98f2528e8399 84 // #define LED PB_3 // green
Helmut64 17:98f2528e8399 85 #define LED PB_5 // green
Helmut64 15:c70f65d606c4 86
Helmut64 17:98f2528e8399 87 #define LORA_SPI_MOSI PA_7
Helmut64 17:98f2528e8399 88 #define LORA_SPI_MISO PA_6
Helmut64 17:98f2528e8399 89 #define LORA_SPI_SCLK PB_5
Helmut64 17:98f2528e8399 90 #define LORA_CS PA_4
Helmut64 15:c70f65d606c4 91 #define LORA_RESET PA_1
Helmut64 17:98f2528e8399 92 #define LORA_DIO0 PA_0 // DIO0=TxDone/RXDone/CADDone
Helmut64 15:c70f65d606c4 93 #define LORA_DIO1 NC //
Helmut64 15:c70f65d606c4 94 #define LORA_DIO2 NC //
Helmut64 15:c70f65d606c4 95 #define LORA_DIO3 NC //
Helmut64 15:c70f65d606c4 96 #define LORA_DIO4 NC //
Helmut64 16:675f4d0ee9e9 97 #define LORA_DIO5 NC //
Helmut64 16:675f4d0ee9e9 98
Helmut64 17:98f2528e8399 99
dev_alexander 19:9f035b9e65ec 100 #elif defined(TARGET_NUCLEO_F411RE) // using the RFM95 board
dev_alexander 19:9f035b9e65ec 101
dev_alexander 19:9f035b9e65ec 102 #define LED LED1 // green
dev_alexander 19:9f035b9e65ec 103
dev_alexander 19:9f035b9e65ec 104 #define LORA_SPI_MOSI PC_12
dev_alexander 19:9f035b9e65ec 105 #define LORA_SPI_MISO PC_11
dev_alexander 19:9f035b9e65ec 106 #define LORA_SPI_SCLK PC_10
dev_alexander 19:9f035b9e65ec 107 #define LORA_CS PA_0
dev_alexander 19:9f035b9e65ec 108 #define LORA_RESET PA_1
dev_alexander 19:9f035b9e65ec 109 #define LORA_DIO0 PD_2 // DIO0=TxDone/RXDone
dev_alexander 19:9f035b9e65ec 110 #define LORA_DIO1 PB_7 //
dev_alexander 19:9f035b9e65ec 111 #define LORA_DIO2 PC_14 // DIO2=FhssChangeChannel
dev_alexander 19:9f035b9e65ec 112 #define LORA_DIO3 PC_15 // DIO3=CADDone
dev_alexander 19:9f035b9e65ec 113 #define LORA_DIO4 PH_0 // ????
dev_alexander 19:9f035b9e65ec 114 #define LORA_DIO5 NC // unused?
dev_alexander 19:9f035b9e65ec 115
dev_alexander 19:9f035b9e65ec 116
dev_alexander 19:9f035b9e65ec 117 #elif defined(TARGET_MAX32630FTHR) // using the RFM95 board
dev_alexander 19:9f035b9e65ec 118
dev_alexander 19:9f035b9e65ec 119 // #define LED PB_3 // green
dev_alexander 19:9f035b9e65ec 120 #define LED LED2 // green
dev_alexander 19:9f035b9e65ec 121
dev_alexander 19:9f035b9e65ec 122 #define LORA_SPI_MOSI P5_1
dev_alexander 19:9f035b9e65ec 123 #define LORA_SPI_MISO P5_2
dev_alexander 19:9f035b9e65ec 124 #define LORA_SPI_SCLK P5_0
dev_alexander 19:9f035b9e65ec 125 #define LORA_CS P3_0
dev_alexander 19:9f035b9e65ec 126 #define LORA_RESET P3_1
dev_alexander 19:9f035b9e65ec 127 #define LORA_DIO0 P3_2 // DIO0=TxDone/RXDone/CADDone
dev_alexander 19:9f035b9e65ec 128 #define LORA_DIO1 NC //
dev_alexander 19:9f035b9e65ec 129 #define LORA_DIO2 NC //
dev_alexander 19:9f035b9e65ec 130 #define LORA_DIO3 NC //
dev_alexander 19:9f035b9e65ec 131 #define LORA_DIO4 NC //
dev_alexander 19:9f035b9e65ec 132 #define LORA_DIO5 NC //
dev_alexander 19:9f035b9e65ec 133
dev_alexander 19:9f035b9e65ec 134 #elif defined(TARGET_MAX32620FTHR) // using the RFM95 board
dev_alexander 19:9f035b9e65ec 135
dev_alexander 19:9f035b9e65ec 136 // #define LED PB_3 // green
dev_alexander 19:9f035b9e65ec 137 #define LED LED2 // green
dev_alexander 19:9f035b9e65ec 138
dev_alexander 19:9f035b9e65ec 139 #define LORA_SPI_MOSI P5_1
dev_alexander 19:9f035b9e65ec 140 #define LORA_SPI_MISO P5_2
dev_alexander 19:9f035b9e65ec 141 #define LORA_SPI_SCLK P5_0
dev_alexander 19:9f035b9e65ec 142 #define LORA_CS P3_0
dev_alexander 19:9f035b9e65ec 143 #define LORA_RESET P3_1
dev_alexander 19:9f035b9e65ec 144 #define LORA_DIO0 P3_2 // DIO0=TxDone/RXDone/CADDone
dev_alexander 19:9f035b9e65ec 145 #define LORA_DIO1 NC //
dev_alexander 19:9f035b9e65ec 146 #define LORA_DIO2 NC //
dev_alexander 19:9f035b9e65ec 147 #define LORA_DIO3 NC //
dev_alexander 19:9f035b9e65ec 148 #define LORA_DIO4 NC //
dev_alexander 19:9f035b9e65ec 149 #define LORA_DIO5 NC //
dev_alexander 19:9f035b9e65ec 150
dev_alexander 19:9f035b9e65ec 151
dev_alexander 19:9f035b9e65ec 152
Helmut64 16:675f4d0ee9e9 153 #else
Helmut64 16:675f4d0ee9e9 154
Helmut64 16:675f4d0ee9e9 155 #error "unknown board"
Helmut64 16:675f4d0ee9e9 156
Helmut64 0:c43b6919ae15 157 #endif