Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
ec0c5ae
Implement GPIO interrupts
KenVanHoeylandt Feb 18, 2026
24a38f7
Merge branch 'main' into develop
KenVanHoeylandt Feb 28, 2026
dfb0db8
Pi4 expander improvements
KenVanHoeylandt Feb 28, 2026
a1470cc
Add basic wifi driver interface
KenVanHoeylandt Feb 28, 2026
c217792
Implement BMI270 driver
KenVanHoeylandt Feb 28, 2026
10ab4dd
Module bug fixes
KenVanHoeylandt Feb 28, 2026
4f1d9e5
Cleanup
KenVanHoeylandt Mar 1, 2026
8c7558d
Add new symbols
KenVanHoeylandt Mar 2, 2026
880bae3
Add more symbols
KenVanHoeylandt Mar 2, 2026
7293ea8
Add file_system driver
KenVanHoeylandt Mar 2, 2026
17cdec1
Remove unused field
KenVanHoeylandt Mar 2, 2026
b40d595
Change default alloc size to 4kB
KenVanHoeylandt Mar 2, 2026
57016ba
Add binfont symbols
KenVanHoeylandt Mar 2, 2026
1ea2f97
SDMMC driver WIP
KenVanHoeylandt Mar 2, 2026
d63a401
SDMMC driver WIP
KenVanHoeylandt Mar 2, 2026
e4cf91a
Fixes and improvements
KenVanHoeylandt Mar 3, 2026
6f7ed25
Refactor all SD card path usages
KenVanHoeylandt Mar 7, 2026
9331422
Merge branch 'main' into develop
KenVanHoeylandt Mar 7, 2026
cd0e3fc
Converted SDMMC drivers
KenVanHoeylandt Mar 7, 2026
dbefa0a
Add comment
KenVanHoeylandt Mar 7, 2026
f12a52e
Fixes
KenVanHoeylandt Mar 7, 2026
c42b43e
Compilation fix
KenVanHoeylandt Mar 7, 2026
9efc7c7
Fixes
KenVanHoeylandt Mar 7, 2026
4b48ec8
Fixes
KenVanHoeylandt Mar 7, 2026
f8f01ed
Build fix
KenVanHoeylandt Mar 7, 2026
dab8921
Fixes
KenVanHoeylandt Mar 7, 2026
54be5ff
Rename T-HMI S3 to T-HMI
KenVanHoeylandt Mar 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
{ id: guition-jc8048w550c, arch: esp32s3 },
{ id: heltec-wifi-lora-32-v3, arch: esp32s3 },
{ id: lilygo-tdeck, arch: esp32s3 },
{ id: lilygo-thmi-s3, arch: esp32s3 },
{ id: lilygo-thmi, arch: esp32s3 },
{ id: lilygo-tdongle-s3, arch: esp32s3 },
{ id: lilygo-tdisplay-s3, arch: esp32s3 },
{ id: lilygo-tlora-pager, arch: esp32s3 },
Expand Down
1 change: 1 addition & 0 deletions Devices/guition-jc1060p470ciwy/Source/devices/SdCard.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ static const auto LOGGER = tt::Logger("JcSdCard");
// ESP32-P4 Slot 0 uses IO MUX (fixed pins, not manually configurable)
// CLK=43, CMD=44, D0=39, D1=40, D2=41, D3=42 (defined automatically by hardware)

// TODO: Migrate to "espressif,esp32-sdmmc" driver (needs LDO code porting)
class SdCardDeviceImpl final : public SdCardDevice {

class NoLock final : public tt::Lock {
Expand Down
4 changes: 1 addition & 3 deletions Devices/lilygo-tdongle-s3/Source/Configuration.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#include "devices/Display.h"
#include "devices/Sdcard.h"

#include <Tactility/hal/Configuration.h>

Expand All @@ -9,8 +8,7 @@ using namespace tt::hal;

static std::vector<std::shared_ptr<tt::hal::Device>> createDevices() {
return {
createDisplay(),
createSdCard()
createDisplay()
};
}

Expand Down
22 changes: 0 additions & 22 deletions Devices/lilygo-tdongle-s3/Source/devices/Sdcard.cpp

This file was deleted.

7 changes: 0 additions & 7 deletions Devices/lilygo-tdongle-s3/Source/devices/Sdcard.h

This file was deleted.

1 change: 1 addition & 0 deletions Devices/lilygo-tdongle-s3/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,4 @@ dpi=186
[lvgl]
colorDepth=16
uiDensity=compact
fontSize=10
12 changes: 12 additions & 0 deletions Devices/lilygo-tdongle-s3/lilygo,tdongle-s3.dts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#include <tactility/bindings/root.h>
#include <tactility/bindings/esp32_gpio.h>
#include <tactility/bindings/esp32_i2c.h>
#include <tactility/bindings/esp32_sdmmc.h>
#include <tactility/bindings/esp32_spi.h>
#include <tactility/bindings/esp32_uart.h>

Expand Down Expand Up @@ -30,6 +31,17 @@
pin-sclk = <&gpio0 5 GPIO_FLAG_NONE>;
};

sdmmc0 {
compatible = "espressif,esp32-sdmmc";
pin-clk = <&gpio0 12 GPIO_FLAG_NONE>;
pin-cmd = <&gpio0 16 GPIO_FLAG_NONE>;
pin-d0 = <&gpio0 14 GPIO_FLAG_NONE>;
pin-d1 = <&gpio0 17 GPIO_FLAG_NONE>;
pin-d2 = <&gpio0 21 GPIO_FLAG_NONE>;
pin-d3 = <&gpio0 18 GPIO_FLAG_NONE>;
bus-width = <4>;
};

stemma_qt: uart1 {
compatible = "espressif,esp32-uart";
port = <UART_NUM_1>;
Expand Down
23 changes: 0 additions & 23 deletions Devices/lilygo-thmi-s3/Source/devices/SdCard.cpp

This file was deleted.

15 changes: 0 additions & 15 deletions Devices/lilygo-thmi-s3/Source/devices/SdCard.h

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#include "devices/Power.h"
#include "devices/SdCard.h"
#include "devices/Display.h"

#include <ButtonControl.h>
Expand All @@ -11,7 +10,6 @@ using namespace tt::hal;

static std::vector<std::shared_ptr<tt::hal::Device>> createDevices() {
return {
createSdCard(),
createDisplay(),
std::make_shared<Power>(),
ButtonControl::createOneButtonControl(0)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
#include "Tactility/kernel/SystemEvents.h"
#include <Tactility/TactilityCore.h>

#define TAG "thmi-s3"
#define TAG "thmi"

static bool powerOn() {
gpio_config_t power_signal_config = {
.pin_bit_mask = (1ULL << THMI_S3_POWERON_GPIO) | (1ULL << THMI_S3_POWEREN_GPIO),
.pin_bit_mask = (1ULL << THMI_POWERON_GPIO) | (1ULL << THMI_POWEREN_GPIO),
.mode = GPIO_MODE_OUTPUT,
.pull_up_en = GPIO_PULLUP_DISABLE,
.pull_down_en = GPIO_PULLDOWN_DISABLE,
Expand All @@ -20,11 +20,11 @@ static bool powerOn() {
return false;
}

if (gpio_set_level(THMI_S3_POWERON_GPIO, 1) != ESP_OK) {
if (gpio_set_level(THMI_POWERON_GPIO, 1) != ESP_OK) {
return false;
}

if (gpio_set_level(THMI_S3_POWEREN_GPIO, 1) != ESP_OK) {
if (gpio_set_level(THMI_POWEREN_GPIO, 1) != ESP_OK) {
return false;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,16 @@
#include <ChargeFromVoltage.h>
#include <Tactility/hal/power/PowerDevice.h>

constexpr auto THMI_S3_POWEREN_GPIO = GPIO_NUM_10;
constexpr auto THMI_S3_POWERON_GPIO = GPIO_NUM_14;
constexpr auto THMI_POWEREN_GPIO = GPIO_NUM_10;
constexpr auto THMI_POWERON_GPIO = GPIO_NUM_14;

using tt::hal::power::PowerDevice;

class Power final : public PowerDevice {

ChargeFromVoltage chargeFromAdcVoltage = ChargeFromVoltage(3.3f, 4.2f);
bool initialized = false;
esp_adc_cal_characteristics_t adcCharacteristics;
bool initialized = false;
bool calibrated = false;

bool adcInitCalibration();
Expand All @@ -25,7 +25,7 @@ class Power final : public PowerDevice {

public:

std::string getName() const override { return "T-hmi Power"; }
std::string getName() const override { return "T-HMI Power"; }
std::string getDescription() const override { return "Power measurement via ADC"; }

bool supportsMetric(MetricType type) const override;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ static error_t stop() {
}

struct Module lilygo_thmi_s3_module = {
.name = "lilygo-thmi-s3",
.name = "lilygo-thmi",
.start = start,
.stop = stop,
.symbols = nullptr,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[general]
vendor=LilyGO
name=T-HMI S3
name=T-HMI

[apps]
launcherAppId=Launcher
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
dependencies:
- Platforms/platform-esp32
dts: lilygo,thmi-s3.dts
dts: lilygo,thmi.dts
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@
#include <tactility/bindings/root.h>
#include <tactility/bindings/esp32_gpio.h>
#include <tactility/bindings/esp32_i2c.h>
#include <tactility/bindings/esp32_sdmmc.h>
#include <tactility/bindings/esp32_spi.h>

/ {
compatible = "root";
model = "LilyGO T-HMI S3";
model = "LilyGO T-HMI";

gpio0 {
compatible = "espressif,esp32-gpio";
Expand All @@ -21,4 +22,12 @@
pin-miso = <&gpio0 4 GPIO_FLAG_NONE>;
pin-sclk = <&gpio0 1 GPIO_FLAG_NONE>;
};

sdmmc0 {
compatible = "espressif,esp32-sdmmc";
pin-clk = <&gpio0 12 GPIO_FLAG_NONE>;
pin-cmd = <&gpio0 11 GPIO_FLAG_NONE>;
pin-d0 = <&gpio0 13 GPIO_FLAG_NONE>;
bus-width = <1>;
};
};
2 changes: 1 addition & 1 deletion Devices/m5stack-tab5/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ file(GLOB_RECURSE SOURCE_FILES Source/*.c*)
idf_component_register(
SRCS ${SOURCE_FILES}
INCLUDE_DIRS "Source"
REQUIRES Tactility esp_lvgl_port esp_lcd EspLcdCompat esp_lcd_ili9881c GT911 PwmBacklight driver vfs fatfs pi4ioe5v6408-module
REQUIRES Tactility esp_lvgl_port esp_lcd EspLcdCompat esp_lcd_ili9881c GT911 PwmBacklight driver vfs fatfs
)
Loading