Compare commits

..

24 commits

Author SHA1 Message Date
Tim Becker
75730e72fa
Merge pull request #7 from badgeteam/update-submodules
update-submodules
2022-07-23 02:10:13 +02:00
Tim Becker
c9c777aae6 update-submodules 2022-07-23 00:21:29 +02:00
Tim Becker
c0dd0ae6b1
Merge pull request #6 from sylefeb/url-fix
getting started url fix
2022-07-17 09:51:00 +02:00
Sylvain Lefebvre
3938b4bd0c getting started url fix 2022-07-16 19:10:48 +02:00
Tim Becker
db2b6a666e
Merge pull request #5 from badgeteam/update-components
Updated components
2022-07-12 20:08:39 +02:00
Tim Becker
be772ec56f make s default task prepares. README desc make tagets 2022-07-12 20:02:05 +02:00
Tim Becker
1a4af14e33 edited comments in main.c 2022-07-12 07:54:17 +02:00
Tim Becker
820f3c52b2 updated components, modified Makefile to not always run idf-install; just run prepare once. 2022-07-12 07:53:30 +02:00
Renze Nicolai
9219c0b1c4 Update tools submodule 2022-07-11 22:41:34 +02:00
Renze Nicolai
91c816885a Update submodules, change licene of source code in main folder to public domain / cc0 and update readme with the changes made by a2800276 2022-07-11 22:33:51 +02:00
RobotMan2412
1c56383215 Add a template image for use in graphics examples. 2022-07-03 15:27:17 +02:00
RobotMan2412
cafcde249e Update PAX. 2022-07-03 13:30:30 +02:00
RobotMan2412
888d6cbdf8 Add comments literally everywhere. 2022-07-02 20:55:10 +02:00
RobotMan2412
8df04ebece Make install automatically do a prepare. 2022-07-02 20:31:41 +02:00
RobotMan2412
44666a2603 Make install part of the makefile and remove the dangerous flash option. 2022-07-02 20:10:33 +02:00
RobotMan2412
8a9087b66b Import tools module. 2022-06-29 22:20:39 +02:00
Renze Nicolai
6dfe74add2
Merge pull request #3 from badgeteam/renze
Update IDF, fix small stuff
2022-06-29 22:19:16 +02:00
Renze Nicolai
c7f16962e2 Clean up sdkconfig 2022-06-29 22:14:13 +02:00
Renze Nicolai
fb567b52b1 Add BME680 submodule 2022-06-29 22:03:49 +02:00
Renze Nicolai
5ec6a257c5 Remove BME680 placeholder 2022-06-29 22:02:42 +02:00
Renze Nicolai
aaf23a0e61 Update idf, config, bsp 2022-06-29 22:02:21 +02:00
RobotMan2412
ebed659365 Delete deprecated script. 2022-06-28 15:56:29 +02:00
RobotMan2412
3eeb781102 Update submodules. 2022-06-28 11:31:56 +02:00
RobotMan2412
43c7ca1175 Fix partition table. 2022-06-28 10:34:49 +02:00
25 changed files with 217 additions and 341 deletions

9
.gitmodules vendored
View file

@ -28,9 +28,6 @@
[submodule "components/ws2812"]
path = components/ws2812
url = https://github.com/badgeteam/esp32-component-ws2812.git
[submodule "components/mch2022-efuse"]
path = components/mch2022-efuse
url = https://github.com/badgeteam/esp32-component-mch2022-efuse.git
[submodule "components/mch2022-bsp"]
path = components/mch2022-bsp
url = https://github.com/badgeteam/esp32-component-mch2022-bsp.git
@ -40,3 +37,9 @@
[submodule "main/pax-keyboard"]
path = components/pax-keyboard
url = https://github.com/robotman2412/pax-keyboard
[submodule "components/i2c-bme680"]
path = components/i2c-bme680
url = https://github.com/badgeteam/esp32-component-bme680.git
[submodule "tools"]
path = tools
url = https://github.com/badgeteam/mch2022-tools

View file

@ -1,9 +0,0 @@
Copyright 2022 Julian Scheffers
Copyright 2022 Jeroen Domburg
Copyright 2022 Renze Nicolai
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View file

@ -4,9 +4,9 @@ IDF_PATH ?= $(shell pwd)/esp-idf
IDF_EXPORT_QUIET ?= 0
SHELL := /usr/bin/env bash
.PHONY: prepare clean build flash erase monitor menuconfig
.PHONY: prepare clean build flash monitor menuconfig
all: prepare build
all: prepare build install
prepare:
git submodule update --init --recursive
@ -18,11 +18,8 @@ clean:
build:
source "$(IDF_PATH)/export.sh" && idf.py build
flash: build
source "$(IDF_PATH)/export.sh" && idf.py flash -p $(PORT)
erase:
source "$(IDF_PATH)/export.sh" && idf.py erase-flash -p $(PORT)
install: build
python3 tools/webusb_push.py "Template App" build/main.bin --run
monitor:
source "$(IDF_PATH)/export.sh" && idf.py monitor -p $(PORT)

View file

@ -1,12 +1,15 @@
# MCH2022 template app
This repository contains a template app for the MCH2022 badge.
It is intended to be used as the basis for developing your own native ESP32
apps. See [Getting Started](https://badge.team/docs/badges/mch2022/software-development/esp-idf/esp_idf_getting_started/)
## License
The source code contained in this repository is licensed under terms of the MIT license, more information can be found in the LICENSE file.
The source code contained in the main folder of this example is public domain / CC0 licensed, use it as you please.
Source code included as submodules is licensed separately, please check the following table for details.
Source code included as submodules is licensed separately, please check the
following table for details.
| Submodule | License | Author |
|-----------------------------|-----------------------------------|--------------------------------------------------------|
@ -20,14 +23,43 @@ Source code included as submodules is licensed separately, please check the foll
| components/sdcard | MIT | Nicolai Electronics |
| components/spi-ice40 | MIT | Nicolai Electronics |
| components/spi-ili9341 | MIT | Nicolai Electronics |
| components/ws2812 | MIT | Unlicense / Public domain |
| components/ws2812 | Unlicense / Public domain | None |
Source the `update_components.sh` to update all the submodules to their
corresponding tips.
## How to make
```sh
git clone --recursive https://github.com/badgeteam/mch2022-template-app
cd mch2022-template-app
make prepare
make
```
This will produce the `main.bin` file in the `build` folder that contains the compiled application.
The default target of the Makefile (the one executed if you just run `make`) installs the proper ESP-IDF version and all other dependencies, then builds the project and tries to install it on an attached Badge. Because this process checks all the dependencies for updates, this can become tedious during development, so you'll probably want to execute specific targets:
- prepare : this is (one of) the targets executed in the default task and the one that, technically, only needs to run once to install dependencies
- clean : clean the build environment. This does NOT clean up installed dependencies.
- build : well ... build. Compiles you sources and assembles a binary to install.
- install : This install the binary that was build, you can only call `install`, it depends on `build`. *Note* installation is not and SHOULD NOT be performed with the typical `idf.py flash` call, see the note below for details.
- monitor : start the serial monitor to examine log output
- menuconfig : The IDF build system has a fairly elaborate configuration system that can be accessed via `menuconfig`. You'll know if you need it. Or try it out to explore.
### Note: Why not to use `idf.py flash` to install my native app.
If you have previously used the IDF, you may have noticed that we dont use
`idf.py flash` to install the app on the Badge. (And if you havent, you can
safely skip this section. :)
The `idf.py flash` command assumes that the binary to flash is the main (and
only) application for the device. This is not the case for the Badge, though.
The main application is the launcher app, i.e. the app with the menu that
starts by default. The `make install` target of the Makefile copies our newly
created app into the
[appfs](https://github.com/badgeteam/esp32-component-appfThe Makefile cs)
instead of overwriting the launcher. Once copied to the appfs, the launcher can
find your app and it should appear in the apps menu.
Obviously you _can_ use idf.py flash but youll delete the launcher app and would
need to reinstall it later.

@ -1 +1 @@
Subproject commit 3311e975db898f5177e6b88026489a40972a7f1f
Subproject commit b20b1d8f4d88b3af9b9065998824dae8414f1492

1
components/i2c-bme680 Submodule

@ -0,0 +1 @@
Subproject commit 97cd2137cb41bb40f29e6ff65b47d99c7ea740c8

View file

@ -1,5 +0,0 @@
idf_component_register(
SRCS "bme680.c"
INCLUDE_DIRS include
REQUIRES "bus-i2c"
)

View file

@ -1,47 +0,0 @@
/**
* Copyright (c) 2022 Nicolai Electronics
*
* SPDX-License-Identifier: MIT
*/
#include <sdkconfig.h>
#include <esp_log.h>
#include <driver/gpio.h>
#include <freertos/FreeRTOS.h>
#include <freertos/semphr.h>
#include <freertos/task.h>
#include "bme680.h"
#include "managed_i2c.h"
static const char *TAG = "BME680";
esp_err_t bme680_check_id(BME680* device) {
uint8_t chip_id;
esp_err_t res = i2c_read_reg(device->i2c_bus, device->i2c_address, BME680_REG_CHIP_ID, &chip_id, 1);
if (res != ESP_OK) return res;
if (chip_id != BME680_CHIP_ID) {
ESP_LOGE(TAG, "Unexpected chip id value 0x%02X, expected 0x%02X", chip_id, BME680_CHIP_ID);
return ESP_FAIL;
}
return ESP_OK;
}
esp_err_t bme680_reset(BME680* device) {
uint8_t value = 0xFF;
esp_err_t res = i2c_write_reg_n(device->i2c_bus, device->i2c_address, BME680_REG_RESET, &value, 1);
if (res != ESP_OK) return res;
return ESP_OK;
}
esp_err_t bme680_init(BME680* device) {
esp_err_t res = bme680_reset(device);
if (res != ESP_OK) return res;
vTaskDelay(100 / portTICK_PERIOD_MS);
res = bme680_check_id(device);
if (res != ESP_OK) return res;
return res;
}
esp_err_t bme680_deinit(BME680* device) {
return bme680_reset(device);
}

View file

@ -1,19 +0,0 @@
#pragma once
#include <esp_err.h>
#include <stdint.h>
#define BME680_REG_RESET 0xE0
#define BME680_REG_CHIP_ID 0xD0
#define BME680_CHIP_ID 0x61
typedef struct BME680 {
int i2c_bus;
int i2c_address;
} BME680;
esp_err_t bme680_init(BME680* device);
esp_err_t bme680_deinit(BME680* device);
esp_err_t bme680_check_id(BME680* device);
esp_err_t bme680_reset(BME680* device);

@ -1 +1 @@
Subproject commit b4e6038d443c91f156dc72c79993041a85dc8511
Subproject commit 4804a783940d8df3d39c2dd30e8907ad308a2570

@ -1 +0,0 @@
Subproject commit e45054f56106b528b1e49d34b54ae892ee3c1e1e

@ -1 +1 @@
Subproject commit ab002e9d655647ae1aa85b7977c3fa896ae30e6f
Subproject commit 073a70b0175f3b08164dff5a6adb178e6d3caacc

@ -1 +1 @@
Subproject commit c2d3451de977c343c83d66446b631ee53d4dfbfd
Subproject commit 8027acbe5e49b009e71baf66aff2aaf5ee64d7bd

@ -1 +1 @@
Subproject commit abdc7b235095e5914a7f7855796ac4a0f922c53c
Subproject commit 7e2bdc0f1d80ad66f4cb0e561976de624507029f

@ -1 +1 @@
Subproject commit c1c750d2ce0a487622fb311cce19ea899d49ffe6
Subproject commit 4236aa600dc9bc21e75c6e60bb9fbdec196906f9

@ -1 +1 @@
Subproject commit 9f303290d8cb77c932efdaed889ce67ff58b6dea
Subproject commit 1329b19fe494500aeb79d19b27cfd99b40c37aec

View file

@ -1,41 +0,0 @@
#!/usr/bin/env python3
import binascii, serial, time, sys, argparse
parser = argparse.ArgumentParser(description='MCH2022 badge FPGA bitstream programming tool')
parser.add_argument("port", help="Serial port")
parser.add_argument("bitstream", help="Bitstream binary")
args = parser.parse_args()
with open(args.bitstream, "rb") as f:
bitstream = f.read()
port = serial.Serial(args.port, 921600, timeout=1)
print("Waiting for badge...")
while True:
data = port.read(4)
if (data == b"FPGA"):
break
port.write(b'FPGA' + (len(bitstream).to_bytes(4, byteorder='little')) + binascii.crc32(bitstream).to_bytes(4, byteorder='little'))
time.sleep(0.5)
sent = 0
print("Sending data", end="")
while len(bitstream) - sent > 0:
print(".", end="")
sys.stdout.flush()
txLength = len(bitstream)
if txLength > 2048:
txLength = 2048
port.write(bitstream[sent:sent + txLength])
time.sleep(0.05)
sent += txLength
while port.is_open:
inLen = port.in_waiting
if inLen > 0:
data = port.read(inLen).decode('utf-8','ignore');
if data == 'FPGA':
print(data)
else:
print(data, end='')
port.close()
print("\n")

View file

@ -1,3 +1,8 @@
# This example code is in the Public Domain (or CC0 licensed, at your option.)
# Unless required by applicable law or agreed to in writing, this
# software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
# CONDITIONS OF ANY KIND, either express or implied.
idf_component_register(
SRCS
"main.c"

View file

@ -1,20 +1,36 @@
/*
* This example code is in the Public Domain (or CC0 licensed, at your option.)
* Unless required by applicable law or agreed to in writing, this
* software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied.
*/
#pragma once
// For pin mappings.
#include "hardware.h"
// For graphics.
#include "pax_gfx.h"
// For PNG images.
#include "pax_codecs.h"
// The screen driver.
#include "ili9341.h"
// For all system settings and alike.
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/queue.h"
#include "esp_system.h"
#include "nvs.h"
#include "nvs_flash.h"
// For WiFi connectivity.
#include "wifi_connect.h"
#include "wifi_connection.h"
// For exiting to the launcher.
#include "soc/rtc.h"
#include "soc/rtc_cntl_reg.h"
// Updates the screen with the last drawing.
void disp_flush();
// Exits the app, returning to the launcher.
void exit_to_launcher();

View file

@ -1,35 +1,53 @@
/*
* This example code is in the Public Domain (or CC0 licensed, at your option.)
* Unless required by applicable law or agreed to in writing, this
* software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied.
*/
// This file contains a simple hello world app which you can base you own apps on.
// This file contains a simple Hello World app which you can base you own
// native Badge apps on.
#include "main.h"
static pax_buf_t buf;
xQueueHandle buttonQueue;
#include <esp_log.h>
static const char *TAG = "mch2022-demo-app";
// Updates the screen with the latest buffer.
void disp_flush() {
ili9341_write(get_ili9341(), buf.buf);
}
// Exits the app, returning to the launcher.
void exit_to_launcher() {
REG_WRITE(RTC_CNTL_STORE0_REG, 0);
esp_restart();
}
void app_main() {
// Init HW.
ESP_LOGI(TAG, "Welcome to the template app!");
// Initialize the screen, the I2C and the SPI busses.
bsp_init();
// Initialize the RP2040 (responsible for buttons, etc).
bsp_rp2040_init();
// This queue is used to receive button presses.
buttonQueue = get_rp2040()->queue;
// Init GFX.
// Initialize graphics for the screen.
pax_buf_init(&buf, NULL, 320, 240, PAX_BUF_16_565RGB);
// Init NVS.
// Initialize NVS.
nvs_flash_init();
// Init (but not connect to) WiFi.
// Initialize WiFi. This doesn't connect to Wifi yet.
wifi_init();
while (1) {
@ -37,23 +55,44 @@ void app_main() {
int hue = esp_random() & 255;
pax_col_t col = pax_col_hsv(hue, 255 /*saturation*/, 255 /*brighness*/);
// Show some random color hello world.
// Greet the World in front of a random background color!
// Fill the background with the random color.
pax_background(&buf, col);
char *text = "Hello, World!";
const pax_font_t *font = pax_get_font("saira condensed");
// This text is shown on screen.
char *text = "Hello, MCH2022!";
// Pick the font (Saira is the only one that looks nice in this size).
const pax_font_t *font = pax_font_saira_condensed;
// Determine how the text dimensions so we can display it centered on
// screen.
pax_vec1_t dims = pax_text_size(font, font->default_size, text);
// Draw the centered text.
pax_draw_text(
&buf, 0xff000000, font, font->default_size,
&buf, // Buffer to draw to.
0xff000000, // color
font, font->default_size, // Font and size to use.
// Position (top left corner) of the app.
(buf.width - dims.x) / 2.0,
(buf.height - dims.y) / 2.0,
// The text to be rendered.
text
);
// Draws the entire graphics buffer to the screen.
disp_flush();
// Await any button press and do another cycle.
// Wait for button presses and do another cycle.
// Structure used to receive data.
rp2040_input_message_t message;
// Wait forever for a button press (because of portMAX_DELAY)
xQueueReceive(buttonQueue, &message, portMAX_DELAY);
// Which button is currently pressed?
if (message.input == RP2040_INPUT_BUTTON_HOME && message.state) {
// If home is pressed, exit to launcher.
exit_to_launcher();

View file

@ -1,9 +1,4 @@
# ESP-IDF Partition Table
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0xA000, 12K,
otadata, data, ota, 0xD000, 8K,
phy_init, data, phy, 0xF000, 4K,
ota_0, 0, ota_0, 0x10000, 1600K,
ota_1, 0, ota_1, 0x1A0000, 1600K,
appfs, 0x43, 3, 0x330000, 8000K,
locfd, data, fat, 0xB00000, 5120K,
nvs, data, nvs, 0x9000, 16K,
phy_init, data, phy, 0xF000, 4K,
factory, app, factory, , 5M,
locfd, data, fat, , 10M,

1 # nvs ESP-IDF Partition Table data nvs 0x9000 16K
2 # phy_init Name, data phy SubType, 0xF000 Offset, 4K Size, Type, Flags
3 factory nvs, app factory nvs, 0xA000, 5M 12K, data,
4 locfd otadata, data fat ota, 0xD000, 10M 8K, data,
phy_init, phy, 0xF000, 4K, data,
ota_0, ota_0, 0x10000, 1600K, 0,
ota_1, ota_1, 0x1A0000, 1600K, 0,
appfs, 3, 0x330000, 8000K, 0x43,
locfd, fat, 0xB00000, 5120K, data,

Binary file not shown.

243
sdkconfig
View file

@ -2,142 +2,8 @@
# Automatically generated file. DO NOT EDIT.
# Espressif IoT Development Framework (ESP-IDF) Project Configuration
#
CONFIG_SOC_BROWNOUT_RESET_SUPPORTED="Not determined"
CONFIG_SOC_TWAI_BRP_DIV_SUPPORTED="Not determined"
CONFIG_SOC_CAPS_ECO_VER_MAX=3
CONFIG_SOC_ADC_SUPPORTED=y
CONFIG_SOC_DAC_SUPPORTED=y
CONFIG_SOC_MCPWM_SUPPORTED=y
CONFIG_SOC_SDMMC_HOST_SUPPORTED=y
CONFIG_SOC_BT_SUPPORTED=y
CONFIG_SOC_CLASSIC_BT_SUPPORTED=y
CONFIG_SOC_PCNT_SUPPORTED=y
CONFIG_SOC_WIFI_SUPPORTED=y
CONFIG_SOC_SDIO_SLAVE_SUPPORTED=y
CONFIG_SOC_TWAI_SUPPORTED=y
CONFIG_SOC_EMAC_SUPPORTED=y
CONFIG_SOC_CPU_CORES_NUM=2
CONFIG_SOC_ULP_SUPPORTED=y
CONFIG_SOC_CCOMP_TIMER_SUPPORTED=y
CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=y
CONFIG_SOC_RTC_FAST_MEM_SUPPORTED=y
CONFIG_SOC_RTC_SLOW_MEM_SUPPORTED=y
CONFIG_SOC_I2S_SUPPORTED=y
CONFIG_SOC_RMT_SUPPORTED=y
CONFIG_SOC_SIGMADELTA_SUPPORTED=y
CONFIG_SOC_ADC_RTC_CTRL_SUPPORTED=y
CONFIG_SOC_ADC_DIG_CTRL_SUPPORTED=y
CONFIG_SOC_ADC_PERIPH_NUM=2
CONFIG_SOC_ADC_MAX_CHANNEL_NUM=10
CONFIG_SOC_ADC_DIGI_CONTROLLER_NUM=2
CONFIG_SOC_ADC_PATT_LEN_MAX=16
CONFIG_SOC_ADC_DIGI_MIN_BITWIDTH=9
CONFIG_SOC_ADC_DIGI_MAX_BITWIDTH=12
CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=2
CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=2000
CONFIG_SOC_ADC_MAX_BITWIDTH=12
CONFIG_SOC_CPU_BREAKPOINTS_NUM=2
CONFIG_SOC_CPU_WATCHPOINTS_NUM=2
CONFIG_SOC_CPU_WATCHPOINT_SIZE=64
CONFIG_SOC_CPU_HAS_FPU=y
CONFIG_SOC_DAC_PERIPH_NUM=2
CONFIG_SOC_DAC_RESOLUTION=8
CONFIG_SOC_GPIO_PORT=1
CONFIG_SOC_GPIO_PIN_COUNT=40
CONFIG_SOC_GPIO_VALID_GPIO_MASK=0xFFFFFFFFFF
CONFIG_SOC_GPIO_SUPPORT_SLP_SWITCH=y
CONFIG_SOC_I2C_NUM=2
CONFIG_SOC_I2C_FIFO_LEN=32
CONFIG_SOC_I2C_SUPPORT_APB=y
CONFIG_SOC_CLK_APLL_SUPPORTED=y
CONFIG_SOC_APLL_MULTIPLIER_OUT_MIN_HZ=350000000
CONFIG_SOC_APLL_MULTIPLIER_OUT_MAX_HZ=500000000
CONFIG_SOC_APLL_MIN_HZ=5303031
CONFIG_SOC_APLL_MAX_HZ=125000000
CONFIG_SOC_I2S_NUM=2
CONFIG_SOC_I2S_SUPPORTS_APLL=y
CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y
CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y
CONFIG_SOC_I2S_SUPPORTS_ADC=y
CONFIG_SOC_I2S_SUPPORTS_DAC=y
CONFIG_SOC_I2S_TRANS_SIZE_ALIGN_WORD=y
CONFIG_SOC_I2S_LCD_I80_VARIANT=y
CONFIG_SOC_LCD_I80_SUPPORTED=y
CONFIG_SOC_LCD_I80_BUSES=y
CONFIG_SOC_LCD_I80_BUS_WIDTH=24
CONFIG_SOC_LEDC_HAS_TIMER_SPECIFIC_MUX=y
CONFIG_SOC_LEDC_SUPPORT_REF_TICK=y
CONFIG_SOC_LEDC_SUPPORT_HS_MODE=y
CONFIG_SOC_LEDC_CHANNEL_NUM=8
CONFIG_SOC_LEDC_TIMER_BIT_WIDE_NUM=20
CONFIG_SOC_MCPWM_GROUPS=2
CONFIG_SOC_MCPWM_TIMERS_PER_GROUP=3
CONFIG_SOC_MCPWM_OPERATORS_PER_GROUP=3
CONFIG_SOC_MCPWM_COMPARATORS_PER_OPERATOR=2
CONFIG_SOC_MCPWM_GENERATORS_PER_OPERATOR=2
CONFIG_SOC_MCPWM_TRIGGERS_PER_OPERATOR=2
CONFIG_SOC_MCPWM_GPIO_FAULTS_PER_GROUP=3
CONFIG_SOC_MCPWM_CAPTURE_TIMERS_PER_GROUP=y
CONFIG_SOC_MCPWM_CAPTURE_CHANNELS_PER_TIMER=3
CONFIG_SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP=3
CONFIG_SOC_MCPWM_BASE_CLK_HZ=160000000
CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000
CONFIG_SOC_MPU_REGIONS_MAX_NUM=8
CONFIG_SOC_PCNT_GROUPS=1
CONFIG_SOC_PCNT_UNITS_PER_GROUP=8
CONFIG_SOC_PCNT_CHANNELS_PER_UNIT=2
CONFIG_SOC_PCNT_THRES_POINT_PER_UNIT=2
CONFIG_SOC_RMT_GROUPS=1
CONFIG_SOC_RMT_TX_CANDIDATES_PER_GROUP=8
CONFIG_SOC_RMT_RX_CANDIDATES_PER_GROUP=8
CONFIG_SOC_RMT_CHANNELS_PER_GROUP=8
CONFIG_SOC_RMT_MEM_WORDS_PER_CHANNEL=64
CONFIG_SOC_RMT_SUPPORT_REF_TICK=y
CONFIG_SOC_RMT_CHANNEL_CLK_INDEPENDENT=y
CONFIG_SOC_RTCIO_PIN_COUNT=18
CONFIG_SOC_RTCIO_INPUT_OUTPUT_SUPPORTED=y
CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y
CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y
CONFIG_SOC_SIGMADELTA_NUM=1
CONFIG_SOC_SIGMADELTA_CHANNEL_NUM=8
CONFIG_SOC_SPI_PERIPH_NUM=3
CONFIG_SOC_SPI_DMA_CHAN_NUM=2
CONFIG_SOC_SPI_MAXIMUM_BUFFER_SIZE=64
CONFIG_SOC_SPI_MAX_PRE_DIVIDER=8192
CONFIG_SOC_SPI_SUPPORT_AS_CS=y
CONFIG_SOC_TIMER_GROUPS=2
CONFIG_SOC_TIMER_GROUP_TIMERS_PER_GROUP=2
CONFIG_SOC_TIMER_GROUP_COUNTER_BIT_WIDTH=64
CONFIG_SOC_TIMER_GROUP_TOTAL_TIMERS=4
CONFIG_SOC_TOUCH_VERSION_1=y
CONFIG_SOC_TOUCH_SENSOR_NUM=10
CONFIG_SOC_TOUCH_PAD_MEASURE_WAIT_MAX=0xFF
CONFIG_SOC_TWAI_BRP_MIN=2
CONFIG_SOC_TWAI_SUPPORT_MULTI_ADDRESS_LAYOUT=y
CONFIG_SOC_UART_NUM=3
CONFIG_SOC_UART_SUPPORT_REF_TICK=y
CONFIG_SOC_UART_FIFO_LEN=128
CONFIG_SOC_UART_BITRATE_MAX=5000000
CONFIG_SOC_SPIRAM_SUPPORTED=y
CONFIG_SOC_SHA_SUPPORT_PARALLEL_ENG=y
CONFIG_SOC_SHA_SUPPORT_SHA1=y
CONFIG_SOC_SHA_SUPPORT_SHA256=y
CONFIG_SOC_SHA_SUPPORT_SHA384=y
CONFIG_SOC_SHA_SUPPORT_SHA512=y
CONFIG_SOC_RSA_MAX_BIT_LEN=4096
CONFIG_SOC_AES_SUPPORT_AES_128=y
CONFIG_SOC_AES_SUPPORT_AES_192=y
CONFIG_SOC_AES_SUPPORT_AES_256=y
CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=32
CONFIG_SOC_PHY_DIG_REGS_MEM_SIZE=21
CONFIG_SOC_PM_SUPPORT_EXT_WAKEUP=y
CONFIG_SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP=y
CONFIG_SOC_SDMMC_USE_IOMUX=y
CONFIG_SOC_SDMMC_NUM_SLOTS=2
CONFIG_SOC_BLE_DONT_UPDATE_OWN_RPA=y
CONFIG_IDF_CMAKE=y
CONFIG_IDF_TARGET_ARCH_XTENSA=y
CONFIG_IDF_TARGET_ARCH="xtensa"
CONFIG_IDF_TARGET="esp32"
CONFIG_IDF_TARGET_ESP32=y
CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000
@ -157,7 +23,6 @@ CONFIG_APP_BUILD_TYPE_APP_2NDBOOT=y
CONFIG_APP_BUILD_GENERATE_BINARIES=y
CONFIG_APP_BUILD_BOOTLOADER=y
CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y
# CONFIG_APP_REPRODUCIBLE_BUILD is not set
# end of Build type
#
@ -179,12 +44,12 @@ CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set
# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set
# CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set
# CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set
CONFIG_BOOTLOADER_LOG_LEVEL_ERROR=y
# CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set
CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y
# CONFIG_BOOTLOADER_LOG_LEVEL_INFO is not set
# CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set
# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set
CONFIG_BOOTLOADER_LOG_LEVEL=3
CONFIG_BOOTLOADER_LOG_LEVEL=1
# CONFIG_BOOTLOADER_SPI_CUSTOM_WP_PIN is not set
CONFIG_BOOTLOADER_SPI_WP_PIN=7
CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y
@ -211,14 +76,10 @@ CONFIG_SECURE_BOOT_SUPPORTS_RSA=y
# CONFIG_SECURE_FLASH_ENC_ENABLED is not set
# end of Security features
CONFIG_ESP_ROM_HAS_CRC_LE=y
CONFIG_ESP_ROM_HAS_CRC_BE=y
CONFIG_ESP_ROM_HAS_JPEG_DECODE=y
CONFIG_ESP_ROM_SUPPORT_MULTIPLE_UART=y
#
# Serial flasher config
#
CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200
# CONFIG_ESPTOOLPY_NO_STUB is not set
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set
@ -265,7 +126,7 @@ CONFIG_ESPTOOLPY_MONITOR_BAUD=115200
CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
CONFIG_PARTITION_TABLE_OFFSET=0x9000
CONFIG_PARTITION_TABLE_OFFSET=0x8000
CONFIG_PARTITION_TABLE_MD5=y
# end of Partition Table
@ -368,6 +229,12 @@ CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
# CONFIG_UART_ISR_IN_IRAM is not set
# end of UART configuration
#
# RTCIO configuration
#
# CONFIG_RTCIO_SUPPORT_RTC_GPIO_DESC is not set
# end of RTCIO configuration
#
# GPIO Configuration
#
@ -380,14 +247,6 @@ CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
# CONFIG_GDMA_CTRL_FUNC_IN_IRAM is not set
# CONFIG_GDMA_ISR_IRAM_SAFE is not set
# end of GDMA Configuration
#
# GPTimer Configuration
#
# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set
# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set
# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set
# end of GPTimer Configuration
# end of Driver configurations
#
@ -488,8 +347,8 @@ CONFIG_PICO_PSRAM_CS_IO=10
# CONFIG_ESP32_TRAX is not set
CONFIG_ESP32_TRACEMEM_RESERVE_DRAM=0x0
# CONFIG_ESP32_ULP_COPROC_ENABLED is not set
CONFIG_ESP32_ULP_COPROC_RESERVE_MEM=0
CONFIG_ESP32_ULP_COPROC_ENABLED=y
CONFIG_ESP32_ULP_COPROC_RESERVE_MEM=512
CONFIG_ESP32_DEBUG_OCDAWARE=y
CONFIG_ESP32_BROWNOUT_DET=y
CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_0=y
@ -620,6 +479,14 @@ CONFIG_ESP_SLEEP_RTC_BUS_ISO_WORKAROUND=y
# end of RTC Clock Config
# end of Hardware Settings
#
# IPC (Inter-Processor Call)
#
CONFIG_ESP_IPC_TASK_STACK_SIZE=1024
CONFIG_ESP_IPC_USES_CALLERS_PRIORITY=y
CONFIG_ESP_IPC_ISR_ENABLE=y
# end of IPC (Inter-Processor Call)
#
# LCD and Touch Panel
#
@ -638,7 +505,6 @@ CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120
CONFIG_ESP_NETIF_TCPIP_LWIP=y
# CONFIG_ESP_NETIF_LOOPBACK is not set
CONFIG_ESP_NETIF_TCPIP_ADAPTER_COMPATIBLE_LAYER=y
# CONFIG_ESP_NETIF_L2_TAP is not set
# end of ESP NETIF Adapter
#
@ -702,14 +568,6 @@ CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y
CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y
# end of ESP System Settings
#
# IPC (Inter-Processor Call)
#
CONFIG_ESP_IPC_TASK_STACK_SIZE=1024
CONFIG_ESP_IPC_USES_CALLERS_PRIORITY=y
CONFIG_ESP_IPC_ISR_ENABLE=y
# end of IPC (Inter-Processor Call)
#
# High resolution timer (esp_timer)
#
@ -764,7 +622,6 @@ CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y
#
# FAT Filesystem support
#
CONFIG_FATFS_VOLUME_COUNT=2
# CONFIG_FATFS_CODEPAGE_DYNAMIC is not set
CONFIG_FATFS_CODEPAGE_437=y
# CONFIG_FATFS_CODEPAGE_720 is not set
@ -830,7 +687,11 @@ CONFIG_FMB_CONTROLLER_NOTIFY_QUEUE_SIZE=20
CONFIG_FMB_CONTROLLER_STACK_SIZE=4096
CONFIG_FMB_EVENT_QUEUE_TIMEOUT=20
# CONFIG_FMB_TIMER_PORT_ENABLED is not set
# CONFIG_FMB_TIMER_USE_ISR_DISPATCH_METHOD is not set
CONFIG_FMB_TIMER_GROUP=0
CONFIG_FMB_TIMER_INDEX=0
CONFIG_FMB_MASTER_TIMER_GROUP=0
CONFIG_FMB_MASTER_TIMER_INDEX=0
# CONFIG_FMB_TIMER_ISR_IN_IRAM is not set
# end of Modbus configuration
#
@ -850,6 +711,9 @@ CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y
# CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set
CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y
CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
CONFIG_FREERTOS_ASSERT_FAIL_ABORT=y
# CONFIG_FREERTOS_ASSERT_FAIL_PRINT_CONTINUE is not set
# CONFIG_FREERTOS_ASSERT_DISABLE is not set
CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536
CONFIG_FREERTOS_ISR_STACKSIZE=1536
# CONFIG_FREERTOS_LEGACY_HOOKS is not set
@ -894,6 +758,18 @@ CONFIG_HEAP_TRACING_OFF=y
# CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set
# end of Heap memory debugging
#
# jsmn
#
# CONFIG_JSMN_PARENT_LINKS is not set
# CONFIG_JSMN_STRICT is not set
# end of jsmn
#
# libsodium
#
# end of libsodium
#
# Log output
#
@ -1068,14 +944,19 @@ CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096
# CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set
# CONFIG_MBEDTLS_DEBUG is not set
#
# mbedTLS v2.28.x related
#
# CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH is not set
# CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set
# CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set
CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y
# end of mbedTLS v2.28.x related
#
# Certificate Bundle
#
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y
# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set
# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set
# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set
# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE is not set
# end of Certificate Bundle
# CONFIG_MBEDTLS_ECP_RESTARTABLE is not set
@ -1103,6 +984,7 @@ CONFIG_MBEDTLS_TLS_ENABLED=y
#
# CONFIG_MBEDTLS_PSK_MODES is not set
CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y
CONFIG_MBEDTLS_KEY_EXCHANGE_DHE_RSA=y
CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y
CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y
CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y
@ -1151,7 +1033,6 @@ CONFIG_MBEDTLS_X509_CSR_PARSE_C=y
# end of Certificates
CONFIG_MBEDTLS_ECP_C=y
# CONFIG_MBEDTLS_DHM_C is not set
CONFIG_MBEDTLS_ECDH_C=y
CONFIG_MBEDTLS_ECDSA_C=y
# CONFIG_MBEDTLS_ECJPAKE_C is not set
@ -1392,15 +1273,21 @@ CONFIG_WPA_MBEDTLS_CRYPTO=y
# end of Supplicant
# end of Component config
#
# Compatibility options
#
# CONFIG_LEGACY_INCLUDE_COMMON_HEADERS is not set
# end of Compatibility options
# Deprecated options for backward compatibility
CONFIG_TOOLPREFIX="xtensa-esp32-elf-"
# CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set
# CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set
CONFIG_LOG_BOOTLOADER_LEVEL_ERROR=y
# CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set
CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y
# CONFIG_LOG_BOOTLOADER_LEVEL_INFO is not set
# CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set
# CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set
CONFIG_LOG_BOOTLOADER_LEVEL=3
CONFIG_LOG_BOOTLOADER_LEVEL=1
# CONFIG_APP_ROLLBACK_ENABLE is not set
# CONFIG_FLASH_ENCRYPTION_ENABLED is not set
CONFIG_FLASHMODE_QIO=y
@ -1436,8 +1323,8 @@ CONFIG_ADC2_DISABLE_DAC=y
CONFIG_SPIRAM_SUPPORT=y
# CONFIG_WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST is not set
CONFIG_TRACEMEM_RESERVE_DRAM=0x0
# CONFIG_ULP_COPROC_ENABLED is not set
CONFIG_ULP_COPROC_RESERVE_MEM=0
CONFIG_ULP_COPROC_ENABLED=y
CONFIG_ULP_COPROC_RESERVE_MEM=512
CONFIG_BROWNOUT_DET=y
CONFIG_BROWNOUT_DET_LVL_SEL_0=y
# CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set
@ -1462,6 +1349,7 @@ CONFIG_POST_EVENTS_FROM_IRAM_ISR=y
CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y
CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS=4
# CONFIG_ESP32C3_LIGHTSLEEP_GPIO_RESET_WORKAROUND is not set
CONFIG_IPC_TASK_STACK_SIZE=1024
CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y
CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION=y
CONFIG_ESP32_PHY_DEFAULT_INIT_IF_INVALID=y
@ -1491,7 +1379,6 @@ CONFIG_TASK_WDT_TIMEOUT_S=5
CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y
CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y
# CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set
CONFIG_IPC_TASK_STACK_SIZE=1024
CONFIG_TIMER_TASK_STACK_SIZE=3584
# CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set
# CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set
@ -1509,6 +1396,8 @@ CONFIG_MB_CONTROLLER_NOTIFY_QUEUE_SIZE=20
CONFIG_MB_CONTROLLER_STACK_SIZE=4096
CONFIG_MB_EVENT_QUEUE_TIMEOUT=20
# CONFIG_MB_TIMER_PORT_ENABLED is not set
CONFIG_MB_TIMER_GROUP=0
CONFIG_MB_TIMER_INDEX=0
# CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set
CONFIG_TIMER_TASK_PRIORITY=1
CONFIG_TIMER_TASK_STACK_DEPTH=2048

1
tools Submodule

@ -0,0 +1 @@
Subproject commit a459d7f5ab8f2b5eab1ff9b51ca4351b5aa5e60b

20
update_components.sh Normal file
View file

@ -0,0 +1,20 @@
BASE=`pwd`
for component in appfs bus-i2c i2c-bno055 mch2022-bsp mch2022-rp2040 sdcard spi-ice40 spi-ili9341 ws2812; do
cd $BASE/components/$component
git checkout master
git pull
cd $BASE
done
for component in i2c-bme680 pax-codecs pax-graphics pax-keyboard; do
cd $BASE/components/$component
git checkout main
git pull
cd $BASE
done
cd $BASE/tools
git checkout master
git pull
cd $BASE