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:12:01 2019 +0100
Revision:
3:b5052f3fa638
Parent:
0:3b6c2ce051a6
Child:
14:d9340be18c3d
First turtle board RadioShuttle support

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;
Helmut64 0:3b6c2ce051a6 35 extern void InitSerial(int timeout, DigitalOut *led);
Helmut64 0:3b6c2ce051a6 36 extern void dump(const char *title, const void *data, int len, bool dwords = false);
Helmut Tschemernjak 3:b5052f3fa638 37 extern const char *BatterySource(void);
Helmut64 0:3b6c2ce051a6 38
Helmut64 0:3b6c2ce051a6 39 extern void dprintf(const char *format, ...) __attribute__((format(printf,1,2)));
Helmut64 0:3b6c2ce051a6 40 extern void rprintf(const char *format, ...) __attribute__((format(printf,1,2)));
Helmut Tschemernjak 3:b5052f3fa638 41 extern void VAprintf(bool timstamp, bool newline, bool printEnabled, const char *format, va_list arg);