mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-02-22 16:35:06 +00:00
Compare commits
6 Commits
ebf9a81395
...
a0c818b4ca
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a0c818b4ca | ||
|
|
67b79b0efa | ||
|
|
d86c11d2ac | ||
|
|
63866fb371 | ||
|
|
457c21ffd8 | ||
|
|
65335578a4 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -20,3 +20,4 @@ dependencies.lock
|
|||||||
.vscode/
|
.vscode/
|
||||||
.gitpod.yml
|
.gitpod.yml
|
||||||
|
|
||||||
|
sdkconfig.board.*.dev
|
||||||
@ -1,22 +1,25 @@
|
|||||||
#include "E32R28T.h"
|
#include "E32R28T.h"
|
||||||
#include "hal/YellowSdCard.h"
|
#include "devices/SdCard.h"
|
||||||
#include "hal/YellowDisplay.h"
|
#include "devices/Display.h"
|
||||||
#include "hal/YellowDisplayConstants.h"
|
|
||||||
#include <Tactility/lvgl/LvglSync.h>
|
#include <Tactility/lvgl/LvglSync.h>
|
||||||
#include <Tactility/app/App.h>
|
|
||||||
#include <PwmBacklight.h>
|
#include <PwmBacklight.h>
|
||||||
|
|
||||||
#define CYD_SPI_TRANSFER_SIZE_LIMIT (240 * 320 / 4 * 2)
|
#define CYD_SPI_TRANSFER_SIZE_LIMIT (240 * 320 / 4 * 2)
|
||||||
|
|
||||||
bool initBoot() {
|
static bool initBoot() {
|
||||||
return driver::pwmbacklight::init(CYD_BACKLIGHT_PIN);
|
return driver::pwmbacklight::init(CYD_BACKLIGHT_PIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static tt::hal::DeviceVector createDevices() {
|
||||||
|
return {
|
||||||
|
createDisplay(),
|
||||||
|
createSdCard()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
const tt::hal::Configuration cyd_e32r28t_config = {
|
const tt::hal::Configuration cyd_e32r28t_config = {
|
||||||
.initBoot = initBoot,
|
.initBoot = initBoot,
|
||||||
.createDisplay = createDisplay,
|
.createDevices = createDevices,
|
||||||
.sdcard = createYellowSdCard(),
|
|
||||||
.power = nullptr,
|
|
||||||
.i2c = {},
|
.i2c = {},
|
||||||
.spi = {
|
.spi = {
|
||||||
tt::hal::spi::Configuration {
|
tt::hal::spi::Configuration {
|
||||||
|
|||||||
41
Boards/CYD-E32R28T/Source/devices/Display.cpp
Normal file
41
Boards/CYD-E32R28T/Source/devices/Display.cpp
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
#include "Display.h"
|
||||||
|
|
||||||
|
#include <Xpt2046SoftSpi.h>
|
||||||
|
#include <Ili934xDisplay.h>
|
||||||
|
#include <PwmBacklight.h>
|
||||||
|
#include <Tactility/hal/touch/TouchDevice.h>
|
||||||
|
|
||||||
|
static std::shared_ptr<tt::hal::touch::TouchDevice> createTouch() {
|
||||||
|
auto config = std::make_unique<Xpt2046SoftSpi::Configuration>(
|
||||||
|
CYD_TOUCH_MOSI_PIN,
|
||||||
|
CYD_TOUCH_MISO_PIN,
|
||||||
|
CYD_TOUCH_SCK_PIN,
|
||||||
|
CYD_TOUCH_CS_PIN,
|
||||||
|
CYD_DISPLAY_HORIZONTAL_RESOLUTION,
|
||||||
|
CYD_DISPLAY_VERTICAL_RESOLUTION,
|
||||||
|
false,
|
||||||
|
true,
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
|
return std::make_shared<Xpt2046SoftSpi>(std::move(config));
|
||||||
|
}
|
||||||
|
|
||||||
|
std::shared_ptr<tt::hal::display::DisplayDevice> createDisplay() {
|
||||||
|
auto configuration = std::make_unique<Ili934xDisplay::Configuration>(
|
||||||
|
CYD_DISPLAY_SPI_HOST,
|
||||||
|
CYD_DISPLAY_PIN_CS,
|
||||||
|
CYD_DISPLAY_PIN_DC,
|
||||||
|
CYD_DISPLAY_HORIZONTAL_RESOLUTION,
|
||||||
|
CYD_DISPLAY_VERTICAL_RESOLUTION,
|
||||||
|
createTouch(),
|
||||||
|
false,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
0,
|
||||||
|
LCD_RGB_ELEMENT_ORDER_BGR
|
||||||
|
);
|
||||||
|
configuration->backlightDutyFunction = driver::pwmbacklight::setBacklightDuty;
|
||||||
|
return std::make_shared<Ili934xDisplay>(std::move(configuration));
|
||||||
|
}
|
||||||
@ -1,5 +1,8 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <Tactility/hal/display/DisplayDevice.h>
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
// Display
|
// Display
|
||||||
#define CYD_DISPLAY_SPI_HOST SPI2_HOST
|
#define CYD_DISPLAY_SPI_HOST SPI2_HOST
|
||||||
#define CYD_DISPLAY_PIN_CS GPIO_NUM_15
|
#define CYD_DISPLAY_PIN_CS GPIO_NUM_15
|
||||||
@ -16,10 +19,7 @@
|
|||||||
#define CYD_TOUCH_CS_PIN GPIO_NUM_33
|
#define CYD_TOUCH_CS_PIN GPIO_NUM_33
|
||||||
#define CYD_TOUCH_IRQ_PIN GPIO_NUM_36
|
#define CYD_TOUCH_IRQ_PIN GPIO_NUM_36
|
||||||
|
|
||||||
// SD Card
|
|
||||||
#define CYD_SDCARD_SPI_HOST SPI3_HOST
|
|
||||||
#define CYD_SDCARD_PIN_CS GPIO_NUM_5
|
|
||||||
|
|
||||||
|
|
||||||
// Backlight
|
// Backlight
|
||||||
#define CYD_BACKLIGHT_PIN GPIO_NUM_21
|
#define CYD_BACKLIGHT_PIN GPIO_NUM_21
|
||||||
|
|
||||||
|
std::shared_ptr<tt::hal::display::DisplayDevice> createDisplay();
|
||||||
21
Boards/CYD-E32R28T/Source/devices/SdCard.cpp
Normal file
21
Boards/CYD-E32R28T/Source/devices/SdCard.cpp
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#include "SdCard.h"
|
||||||
|
#include <Tactility/hal/sdcard/SpiSdCardDevice.h>
|
||||||
|
|
||||||
|
using tt::hal::sdcard::SpiSdCardDevice;
|
||||||
|
|
||||||
|
std::shared_ptr<SdCardDevice> createSdCard() {
|
||||||
|
auto configuration = std::make_unique<SpiSdCardDevice::Config>(
|
||||||
|
GPIO_NUM_5,
|
||||||
|
GPIO_NUM_NC,
|
||||||
|
GPIO_NUM_NC,
|
||||||
|
GPIO_NUM_NC,
|
||||||
|
SdCardDevice::MountBehaviour::AtBoot,
|
||||||
|
std::make_shared<tt::Mutex>(),
|
||||||
|
std::vector<gpio_num_t>(),
|
||||||
|
SPI3_HOST
|
||||||
|
);
|
||||||
|
|
||||||
|
return std::make_shared<SpiSdCardDevice>(
|
||||||
|
std::move(configuration)
|
||||||
|
);
|
||||||
|
}
|
||||||
7
Boards/CYD-E32R28T/Source/devices/SdCard.h
Normal file
7
Boards/CYD-E32R28T/Source/devices/SdCard.h
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <Tactility/hal/sdcard/SdCardDevice.h>
|
||||||
|
|
||||||
|
using tt::hal::sdcard::SdCardDevice;
|
||||||
|
|
||||||
|
std::shared_ptr<SdCardDevice> createSdCard();
|
||||||
@ -1,58 +0,0 @@
|
|||||||
#include "YellowDisplay.h"
|
|
||||||
#include "YellowDisplayConstants.h"
|
|
||||||
#include "Xpt2046SoftSpi.h"
|
|
||||||
#include <Ili934xDisplay.h>
|
|
||||||
#include <PwmBacklight.h>
|
|
||||||
#include <Tactility/hal/touch/TouchDevice.h>
|
|
||||||
#include <esp_log.h>
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
static const char* TAG = "YellowDisplay";
|
|
||||||
|
|
||||||
// Global to hold reference (only needed if calling stop() later)
|
|
||||||
static std::unique_ptr<Xpt2046SoftSpi> touch;
|
|
||||||
|
|
||||||
static std::shared_ptr<tt::hal::touch::TouchDevice> createTouch() {
|
|
||||||
ESP_LOGI(TAG, "Creating bitbang SPI touch");
|
|
||||||
|
|
||||||
// Create bitbang config object
|
|
||||||
auto config = std::make_unique<Xpt2046SoftSpi::Configuration>(
|
|
||||||
CYD_TOUCH_MOSI_PIN,
|
|
||||||
CYD_TOUCH_MISO_PIN,
|
|
||||||
CYD_TOUCH_SCK_PIN,
|
|
||||||
CYD_TOUCH_CS_PIN,
|
|
||||||
CYD_DISPLAY_HORIZONTAL_RESOLUTION, // 240
|
|
||||||
CYD_DISPLAY_VERTICAL_RESOLUTION, // 320
|
|
||||||
false, // swapXY
|
|
||||||
true, // mirrorX
|
|
||||||
false // mirrorY
|
|
||||||
);
|
|
||||||
|
|
||||||
// Allocate the driver
|
|
||||||
touch = std::make_unique<Xpt2046SoftSpi>(std::move(config));
|
|
||||||
|
|
||||||
// Start the driver
|
|
||||||
if (!touch->start()) {
|
|
||||||
ESP_LOGE(TAG, "Touch driver start failed");
|
|
||||||
}
|
|
||||||
|
|
||||||
return std::shared_ptr<tt::hal::touch::TouchDevice>(touch.get(), [](tt::hal::touch::TouchDevice*) {
|
|
||||||
// No delete needed; `touch` is managed above
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
std::shared_ptr<tt::hal::display::DisplayDevice> createDisplay() {
|
|
||||||
auto touch_device = createTouch();
|
|
||||||
auto configuration = std::make_unique<Ili934xDisplay::Configuration>(
|
|
||||||
CYD_DISPLAY_SPI_HOST,
|
|
||||||
CYD_DISPLAY_PIN_CS,
|
|
||||||
CYD_DISPLAY_PIN_DC,
|
|
||||||
CYD_DISPLAY_HORIZONTAL_RESOLUTION,
|
|
||||||
CYD_DISPLAY_VERTICAL_RESOLUTION,
|
|
||||||
touch_device
|
|
||||||
);
|
|
||||||
configuration->mirrorX = true;
|
|
||||||
configuration->backlightDutyFunction = driver::pwmbacklight::setBacklightDuty;
|
|
||||||
configuration->rgbElementOrder = LCD_RGB_ELEMENT_ORDER_BGR;
|
|
||||||
return std::make_shared<Ili934xDisplay>(std::move(configuration));
|
|
||||||
}
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "Tactility/hal/display/DisplayDevice.h"
|
|
||||||
#include <memory>
|
|
||||||
|
|
||||||
std::shared_ptr<tt::hal::display::DisplayDevice> createDisplay();
|
|
||||||
@ -1,22 +0,0 @@
|
|||||||
#include "YellowSdCard.h"
|
|
||||||
#include "YellowDisplayConstants.h"
|
|
||||||
#include <Tactility/hal/sdcard/SpiSdCardDevice.h>
|
|
||||||
|
|
||||||
using tt::hal::sdcard::SpiSdCardDevice;
|
|
||||||
|
|
||||||
std::shared_ptr<SdCardDevice> createYellowSdCard() {
|
|
||||||
auto* configuration = new SpiSdCardDevice::Config(
|
|
||||||
CYD_SDCARD_PIN_CS,
|
|
||||||
GPIO_NUM_NC, // No card detect pin specified
|
|
||||||
GPIO_NUM_NC,
|
|
||||||
GPIO_NUM_NC,
|
|
||||||
SdCardDevice::MountBehaviour::AtBoot,
|
|
||||||
std::make_shared<tt::Mutex>(),
|
|
||||||
std::vector<gpio_num_t>(),
|
|
||||||
CYD_SDCARD_SPI_HOST
|
|
||||||
);
|
|
||||||
|
|
||||||
return std::shared_ptr<SdCardDevice>(
|
|
||||||
new SpiSdCardDevice(std::unique_ptr<SpiSdCardDevice::Config>(configuration))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "Tactility/hal/sdcard/SdCardDevice.h"
|
|
||||||
|
|
||||||
using tt::hal::sdcard::SdCardDevice;
|
|
||||||
|
|
||||||
std::shared_ptr<SdCardDevice> createYellowSdCard();
|
|
||||||
@ -13,19 +13,18 @@ public:
|
|||||||
std::string getName() const override { return "SDL Display"; }
|
std::string getName() const override { return "SDL Display"; }
|
||||||
std::string getDescription() const override { return ""; }
|
std::string getDescription() const override { return ""; }
|
||||||
|
|
||||||
bool start() override {
|
bool start() override { return true; }
|
||||||
return displayHandle != nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool stop() override { tt_crash("Not supported"); }
|
bool stop() override { tt_crash("Not supported"); }
|
||||||
|
|
||||||
bool supportsLvgl() const override { return true; }
|
bool supportsLvgl() const override { return true; }
|
||||||
bool startLvgl() override { return true; }
|
bool startLvgl() override { return displayHandle != nullptr; }
|
||||||
bool stopLvgl() override { tt_crash("Not supported"); }
|
bool stopLvgl() override { tt_crash("Not supported"); }
|
||||||
|
lv_display_t* _Nullable getLvglDisplay() const override { return displayHandle; }
|
||||||
|
|
||||||
std::shared_ptr<tt::hal::touch::TouchDevice> _Nullable getTouchDevice() override { return std::make_shared<SdlTouch>(); }
|
std::shared_ptr<tt::hal::touch::TouchDevice> _Nullable getTouchDevice() override { return std::make_shared<SdlTouch>(); }
|
||||||
|
|
||||||
lv_display_t* _Nullable getLvglDisplay() const override { return displayHandle; }
|
bool supportsDisplayDriver() const override { return false; }
|
||||||
|
std::shared_ptr<tt::hal::display::DisplayDriver> _Nullable getDisplayDriver() override { return nullptr; }
|
||||||
};
|
};
|
||||||
|
|
||||||
std::shared_ptr<tt::hal::display::DisplayDevice> createDisplay() {
|
std::shared_ptr<tt::hal::display::DisplayDevice> createDisplay() {
|
||||||
|
|||||||
@ -17,9 +17,17 @@
|
|||||||
Scan these paths on startup.
|
Scan these paths on startup.
|
||||||
Make the AppList use the scan results.
|
Make the AppList use the scan results.
|
||||||
|
|
||||||
|
## Medium Priority
|
||||||
|
|
||||||
|
- Unify the way displays are dimmed. Some implementations turn off the display when it's fully dimmed. Make this a separate functionality.
|
||||||
|
- Try out ILI9342 https://github.com/jbrilha/esp_lcd_ili9342
|
||||||
|
- All drivers (e.g. display, touch, etc.) should call stop() in their destructor, or at least assert that they should not be running.
|
||||||
|
- Create different partition files for different ESP flash size targets (N4, N8, N16, N32)
|
||||||
|
Consider a dev variant for quick flashing.
|
||||||
|
- Bug: Turn on WiFi (when testing it wasn't connected/connecting - just active). Open chat. Observe crash.
|
||||||
|
|
||||||
## Lower Priority
|
## Lower Priority
|
||||||
|
|
||||||
- Try out ILI9342 https://github.com/jbrilha/esp_lcd_ili9342
|
|
||||||
- Localize all apps
|
- Localize all apps
|
||||||
- Support hot-plugging SD card (note: this is not possible if they require the CS pin hack)
|
- Support hot-plugging SD card (note: this is not possible if they require the CS pin hack)
|
||||||
- Create more unit tests for `tactility`
|
- Create more unit tests for `tactility`
|
||||||
@ -28,22 +36,16 @@
|
|||||||
- CrashHandler: process other types of crashes (WDT?)
|
- CrashHandler: process other types of crashes (WDT?)
|
||||||
- Add a Keyboard setting in `keyboard.properties` to override the behaviour of soft keyboard hiding (e.g. keyboard hardware is present, but the user wants to use a soft keyboard)
|
- Add a Keyboard setting in `keyboard.properties` to override the behaviour of soft keyboard hiding (e.g. keyboard hardware is present, but the user wants to use a soft keyboard)
|
||||||
- Use GPS time to set/update the current time
|
- Use GPS time to set/update the current time
|
||||||
- All drivers (e.g. display, touch, etc.) should call stop() in their destructor, or at least assert that they should not be running.
|
|
||||||
- Fix bug in T-Deck/etc: esp_lvgl_port settings has a large stack size (~9kB) to fix an issue where the T-Deck would get a stackoverflow. This sometimes happens when WiFi is auto-enabled and you open the app while it is still connecting.
|
- Fix bug in T-Deck/etc: esp_lvgl_port settings has a large stack size (~9kB) to fix an issue where the T-Deck would get a stackoverflow. This sometimes happens when WiFi is auto-enabled and you open the app while it is still connecting.
|
||||||
- Start using non_null (either via MS GSL, or custom)
|
- Consider using non_null (either via MS GSL, or custom)
|
||||||
- `hal/Configuration.h` defines C function types: Use C++ std::function instead
|
|
||||||
- Fix system time to not be 1980 (use build year as a minimum). Consider keeping track of the last known time.
|
- Fix system time to not be 1980 (use build year as a minimum). Consider keeping track of the last known time.
|
||||||
- Use std::span or string_view in StringUtils https://youtu.be/FRkJCvHWdwQ?t=2754
|
- Use std::span or string_view in StringUtils https://youtu.be/FRkJCvHWdwQ?t=2754
|
||||||
- Mutex: Implement give/take from ISR support (works only for non-recursive ones)
|
- Mutex: Implement give/take from ISR support (works only for non-recursive ones)
|
||||||
- Extend unPhone power driver: add charging status, usb connection status, etc.
|
- Extend unPhone power driver: add charging status, usb connection status, etc.
|
||||||
- Create different partition files for different ESP flash size targets (N4, N8, N16, N32)
|
- Clear screen before turning on blacklight (e.g. T-Deck, CYD 2432S028R, etc.)
|
||||||
- T-Deck: Clear screen before turning on blacklight
|
- T-Deck: Use trackball as input device (with optional mouse functionality for LVGL)
|
||||||
- T-Deck: Use knob for UI selection?
|
|
||||||
- Show a warning screen if firmware encryption or secure boot are off when saving WiFi credentials.
|
- Show a warning screen if firmware encryption or secure boot are off when saving WiFi credentials.
|
||||||
- Show a warning screen when a user plugs in the SD card on a device that only supports mounting at boot.
|
|
||||||
- Scanning SD card for external apps and auto-register them (in a temporary register?)
|
|
||||||
- Remove flex_flow from app_container in Gui.cpp
|
- Remove flex_flow from app_container in Gui.cpp
|
||||||
- Bug: Turn on WiFi (when testing it wasn't connected/connecting - just active). Open chat. Observe crash.
|
|
||||||
|
|
||||||
# Nice-to-haves
|
# Nice-to-haves
|
||||||
|
|
||||||
@ -82,3 +84,5 @@
|
|||||||
- Todo list
|
- Todo list
|
||||||
- Calendar
|
- Calendar
|
||||||
- Display touch calibration
|
- Display touch calibration
|
||||||
|
- RSS reader
|
||||||
|
- Static file web server (with option to specify path and port)
|
||||||
|
|||||||
@ -68,7 +68,7 @@ bool EspLcdDisplay::startLvgl() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
auto touch_device = getTouchDevice();
|
auto touch_device = getTouchDevice();
|
||||||
if (touch_device != nullptr) {
|
if (touch_device != nullptr && touch_device->supportsLvgl()) {
|
||||||
touch_device->startLvgl(lvglDisplay);
|
touch_device->startLvgl(lvglDisplay);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -52,20 +52,63 @@ static void ensureNvsInitialized() {
|
|||||||
initialized = (result == ESP_OK);
|
initialized = (result == ESP_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Xpt2046SoftSpi::startLvgl(lv_display_t* display) {
|
bool Xpt2046SoftSpi::start() {
|
||||||
|
ensureNvsInitialized();
|
||||||
|
|
||||||
// Create LVGL input device
|
TT_LOG_I(TAG, "Starting Xpt2046SoftSpi touch driver");
|
||||||
deviceHandle = lv_indev_create();
|
|
||||||
if (!deviceHandle) {
|
// Configure GPIO pins
|
||||||
TT_LOG_E(TAG, "Failed to create LVGL input device");
|
gpio_config_t io_conf = {};
|
||||||
|
|
||||||
|
// Configure MOSI, CLK, CS as outputs
|
||||||
|
io_conf.intr_type = GPIO_INTR_DISABLE;
|
||||||
|
io_conf.mode = GPIO_MODE_OUTPUT;
|
||||||
|
io_conf.pin_bit_mask = (1ULL << configuration->mosiPin) |
|
||||||
|
(1ULL << configuration->clkPin) |
|
||||||
|
(1ULL << configuration->csPin);
|
||||||
|
io_conf.pull_down_en = GPIO_PULLDOWN_DISABLE;
|
||||||
|
io_conf.pull_up_en = GPIO_PULLUP_DISABLE;
|
||||||
|
|
||||||
|
if (gpio_config(&io_conf) != ESP_OK) {
|
||||||
|
TT_LOG_E(TAG, "Failed to configure output pins");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
lv_indev_set_type(deviceHandle, LV_INDEV_TYPE_POINTER);
|
// Configure MISO as input
|
||||||
lv_indev_set_read_cb(deviceHandle, touchReadCallback);
|
io_conf.mode = GPIO_MODE_INPUT;
|
||||||
lv_indev_set_user_data(deviceHandle, this);
|
io_conf.pin_bit_mask = (1ULL << configuration->misoPin);
|
||||||
|
io_conf.pull_up_en = GPIO_PULLUP_ENABLE;
|
||||||
|
|
||||||
|
if (gpio_config(&io_conf) != ESP_OK) {
|
||||||
|
TT_LOG_E(TAG, "Failed to configure input pin");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize pin states
|
||||||
|
gpio_set_level(configuration->csPin, 1); // CS high
|
||||||
|
gpio_set_level(configuration->clkPin, 0); // CLK low
|
||||||
|
gpio_set_level(configuration->mosiPin, 0); // MOSI low
|
||||||
|
|
||||||
|
TT_LOG_I(TAG, "GPIO configured: MOSI=%d, MISO=%d, CLK=%d, CS=%d", configuration->mosiPin, configuration->misoPin, configuration->clkPin, configuration->csPin);
|
||||||
|
|
||||||
|
// Load or perform calibration
|
||||||
|
bool calibrationValid = true; //loadCalibration() && !RERUN_CALIBRATE;
|
||||||
|
if (calibrationValid) {
|
||||||
|
// Check if calibration values are valid (xMin != xMax, yMin != yMax)
|
||||||
|
if (cal.xMin == cal.xMax || cal.yMin == cal.yMax) {
|
||||||
|
TT_LOG_W(TAG, "Invalid calibration detected: xMin=%d, xMax=%d, yMin=%d, yMax=%d", cal.xMin, cal.xMax, cal.yMin, cal.yMax);
|
||||||
|
calibrationValid = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!calibrationValid) {
|
||||||
|
TT_LOG_W(TAG, "Calibration data not found, invalid, or forced recalibration");
|
||||||
|
calibrate();
|
||||||
|
saveCalibration();
|
||||||
|
} else {
|
||||||
|
TT_LOG_I(TAG, "Loaded calibration: xMin=%d, yMin=%d, xMax=%d, yMax=%d", cal.xMin, cal.yMin, cal.xMax, cal.yMax);
|
||||||
|
}
|
||||||
|
|
||||||
TT_LOG_I(TAG, "Xpt2046SoftSpi touch driver started successfully");
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -73,13 +116,41 @@ bool Xpt2046SoftSpi::stop() {
|
|||||||
TT_LOG_I(TAG, "Stopping Xpt2046SoftSpi touch driver");
|
TT_LOG_I(TAG, "Stopping Xpt2046SoftSpi touch driver");
|
||||||
|
|
||||||
// Stop LVLG if needed
|
// Stop LVLG if needed
|
||||||
if (deviceHandle != nullptr) {
|
if (lvglDevice != nullptr) {
|
||||||
stopLvgl();
|
stopLvgl();
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Xpt2046SoftSpi::startLvgl(lv_display_t* display) {
|
||||||
|
if (lvglDevice != nullptr) {
|
||||||
|
TT_LOG_E(TAG, "LVGL was already started");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
lvglDevice = lv_indev_create();
|
||||||
|
if (!lvglDevice) {
|
||||||
|
TT_LOG_E(TAG, "Failed to create LVGL input device");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
lv_indev_set_type(lvglDevice, LV_INDEV_TYPE_POINTER);
|
||||||
|
lv_indev_set_read_cb(lvglDevice, touchReadCallback);
|
||||||
|
lv_indev_set_user_data(lvglDevice, this);
|
||||||
|
|
||||||
|
TT_LOG_I(TAG, "Xpt2046SoftSpi touch driver started successfully");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Xpt2046SoftSpi::stopLvgl() {
|
||||||
|
if (lvglDevice != nullptr) {
|
||||||
|
lv_indev_delete(lvglDevice);
|
||||||
|
lvglDevice = nullptr;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
int Xpt2046SoftSpi::readSPI(uint8_t command) {
|
int Xpt2046SoftSpi::readSPI(uint8_t command) {
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
@ -186,12 +257,14 @@ void Xpt2046SoftSpi::setCalibration(int xMin, int yMin, int xMax, int yMax) {
|
|||||||
TT_LOG_I(TAG, "Manual calibration set: xMin=%d, yMin=%d, xMax=%d, yMax=%d", xMin, yMin, xMax, yMax);
|
TT_LOG_I(TAG, "Manual calibration set: xMin=%d, yMin=%d, xMax=%d, yMax=%d", xMin, yMin, xMax, yMax);
|
||||||
}
|
}
|
||||||
|
|
||||||
Point Xpt2046SoftSpi::getTouch() {
|
bool Xpt2046SoftSpi::getTouchPoint(Point& point) {
|
||||||
|
|
||||||
const int samples = 8; // More samples for better accuracy
|
const int samples = 8; // More samples for better accuracy
|
||||||
int totalX = 0, totalY = 0;
|
int totalX = 0, totalY = 0;
|
||||||
int validSamples = 0;
|
int validSamples = 0;
|
||||||
|
|
||||||
|
gpio_set_level(configuration->csPin, 0);
|
||||||
|
|
||||||
for (int i = 0; i < samples; i++) {
|
for (int i = 0; i < samples; i++) {
|
||||||
int rawX = readSPI(CMD_READ_X);
|
int rawX = readSPI(CMD_READ_X);
|
||||||
int rawY = readSPI(CMD_READ_Y);
|
int rawY = readSPI(CMD_READ_Y);
|
||||||
@ -206,8 +279,10 @@ Point Xpt2046SoftSpi::getTouch() {
|
|||||||
vTaskDelay(pdMS_TO_TICKS(1));
|
vTaskDelay(pdMS_TO_TICKS(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gpio_set_level(configuration->csPin, 1);
|
||||||
|
|
||||||
if (validSamples == 0) {
|
if (validSamples == 0) {
|
||||||
return Point {0, 0};
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
int rawX = totalX / validSamples;
|
int rawX = totalX / validSamples;
|
||||||
@ -218,7 +293,7 @@ Point Xpt2046SoftSpi::getTouch() {
|
|||||||
|
|
||||||
if (xRange <= 0 || yRange <= 0) {
|
if (xRange <= 0 || yRange <= 0) {
|
||||||
TT_LOG_W(TAG, "Invalid calibration: xRange=%d, yRange=%d", xRange, yRange);
|
TT_LOG_W(TAG, "Invalid calibration: xRange=%d, yRange=%d", xRange, yRange);
|
||||||
return Point {0, 0};
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
int x = (rawX - cal.xMin) * configuration->xMax / xRange;
|
int x = (rawX - cal.xMin) * configuration->xMax / xRange;
|
||||||
@ -228,17 +303,20 @@ Point Xpt2046SoftSpi::getTouch() {
|
|||||||
if (configuration->mirrorX) x = configuration->xMax - x;
|
if (configuration->mirrorX) x = configuration->xMax - x;
|
||||||
if (configuration->mirrorY) y = configuration->yMax - y;
|
if (configuration->mirrorY) y = configuration->yMax - y;
|
||||||
|
|
||||||
x = std::clamp(x, 0, (int)configuration->xMax);
|
point.x = std::clamp(x, 0, (int)configuration->xMax);
|
||||||
y = std::clamp(y, 0, (int)configuration->yMax);
|
point.y = std::clamp(y, 0, (int)configuration->yMax);
|
||||||
|
|
||||||
return Point {x, y};
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Merge isTouched() and getTouchPoint() into 1 method
|
||||||
bool Xpt2046SoftSpi::isTouched() {
|
bool Xpt2046SoftSpi::isTouched() {
|
||||||
const int samples = 3;
|
const int samples = 3;
|
||||||
int xTotal = 0, yTotal = 0;
|
int xTotal = 0, yTotal = 0;
|
||||||
int validSamples = 0;
|
int validSamples = 0;
|
||||||
|
|
||||||
|
gpio_set_level(configuration->csPin, 0);
|
||||||
|
|
||||||
for (int i = 0; i < samples; i++) {
|
for (int i = 0; i < samples; i++) {
|
||||||
int x = readSPI(CMD_READ_X);
|
int x = readSPI(CMD_READ_X);
|
||||||
int y = readSPI(CMD_READ_Y);
|
int y = readSPI(CMD_READ_Y);
|
||||||
@ -259,7 +337,7 @@ bool Xpt2046SoftSpi::isTouched() {
|
|||||||
|
|
||||||
// Debug logging (remove this once working)
|
// Debug logging (remove this once working)
|
||||||
if (touched) {
|
if (touched) {
|
||||||
TT_LOG_I(TAG, "Touch detected: validSamples=%d, avgX=%d, avgY=%d", validSamples, xTotal / validSamples, yTotal / validSamples);
|
TT_LOG_D(TAG, "Touch detected: validSamples=%d, avgX=%d, avgY=%d", validSamples, xTotal / validSamples, yTotal / validSamples);
|
||||||
}
|
}
|
||||||
|
|
||||||
return touched;
|
return touched;
|
||||||
@ -268,8 +346,8 @@ bool Xpt2046SoftSpi::isTouched() {
|
|||||||
void Xpt2046SoftSpi::touchReadCallback(lv_indev_t* indev, lv_indev_data_t* data) {
|
void Xpt2046SoftSpi::touchReadCallback(lv_indev_t* indev, lv_indev_data_t* data) {
|
||||||
Xpt2046SoftSpi* touch = static_cast<Xpt2046SoftSpi*>(lv_indev_get_user_data(indev));
|
Xpt2046SoftSpi* touch = static_cast<Xpt2046SoftSpi*>(lv_indev_get_user_data(indev));
|
||||||
|
|
||||||
if (touch && touch->isTouched()) {
|
Point point;
|
||||||
Point point = touch->getTouch();
|
if (touch && touch->isTouched() && touch->getTouchPoint(point)) {
|
||||||
data->point.x = point.x;
|
data->point.x = point.x;
|
||||||
data->point.y = point.y;
|
data->point.y = point.y;
|
||||||
data->state = LV_INDEV_STATE_PRESSED;
|
data->state = LV_INDEV_STATE_PRESSED;
|
||||||
@ -278,81 +356,13 @@ void Xpt2046SoftSpi::touchReadCallback(lv_indev_t* indev, lv_indev_data_t* data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Xpt2046SoftSpi::start() {
|
|
||||||
ensureNvsInitialized();;
|
|
||||||
|
|
||||||
TT_LOG_I(TAG, "Starting Xpt2046SoftSpi touch driver");
|
|
||||||
|
|
||||||
// Configure GPIO pins
|
|
||||||
gpio_config_t io_conf = {};
|
|
||||||
|
|
||||||
// Configure MOSI, CLK, CS as outputs
|
|
||||||
io_conf.intr_type = GPIO_INTR_DISABLE;
|
|
||||||
io_conf.mode = GPIO_MODE_OUTPUT;
|
|
||||||
io_conf.pin_bit_mask = (1ULL << configuration->mosiPin) |
|
|
||||||
(1ULL << configuration->clkPin) |
|
|
||||||
(1ULL << configuration->csPin);
|
|
||||||
io_conf.pull_down_en = GPIO_PULLDOWN_DISABLE;
|
|
||||||
io_conf.pull_up_en = GPIO_PULLUP_DISABLE;
|
|
||||||
|
|
||||||
if (gpio_config(&io_conf) != ESP_OK) {
|
|
||||||
TT_LOG_E(TAG, "Failed to configure output pins");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Configure MISO as input
|
|
||||||
io_conf.mode = GPIO_MODE_INPUT;
|
|
||||||
io_conf.pin_bit_mask = (1ULL << configuration->misoPin);
|
|
||||||
io_conf.pull_up_en = GPIO_PULLUP_ENABLE;
|
|
||||||
|
|
||||||
if (gpio_config(&io_conf) != ESP_OK) {
|
|
||||||
TT_LOG_E(TAG, "Failed to configure input pin");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Initialize pin states
|
|
||||||
gpio_set_level(configuration->csPin, 1); // CS high
|
|
||||||
gpio_set_level(configuration->clkPin, 0); // CLK low
|
|
||||||
gpio_set_level(configuration->mosiPin, 0); // MOSI low
|
|
||||||
|
|
||||||
TT_LOG_I(TAG, "GPIO configured: MOSI=%d, MISO=%d, CLK=%d, CS=%d", configuration->mosiPin, configuration->misoPin, configuration->clkPin, configuration->csPin);
|
|
||||||
|
|
||||||
// Load or perform calibration
|
|
||||||
bool calibrationValid = true; //loadCalibration() && !RERUN_CALIBRATE;
|
|
||||||
if (calibrationValid) {
|
|
||||||
// Check if calibration values are valid (xMin != xMax, yMin != yMax)
|
|
||||||
if (cal.xMin == cal.xMax || cal.yMin == cal.yMax) {
|
|
||||||
TT_LOG_W(TAG, "Invalid calibration detected: xMin=%d, xMax=%d, yMin=%d, yMax=%d", cal.xMin, cal.xMax, cal.yMin, cal.yMax);
|
|
||||||
calibrationValid = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!calibrationValid) {
|
|
||||||
TT_LOG_W(TAG, "Calibration data not found, invalid, or forced recalibration");
|
|
||||||
calibrate();
|
|
||||||
saveCalibration();
|
|
||||||
} else {
|
|
||||||
TT_LOG_I(TAG, "Loaded calibration: xMin=%d, yMin=%d, xMax=%d, yMax=%d", cal.xMin, cal.yMin, cal.xMax, cal.yMax);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Whether this device supports LVGL
|
|
||||||
bool Xpt2046SoftSpi::supportsLvgl() const {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Stop LVGL
|
|
||||||
bool Xpt2046SoftSpi::stopLvgl() {
|
|
||||||
if (deviceHandle != nullptr) {
|
|
||||||
lv_indev_delete(deviceHandle);
|
|
||||||
deviceHandle = nullptr;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return driver instance if any
|
// Return driver instance if any
|
||||||
std::shared_ptr<tt::hal::touch::TouchDriver> Xpt2046SoftSpi::getTouchDriver() {
|
std::shared_ptr<tt::hal::touch::TouchDriver> Xpt2046SoftSpi::getTouchDriver() {
|
||||||
return nullptr; // replace with actual driver later
|
assert(lvglDevice == nullptr); // Still attached to LVGL context. Call stopLvgl() first.
|
||||||
|
|
||||||
|
if (touchDriver == nullptr) {
|
||||||
|
touchDriver = std::make_shared<Xpt2046SoftSpiDriver>(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
return touchDriver;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -57,8 +57,28 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
class Xpt2046SoftSpiDriver final : public tt::hal::touch::TouchDriver {
|
||||||
|
Xpt2046SoftSpi* device;
|
||||||
|
public:
|
||||||
|
Xpt2046SoftSpiDriver(Xpt2046SoftSpi* device) : device(device) {}
|
||||||
|
bool getTouchedPoints(uint16_t* x, uint16_t* y, uint16_t* strength, uint8_t* pointCount, uint8_t maxPointCount) override {
|
||||||
|
Point point;
|
||||||
|
if (device->isTouched() && device->getTouchPoint(point)) {
|
||||||
|
*x = point.x;
|
||||||
|
*y = point.y;
|
||||||
|
*pointCount = 1;
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
*pointCount = 0;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
std::unique_ptr<Configuration> configuration;
|
std::unique_ptr<Configuration> configuration;
|
||||||
lv_indev_t* deviceHandle = nullptr;
|
lv_indev_t* lvglDevice = nullptr;
|
||||||
|
std::shared_ptr<tt::hal::touch::TouchDriver> touchDriver;
|
||||||
|
|
||||||
int readSPI(uint8_t command);
|
int readSPI(uint8_t command);
|
||||||
bool loadCalibration();
|
bool loadCalibration();
|
||||||
@ -75,16 +95,16 @@ public:
|
|||||||
bool start() override;
|
bool start() override;
|
||||||
bool stop() override;
|
bool stop() override;
|
||||||
|
|
||||||
bool supportsLvgl() const override;
|
bool supportsLvgl() const override { return true; }
|
||||||
bool startLvgl(lv_display_t* display) override;
|
bool startLvgl(lv_display_t* display) override;
|
||||||
bool stopLvgl() override;
|
bool stopLvgl() override;
|
||||||
|
|
||||||
bool supportsTouchDriver() override { return true; }
|
bool supportsTouchDriver() override { return true; }
|
||||||
std::shared_ptr<tt::hal::touch::TouchDriver> getTouchDriver() override;
|
std::shared_ptr<tt::hal::touch::TouchDriver> getTouchDriver() override;
|
||||||
lv_indev_t* getLvglIndev() override { return deviceHandle; }
|
lv_indev_t* getLvglIndev() override { return lvglDevice; }
|
||||||
|
|
||||||
// XPT2046-specific methods
|
// XPT2046-specific methods
|
||||||
Point getTouch();
|
bool getTouchPoint(Point& point);
|
||||||
void calibrate();
|
void calibrate();
|
||||||
void setCalibration(int xMin, int yMin, int xMax, int yMax);
|
void setCalibration(int xMin, int yMin, int xMax, int yMax);
|
||||||
bool isTouched();
|
bool isTouched();
|
||||||
|
|||||||
@ -22,7 +22,7 @@ public:
|
|||||||
tt_hal_display_driver_free(handle);
|
tt_hal_display_driver_free(handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool lock(TickType timeout = MAX_TICKS) const {
|
bool lock(TickType timeout = TT_MAX_TICKS) const {
|
||||||
return tt_hal_display_driver_lock(handle, timeout);
|
return tt_hal_display_driver_lock(handle, timeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -34,16 +34,16 @@ public:
|
|||||||
|
|
||||||
/** Set a value in the range [0, 255] */
|
/** Set a value in the range [0, 255] */
|
||||||
virtual void setGammaCurve(uint8_t index) { /* NO-OP */ }
|
virtual void setGammaCurve(uint8_t index) { /* NO-OP */ }
|
||||||
virtual uint8_t getGammaCurveCount() const { return 0; };
|
virtual uint8_t getGammaCurveCount() const { return 0; }
|
||||||
|
|
||||||
virtual bool supportsLvgl() const { return false; }
|
virtual bool supportsLvgl() const = 0;
|
||||||
virtual bool startLvgl() { return false; }
|
virtual bool startLvgl() = 0;
|
||||||
virtual bool stopLvgl() { return false; }
|
virtual bool stopLvgl() = 0;
|
||||||
|
|
||||||
virtual lv_display_t* _Nullable getLvglDisplay() const = 0;
|
virtual lv_display_t* _Nullable getLvglDisplay() const = 0;
|
||||||
|
|
||||||
virtual bool supportsDisplayDriver() const { return false; }
|
virtual bool supportsDisplayDriver() const = 0;
|
||||||
virtual std::shared_ptr<DisplayDriver> _Nullable getDisplayDriver() { return nullptr; }
|
virtual std::shared_ptr<DisplayDriver> _Nullable getDisplayDriver() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace tt::hal::display
|
} // namespace tt::hal::display
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
namespace tt {
|
namespace tt {
|
||||||
|
|
||||||
static const char* TAG = "Partitions";
|
constexpr auto* TAG = "Partitions";
|
||||||
|
|
||||||
static esp_err_t initNvsFlashSafely() {
|
static esp_err_t initNvsFlashSafely() {
|
||||||
esp_err_t result = nvs_flash_init();
|
esp_err_t result = nvs_flash_init();
|
||||||
@ -37,6 +37,7 @@ size_t getSectorSize() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
esp_err_t initPartitionsEsp() {
|
esp_err_t initPartitionsEsp() {
|
||||||
|
TT_LOG_I(TAG, "Init partitions");
|
||||||
ESP_ERROR_CHECK(initNvsFlashSafely());
|
ESP_ERROR_CHECK(initNvsFlashSafely());
|
||||||
|
|
||||||
const esp_vfs_fat_mount_config_t mount_config = {
|
const esp_vfs_fat_mount_config_t mount_config = {
|
||||||
|
|||||||
@ -186,7 +186,7 @@ void initFromBootApp() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void run(const Configuration& config) {
|
void run(const Configuration& config) {
|
||||||
TT_LOG_D(TAG, "run");
|
TT_LOG_I(TAG, "Tactility v%s on %s (%s)", TT_VERSION, CONFIG_TT_BOARD_NAME, CONFIG_TT_BOARD_ID);
|
||||||
|
|
||||||
assert(config.hardware);
|
assert(config.hardware);
|
||||||
const hal::Configuration& hardware = *config.hardware;
|
const hal::Configuration& hardware = *config.hardware;
|
||||||
@ -194,27 +194,25 @@ void run(const Configuration& config) {
|
|||||||
// Assign early so starting services can use it
|
// Assign early so starting services can use it
|
||||||
config_instance = &config;
|
config_instance = &config;
|
||||||
|
|
||||||
TT_LOG_I(TAG, "Tactility v%s on %s (%s)", TT_VERSION, CONFIG_TT_BOARD_NAME, CONFIG_TT_BOARD_ID);
|
|
||||||
#ifdef ESP_PLATFORM
|
#ifdef ESP_PLATFORM
|
||||||
initEsp();
|
initEsp();
|
||||||
#endif
|
#endif
|
||||||
settings::initTimeZone();
|
settings::initTimeZone();
|
||||||
hal::init(*config.hardware);
|
hal::init(*config.hardware);
|
||||||
hal::sdcard::mountAll();
|
|
||||||
network::ntp::init();
|
network::ntp::init();
|
||||||
|
|
||||||
registerAndStartPrimaryServices();
|
registerAndStartPrimaryServices();
|
||||||
lvgl::init(hardware);
|
lvgl::init(hardware);
|
||||||
registerAndStartSecondaryServices();
|
registerAndStartSecondaryServices();
|
||||||
|
|
||||||
TT_LOG_I(TAG, "starting boot app");
|
TT_LOG_I(TAG, "Core systems ready");
|
||||||
|
|
||||||
|
TT_LOG_I(TAG, "Starting boot app");
|
||||||
// The boot app takes care of registering system apps, user services and user apps
|
// The boot app takes care of registering system apps, user services and user apps
|
||||||
addApp(app::boot::manifest);
|
addApp(app::boot::manifest);
|
||||||
service::loader::startApp(app::boot::manifest.id);
|
service::loader::startApp(app::boot::manifest.id);
|
||||||
|
|
||||||
TT_LOG_I(TAG, "init complete");
|
TT_LOG_I(TAG, "Main dispatcher ready");
|
||||||
|
|
||||||
TT_LOG_I(TAG, "Processing main dispatcher");
|
|
||||||
while (true) {
|
while (true) {
|
||||||
mainDispatcher.consume();
|
mainDispatcher.consume();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,21 +9,22 @@
|
|||||||
|
|
||||||
namespace tt {
|
namespace tt {
|
||||||
|
|
||||||
#define TAG "tactility"
|
constexpr auto* TAG = "Tactility";
|
||||||
|
|
||||||
// Initialize NVS
|
// Initialize NVS
|
||||||
static void initNvs() {
|
static void initNvs() {
|
||||||
|
TT_LOG_I(TAG, "Init NVS");
|
||||||
esp_err_t ret = nvs_flash_init();
|
esp_err_t ret = nvs_flash_init();
|
||||||
if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
|
if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
|
||||||
TT_LOG_I(TAG, "nvs erasing");
|
TT_LOG_I(TAG, "NVS erasing");
|
||||||
ESP_ERROR_CHECK(nvs_flash_erase());
|
ESP_ERROR_CHECK(nvs_flash_erase());
|
||||||
ret = nvs_flash_init();
|
ret = nvs_flash_init();
|
||||||
}
|
}
|
||||||
ESP_ERROR_CHECK(ret);
|
ESP_ERROR_CHECK(ret);
|
||||||
TT_LOG_I(TAG, "nvs initialized");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void initNetwork() {
|
static void initNetwork() {
|
||||||
|
TT_LOG_I(TAG, "Init network");
|
||||||
ESP_ERROR_CHECK(esp_netif_init());
|
ESP_ERROR_CHECK(esp_netif_init());
|
||||||
ESP_ERROR_CHECK(esp_event_loop_create_default());
|
ESP_ERROR_CHECK(esp_event_loop_create_default());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,10 +5,16 @@
|
|||||||
#include <Tactility/Tactility.h>
|
#include <Tactility/Tactility.h>
|
||||||
|
|
||||||
#include <lvgl.h>
|
#include <lvgl.h>
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
|
#ifdef ESP_PLATFORM
|
||||||
|
#include <esp_vfs_fat.h>
|
||||||
|
#include <Tactility/MountPoints.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace tt::app::systeminfo {
|
namespace tt::app::systeminfo {
|
||||||
|
|
||||||
#define TAG "system_info"
|
constexpr auto* TAG = "SystemInfo";
|
||||||
|
|
||||||
static size_t getHeapFree() {
|
static size_t getHeapFree() {
|
||||||
#ifdef ESP_PLATFORM
|
#ifdef ESP_PLATFORM
|
||||||
@ -42,7 +48,60 @@ static size_t getSpiTotal() {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void addMemoryBar(lv_obj_t* parent, const char* label, size_t used, size_t total) {
|
enum class StorageUnit {
|
||||||
|
Bytes,
|
||||||
|
Kilobytes,
|
||||||
|
Megabytes,
|
||||||
|
Gigabytes
|
||||||
|
};
|
||||||
|
|
||||||
|
static StorageUnit getStorageUnit(uint64_t value) {
|
||||||
|
using enum StorageUnit;
|
||||||
|
if (value / (1024 * 1024 * 1024) > 0) {
|
||||||
|
return Gigabytes;
|
||||||
|
} else if (value / (1024 * 1024) > 0) {
|
||||||
|
return Megabytes;
|
||||||
|
} else if (value / 1024 > 0) {
|
||||||
|
return Kilobytes;
|
||||||
|
} else {
|
||||||
|
return Bytes;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static std::string getStorageUnitString(StorageUnit unit) {
|
||||||
|
using enum StorageUnit;
|
||||||
|
switch (unit) {
|
||||||
|
case Bytes:
|
||||||
|
return "bytes";
|
||||||
|
case Kilobytes:
|
||||||
|
return "kB";
|
||||||
|
case Megabytes:
|
||||||
|
return "MB";
|
||||||
|
case Gigabytes:
|
||||||
|
return "GB";
|
||||||
|
default:
|
||||||
|
std::unreachable();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static uint64_t getStorageValue(StorageUnit unit, uint64_t bytes) {
|
||||||
|
using enum StorageUnit;
|
||||||
|
switch (unit) {
|
||||||
|
case Bytes:
|
||||||
|
return bytes;
|
||||||
|
case Kilobytes:
|
||||||
|
return bytes / 1024;
|
||||||
|
case Megabytes:
|
||||||
|
return bytes / 1024 / 1024;
|
||||||
|
case Gigabytes:
|
||||||
|
return bytes / 1024 / 1024 / 1024;
|
||||||
|
default:
|
||||||
|
std::unreachable();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void addMemoryBar(lv_obj_t* parent, const char* label, uint64_t free, uint64_t total) {
|
||||||
|
uint64_t used = total - free;
|
||||||
auto* container = lv_obj_create(parent);
|
auto* container = lv_obj_create(parent);
|
||||||
lv_obj_set_size(container, LV_PCT(100), LV_SIZE_CONTENT);
|
lv_obj_set_size(container, LV_PCT(100), LV_SIZE_CONTENT);
|
||||||
lv_obj_set_style_pad_all(container, 0, 0);
|
lv_obj_set_style_pad_all(container, 0, 0);
|
||||||
@ -65,7 +124,11 @@ static void addMemoryBar(lv_obj_t* parent, const char* label, size_t used, size_
|
|||||||
lv_bar_set_value(bar, (int32_t)used, LV_ANIM_OFF);
|
lv_bar_set_value(bar, (int32_t)used, LV_ANIM_OFF);
|
||||||
|
|
||||||
auto* bottom_label = lv_label_create(parent);
|
auto* bottom_label = lv_label_create(parent);
|
||||||
lv_label_set_text_fmt(bottom_label, "%u / %u kB", (used / 1024), (total / 1024));
|
const auto unit = getStorageUnit(total);
|
||||||
|
const auto unit_label = getStorageUnitString(unit);
|
||||||
|
const auto used_converted = getStorageValue(unit, used);
|
||||||
|
const auto total_converted = getStorageValue(unit, total);
|
||||||
|
lv_label_set_text_fmt(bottom_label, "%llu / %llu %s", used_converted, total_converted, unit_label.c_str());
|
||||||
lv_obj_set_width(bottom_label, LV_PCT(100));
|
lv_obj_set_width(bottom_label, LV_PCT(100));
|
||||||
lv_obj_set_style_text_align(bottom_label, LV_TEXT_ALIGN_RIGHT, 0);
|
lv_obj_set_style_text_align(bottom_label, LV_TEXT_ALIGN_RIGHT, 0);
|
||||||
}
|
}
|
||||||
@ -142,11 +205,43 @@ class SystemInfoApp : public App {
|
|||||||
lv_obj_set_flex_flow(memory_wrapper, LV_FLEX_FLOW_COLUMN);
|
lv_obj_set_flex_flow(memory_wrapper, LV_FLEX_FLOW_COLUMN);
|
||||||
lv_obj_set_size(memory_wrapper, LV_PCT(100), LV_SIZE_CONTENT);
|
lv_obj_set_size(memory_wrapper, LV_PCT(100), LV_SIZE_CONTENT);
|
||||||
|
|
||||||
addMemoryBar(memory_wrapper, "Internal", getHeapTotal() - getHeapFree(), getHeapTotal());
|
addMemoryBar(memory_wrapper, "Internal", getHeapFree(), getHeapTotal());
|
||||||
if (getSpiTotal() > 0) {
|
if (getSpiTotal() > 0) {
|
||||||
addMemoryBar(memory_wrapper, "External", getSpiTotal() - getSpiFree(), getSpiTotal());
|
addMemoryBar(memory_wrapper, "External", getSpiFree(), getSpiTotal());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ESP_PLATFORM
|
||||||
|
// Wrapper for the memory usage bars
|
||||||
|
auto* storage_label = lv_label_create(wrapper);
|
||||||
|
lv_label_set_text(storage_label, "Storage usage");
|
||||||
|
auto* storage_wrapper = lv_obj_create(wrapper);
|
||||||
|
lv_obj_set_flex_flow(storage_wrapper, LV_FLEX_FLOW_COLUMN);
|
||||||
|
lv_obj_set_size(storage_wrapper, LV_PCT(100), LV_SIZE_CONTENT);
|
||||||
|
|
||||||
|
uint64_t storage_total = 0;
|
||||||
|
uint64_t storage_free = 0;
|
||||||
|
|
||||||
|
if (esp_vfs_fat_info(file::MOUNT_POINT_SYSTEM, &storage_total, &storage_free) == ESP_OK) {
|
||||||
|
addMemoryBar(storage_wrapper, file::MOUNT_POINT_SYSTEM, storage_free, storage_total);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (esp_vfs_fat_info(file::MOUNT_POINT_DATA, &storage_total, &storage_free) == ESP_OK) {
|
||||||
|
addMemoryBar(storage_wrapper, file::MOUNT_POINT_DATA, storage_free, storage_total);
|
||||||
|
}
|
||||||
|
|
||||||
|
const auto sdcard_devices = hal::findDevices<hal::sdcard::SdCardDevice>(hal::Device::Type::SdCard);
|
||||||
|
for (const auto& sdcard : sdcard_devices) {
|
||||||
|
if (sdcard->isMounted() && esp_vfs_fat_info(sdcard->getMountPath().c_str(), &storage_total, &storage_free) == ESP_OK) {
|
||||||
|
addMemoryBar(
|
||||||
|
storage_wrapper,
|
||||||
|
sdcard->getMountPath().c_str(),
|
||||||
|
storage_free,
|
||||||
|
storage_total
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if configUSE_TRACE_FACILITY
|
#if configUSE_TRACE_FACILITY
|
||||||
auto* tasks_label = lv_label_create(wrapper);
|
auto* tasks_label = lv_label_create(wrapper);
|
||||||
lv_label_set_text(tasks_label, "Tasks");
|
lv_label_set_text(tasks_label, "Tasks");
|
||||||
|
|||||||
@ -8,6 +8,7 @@
|
|||||||
#include "Tactility/hal/uart/UartInit.h"
|
#include "Tactility/hal/uart/UartInit.h"
|
||||||
|
|
||||||
#include <Tactility/hal/display/DisplayDevice.h>
|
#include <Tactility/hal/display/DisplayDevice.h>
|
||||||
|
#include <Tactility/hal/sdcard/SdCardMounting.h>
|
||||||
#include <Tactility/hal/touch/TouchDevice.h>
|
#include <Tactility/hal/touch/TouchDevice.h>
|
||||||
#include <Tactility/kernel/SystemEvents.h>
|
#include <Tactility/kernel/SystemEvents.h>
|
||||||
|
|
||||||
@ -34,6 +35,13 @@ void registerDevices(const Configuration& configuration) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (configuration.createDisplay != nullptr) {
|
||||||
|
auto display = configuration.createDisplay();
|
||||||
|
if (display != nullptr) {
|
||||||
|
registerDevice(display);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
auto devices = configuration.createDevices();
|
auto devices = configuration.createDevices();
|
||||||
for (auto& device : devices) {
|
for (auto& device : devices) {
|
||||||
registerDevice(device);
|
registerDevice(device);
|
||||||
@ -50,6 +58,29 @@ void registerDevices(const Configuration& configuration) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void startDisplays() {
|
||||||
|
TT_LOG_I(TAG, "Start displays");
|
||||||
|
auto displays = hal::findDevices<display::DisplayDevice>(Device::Type::Display);
|
||||||
|
for (auto& display : displays) {
|
||||||
|
if (!display->start()) {
|
||||||
|
TT_LOG_E(TAG, "Display start failed");
|
||||||
|
} else {
|
||||||
|
TT_LOG_I(TAG, "Started %s", display->getName().c_str());
|
||||||
|
|
||||||
|
if (display->supportsBacklightDuty()) {
|
||||||
|
display->setBacklightDuty(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
auto touch = display->getTouchDevice();
|
||||||
|
if (touch != nullptr && !touch->start()) {
|
||||||
|
TT_LOG_E(TAG, "Touch start failed");
|
||||||
|
} else {
|
||||||
|
TT_LOG_I(TAG, "Started %s", touch->getName().c_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void init(const Configuration& configuration) {
|
void init(const Configuration& configuration) {
|
||||||
kernel::publishSystemEvent(kernel::SystemEvent::BootInitHalBegin);
|
kernel::publishSystemEvent(kernel::SystemEvent::BootInitHalBegin);
|
||||||
|
|
||||||
@ -72,6 +103,10 @@ void init(const Configuration& configuration) {
|
|||||||
|
|
||||||
registerDevices(configuration);
|
registerDevices(configuration);
|
||||||
|
|
||||||
|
sdcard::mountAll(); // Warning: This needs to happen BEFORE displays are initialized on the SPI bus
|
||||||
|
|
||||||
|
startDisplays(); // Warning: SPI displays need to start after SPI SD cards are mounted
|
||||||
|
|
||||||
kernel::publishSystemEvent(kernel::SystemEvent::BootInitHalEnd);
|
kernel::publishSystemEvent(kernel::SystemEvent::BootInitHalEnd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -22,35 +22,6 @@ constexpr auto* TAG = "Lvgl";
|
|||||||
|
|
||||||
static bool started = false;
|
static bool started = false;
|
||||||
|
|
||||||
// TODO: Move to hal init
|
|
||||||
static void initDisplays(const hal::Configuration& config) {
|
|
||||||
TT_LOG_I(TAG, "Init displays");
|
|
||||||
if (config.createDisplay != nullptr) {
|
|
||||||
auto display = config.createDisplay();
|
|
||||||
if (display != nullptr) {
|
|
||||||
hal::registerDevice(display);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
TT_LOG_I(TAG, "Start displays");
|
|
||||||
auto displays = hal::findDevices<hal::display::DisplayDevice>(hal::Device::Type::Display);
|
|
||||||
for (auto& display : displays) {
|
|
||||||
if (!display->start()) {
|
|
||||||
TT_LOG_E(TAG, "Display start failed");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (display->supportsBacklightDuty()) {
|
|
||||||
display->setBacklightDuty(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
auto touch = display->getTouchDevice();
|
|
||||||
if (touch != nullptr) {
|
|
||||||
hal::registerDevice(touch);
|
|
||||||
touch->start();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void init(const hal::Configuration& config) {
|
void init(const hal::Configuration& config) {
|
||||||
TT_LOG_I(TAG, "Init started");
|
TT_LOG_I(TAG, "Init started");
|
||||||
|
|
||||||
@ -60,8 +31,6 @@ void init(const hal::Configuration& config) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
initDisplays(config);
|
|
||||||
|
|
||||||
start();
|
start();
|
||||||
|
|
||||||
TT_LOG_I(TAG, "Init finished");
|
TT_LOG_I(TAG, "Init finished");
|
||||||
@ -105,32 +74,30 @@ void start() {
|
|||||||
|
|
||||||
// Start touch
|
// Start touch
|
||||||
|
|
||||||
|
// TODO: Consider implementing support for multiple displays
|
||||||
|
auto primary_display = !displays.empty() ? displays[0] : nullptr;
|
||||||
|
|
||||||
|
// Start display-related peripherals
|
||||||
|
if (primary_display != nullptr) {
|
||||||
TT_LOG_I(TAG, "Start touch devices");
|
TT_LOG_I(TAG, "Start touch devices");
|
||||||
auto touch_devices = hal::findDevices<hal::touch::TouchDevice>(hal::Device::Type::Touch);
|
auto touch_devices = hal::findDevices<hal::touch::TouchDevice>(hal::Device::Type::Touch);
|
||||||
for (auto touch_device : touch_devices) {
|
for (auto touch_device : touch_devices) {
|
||||||
if (displays.size() > 0) {
|
|
||||||
// TODO: Consider implementing support for multiple displays
|
|
||||||
auto display = displays[0];
|
|
||||||
// Start any touch devices that haven't been started yet
|
// Start any touch devices that haven't been started yet
|
||||||
if (touch_device->supportsLvgl() && touch_device->getLvglIndev() == nullptr) {
|
if (touch_device->supportsLvgl() && touch_device->getLvglIndev() == nullptr) {
|
||||||
if (touch_device->startLvgl(display->getLvglDisplay())) {
|
if (touch_device->startLvgl(primary_display->getLvglDisplay())) {
|
||||||
TT_LOG_I(TAG, "Started %s", touch_device->getName().c_str());
|
TT_LOG_I(TAG, "Started %s", touch_device->getName().c_str());
|
||||||
} else {
|
} else {
|
||||||
TT_LOG_E(TAG, "Start failed for %s", touch_device->getName().c_str());
|
TT_LOG_E(TAG, "Start failed for %s", touch_device->getName().c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Start keyboards
|
// Start keyboards
|
||||||
TT_LOG_I(TAG, "Start keyboards");
|
TT_LOG_I(TAG, "Start keyboards");
|
||||||
auto keyboards = hal::findDevices<hal::keyboard::KeyboardDevice>(hal::Device::Type::Keyboard);
|
auto keyboards = hal::findDevices<hal::keyboard::KeyboardDevice>(hal::Device::Type::Keyboard);
|
||||||
for (auto keyboard : keyboards) {
|
for (auto keyboard : keyboards) {
|
||||||
if (displays.size() > 0) {
|
|
||||||
// TODO: Consider implementing support for multiple displays
|
|
||||||
auto display = displays[0];
|
|
||||||
if (keyboard->isAttached()) {
|
if (keyboard->isAttached()) {
|
||||||
if (keyboard->startLvgl(display->getLvglDisplay())) {
|
if (keyboard->startLvgl(primary_display->getLvglDisplay())) {
|
||||||
lv_indev_t* keyboard_indev = keyboard->getLvglIndev();
|
lv_indev_t* keyboard_indev = keyboard->getLvglIndev();
|
||||||
hardware_keyboard_set_indev(keyboard_indev);
|
hardware_keyboard_set_indev(keyboard_indev);
|
||||||
TT_LOG_I(TAG, "Started %s", keyboard->getName().c_str());
|
TT_LOG_I(TAG, "Started %s", keyboard->getName().c_str());
|
||||||
@ -139,16 +106,12 @@ void start() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Start encoders
|
// Start encoders
|
||||||
TT_LOG_I(TAG, "Start encoders");
|
TT_LOG_I(TAG, "Start encoders");
|
||||||
auto encoders = hal::findDevices<hal::encoder::EncoderDevice>(hal::Device::Type::Encoder);
|
auto encoders = hal::findDevices<hal::encoder::EncoderDevice>(hal::Device::Type::Encoder);
|
||||||
for (auto encoder : encoders) {
|
for (auto encoder : encoders) {
|
||||||
if (displays.size() > 0) {
|
if (encoder->startLvgl(primary_display->getLvglDisplay())) {
|
||||||
// TODO: Consider implementing support for multiple displays
|
|
||||||
auto display = displays[0];
|
|
||||||
if (encoder->startLvgl(display->getLvglDisplay())) {
|
|
||||||
TT_LOG_I(TAG, "Started %s", encoder->getName().c_str());
|
TT_LOG_I(TAG, "Started %s", encoder->getName().c_str());
|
||||||
} else {
|
} else {
|
||||||
TT_LOG_E(TAG, "Start failed for %s", encoder->getName().c_str());
|
TT_LOG_E(TAG, "Start failed for %s", encoder->getName().c_str());
|
||||||
|
|||||||
@ -8,7 +8,7 @@ extern "C" {
|
|||||||
|
|
||||||
typedef unsigned long TickType;
|
typedef unsigned long TickType;
|
||||||
|
|
||||||
#define MAX_TICKS INT32_MAX
|
#define TT_MAX_TICKS ((TickType)(~(TickType)0))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stall the current task for the specified amount of time.
|
* Stall the current task for the specified amount of time.
|
||||||
|
|||||||
@ -41,7 +41,7 @@ void tt_app_get_data_directory(AppPathsHandle handle, char* buffer, size_t* size
|
|||||||
auto data_path = paths->getDataDirectory();
|
auto data_path = paths->getDataDirectory();
|
||||||
auto expected_length = data_path.length() + 1;
|
auto expected_length = data_path.length() + 1;
|
||||||
if (*size < expected_length) {
|
if (*size < expected_length) {
|
||||||
TT_LOG_E(TAG, "Path buffer not large enough (%d < %d)", size, expected_length);
|
TT_LOG_E(TAG, "Path buffer not large enough (%d < %d)", *size, expected_length);
|
||||||
*size = 0;
|
*size = 0;
|
||||||
buffer[0] = 0;
|
buffer[0] = 0;
|
||||||
return;
|
return;
|
||||||
@ -59,7 +59,7 @@ void tt_app_get_data_directory_lvgl(AppPathsHandle handle, char* buffer, size_t*
|
|||||||
auto data_path = paths->getDataDirectoryLvgl();
|
auto data_path = paths->getDataDirectoryLvgl();
|
||||||
auto expected_length = data_path.length() + 1;
|
auto expected_length = data_path.length() + 1;
|
||||||
if (*size < expected_length) {
|
if (*size < expected_length) {
|
||||||
TT_LOG_E(TAG, "Path buffer not large enough (%d < %d)", size, expected_length);
|
TT_LOG_E(TAG, "Path buffer not large enough (%d < %d)", *size, expected_length);
|
||||||
*size = 0;
|
*size = 0;
|
||||||
buffer[0] = 0;
|
buffer[0] = 0;
|
||||||
return;
|
return;
|
||||||
|
|||||||
7
partitions-16mb.csv
Normal file
7
partitions-16mb.csv
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Name, Type, SubType, Offset, Size, Flags
|
||||||
|
# Note: if you have increased the bootloader size, make sure to update the offsets to avoid overlap
|
||||||
|
nvs, data, nvs, 0x9000, 0x6000,
|
||||||
|
phy_init, data, phy, 0xf000, 0x1000,
|
||||||
|
factory, app, factory, 0x10000, 3M,
|
||||||
|
system, data, fat, , 300k,
|
||||||
|
data, data, fat, , 12600k,
|
||||||
|
@ -3,5 +3,5 @@
|
|||||||
nvs, data, nvs, 0x9000, 0x6000,
|
nvs, data, nvs, 0x9000, 0x6000,
|
||||||
phy_init, data, phy, 0xf000, 0x1000,
|
phy_init, data, phy, 0xf000, 0x1000,
|
||||||
factory, app, factory, 0x10000, 3M,
|
factory, app, factory, 0x10000, 3M,
|
||||||
system, data, fat, , 450k,
|
system, data, fat, , 300k,
|
||||||
data, data, fat, , 450k,
|
data, data, fat, , 4600k,
|
||||||
|
@ -21,9 +21,6 @@ CONFIG_FREERTOS_SMP=n
|
|||||||
CONFIG_FREERTOS_UNICORE=n
|
CONFIG_FREERTOS_UNICORE=n
|
||||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
||||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
|
||||||
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
|
||||||
CONFIG_FATFS_LFN_HEAP=y
|
CONFIG_FATFS_LFN_HEAP=y
|
||||||
CONFIG_FATFS_VOLUME_COUNT=3
|
CONFIG_FATFS_VOLUME_COUNT=3
|
||||||
CONFIG_FATFS_SECTOR_512=y
|
CONFIG_FATFS_SECTOR_512=y
|
||||||
@ -33,6 +30,9 @@ CONFIG_WL_SECTOR_MODE_SAFE=y
|
|||||||
CONFIG_WL_SECTOR_MODE=1
|
CONFIG_WL_SECTOR_MODE=1
|
||||||
|
|
||||||
# Hardware: Main
|
# Hardware: Main
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-4mb.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="partitions-4mb.csv"
|
||||||
CONFIG_TT_BOARD_CYD_2432S024C=y
|
CONFIG_TT_BOARD_CYD_2432S024C=y
|
||||||
CONFIG_TT_BOARD_NAME="CYD 2432S024C"
|
CONFIG_TT_BOARD_NAME="CYD 2432S024C"
|
||||||
CONFIG_TT_BOARD_ID="cyd-2432s024c"
|
CONFIG_TT_BOARD_ID="cyd-2432s024c"
|
||||||
|
|||||||
@ -21,9 +21,6 @@ CONFIG_FREERTOS_SMP=n
|
|||||||
CONFIG_FREERTOS_UNICORE=n
|
CONFIG_FREERTOS_UNICORE=n
|
||||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
||||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
|
||||||
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
|
||||||
CONFIG_FATFS_LFN_HEAP=y
|
CONFIG_FATFS_LFN_HEAP=y
|
||||||
CONFIG_FATFS_VOLUME_COUNT=3
|
CONFIG_FATFS_VOLUME_COUNT=3
|
||||||
CONFIG_FATFS_SECTOR_512=y
|
CONFIG_FATFS_SECTOR_512=y
|
||||||
@ -33,6 +30,9 @@ CONFIG_WL_SECTOR_MODE_SAFE=y
|
|||||||
CONFIG_WL_SECTOR_MODE=1
|
CONFIG_WL_SECTOR_MODE=1
|
||||||
|
|
||||||
# Hardware: Main
|
# Hardware: Main
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-4mb.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="partitions-4mb.csv"
|
||||||
CONFIG_TT_BOARD_NAME="CYD 2432S028R"
|
CONFIG_TT_BOARD_NAME="CYD 2432S028R"
|
||||||
CONFIG_TT_BOARD_ID="cyd-2432s028r"
|
CONFIG_TT_BOARD_ID="cyd-2432s028r"
|
||||||
CONFIG_TT_BOARD_CYD_2432S028R=y
|
CONFIG_TT_BOARD_CYD_2432S028R=y
|
||||||
|
|||||||
@ -21,9 +21,6 @@ CONFIG_FREERTOS_SMP=n
|
|||||||
CONFIG_FREERTOS_UNICORE=n
|
CONFIG_FREERTOS_UNICORE=n
|
||||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
||||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
|
||||||
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
|
||||||
CONFIG_FATFS_LFN_HEAP=y
|
CONFIG_FATFS_LFN_HEAP=y
|
||||||
CONFIG_FATFS_VOLUME_COUNT=3
|
CONFIG_FATFS_VOLUME_COUNT=3
|
||||||
CONFIG_FATFS_SECTOR_512=y
|
CONFIG_FATFS_SECTOR_512=y
|
||||||
@ -33,6 +30,9 @@ CONFIG_WL_SECTOR_MODE_SAFE=y
|
|||||||
CONFIG_WL_SECTOR_MODE=1
|
CONFIG_WL_SECTOR_MODE=1
|
||||||
|
|
||||||
# Hardware: Main
|
# Hardware: Main
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-4mb.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="partitions-4mb.csv"
|
||||||
CONFIG_TT_BOARD_CYD_2432S032C=y
|
CONFIG_TT_BOARD_CYD_2432S032C=y
|
||||||
CONFIG_TT_BOARD_NAME="CYD 2432S032C"
|
CONFIG_TT_BOARD_NAME="CYD 2432S032C"
|
||||||
CONFIG_TT_BOARD_ID="cyd-2432s032c"
|
CONFIG_TT_BOARD_ID="cyd-2432s032c"
|
||||||
|
|||||||
@ -21,9 +21,6 @@ CONFIG_FREERTOS_SMP=n
|
|||||||
CONFIG_FREERTOS_UNICORE=n
|
CONFIG_FREERTOS_UNICORE=n
|
||||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
||||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
|
||||||
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
|
||||||
CONFIG_FATFS_LFN_HEAP=y
|
CONFIG_FATFS_LFN_HEAP=y
|
||||||
CONFIG_FATFS_VOLUME_COUNT=3
|
CONFIG_FATFS_VOLUME_COUNT=3
|
||||||
CONFIG_FATFS_SECTOR_512=y
|
CONFIG_FATFS_SECTOR_512=y
|
||||||
@ -33,6 +30,9 @@ CONFIG_WL_SECTOR_MODE_SAFE=y
|
|||||||
CONFIG_WL_SECTOR_MODE=1
|
CONFIG_WL_SECTOR_MODE=1
|
||||||
|
|
||||||
# Hardware: Main
|
# Hardware: Main
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-16mb.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="partitions-16mb.csv"
|
||||||
CONFIG_COMPILER_OPTIMIZATION_PERF=y
|
CONFIG_COMPILER_OPTIMIZATION_PERF=y
|
||||||
CONFIG_IDF_EXPERIMENTAL_FEATURES=y
|
CONFIG_IDF_EXPERIMENTAL_FEATURES=y
|
||||||
CONFIG_TT_BOARD_CYD_4848S040C=y
|
CONFIG_TT_BOARD_CYD_4848S040C=y
|
||||||
|
|||||||
@ -21,9 +21,6 @@ CONFIG_FREERTOS_SMP=n
|
|||||||
CONFIG_FREERTOS_UNICORE=n
|
CONFIG_FREERTOS_UNICORE=n
|
||||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
||||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
|
||||||
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
|
||||||
CONFIG_FATFS_LFN_HEAP=y
|
CONFIG_FATFS_LFN_HEAP=y
|
||||||
CONFIG_FATFS_VOLUME_COUNT=3
|
CONFIG_FATFS_VOLUME_COUNT=3
|
||||||
CONFIG_FATFS_SECTOR_512=y
|
CONFIG_FATFS_SECTOR_512=y
|
||||||
@ -33,6 +30,9 @@ CONFIG_WL_SECTOR_MODE_SAFE=y
|
|||||||
CONFIG_WL_SECTOR_MODE=1
|
CONFIG_WL_SECTOR_MODE=1
|
||||||
|
|
||||||
# Hardware: Main
|
# Hardware: Main
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-16mb.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="partitions-16mb.csv"
|
||||||
CONFIG_COMPILER_OPTIMIZATION_PERF=y
|
CONFIG_COMPILER_OPTIMIZATION_PERF=y
|
||||||
CONFIG_IDF_EXPERIMENTAL_FEATURES=y
|
CONFIG_IDF_EXPERIMENTAL_FEATURES=y
|
||||||
CONFIG_TT_BOARD_CYD_8048S043C=y
|
CONFIG_TT_BOARD_CYD_8048S043C=y
|
||||||
|
|||||||
@ -20,13 +20,13 @@ CONFIG_FREERTOS_SMP=n
|
|||||||
CONFIG_FREERTOS_UNICORE=n
|
CONFIG_FREERTOS_UNICORE=n
|
||||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=4096
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=4096
|
||||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
|
||||||
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
|
||||||
CONFIG_FATFS_LFN_HEAP=y
|
CONFIG_FATFS_LFN_HEAP=y
|
||||||
CONFIG_FATFS_VOLUME_COUNT=3
|
CONFIG_FATFS_VOLUME_COUNT=3
|
||||||
|
|
||||||
# Hardware: Main
|
# Hardware: Main
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-4mb.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="partitions-4mb.csv"
|
||||||
CONFIG_TT_BOARD_CYD_E32R28T=y
|
CONFIG_TT_BOARD_CYD_E32R28T=y
|
||||||
CONFIG_TT_BOARD_NAME="CYD E32R28T"
|
CONFIG_TT_BOARD_NAME="CYD E32R28T"
|
||||||
CONFIG_TT_BOARD_ID="cyd-e32r28t"
|
CONFIG_TT_BOARD_ID="cyd-e32r28t"
|
||||||
|
|||||||
@ -21,9 +21,6 @@ CONFIG_FREERTOS_SMP=n
|
|||||||
CONFIG_FREERTOS_UNICORE=n
|
CONFIG_FREERTOS_UNICORE=n
|
||||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
||||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
|
||||||
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
|
||||||
CONFIG_FATFS_LFN_HEAP=y
|
CONFIG_FATFS_LFN_HEAP=y
|
||||||
CONFIG_FATFS_VOLUME_COUNT=3
|
CONFIG_FATFS_VOLUME_COUNT=3
|
||||||
CONFIG_FATFS_SECTOR_512=y
|
CONFIG_FATFS_SECTOR_512=y
|
||||||
@ -33,6 +30,9 @@ CONFIG_WL_SECTOR_MODE_SAFE=y
|
|||||||
CONFIG_WL_SECTOR_MODE=1
|
CONFIG_WL_SECTOR_MODE=1
|
||||||
|
|
||||||
# Hardware: Main
|
# Hardware: Main
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-4mb.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="partitions-4mb.csv"
|
||||||
CONFIG_TT_BOARD_CYD_JC2432W328C=y
|
CONFIG_TT_BOARD_CYD_JC2432W328C=y
|
||||||
CONFIG_TT_BOARD_NAME="CYD JC2432W328C"
|
CONFIG_TT_BOARD_NAME="CYD JC2432W328C"
|
||||||
CONFIG_TT_BOARD_ID="cyd-jc2432w328c"
|
CONFIG_TT_BOARD_ID="cyd-jc2432w328c"
|
||||||
|
|||||||
@ -21,9 +21,6 @@ CONFIG_FREERTOS_SMP=n
|
|||||||
CONFIG_FREERTOS_UNICORE=n
|
CONFIG_FREERTOS_UNICORE=n
|
||||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
||||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
|
||||||
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
|
||||||
CONFIG_FATFS_LFN_HEAP=y
|
CONFIG_FATFS_LFN_HEAP=y
|
||||||
CONFIG_FATFS_VOLUME_COUNT=3
|
CONFIG_FATFS_VOLUME_COUNT=3
|
||||||
CONFIG_FATFS_SECTOR_512=y
|
CONFIG_FATFS_SECTOR_512=y
|
||||||
@ -33,6 +30,9 @@ CONFIG_WL_SECTOR_MODE_SAFE=y
|
|||||||
CONFIG_WL_SECTOR_MODE=1
|
CONFIG_WL_SECTOR_MODE=1
|
||||||
|
|
||||||
# Hardware: Main
|
# Hardware: Main
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-16mb.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="partitions-16mb.csv"
|
||||||
CONFIG_COMPILER_OPTIMIZATION_PERF=y
|
CONFIG_COMPILER_OPTIMIZATION_PERF=y
|
||||||
CONFIG_IDF_EXPERIMENTAL_FEATURES=y
|
CONFIG_IDF_EXPERIMENTAL_FEATURES=y
|
||||||
CONFIG_TT_BOARD_CYD_JC8048W550C=y
|
CONFIG_TT_BOARD_CYD_JC8048W550C=y
|
||||||
|
|||||||
@ -21,9 +21,6 @@ CONFIG_FREERTOS_SMP=n
|
|||||||
CONFIG_FREERTOS_UNICORE=n
|
CONFIG_FREERTOS_UNICORE=n
|
||||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
||||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
|
||||||
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
|
||||||
CONFIG_FATFS_LFN_HEAP=y
|
CONFIG_FATFS_LFN_HEAP=y
|
||||||
CONFIG_FATFS_VOLUME_COUNT=3
|
CONFIG_FATFS_VOLUME_COUNT=3
|
||||||
CONFIG_FATFS_SECTOR_512=y
|
CONFIG_FATFS_SECTOR_512=y
|
||||||
@ -33,6 +30,9 @@ CONFIG_WL_SECTOR_MODE_SAFE=y
|
|||||||
CONFIG_WL_SECTOR_MODE=1
|
CONFIG_WL_SECTOR_MODE=1
|
||||||
|
|
||||||
# Hardware: Main
|
# Hardware: Main
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-16mb.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="partitions-16mb.csv"
|
||||||
CONFIG_TT_BOARD_ELECROW_CROWPANEL_ADVANCE_28=y
|
CONFIG_TT_BOARD_ELECROW_CROWPANEL_ADVANCE_28=y
|
||||||
CONFIG_TT_BOARD_NAME="CrowPanel Advance 2.8"
|
CONFIG_TT_BOARD_NAME="CrowPanel Advance 2.8"
|
||||||
CONFIG_TT_BOARD_ID="elecrow-crowpanel-advance-28"
|
CONFIG_TT_BOARD_ID="elecrow-crowpanel-advance-28"
|
||||||
|
|||||||
@ -21,9 +21,6 @@ CONFIG_FREERTOS_SMP=n
|
|||||||
CONFIG_FREERTOS_UNICORE=n
|
CONFIG_FREERTOS_UNICORE=n
|
||||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
||||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
|
||||||
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
|
||||||
CONFIG_FATFS_LFN_HEAP=y
|
CONFIG_FATFS_LFN_HEAP=y
|
||||||
CONFIG_FATFS_VOLUME_COUNT=3
|
CONFIG_FATFS_VOLUME_COUNT=3
|
||||||
CONFIG_FATFS_SECTOR_512=y
|
CONFIG_FATFS_SECTOR_512=y
|
||||||
@ -33,6 +30,9 @@ CONFIG_WL_SECTOR_MODE_SAFE=y
|
|||||||
CONFIG_WL_SECTOR_MODE=1
|
CONFIG_WL_SECTOR_MODE=1
|
||||||
|
|
||||||
# Hardware: Main
|
# Hardware: Main
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-16mb.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="partitions-16mb.csv"
|
||||||
CONFIG_TT_BOARD_ELECROW_CROWPANEL_ADVANCE_35=y
|
CONFIG_TT_BOARD_ELECROW_CROWPANEL_ADVANCE_35=y
|
||||||
CONFIG_TT_BOARD_NAME="CrowPanel Advance 3.5"
|
CONFIG_TT_BOARD_NAME="CrowPanel Advance 3.5"
|
||||||
CONFIG_TT_BOARD_ID="elecrow-crowpanel-advance-35"
|
CONFIG_TT_BOARD_ID="elecrow-crowpanel-advance-35"
|
||||||
|
|||||||
@ -21,9 +21,6 @@ CONFIG_FREERTOS_SMP=n
|
|||||||
CONFIG_FREERTOS_UNICORE=n
|
CONFIG_FREERTOS_UNICORE=n
|
||||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
||||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
|
||||||
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
|
||||||
CONFIG_FATFS_LFN_HEAP=y
|
CONFIG_FATFS_LFN_HEAP=y
|
||||||
CONFIG_FATFS_VOLUME_COUNT=3
|
CONFIG_FATFS_VOLUME_COUNT=3
|
||||||
CONFIG_FATFS_SECTOR_512=y
|
CONFIG_FATFS_SECTOR_512=y
|
||||||
@ -33,6 +30,9 @@ CONFIG_WL_SECTOR_MODE_SAFE=y
|
|||||||
CONFIG_WL_SECTOR_MODE=1
|
CONFIG_WL_SECTOR_MODE=1
|
||||||
|
|
||||||
# Hardware: Main
|
# Hardware: Main
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-16mb.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="partitions-16mb.csv"
|
||||||
CONFIG_TT_BOARD_ELECROW_CROWPANEL_ADVANCE_50=y
|
CONFIG_TT_BOARD_ELECROW_CROWPANEL_ADVANCE_50=y
|
||||||
CONFIG_TT_BOARD_NAME="CrowPanel Advance 5.0"
|
CONFIG_TT_BOARD_NAME="CrowPanel Advance 5.0"
|
||||||
CONFIG_TT_BOARD_ID="elecrow-crowpanel-advance-50"
|
CONFIG_TT_BOARD_ID="elecrow-crowpanel-advance-50"
|
||||||
|
|||||||
@ -21,9 +21,6 @@ CONFIG_FREERTOS_SMP=n
|
|||||||
CONFIG_FREERTOS_UNICORE=n
|
CONFIG_FREERTOS_UNICORE=n
|
||||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
||||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
|
||||||
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
|
||||||
CONFIG_FATFS_LFN_HEAP=y
|
CONFIG_FATFS_LFN_HEAP=y
|
||||||
CONFIG_FATFS_VOLUME_COUNT=3
|
CONFIG_FATFS_VOLUME_COUNT=3
|
||||||
CONFIG_FATFS_SECTOR_512=y
|
CONFIG_FATFS_SECTOR_512=y
|
||||||
@ -33,6 +30,9 @@ CONFIG_WL_SECTOR_MODE_SAFE=y
|
|||||||
CONFIG_WL_SECTOR_MODE=1
|
CONFIG_WL_SECTOR_MODE=1
|
||||||
|
|
||||||
# Hardware: Main
|
# Hardware: Main
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-4mb.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="partitions-4mb.csv"
|
||||||
CONFIG_TT_BOARD_ELECROW_CROWPANEL_BASIC_28=y
|
CONFIG_TT_BOARD_ELECROW_CROWPANEL_BASIC_28=y
|
||||||
CONFIG_TT_BOARD_NAME="CrowPanel Basic 2.8"
|
CONFIG_TT_BOARD_NAME="CrowPanel Basic 2.8"
|
||||||
CONFIG_TT_BOARD_ID="elecrow-crowpanel-basic-28"
|
CONFIG_TT_BOARD_ID="elecrow-crowpanel-basic-28"
|
||||||
|
|||||||
@ -21,9 +21,6 @@ CONFIG_FREERTOS_SMP=n
|
|||||||
CONFIG_FREERTOS_UNICORE=n
|
CONFIG_FREERTOS_UNICORE=n
|
||||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
||||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
|
||||||
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
|
||||||
CONFIG_FATFS_LFN_HEAP=y
|
CONFIG_FATFS_LFN_HEAP=y
|
||||||
CONFIG_FATFS_VOLUME_COUNT=3
|
CONFIG_FATFS_VOLUME_COUNT=3
|
||||||
CONFIG_FATFS_SECTOR_512=y
|
CONFIG_FATFS_SECTOR_512=y
|
||||||
@ -33,6 +30,9 @@ CONFIG_WL_SECTOR_MODE_SAFE=y
|
|||||||
CONFIG_WL_SECTOR_MODE=1
|
CONFIG_WL_SECTOR_MODE=1
|
||||||
|
|
||||||
# Hardware: Main
|
# Hardware: Main
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-4mb.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="partitions-4mb.csv"
|
||||||
CONFIG_TT_BOARD_ELECROW_CROWPANEL_BASIC_35=y
|
CONFIG_TT_BOARD_ELECROW_CROWPANEL_BASIC_35=y
|
||||||
CONFIG_TT_BOARD_NAME="CrowPanel Basic 3.5"
|
CONFIG_TT_BOARD_NAME="CrowPanel Basic 3.5"
|
||||||
CONFIG_TT_BOARD_ID="elecrow-crowpanel-basic-35"
|
CONFIG_TT_BOARD_ID="elecrow-crowpanel-basic-35"
|
||||||
|
|||||||
@ -21,9 +21,6 @@ CONFIG_FREERTOS_SMP=n
|
|||||||
CONFIG_FREERTOS_UNICORE=n
|
CONFIG_FREERTOS_UNICORE=n
|
||||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
||||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
|
||||||
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
|
||||||
CONFIG_FATFS_LFN_HEAP=y
|
CONFIG_FATFS_LFN_HEAP=y
|
||||||
CONFIG_FATFS_VOLUME_COUNT=3
|
CONFIG_FATFS_VOLUME_COUNT=3
|
||||||
CONFIG_FATFS_SECTOR_512=y
|
CONFIG_FATFS_SECTOR_512=y
|
||||||
@ -33,6 +30,9 @@ CONFIG_WL_SECTOR_MODE_SAFE=y
|
|||||||
CONFIG_WL_SECTOR_MODE=1
|
CONFIG_WL_SECTOR_MODE=1
|
||||||
|
|
||||||
# Hardware: Main
|
# Hardware: Main
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-4mb.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="partitions-4mb.csv"
|
||||||
CONFIG_TT_BOARD_ELECROW_CROWPANEL_BASIC_50=y
|
CONFIG_TT_BOARD_ELECROW_CROWPANEL_BASIC_50=y
|
||||||
CONFIG_TT_BOARD_NAME="CrowPanel Basic 5.0"
|
CONFIG_TT_BOARD_NAME="CrowPanel Basic 5.0"
|
||||||
CONFIG_TT_BOARD_ID="elecrow-crowpanel-basic-50"
|
CONFIG_TT_BOARD_ID="elecrow-crowpanel-basic-50"
|
||||||
|
|||||||
@ -21,9 +21,6 @@ CONFIG_FREERTOS_SMP=n
|
|||||||
CONFIG_FREERTOS_UNICORE=n
|
CONFIG_FREERTOS_UNICORE=n
|
||||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
||||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
|
||||||
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
|
||||||
CONFIG_FATFS_LFN_HEAP=y
|
CONFIG_FATFS_LFN_HEAP=y
|
||||||
CONFIG_FATFS_VOLUME_COUNT=3
|
CONFIG_FATFS_VOLUME_COUNT=3
|
||||||
CONFIG_FATFS_SECTOR_512=y
|
CONFIG_FATFS_SECTOR_512=y
|
||||||
@ -33,6 +30,9 @@ CONFIG_WL_SECTOR_MODE_SAFE=y
|
|||||||
CONFIG_WL_SECTOR_MODE=1
|
CONFIG_WL_SECTOR_MODE=1
|
||||||
|
|
||||||
# Hardware: Main
|
# Hardware: Main
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-16mb.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="partitions-16mb.csv"
|
||||||
CONFIG_TT_BOARD_LILYGO_TDECK=y
|
CONFIG_TT_BOARD_LILYGO_TDECK=y
|
||||||
CONFIG_TT_BOARD_NAME="LilyGo T-Deck"
|
CONFIG_TT_BOARD_NAME="LilyGo T-Deck"
|
||||||
CONFIG_TT_BOARD_ID="lilygo-tdeck"
|
CONFIG_TT_BOARD_ID="lilygo-tdeck"
|
||||||
|
|||||||
59
sdkconfig.board.lilygo-tdeck.dev
Normal file
59
sdkconfig.board.lilygo-tdeck.dev
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# Software defaults
|
||||||
|
# Increase stack size for WiFi (fixes crash after scan)
|
||||||
|
CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=3072
|
||||||
|
CONFIG_LV_FONT_MONTSERRAT_14=y
|
||||||
|
CONFIG_LV_FONT_MONTSERRAT_18=y
|
||||||
|
CONFIG_LV_USE_USER_DATA=y
|
||||||
|
CONFIG_LV_USE_FS_STDIO=y
|
||||||
|
CONFIG_LV_FS_STDIO_LETTER=65
|
||||||
|
CONFIG_LV_FS_STDIO_PATH=""
|
||||||
|
CONFIG_LV_FS_STDIO_CACHE_SIZE=4096
|
||||||
|
CONFIG_LV_USE_LODEPNG=y
|
||||||
|
CONFIG_LV_USE_BUILTIN_MALLOC=n
|
||||||
|
CONFIG_LV_USE_CLIB_MALLOC=y
|
||||||
|
CONFIG_LV_USE_MSGBOX=n
|
||||||
|
CONFIG_LV_USE_SPINNER=n
|
||||||
|
CONFIG_LV_USE_WIN=n
|
||||||
|
CONFIG_LV_USE_SNAPSHOT=y
|
||||||
|
CONFIG_FREERTOS_HZ=1000
|
||||||
|
CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=2
|
||||||
|
CONFIG_FREERTOS_SMP=n
|
||||||
|
CONFIG_FREERTOS_UNICORE=n
|
||||||
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
||||||
|
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||||
|
CONFIG_FATFS_LFN_HEAP=y
|
||||||
|
CONFIG_FATFS_VOLUME_COUNT=3
|
||||||
|
CONFIG_FATFS_SECTOR_512=y
|
||||||
|
CONFIG_WL_SECTOR_SIZE_512=y
|
||||||
|
CONFIG_WL_SECTOR_SIZE=512
|
||||||
|
CONFIG_WL_SECTOR_MODE_SAFE=y
|
||||||
|
CONFIG_WL_SECTOR_MODE=1
|
||||||
|
|
||||||
|
# Hardware: Main
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-4mb.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="partitions-4mb.csv"
|
||||||
|
CONFIG_TT_BOARD_LILYGO_TDECK=y
|
||||||
|
CONFIG_TT_BOARD_NAME="LilyGo T-Deck"
|
||||||
|
CONFIG_TT_BOARD_ID="lilygo-tdeck"
|
||||||
|
CONFIG_IDF_EXPERIMENTAL_FEATURES=y
|
||||||
|
CONFIG_IDF_TARGET="esp32s3"
|
||||||
|
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
|
||||||
|
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
|
||||||
|
CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y
|
||||||
|
CONFIG_FLASHMODE_QIO=y
|
||||||
|
# Hardware: SPI RAM
|
||||||
|
CONFIG_ESP32S3_SPIRAM_SUPPORT=y
|
||||||
|
CONFIG_SPIRAM_MODE_OCT=y
|
||||||
|
CONFIG_SPIRAM_SPEED_120M=y
|
||||||
|
CONFIG_SPIRAM_USE_MALLOC=y
|
||||||
|
CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y
|
||||||
|
# SPI Flash (can set back to 80MHz after ESP-IDF bug is resolved)
|
||||||
|
CONFIG_ESPTOOLPY_FLASHFREQ_120M=y
|
||||||
|
# LVGL
|
||||||
|
CONFIG_LV_DPI_DEF=139
|
||||||
|
CONFIG_LV_DISP_DEF_REFR_PERIOD=10
|
||||||
|
CONFIG_LV_THEME_DEFAULT_DARK=y
|
||||||
|
# USB
|
||||||
|
CONFIG_TINYUSB_MSC_ENABLED=y
|
||||||
|
CONFIG_TINYUSB_MSC_MOUNT_PATH="/sdcard"
|
||||||
@ -21,9 +21,6 @@ CONFIG_FREERTOS_SMP=n
|
|||||||
CONFIG_FREERTOS_UNICORE=n
|
CONFIG_FREERTOS_UNICORE=n
|
||||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
||||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
|
||||||
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
|
||||||
CONFIG_FATFS_LFN_HEAP=y
|
CONFIG_FATFS_LFN_HEAP=y
|
||||||
CONFIG_FATFS_VOLUME_COUNT=3
|
CONFIG_FATFS_VOLUME_COUNT=3
|
||||||
CONFIG_FATFS_SECTOR_512=y
|
CONFIG_FATFS_SECTOR_512=y
|
||||||
@ -33,6 +30,9 @@ CONFIG_WL_SECTOR_MODE_SAFE=y
|
|||||||
CONFIG_WL_SECTOR_MODE=1
|
CONFIG_WL_SECTOR_MODE=1
|
||||||
|
|
||||||
# Hardware: Main
|
# Hardware: Main
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-16mb.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="partitions-16mb.csv"
|
||||||
CONFIG_TT_BOARD_LILYGO_TLORA_PAGER=y
|
CONFIG_TT_BOARD_LILYGO_TLORA_PAGER=y
|
||||||
CONFIG_TT_BOARD_NAME="LilyGo T-Lora Pager"
|
CONFIG_TT_BOARD_NAME="LilyGo T-Lora Pager"
|
||||||
CONFIG_TT_BOARD_ID="lilygo-tlora-pager"
|
CONFIG_TT_BOARD_ID="lilygo-tlora-pager"
|
||||||
|
|||||||
@ -21,9 +21,6 @@ CONFIG_FREERTOS_SMP=n
|
|||||||
CONFIG_FREERTOS_UNICORE=n
|
CONFIG_FREERTOS_UNICORE=n
|
||||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
||||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
|
||||||
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
|
||||||
CONFIG_FATFS_LFN_HEAP=y
|
CONFIG_FATFS_LFN_HEAP=y
|
||||||
CONFIG_FATFS_VOLUME_COUNT=3
|
CONFIG_FATFS_VOLUME_COUNT=3
|
||||||
CONFIG_FATFS_SECTOR_512=y
|
CONFIG_FATFS_SECTOR_512=y
|
||||||
@ -33,6 +30,9 @@ CONFIG_WL_SECTOR_MODE_SAFE=y
|
|||||||
CONFIG_WL_SECTOR_MODE=1
|
CONFIG_WL_SECTOR_MODE=1
|
||||||
|
|
||||||
# Hardware: Main
|
# Hardware: Main
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-16mb.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="partitions-16mb.csv"
|
||||||
CONFIG_TT_BOARD_M5STACK_CORE2=y
|
CONFIG_TT_BOARD_M5STACK_CORE2=y
|
||||||
CONFIG_TT_BOARD_NAME="M5Stack Core2"
|
CONFIG_TT_BOARD_NAME="M5Stack Core2"
|
||||||
CONFIG_TT_BOARD_ID="m5stack-core2"
|
CONFIG_TT_BOARD_ID="m5stack-core2"
|
||||||
|
|||||||
@ -21,9 +21,6 @@ CONFIG_FREERTOS_SMP=n
|
|||||||
CONFIG_FREERTOS_UNICORE=n
|
CONFIG_FREERTOS_UNICORE=n
|
||||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
||||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
|
||||||
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
|
||||||
CONFIG_FATFS_LFN_HEAP=y
|
CONFIG_FATFS_LFN_HEAP=y
|
||||||
CONFIG_FATFS_VOLUME_COUNT=3
|
CONFIG_FATFS_VOLUME_COUNT=3
|
||||||
CONFIG_FATFS_SECTOR_512=y
|
CONFIG_FATFS_SECTOR_512=y
|
||||||
@ -33,6 +30,9 @@ CONFIG_WL_SECTOR_MODE_SAFE=y
|
|||||||
CONFIG_WL_SECTOR_MODE=1
|
CONFIG_WL_SECTOR_MODE=1
|
||||||
|
|
||||||
# Hardware: Main
|
# Hardware: Main
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-16mb.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="partitions-16mb.csv"
|
||||||
CONFIG_TT_BOARD_M5STACK_CORES3=y
|
CONFIG_TT_BOARD_M5STACK_CORES3=y
|
||||||
CONFIG_TT_BOARD_NAME="M5Stack CoreS3"
|
CONFIG_TT_BOARD_NAME="M5Stack CoreS3"
|
||||||
CONFIG_TT_BOARD_ID="m5stack-cores3"
|
CONFIG_TT_BOARD_ID="m5stack-cores3"
|
||||||
|
|||||||
@ -21,9 +21,6 @@ CONFIG_FREERTOS_SMP=n
|
|||||||
CONFIG_FREERTOS_UNICORE=n
|
CONFIG_FREERTOS_UNICORE=n
|
||||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
||||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
|
||||||
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
|
||||||
CONFIG_FATFS_LFN_HEAP=y
|
CONFIG_FATFS_LFN_HEAP=y
|
||||||
CONFIG_FATFS_VOLUME_COUNT=3
|
CONFIG_FATFS_VOLUME_COUNT=3
|
||||||
CONFIG_FATFS_SECTOR_512=y
|
CONFIG_FATFS_SECTOR_512=y
|
||||||
@ -33,13 +30,16 @@ CONFIG_WL_SECTOR_MODE_SAFE=y
|
|||||||
CONFIG_WL_SECTOR_MODE=1
|
CONFIG_WL_SECTOR_MODE=1
|
||||||
|
|
||||||
# Hardware: Main
|
# Hardware: Main
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-8mb.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="partitions-8mb.csv"
|
||||||
CONFIG_TT_BOARD_UNPHONE=y
|
CONFIG_TT_BOARD_UNPHONE=y
|
||||||
CONFIG_TT_BOARD_NAME="unPhone"
|
CONFIG_TT_BOARD_NAME="unPhone"
|
||||||
CONFIG_TT_BOARD_ID="unphone"
|
CONFIG_TT_BOARD_ID="unphone"
|
||||||
CONFIG_IDF_TARGET="esp32s3"
|
CONFIG_IDF_TARGET="esp32s3"
|
||||||
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
|
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
|
||||||
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
|
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
|
||||||
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
|
CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y
|
||||||
CONFIG_FLASHMODE_QIO=y
|
CONFIG_FLASHMODE_QIO=y
|
||||||
# Hardware: SPI RAM
|
# Hardware: SPI RAM
|
||||||
CONFIG_ESP32S3_SPIRAM_SUPPORT=y
|
CONFIG_ESP32S3_SPIRAM_SUPPORT=y
|
||||||
|
|||||||
@ -21,9 +21,6 @@ CONFIG_FREERTOS_SMP=n
|
|||||||
CONFIG_FREERTOS_UNICORE=n
|
CONFIG_FREERTOS_UNICORE=n
|
||||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=5120
|
||||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
|
||||||
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
|
||||||
CONFIG_FATFS_LFN_HEAP=y
|
CONFIG_FATFS_LFN_HEAP=y
|
||||||
CONFIG_FATFS_VOLUME_COUNT=3
|
CONFIG_FATFS_VOLUME_COUNT=3
|
||||||
CONFIG_FATFS_SECTOR_512=y
|
CONFIG_FATFS_SECTOR_512=y
|
||||||
@ -33,6 +30,9 @@ CONFIG_WL_SECTOR_MODE_SAFE=y
|
|||||||
CONFIG_WL_SECTOR_MODE=1
|
CONFIG_WL_SECTOR_MODE=1
|
||||||
|
|
||||||
# Hardware: Main
|
# Hardware: Main
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-4mb.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="partitions-4mb.csv"
|
||||||
CONFIG_TT_BOARD_WAVESHARE_S3_TOUCH_43=y
|
CONFIG_TT_BOARD_WAVESHARE_S3_TOUCH_43=y
|
||||||
CONFIG_TT_BOARD_NAME="Waveshare ESP32 S3 Touch LCD 4.3"
|
CONFIG_TT_BOARD_NAME="Waveshare ESP32 S3 Touch LCD 4.3"
|
||||||
CONFIG_TT_BOARD_ID="waveshare-s3-touch-43"
|
CONFIG_TT_BOARD_ID="waveshare-s3-touch-43"
|
||||||
|
|||||||
@ -21,9 +21,6 @@ CONFIG_FREERTOS_SMP=n
|
|||||||
CONFIG_FREERTOS_UNICORE=n
|
CONFIG_FREERTOS_UNICORE=n
|
||||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=4096
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=4096
|
||||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
|
||||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
|
||||||
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
|
||||||
CONFIG_FATFS_LFN_HEAP=y
|
CONFIG_FATFS_LFN_HEAP=y
|
||||||
CONFIG_FATFS_VOLUME_COUNT=3
|
CONFIG_FATFS_VOLUME_COUNT=3
|
||||||
CONFIG_FATFS_SECTOR_512=y
|
CONFIG_FATFS_SECTOR_512=y
|
||||||
@ -33,6 +30,9 @@ CONFIG_WL_SECTOR_MODE_SAFE=y
|
|||||||
CONFIG_WL_SECTOR_MODE=1
|
CONFIG_WL_SECTOR_MODE=1
|
||||||
|
|
||||||
# Hardware defaults
|
# Hardware defaults
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-4mb.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="partitions-4mb.csv"
|
||||||
CONFIG_TT_BOARD_CUSTOM=y
|
CONFIG_TT_BOARD_CUSTOM=y
|
||||||
# LVGL
|
# LVGL
|
||||||
CONFIG_LV_DISP_DEF_REFR_PERIOD=10
|
CONFIG_LV_DISP_DEF_REFR_PERIOD=10
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user