This is example code that can get you started with building your own IR vision robot that communicates over LoRa

Dependencies:   Adafruit-MotorShield Adafruit-PWM-Servo-Driver Adafruit_GFX BufferedSerial MAX17055_EZconfig NEO-6m-GPS SX1276GenericLib USBDeviceHT max32630fthr max77650_charger_sample

Fork of MAX326xxFTHR_LoRa_Example_test by Devin Alexander

Committer:
Helmut64
Date:
Thu Feb 22 11:12:24 2018 +0000
Revision:
16:675f4d0ee9e9
Parent:
15:c70f65d606c4
Child:
17:98f2528e8399
Added proper PinMap for the Heltec Board; updated libs

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Helmut64 0:c43b6919ae15 1 /*
Helmut64 0:c43b6919ae15 2 * Copyright (c) 2017 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 0:c43b6919ae15 24
Helmut64 0:c43b6919ae15 25 #define LORA_SPI_MOSI PA_7
Helmut64 0:c43b6919ae15 26 #define LORA_SPI_MISO PA_6
Helmut64 0:c43b6919ae15 27 #define LORA_SPI_SCLK PB_3
Helmut64 0:c43b6919ae15 28 #define LORA_CS PA_15
Helmut64 0:c43b6919ae15 29 #define LORA_RESET PC_0
Helmut64 0:c43b6919ae15 30 #define LORA_DIO0 PB_4
Helmut64 0:c43b6919ae15 31 #define LORA_DIO1 PB_1
Helmut64 0:c43b6919ae15 32 #define LORA_DIO2 PB_0
Helmut64 13:5a32a1922fbc 33 #define LORA_DIO3 PC_13
Helmut64 0:c43b6919ae15 34 #define LORA_DIO4 PA_5
Helmut64 0:c43b6919ae15 35 #define LORA_DIO5 PA_4
Helmut64 0:c43b6919ae15 36 #define LORA_ANT_RX PA_1
Helmut64 0:c43b6919ae15 37 #define LORA_ANT_TX PC_2
Helmut64 0:c43b6919ae15 38 #define LORA_ANT_BOOST PC_1
Helmut64 0:c43b6919ae15 39 #define LORA_TCXO PA_12 // 32 MHz
Helmut64 0:c43b6919ae15 40
Helmut64 0:c43b6919ae15 41
Helmut64 0:c43b6919ae15 42
Helmut64 0:c43b6919ae15 43 #elif defined(TARGET_NUCLEO_L476RG) // using the RFM95 board
Helmut64 0:c43b6919ae15 44
Helmut64 0:c43b6919ae15 45 #define LORA_SPI_MOSI PC_12
Helmut64 0:c43b6919ae15 46 #define LORA_SPI_MISO PC_11
Helmut64 0:c43b6919ae15 47 #define LORA_SPI_SCLK PC_10
Helmut64 0:c43b6919ae15 48 #define LORA_CS PA_0
Helmut64 0:c43b6919ae15 49 #define LORA_RESET PA_1
Helmut64 0:c43b6919ae15 50 #define LORA_DIO0 PD_2 // DIO0=TxDone/RXDone
Helmut64 0:c43b6919ae15 51 #define LORA_DIO1 PB_7 //
Helmut64 0:c43b6919ae15 52 #define LORA_DIO2 PC_14 // DIO2=FhssChangeChannel
Helmut64 0:c43b6919ae15 53 #define LORA_DIO3 PC_15 // DIO3=CADDone
Helmut64 0:c43b6919ae15 54 #define LORA_DIO4 PH_0 // ????
Helmut64 0:c43b6919ae15 55 #define LORA_DIO5 NC // unused?
Helmut64 0:c43b6919ae15 56
Helmut64 16:675f4d0ee9e9 57 #elif defined (HELTEC_STM32L4)
Helmut64 16:675f4d0ee9e9 58
Helmut64 16:675f4d0ee9e9 59 #define POWER_VEXT PA_3
Helmut64 16:675f4d0ee9e9 60 #define POWER_VEXT_ON 0
Helmut64 16:675f4d0ee9e9 61 #define POWER_VEXT_OFF 1
Helmut64 16:675f4d0ee9e9 62
Helmut64 16:675f4d0ee9e9 63 #define LORA_SPI_MOSI PA_7
Helmut64 16:675f4d0ee9e9 64 #define LORA_SPI_MISO PA_6
Helmut64 16:675f4d0ee9e9 65 #define LORA_SPI_SCLK PB_5
Helmut64 16:675f4d0ee9e9 66 #define LORA_CS PA_4
Helmut64 16:675f4d0ee9e9 67 #define LORA_RESET PA_1
Helmut64 16:675f4d0ee9e9 68 #define LORA_DIO0 PA_0 // DIO0=TxDone/RXDone/CADDone
Helmut64 16:675f4d0ee9e9 69 #define LORA_DIO1 NC //
Helmut64 16:675f4d0ee9e9 70 #define LORA_DIO2 NC //
Helmut64 16:675f4d0ee9e9 71 #define LORA_DIO3 NC //
Helmut64 16:675f4d0ee9e9 72 #define LORA_DIO4 NC //
Helmut64 16:675f4d0ee9e9 73 #define LORA_DIO5 NC //
Helmut64 16:675f4d0ee9e9 74
Helmut64 15:c70f65d606c4 75 #elif defined(TARGET_NUCLEO_L432KC) // using the RFM95 board
Helmut64 15:c70f65d606c4 76
Helmut64 15:c70f65d606c4 77
Helmut64 15:c70f65d606c4 78 #define LORA_SPI_MOSI PC_12
Helmut64 15:c70f65d606c4 79 #define LORA_SPI_MISO PC_11
Helmut64 15:c70f65d606c4 80 #define LORA_SPI_SCLK PC_10
Helmut64 15:c70f65d606c4 81 #define LORA_CS PA_0
Helmut64 15:c70f65d606c4 82 #define LORA_RESET PA_1
Helmut64 15:c70f65d606c4 83 #define LORA_DIO0 PD_2 // DIO0=TxDone/RXDone/CADDone
Helmut64 15:c70f65d606c4 84 #define LORA_DIO1 NC //
Helmut64 15:c70f65d606c4 85 #define LORA_DIO2 NC //
Helmut64 15:c70f65d606c4 86 #define LORA_DIO3 NC //
Helmut64 15:c70f65d606c4 87 #define LORA_DIO4 NC //
Helmut64 16:675f4d0ee9e9 88 #define LORA_DIO5 NC //
Helmut64 16:675f4d0ee9e9 89
Helmut64 16:675f4d0ee9e9 90 #else
Helmut64 16:675f4d0ee9e9 91
Helmut64 16:675f4d0ee9e9 92 #error "unknown board"
Helmut64 16:675f4d0ee9e9 93
Helmut64 0:c43b6919ae15 94 #endif