80 lines
1.9 KiB
Python
80 lines
1.9 KiB
Python
"""LILYGO TTGO LoRa32 MicroPython Helper Library."""
|
|
|
|
from machine import Pin, SoftI2C, Signal
|
|
|
|
from lilygo_oled import OLED
|
|
|
|
from micropython import const
|
|
|
|
|
|
class Lora32Base:
|
|
"""Base class defining common pins."""
|
|
|
|
def __init__(self, define_helpers=True):
|
|
# LORA
|
|
self.LORA_MOSI = const(27)
|
|
self.LORA_MISO = const(19)
|
|
self.LORA_SCLK = const(5)
|
|
self.LORA_CS = const(18)
|
|
self.LORA_DIO = const(26)
|
|
self.LORA_RST = const(23)
|
|
|
|
# DAC
|
|
self.DAC1 = const(26)
|
|
|
|
# LED
|
|
self.LED = const(25)
|
|
|
|
# OLED
|
|
self.OLED_SDA = const(21)
|
|
self.OLED_SCL = const(22)
|
|
|
|
if define_helpers:
|
|
self.create_helpers()
|
|
|
|
def create_helpers(self):
|
|
self.led = Pin(self.LED, Pin.OUT)
|
|
self.i2c = SoftI2C(scl=Pin(self.OLED_SCL), sda=Pin(self.OLED_SDA))
|
|
self.oled = OLED(self.i2c)
|
|
|
|
|
|
class Lora32v1_0(Lora32Base):
|
|
"""Device Support for LILYGO TTGO LoRa32 v1.0."""
|
|
|
|
def __init__(self):
|
|
super().__init__(define_helpers=False)
|
|
|
|
# v1.0 has different pins for the following
|
|
self.LORA_RST = const(14)
|
|
self.OLED_SDA = const(4)
|
|
self.OLED_SCL = const(15)
|
|
|
|
# Also has a reset for the OLED that the others don't have
|
|
self.OLED_RST = const(16)
|
|
|
|
super().create_helpers()
|
|
|
|
|
|
class Lora32v1_2(Lora32Base):
|
|
"""Device Support for LILYGO TTGO LoRa32 v1.2 (T-Fox)."""
|
|
|
|
def __init__(self):
|
|
super().__init__()
|
|
|
|
# v1.2 Has a DS3231 RTC
|
|
self.DS3231_SDA = const(21)
|
|
self.DS3231_SCL = const(22)
|
|
|
|
|
|
class Lora32(Lora32Base):
|
|
"""Device Support for LILYGO TTGO LoRa32 v1.6 and v2.0."""
|
|
|
|
def __init__(self):
|
|
super().__init__()
|
|
|
|
# v1.6 and v2.0 support an SDCard
|
|
self.SD_CS = const(13)
|
|
self.SD_MOSI = const(15)
|
|
self.SD_MISO = const(2)
|
|
self.SD_SCLK = const(14)
|