An example project for the Heltec Turtle LoRa board (STM32L4 and SX1276 chips). The projects is only supported for the Nucleo-L432KC board platform in the mbed online and offline compiler environment. Visit www.radioshuttle.de (choose Turtle board) for instructions. Note that most source files and libraries are open source, however some files especially the RadioShuttle core protocol is copyrighted work. Check header for details.

Dependencies:   mbed BufferedSerial SX1276GenericLib OLED_SSD1306 HELIOS_Si7021 NVProperty RadioShuttle-STM32L4 USBDeviceHT

Committer:
Helmut Tschemernjak
Date:
Sun Jan 20 16:10:59 2019 +0100
Revision:
2:daf96c5f0d0e
Parent:
0:3b6c2ce051a6
Child:
8:20149c0f4e26
Updated PinMap to include Turtle pins as well Heltec pins

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Helmut64 0:3b6c2ce051a6 1 /*
Helmut Tschemernjak 2:daf96c5f0d0e 2 * Copyright (c) 2019 Helmut Tschemernjak
Helmut64 0:3b6c2ce051a6 3 * 30826 Garbsen (Hannover) Germany
Helmut64 0:3b6c2ce051a6 4 * Licensed under the Apache License, Version 2.0);
Helmut64 0:3b6c2ce051a6 5 */
Helmut64 0:3b6c2ce051a6 6
Helmut Tschemernjak 2:daf96c5f0d0e 7 #define RS_MAJOR 3
Helmut Tschemernjak 2:daf96c5f0d0e 8 #define RS_MINOR 1
Helmut64 0:3b6c2ce051a6 9
Helmut Tschemernjak 2:daf96c5f0d0e 10 #ifdef TARGET_STM32L432KC
Helmut Tschemernjak 2:daf96c5f0d0e 11 #define HELTECL432_REV1
Helmut Tschemernjak 2:daf96c5f0d0e 12 #define FEATURE_LORA
Helmut Tschemernjak 2:daf96c5f0d0e 13 #define FEATURE_USBSERIAL
Helmut Tschemernjak 2:daf96c5f0d0e 14 // #define FEATURE_LORA_PING_PONG
Helmut64 0:3b6c2ce051a6 15 #endif
Helmut64 0:3b6c2ce051a6 16
Helmut Tschemernjak 2:daf96c5f0d0e 17 #ifdef HELTECL432_REV1
Helmut Tschemernjak 2:daf96c5f0d0e 18 #define USER_BUTTON (PinName) 0x73 // PH_3 boot pin
Helmut Tschemernjak 2:daf96c5f0d0e 19 #define USER_BUTTON_RISE
Helmut Tschemernjak 2:daf96c5f0d0e 20 #define STATUS_LED PB_1 // green LED
Helmut Tschemernjak 2:daf96c5f0d0e 21 #define LED2 PB_0 // red LED
Helmut Tschemernjak 2:daf96c5f0d0e 22 #define LED STATUS_LED
Helmut Tschemernjak 2:daf96c5f0d0e 23 #define BATPOWER_EN PA_8 // high indicates power source is battery, removable bridge
Helmut Tschemernjak 2:daf96c5f0d0e 24 #define BATPOWER_EXT 1
Helmut64 0:3b6c2ce051a6 25
Helmut Tschemernjak 2:daf96c5f0d0e 26 #define SPI_LSM_MOSI PA_7
Helmut Tschemernjak 2:daf96c5f0d0e 27 #define SPI_LSM_MISO PA_6
Helmut Tschemernjak 2:daf96c5f0d0e 28 #define SPI_LSM_SCLK PA_5
Helmut Tschemernjak 2:daf96c5f0d0e 29 #define CS_FLASH NC
Helmut64 0:3b6c2ce051a6 30
Helmut Tschemernjak 2:daf96c5f0d0e 31 #define EXT_POWER_SW PA_3 // VEXT on/off
Helmut Tschemernjak 2:daf96c5f0d0e 32 #define EXT_POWER_ON 0
Helmut Tschemernjak 2:daf96c5f0d0e 33 #define EXT_POWER_OFF 1
Helmut64 0:3b6c2ce051a6 34
Helmut Tschemernjak 2:daf96c5f0d0e 35 #define LORA_SPI_MOSI SPI_LSM_MOSI
Helmut Tschemernjak 2:daf96c5f0d0e 36 #define LORA_SPI_MISO SPI_LSM_MISO
Helmut Tschemernjak 2:daf96c5f0d0e 37 #define LORA_SPI_SCLK SPI_LSM_SCLK
Helmut Tschemernjak 2:daf96c5f0d0e 38 #define LORA_CS PA_4
Helmut64 0:3b6c2ce051a6 39 #define LORA_RESET PA_1
Helmut Tschemernjak 2:daf96c5f0d0e 40 #define LORA_DIO0 PA_0 // used for Rx, Tx Interrupt
Helmut Tschemernjak 2:daf96c5f0d0e 41 #define LORA_DIO1 NC // PB_6Fifo Level/Full, RxTimeout/Cad Detection Interrupt, unused in RadioShuttle
Helmut Tschemernjak 2:daf96c5f0d0e 42 #define LORA_DIO2 NC // FhssChangeChannel when FreqHop is on, unused in RadioShuttle
Helmut Tschemernjak 2:daf96c5f0d0e 43 #define LORA_DIO3 NC // optionally Cad Detection in RS_Node_Offline/Checking mode
Helmut Tschemernjak 2:daf96c5f0d0e 44 #define LORA_DIO4 NC // FSK mode preamble detected, unused in RadioShuttle
Helmut Tschemernjak 2:daf96c5f0d0e 45 #define LORA_DIO5 NC // FSK mode ready / ClockOut, unused in RadioShuttle
Helmut Tschemernjak 2:daf96c5f0d0e 46 #define LORA_ANT_PWR EXT_POWER_SW // the analog switch is getting turned off go save energy
Helmut64 0:3b6c2ce051a6 47
Helmut Tschemernjak 2:daf96c5f0d0e 48 /* this following are available pins for custom use */
Helmut Tschemernjak 2:daf96c5f0d0e 49 #define P_SWLCK PA_14 // available only when no debugger is being used.
Helmut Tschemernjak 2:daf96c5f0d0e 50 #define P_SWDIO PA_13 // available only when no debugger is being used
Helmut Tschemernjak 2:daf96c5f0d0e 51 #define P_SWO PB_3 // available only when no SWO debugging output is being used
Helmut Tschemernjak 2:daf96c5f0d0e 52 #define P_PA_2_TX PA_2 // available only when no debug serial console is being used
Helmut Tschemernjak 2:daf96c5f0d0e 53 #define P_PA_15_RX PA_15 // available only when no debug serial console is being used
Helmut Tschemernjak 2:daf96c5f0d0e 54 #define P_PA_9_SCL PA_9 // SCL includes 10k removable hardware pullup
Helmut Tschemernjak 2:daf96c5f0d0e 55 #define P_PA_10_SCA PA_10 // SCL includes 10k removable hardware pullup
Helmut Tschemernjak 2:daf96c5f0d0e 56 #define P_PB_4 PB_4
Helmut Tschemernjak 2:daf96c5f0d0e 57 #define P_PB_5 PB_5
Helmut Tschemernjak 2:daf96c5f0d0e 58 #define P_PB_6 PB_6
Helmut Tschemernjak 2:daf96c5f0d0e 59 #define P_PB_7 PB_7
Helmut64 0:3b6c2ce051a6 60
Helmut Tschemernjak 2:daf96c5f0d0e 61 #define WatchDogUpdate() void()
Helmut64 0:3b6c2ce051a6 62
Helmut Tschemernjak 2:daf96c5f0d0e 63 #else
Helmut Tschemernjak 2:daf96c5f0d0e 64 #error "unknown board"
Helmut Tschemernjak 2:daf96c5f0d0e 65 #endif