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:
Thu Jun 06 09:31:08 2019 +0200
Revision:
62:86aaaf9fa55d
Parent:
50:28166f6fdaa2
Updated OLED lib

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Helmut64 0:3b6c2ce051a6 1 /*
Helmut Tschemernjak 3:b5052f3fa638 2 * Copyright (c) 2019 Helmut Tschemernjak
Helmut64 0:3b6c2ce051a6 3 * 30826 Garbsen (Hannover) Germany
Helmut Tschemernjak 3:b5052f3fa638 4 * Licensed under the Apache License, Version 2.0);
Helmut Tschemernjak 3:b5052f3fa638 5 */
Helmut64 0:3b6c2ce051a6 6
Helmut64 0:3b6c2ce051a6 7 #include "mbed.h"
Helmut64 0:3b6c2ce051a6 8 #include "PinMap.h"
Helmut64 0:3b6c2ce051a6 9 #include "BufferedSerial.h"
Helmut64 0:3b6c2ce051a6 10 #ifdef FEATURE_USBSERIAL
Helmut64 0:3b6c2ce051a6 11 #include "USBSerialBuffered.h"
Helmut64 0:3b6c2ce051a6 12 #endif
Helmut Tschemernjak 3:b5052f3fa638 13 #include "arch.h"
Helmut Tschemernjak 3:b5052f3fa638 14 #include "mbed-util.h"
Helmut Tschemernjak 50:28166f6fdaa2 15 #ifdef FEATURE_SI7021
Helmut Tschemernjak 50:28166f6fdaa2 16 #include "HELIOS_Si7021.h"
Helmut Tschemernjak 50:28166f6fdaa2 17 #endif
Helmut Tschemernjak 3:b5052f3fa638 18
Helmut64 0:3b6c2ce051a6 19
Helmut Tschemernjak 47:59a9923a9f77 20 enum InterruptDevice {
Helmut Tschemernjak 3:b5052f3fa638 21 INT_BUTTON1 = 0x01, // user button
Helmut Tschemernjak 3:b5052f3fa638 22 INT_UNUSED1 = 0x02,
Helmut Tschemernjak 3:b5052f3fa638 23 INT_UNUSED2 = 0x04,
Helmut Tschemernjak 3:b5052f3fa638 24 INT_LORA = 0x08, // LoRa needs to stay on 0x08
Helmut Tschemernjak 3:b5052f3fa638 25 INT_TIMEOUT = 0x10, // Low power timer timeout
Helmut Tschemernjak 3:b5052f3fa638 26 };
Helmut Tschemernjak 3:b5052f3fa638 27
Helmut Tschemernjak 3:b5052f3fa638 28 extern volatile uint32_t PendingInterrupts;
Helmut Tschemernjak 47:59a9923a9f77 29 extern void InterruptMSG(enum InterruptDevice irqid);
Helmut Tschemernjak 3:b5052f3fa638 30 extern uint32_t readclrPendingInterrupts(void);
Helmut Tschemernjak 3:b5052f3fa638 31 extern uint32_t readPendingInterrupts(void);
Helmut64 0:3b6c2ce051a6 32
Helmut64 0:3b6c2ce051a6 33 extern BufferedSerial *ser;
Helmut64 0:3b6c2ce051a6 34 #ifdef FEATURE_USBSERIAL
Helmut64 0:3b6c2ce051a6 35 extern USBSerialBuffered *usb;
Helmut64 0:3b6c2ce051a6 36 #endif
Helmut64 0:3b6c2ce051a6 37 extern bool _useDprintf;
Helmut Tschemernjak 45:22bb680cad5a 38 extern void InitSerial(int timeout, DigitalOut *led, InterruptIn *intr);
Helmut Tschemernjak 37:77fa81e4ad79 39 extern void RunStartup(void);
Helmut Tschemernjak 37:77fa81e4ad79 40 extern size_t MemoryAvailable(bool print);
Helmut Tschemernjak 37:77fa81e4ad79 41
Helmut64 0:3b6c2ce051a6 42 extern void dump(const char *title, const void *data, int len, bool dwords = false);
Helmut Tschemernjak 3:b5052f3fa638 43 extern const char *BatterySource(void);
Helmut64 0:3b6c2ce051a6 44
Helmut64 0:3b6c2ce051a6 45 extern void dprintf(const char *format, ...) __attribute__((format(printf,1,2)));
Helmut64 0:3b6c2ce051a6 46 extern void rprintf(const char *format, ...) __attribute__((format(printf,1,2)));
Helmut Tschemernjak 3:b5052f3fa638 47 extern void VAprintf(bool timstamp, bool newline, bool printEnabled, const char *format, va_list arg);
Helmut Tschemernjak 22:9cca40fcb25e 48 extern char *ConsoleReadline(char *buf, int buflen, bool echo, int timeout_ms = 0);
Helmut Tschemernjak 18:d2f227e0a8bf 49 extern void NVPropertyEditor(void);
Helmut Tschemernjak 22:9cca40fcb25e 50 extern void MCUReset(void);
Helmut Tschemernjak 37:77fa81e4ad79 51 extern void RunCommands(int timeout_ms);
Helmut Tschemernjak 18:d2f227e0a8bf 52
Helmut Tschemernjak 50:28166f6fdaa2 53 #ifdef FEATURE_SI7021
Helmut Tschemernjak 50:28166f6fdaa2 54 extern HELIOS_Si7021 *sensorSI7021;
Helmut Tschemernjak 50:28166f6fdaa2 55 #endif