Skip to content

Commit 805476a

Browse files
Luis Miguel Collado LleraLuis Miguel Collado Llera
Luis Miguel Collado Llera
authored and
Luis Miguel Collado Llera
committed
kode dot board added
1 parent 15e71a6 commit 805476a

File tree

6 files changed

+255
-1
lines changed

6 files changed

+255
-1
lines changed

boards.txt

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2794,7 +2794,69 @@ esp32wroverkit.menu.EraseFlash.none.upload.erase_cmd=
27942794
esp32wroverkit.menu.EraseFlash.all=Enabled
27952795
esp32wroverkit.menu.EraseFlash.all.upload.erase_cmd=-e
27962796

2797-
##############################################################
2797+
###########################################################
2798+
2799+
kodedot.name=kode dot
2800+
2801+
kodedot.bootloader.tool=esptool_py
2802+
kodedot.bootloader.tool.default=esptool_py
2803+
2804+
kodedot.upload.tool=esptool_py_nomerge
2805+
kodedot.upload.tool.default=esptool_py_nomerge
2806+
kodedot.upload.tool.network=esp_ota
2807+
2808+
kodedot.upload.maximum_size=8388608
2809+
kodedot.upload.maximum_data_size=327680
2810+
kodedot.upload.flags=
2811+
kodedot.upload.extra_flags=
2812+
kodedot.upload.use_1200bps_touch=false
2813+
kodedot.upload.wait_for_upload_port=false
2814+
kodedot.upload.speed=921600
2815+
2816+
kodedot.upload.erase_cmd=
2817+
2818+
kodedot.serial.disableDTR=false
2819+
kodedot.serial.disableRTS=false
2820+
2821+
kodedot.build.tarch=xtensa
2822+
kodedot.build.bootloader_addr=0x0
2823+
kodedot.build.target=esp32s3
2824+
kodedot.build.mcu=esp32s3
2825+
kodedot.build.core=esp32
2826+
kodedot.build.variant=kodedot
2827+
kodedot.build.board=ESP32S3_DEV
2828+
2829+
kodedot.build.usb_mode=1
2830+
kodedot.build.cdc_on_boot=1
2831+
kodedot.build.msc_on_boot=0
2832+
kodedot.build.dfu_on_boot=0
2833+
2834+
kodedot.build.f_cpu=240000000L
2835+
2836+
kodedot.build.flash_offset=0x400000
2837+
kodedot.build.flash_size=16MB
2838+
kodedot.build.flash_freq=80m
2839+
kodedot.build.flash_mode=dio
2840+
2841+
# Menú de particiones Custom kodeOS
2842+
kodedot.menu.PartitionScheme.kodeos=Custom kodeOS
2843+
kodedot.menu.PartitionScheme.kodeos.build.partitions=kodedot_partitions
2844+
2845+
# Particiones por defecto
2846+
kodedot.build.partitions=kodedot_partitions
2847+
2848+
kodedot.build.psram_type=qspi
2849+
kodedot.build.defines=
2850+
2851+
kodedot.build.loop_core=-DARDUINO_RUNNING_CORE=1
2852+
kodedot.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
2853+
2854+
kodedot.recipe.hooks.objcopy.postobjcopy.3.pattern=
2855+
kodedot.recipe.hooks.objcopy.postobjcopy.3.pattern_args=
2856+
2857+
kodedot.recipe.output.save_file={build.project_name}.ino.bin
2858+
2859+
###########################################################
27982860

27992861
aventen_s3_sync.name=Aventen S3 Sync
28002862
## Based upon ESP32-S3 Dev Board

platform.txt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,19 @@ tools.esptool_py.upload.params.quiet=
288288
tools.esptool_py.upload.pattern_args=--chip {build.mcu} --port "{serial.port}" --baud {upload.speed} {upload.flags} --before default_reset --after hard_reset write_flash {upload.erase_cmd} -z --flash_mode keep --flash_freq keep --flash_size keep {build.bootloader_addr} "{build.path}/{build.project_name}.bootloader.bin" 0x8000 "{build.path}/{build.project_name}.partitions.bin" 0xe000 "{runtime.platform.path}/tools/partitions/boot_app0.bin" 0x10000 "{build.path}/{build.project_name}.bin" {upload.extra_flags}
289289
tools.esptool_py.upload.pattern="{path}/{cmd}" {upload.pattern_args}
290290

291+
## Custom tool for kodeOS: esptool_py_nomerge
292+
## -------------------------------------------------------------
293+
tools.esptool_py_nomerge.path={runtime.tools.esptool_py.path}
294+
tools.esptool_py_nomerge.cmd=esptool
295+
tools.esptool_py_nomerge.cmd.windows=esptool.exe
296+
297+
tools.esptool_py_nomerge.upload.protocol=serial
298+
tools.esptool_py_nomerge.upload.params.verbose=
299+
tools.esptool_py_nomerge.upload.params.quiet=
300+
301+
tools.esptool_py_nomerge.upload.pattern_args=--chip {build.mcu} --port "{serial.port}" --baud {upload.speed} {upload.flags} --before default_reset --after hard_reset write_flash {upload.erase_cmd} --flash_mode keep --flash_freq keep --flash_size keep {build.flash_offset} "{build.path}/{build.project_name}.bin"
302+
tools.esptool_py_nomerge.upload.pattern="{path}/{cmd}" {tools.esptool_py_nomerge.upload.pattern_args}
303+
291304
## Program Application
292305
## -------------------
293306
tools.esptool_py.program.params.verbose=
@@ -330,3 +343,17 @@ tools.dfu-util.cmd=dfu-util
330343
tools.dfu-util.upload.params.verbose=-d
331344
tools.dfu-util.upload.params.quiet=
332345
tools.dfu-util.upload.pattern="{path}/{cmd}" --device {vid.0}:{pid.0} -D "{build.path}/{build.project_name}.bin" -Q
346+
347+
## --------------------------------------------------------------------------
348+
## Custom tool for Kode Dot: esptool_py_nomerge
349+
## --------------------------------------------------------------------------
350+
tools.esptool_py_nomerge.path={runtime.tools.esptool_py.path}
351+
tools.esptool_py_nomerge.cmd=esptool
352+
tools.esptool_py_nomerge.cmd.windows=esptool.exe
353+
354+
tools.esptool_py_nomerge.upload.protocol=serial
355+
tools.esptool_py_nomerge.upload.params.verbose=
356+
tools.esptool_py_nomerge.upload.params.quiet=
357+
358+
tools.esptool_py_nomerge.upload.pattern_args=--chip {build.mcu} --port "{serial.port}" --baud {upload.speed} {upload.flags} --before default_reset --after hard_reset write_flash --flash_mode {build.flash_mode} --flash_freq {build.flash_freq} --flash_size {build.flash_size} {build.flash_offset} "{build.path}/{build.project_name}.bin" {upload.extra_flags}
359+
tools.esptool_py_nomerge.upload.pattern="{path}/{cmd}" {tools.esptool_py_nomerge.upload.pattern_args}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Name, Type, SubType, Offset, Size, Flags
2+
nvs, data, nvs, 0x9000, 0x6000,
3+
phy_init, data, phy, 0xf000, 0x1000,
4+
otadata, data, ota, 0x10000, 0x2000,
5+
ota_0, app, ota_0, 0x20000, 0x3E0000,
6+
ota_1, app, ota_1, 0x400000, 0x800000,
7+
storage, data, spiffs, 0xC00000, 0x400000,
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// custom_ota_override.cpp
2+
// Esta función sobrescribe la definición débil en el core de Arduino-ESP32.
3+
extern "C" {
4+
bool verifyRollbackLater() __attribute__((weak));
5+
}
6+
7+
bool verifyRollbackLater() {
8+
// Retorna true para evitar que se marque la imagen OTA como válida automáticamente.
9+
return true;
10+
}

variants/kodedot/pins_arduino.h

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
#ifndef Pins_Arduino_h
2+
#define Pins_Arduino_h
3+
4+
#include <stdint.h>
5+
#include <stdbool.h>
6+
7+
#define USB_VID 0x303a
8+
#define USB_PID 0x1001
9+
10+
static const uint8_t TX = 43;
11+
static const uint8_t RX = 44;
12+
13+
static const uint8_t SDA = 45;
14+
static const uint8_t SCL = 46;
15+
16+
static const uint8_t SS = 34;
17+
static const uint8_t MOSI = 35;
18+
static const uint8_t MISO = 37;
19+
static const uint8_t SCK = 36;
20+
21+
static const uint8_t A0 = 1;
22+
static const uint8_t A1 = 2;
23+
static const uint8_t A2 = 3;
24+
25+
static const uint8_t T3 = 3;
26+
27+
// SDCARD Slot
28+
#define BOARD_HAS_SDMMC
29+
#define SDMMC_D2 33 // SDMMC Data2
30+
#define SDMMC_D3 34 // SDMMC Data3 / SPI CS
31+
#define SDMMC_CMD 35 // SDMMC CMD / SPI MOSI
32+
#define SDMMC_CLK 36 // SDMMC CLK / SPI SCK
33+
#define SDMMC_D0 37 // SDMMC Data0 / SPI MISO
34+
#define SDMMC_D1 38 // SDMMC Data1
35+
#define BOARD_MAX_SDMMC_FREQ SDMMC_FREQ_DEFAULT
36+
37+
// 240x240 LCD
38+
#define BOARD_HAS_SPI_LCD
39+
#define LCD_MODEL ST7789
40+
#define LCD_WIDTH 240
41+
#define LCD_HEIGHT 240 // *RAM height is actually 320!
42+
#define LCD_MISO -1 // LCD Does not use MISO.
43+
#define LCD_DC 4 // Used to switch data and command status.
44+
#define LCD_CS 5 // used to enable LCD, low level to enable.
45+
#define LCD_CLK 6 // LCD SPI Clock.
46+
#define LCD_MOSI 7 // LCD SPI MOSI.
47+
#define LCD_RST 8 // used to reset LCD, low level to reset.
48+
#define LCD_BL 9 // LCD backlight control.
49+
50+
// Buttons
51+
#define BUTTON_OK 0 // OK button, low level when pressed.
52+
#define BUTTON_UP 10 // UP button, low level when pressed.
53+
#define BUTTON_DOWN 11 // Down button, low level when pressed.
54+
#define BUTTON_MENU 14 // Menu button, low level when pressed.
55+
56+
// LEDs
57+
#define LED_GREEN 15 // the light is lit when set high level.
58+
#define LED_YELLOW 16 // the light is lit when set high level.
59+
60+
// Board Controls
61+
#define DEV_VBUS_EN 12 // High level to enable DEV_VBUS power supply.
62+
#define BOOST_EN 13 // High level to enable Battery Boost circuit.
63+
#define LIMIT_EN 17 // Enable USB_HOST current limiting IC, high level enable.
64+
#define USB_HOST_EN \
65+
18 // Used to switch the USB interface. When high level, the USB_HOST interface is enabled. When low level, the USB_DEV interface is enabled.
66+
67+
// Board Sensors
68+
#define OVER_CURRENT 21 // Current overrun signal, high level means overrun.
69+
#define HOST_VOLTS 1 // USB_DEV voltage monitoring, ADC1 channel 0. actual_v = value_v * 3.7
70+
#define BAT_VOLTS 2 // Battery voltage monitoring, ADC1 channel 1. actual_v = value_v * 2
71+
72+
// USB Port
73+
#define USB_DN 19 // USB D-
74+
#define USB_DP 20 // USB D+
75+
76+
// Bottom header
77+
#define MTCK 39
78+
#define MTDO 40
79+
#define MTDI 41
80+
#define MTMS 42
81+
// #define FREE_6 3 // Idle, can be customized.
82+
// #define FREE_4 26 // Idle, can be customized.
83+
// #define FREE_1 45 // Idle, can be customized.
84+
// #define FREE_2 46 // Idle, can be customized.
85+
// #define FREE_5 47 // Idle, can be customized.
86+
// #define FREE_3 48 // Idle, can be customized.
87+
88+
typedef enum {
89+
USB_HOST_POWER_OFF,
90+
USB_HOST_POWER_VBUS,
91+
USB_HOST_POWER_BAT
92+
} UsbHostPower_t;
93+
void usbHostPower(UsbHostPower_t mode);
94+
void usbHostEnable(bool enable);
95+
96+
#endif /* Pins_Arduino_h */

variants/kodedot/variant.cpp

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#include "Arduino.h"
2+
3+
void usbHostPower(UsbHostPower_t mode) {
4+
static UsbHostPower_t m = USB_HOST_POWER_OFF;
5+
if (m == mode) {
6+
return;
7+
}
8+
if (mode == USB_HOST_POWER_OFF) {
9+
digitalWrite(LIMIT_EN, LOW);
10+
if (m == USB_HOST_POWER_VBUS) {
11+
digitalWrite(DEV_VBUS_EN, LOW);
12+
} else if (m == USB_HOST_POWER_BAT) {
13+
digitalWrite(BOOST_EN, LOW);
14+
}
15+
} else if (mode == USB_HOST_POWER_VBUS) {
16+
if (m == USB_HOST_POWER_BAT) {
17+
digitalWrite(BOOST_EN, LOW);
18+
}
19+
digitalWrite(DEV_VBUS_EN, HIGH);
20+
} else if (mode == USB_HOST_POWER_BAT) {
21+
if (m == USB_HOST_POWER_VBUS) {
22+
digitalWrite(DEV_VBUS_EN, LOW);
23+
}
24+
digitalWrite(BOOST_EN, HIGH);
25+
}
26+
if (mode != USB_HOST_POWER_OFF) {
27+
digitalWrite(LIMIT_EN, HIGH);
28+
}
29+
m = mode;
30+
}
31+
32+
void usbHostEnable(bool enable) {
33+
digitalWrite(USB_HOST_EN, enable);
34+
}
35+
36+
extern "C" void initVariant(void) {
37+
// Route USB to Device Side
38+
pinMode(BOOST_EN, OUTPUT);
39+
digitalWrite(BOOST_EN, LOW);
40+
pinMode(LIMIT_EN, OUTPUT);
41+
digitalWrite(LIMIT_EN, LOW);
42+
pinMode(DEV_VBUS_EN, OUTPUT);
43+
digitalWrite(DEV_VBUS_EN, LOW);
44+
pinMode(USB_HOST_EN, OUTPUT);
45+
digitalWrite(USB_HOST_EN, LOW);
46+
47+
// Turn Off LCD
48+
pinMode(LCD_RST, OUTPUT);
49+
digitalWrite(LCD_RST, LOW);
50+
pinMode(LCD_BL, OUTPUT);
51+
digitalWrite(LCD_BL, LOW);
52+
}

0 commit comments

Comments
 (0)