Board Support: Heltec v3 (#407)

This commit is contained in:
NellowTCS
2025-11-05 01:04:40 -07:00
committed by GitHub
parent 0d8c0a37cc
commit 8335611796
16 changed files with 527 additions and 0 deletions
@@ -0,0 +1,16 @@
#pragma once
#include <driver/gpio.h>
#include <driver/i2c.h>
#include <driver/spi_common.h>
// Display
constexpr auto DISPLAY_I2C_ADDRESS = 0x3C;
constexpr auto DISPLAY_I2C_SPEED = 200000;
constexpr auto DISPLAY_I2C_PORT = I2C_NUM_0;
constexpr auto DISPLAY_PIN_SDA = GPIO_NUM_17;
constexpr auto DISPLAY_PIN_SCL = GPIO_NUM_18;
constexpr auto DISPLAY_PIN_RST = GPIO_NUM_21;
constexpr auto DISPLAY_HORIZONTAL_RESOLUTION = 128;
constexpr auto DISPLAY_VERTICAL_RESOLUTION = 64;
constexpr auto DISPLAY_PIN_POWER = GPIO_NUM_36;
@@ -0,0 +1,19 @@
#include "Display.h"
#include "Constants.h"
#include <Ssd1306Display.h>
std::shared_ptr<tt::hal::display::DisplayDevice> createDisplay() {
auto configuration = std::make_unique<Ssd1306Display::Configuration>(
DISPLAY_I2C_PORT,
DISPLAY_I2C_ADDRESS,
DISPLAY_PIN_RST,
DISPLAY_HORIZONTAL_RESOLUTION,
DISPLAY_VERTICAL_RESOLUTION,
nullptr, // no touch
false // invert
);
auto display = std::make_shared<Ssd1306Display>(std::move(configuration));
return std::static_pointer_cast<tt::hal::display::DisplayDevice>(display);
}
@@ -0,0 +1,5 @@
#pragma once
#include <Tactility/hal/display/DisplayDevice.h>
std::shared_ptr<tt::hal::display::DisplayDevice> createDisplay();
@@ -0,0 +1,20 @@
#include "Power.h"
#include <ChargeFromAdcVoltage.h>
#include <EstimatedPower.h>
#include <Tactility/hal/gpio/Gpio.h>
#include <memory>
// ADC enable pin on GPIO37
constexpr auto ADC_CTRL = 37;
std::shared_ptr<tt::hal::power::PowerDevice> createPower() {
ChargeFromAdcVoltage::Configuration configuration;
// 2.0 ratio, but +0.11 added as display voltage sag compensation.
configuration.adcMultiplier = 2.11;
// Configure the ADC enable pin as an output
tt::hal::gpio::configure(ADC_CTRL, tt::hal::gpio::Mode::Output, false, false);
return std::make_shared<EstimatedPower>(configuration);
}
@@ -0,0 +1,7 @@
#pragma once
#include <memory>
#include <Tactility/hal/power/PowerDevice.h>
#include <driver/gpio.h>
std::shared_ptr<tt::hal::power::PowerDevice> createPower();