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:
Fri Feb 15 10:53:47 2019 +0100
Revision:
44:cda7bca43f3b
Parent:
37:77fa81e4ad79
Child:
45:22bb680cad5a
Use proper mbed-util.s version

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 3:b5052f3fa638 15
Helmut64 0:3b6c2ce051a6 16
Helmut Tschemernjak 3:b5052f3fa638 17 enum InterrruptDevice {
Helmut Tschemernjak 3:b5052f3fa638 18 INT_BUTTON1 = 0x01, // user button
Helmut Tschemernjak 3:b5052f3fa638 19 INT_UNUSED1 = 0x02,
Helmut Tschemernjak 3:b5052f3fa638 20 INT_UNUSED2 = 0x04,
Helmut Tschemernjak 3:b5052f3fa638 21 INT_LORA = 0x08, // LoRa needs to stay on 0x08
Helmut Tschemernjak 3:b5052f3fa638 22 INT_TIMEOUT = 0x10, // Low power timer timeout
Helmut Tschemernjak 3:b5052f3fa638 23 };
Helmut Tschemernjak 3:b5052f3fa638 24
Helmut Tschemernjak 3:b5052f3fa638 25 extern volatile uint32_t PendingInterrupts;
Helmut Tschemernjak 3:b5052f3fa638 26 extern void InterrruptMSG(enum InterrruptDevice irqid);
Helmut Tschemernjak 3:b5052f3fa638 27 extern uint32_t readclrPendingInterrupts(void);
Helmut Tschemernjak 3:b5052f3fa638 28 extern uint32_t readPendingInterrupts(void);
Helmut64 0:3b6c2ce051a6 29
Helmut64 0:3b6c2ce051a6 30 extern BufferedSerial *ser;
Helmut64 0:3b6c2ce051a6 31 #ifdef FEATURE_USBSERIAL
Helmut64 0:3b6c2ce051a6 32 extern USBSerialBuffered *usb;
Helmut64 0:3b6c2ce051a6 33 #endif
Helmut64 0:3b6c2ce051a6 34 extern bool _useDprintf;
Helmut Tschemernjak 37:77fa81e4ad79 35 extern void InitSerial(int timeout, DigitalOut *led);
Helmut Tschemernjak 37:77fa81e4ad79 36 extern void RunStartup(void);
Helmut Tschemernjak 37:77fa81e4ad79 37 extern size_t MemoryAvailable(bool print);
Helmut Tschemernjak 37:77fa81e4ad79 38
Helmut64 0:3b6c2ce051a6 39 extern void dump(const char *title, const void *data, int len, bool dwords = false);
Helmut Tschemernjak 3:b5052f3fa638 40 extern const char *BatterySource(void);
Helmut64 0:3b6c2ce051a6 41
Helmut64 0:3b6c2ce051a6 42 extern void dprintf(const char *format, ...) __attribute__((format(printf,1,2)));
Helmut64 0:3b6c2ce051a6 43 extern void rprintf(const char *format, ...) __attribute__((format(printf,1,2)));
Helmut Tschemernjak 3:b5052f3fa638 44 extern void VAprintf(bool timstamp, bool newline, bool printEnabled, const char *format, va_list arg);
Helmut Tschemernjak 22:9cca40fcb25e 45 extern char *ConsoleReadline(char *buf, int buflen, bool echo, int timeout_ms = 0);
Helmut Tschemernjak 18:d2f227e0a8bf 46 extern void NVPropertyEditor(void);
Helmut Tschemernjak 22:9cca40fcb25e 47 extern void MCUReset(void);
Helmut Tschemernjak 37:77fa81e4ad79 48 extern void RunCommands(int timeout_ms);
Helmut Tschemernjak 18:d2f227e0a8bf 49