Skip to content
This repository was archived by the owner on Dec 14, 2025. It is now read-only.

Commit 3150fba

Browse files
authored
Feature/m5stack camera f (#90)
1 parent 2602845 commit 3150fba

10 files changed

Lines changed: 139 additions & 81 deletions

File tree

.github/workflows/build_release_bins.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
matrix: ${{ steps.set-matrix.outputs.matrix }}
3232
steps:
3333
- id: set-matrix
34-
run: echo "matrix={\"target_name\":[\"esp32AIThinker\",\"esp32M5Stack\",\"esp32Cam\",\"esp_eye\",\"wrover\",\"wrooms3QIO\",\"wrooms3QIOUSB\",\"wrooms3\",\"wrooms3USB\",\"xiaosenses3\",\"xiaosenses3_USB\"],\"target_build_type\":[\"\", \"_release\"]}" >> $GITHUB_OUTPUT
34+
run: echo "matrix={\"target_name\":[\"esp32AIThinker\",\"esp32M5Stack\",\"esp32M5Stack-Camera-F\",\"esp32Cam\",\"esp_eye\",\"wrover\",\"wrooms3QIO\",\"wrooms3QIOUSB\",\"wrooms3\",\"wrooms3USB\",\"xiaosenses3\",\"xiaosenses3_USB\",\"Babble-wrooms-s3\",\"Babble_USB-wrooms-s3\"],\"target_build_type\":[\"\", \"_release\"]}" >> $GITHUB_OUTPUT
3535

3636
build:
3737
needs: setup

CHANGELOG.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,34 @@
33
[![semantic versioning](https://img.shields.io/badge/semantic%20versioning-2.0.0-green.svg)](https://semver.org)
44
> All notable changes to this project will be documented in this file
55
6+
## [2.9.1](https://github.com/EyeTrackVR/OpenIris/compare/v2.9.0...v2.9.1) (2025-01-30)
7+
8+
9+
### 🐛 Bug Fixes
10+
11+
* Add babble firmware to CI matrix ([#86](https://github.com/EyeTrackVR/OpenIris/issues/86)) ([28a053d](https://github.com/EyeTrackVR/OpenIris/commit/28a053d65323a4f48ad8de4992fe496ab3e63225))
12+
13+
## [2.9.0](https://github.com/EyeTrackVR/OpenIris/compare/v2.8.0...v2.9.0) (2025-01-28)
14+
15+
16+
### 🍕 Features
17+
18+
* Fix AsyncWebServer dependency ([#85](https://github.com/EyeTrackVR/OpenIris/issues/85)) ([42c3311](https://github.com/EyeTrackVR/OpenIris/commit/42c33112972414cb5121b1052184fd0443de3164))
19+
20+
## [2.8.0](https://github.com/EyeTrackVR/OpenIris/compare/v2.7.0...v2.8.0) (2025-01-15)
21+
22+
23+
### 🍕 Features
24+
25+
* Fix typo in SerialManager ([#84](https://github.com/EyeTrackVR/OpenIris/issues/84)) ([f460867](https://github.com/EyeTrackVR/OpenIris/commit/f4608674978edf5728e495824ed615d9d45f85fd))
26+
27+
## [2.7.0](https://github.com/EyeTrackVR/OpenIris/compare/v2.6.0...v2.7.0) (2025-01-12)
28+
29+
30+
### 🍕 Features
31+
32+
* Release 2.7.0 ([#83](https://github.com/EyeTrackVR/OpenIris/issues/83)) ([c7aef84](https://github.com/EyeTrackVR/OpenIris/commit/c7aef8457eb68fef6713daaf81c6eb23491d9ec7))
33+
634
## [2.7.0-beta.2](https://github.com/EyeTrackVR/OpenIris/compare/v2.7.0-beta.1...v2.7.0-beta.2) (2025-01-12)
735

836

ESP/ini/boards.ini

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,22 @@ build_flags = ${env.build_flags}
1919
; CAMERA PINOUT DEFINITIONS
2020
${pinoutsAIThinker.build_flags}
2121

22+
[env:esp32M5Stack-Camera-F]
23+
board = m5stack-timer-cam
24+
build_type = debug
25+
build_flags = ${env.build_flags}
26+
-DDEBUG_MODE=1
27+
-DCORE_DEBUG_LEVEL=4
28+
${pinoutsM5Stack_Camera_F.build_flags}
29+
30+
[env:esp32M5Stack-Camera-F_release]
31+
board = m5stack-timer-cam
32+
build_type = release
33+
build_flags = ${env.build_flags}
34+
-DDEBUG_MODE=0
35+
-DCORE_DEBUG_LEVEL=1
36+
${pinoutsM5Stack_Camera_F.build_flags}
37+
2238
[env:esp32M5Stack]
2339
board = esp32cam
2440
build_type = debug
@@ -103,6 +119,7 @@ build_type = debug
103119
build_flags = ${env.build_flags}
104120
-DCORE_DEBUG_LEVEL=4
105121
-DDEBUG_MODE=1
122+
-DARDUINO_USB_CDC_ON_BOOT=1
106123
-DSERIAL_MANAGER_USE_HIGHER_FREQUENCY
107124
${pinoutsESPS3WROVER.build_flags}
108125
upload_flags = --no-stub
@@ -114,6 +131,7 @@ build_type = release
114131
build_flags = ${env.build_flags}
115132
-DDEBUG_MODE=0
116133
-DCORE_DEBUG_LEVEL=1
134+
-DARDUINO_USB_CDC_ON_BOOT=1
117135
-DSERIAL_MANAGER_USE_HIGHER_FREQUENCY
118136
${pinoutsESPS3WROVER.build_flags}
119137
upload_flags = --no-stub
@@ -150,6 +168,7 @@ build_type = debug
150168
build_flags = ${env.build_flags}
151169
-DCORE_DEBUG_LEVEL=4
152170
-DDEBUG_MODE=1
171+
-DARDUINO_USB_CDC_ON_BOOT=1
153172
-DSERIAL_MANAGER_USE_HIGHER_FREQUENCY
154173
${pinoutsESPS3WROOM.build_flags}
155174

@@ -159,6 +178,7 @@ build_type = release
159178
build_flags = ${env.build_flags}
160179
-DDEBUG_MODE=0
161180
-DCORE_DEBUG_LEVEL=1
181+
-DARDUINO_USB_CDC_ON_BOOT=1
162182
-DSERIAL_MANAGER_USE_HIGHER_FREQUENCY
163183
${pinoutsESPS3WROOM.build_flags}
164184

@@ -199,6 +219,7 @@ build_type = debug
199219
build_flags = ${env.build_flags}
200220
-DCORE_DEBUG_LEVEL=4
201221
-DDEBUG_MODE=1
222+
-DARDUINO_USB_CDC_ON_BOOT=1
202223
-DSERIAL_MANAGER_USE_HIGHER_FREQUENCY
203224
${pinoutSWROOMBABBLES3.build_flags}
204225
upload_flags = --no-stub
@@ -214,6 +235,7 @@ build_type = debug
214235
build_flags = ${env.build_flags}
215236
-DCORE_DEBUG_LEVEL=1
216237
-DDEBUG_MODE=0
238+
-DARDUINO_USB_CDC_ON_BOOT=1
217239
-DSERIAL_MANAGER_USE_HIGHER_FREQUENCY
218240
${pinoutSWROOMBABBLES3.build_flags}
219241
upload_flags = --no-stub
@@ -261,8 +283,6 @@ build_type = debug
261283
build_flags = ${env.build_flags}
262284
-DCORE_DEBUG_LEVEL=4
263285
-DDEBUG_MODE=1
264-
#-DARDUINO_USB_MODE=1
265-
#-DARDUINO_USB_CDC_ON_BOOT=1
266286
-DSERIAL_MANAGER_USE_HIGHER_FREQUENCY
267287
${pinoutsESPS3XIAOSENSE.build_flags}
268288

ESP/ini/dev_config.ini

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
platform = https://github.com/platformio/platform-espressif32.git
66
framework = arduino
77
monitor_speed = 115200
8-
custom_firmware_version = 2.7.0
8+
custom_firmware_version = 2.9.1
99
monitor_rts = 0
1010
monitor_dtr = 0
1111
monitor_filters =
@@ -18,14 +18,14 @@ monitor_filters =
1818
esp32_exception_decoder
1919
board_build.partitions = min_spiffs.csv
2020
;build_unflags = -Os ; disable optimization for size
21+
lib_compat_mode = strict
2122
lib_ldf_mode = deep+
2223
;115200 is used for compatability - if you are on windows and want the code to flash faster use 921600
2324
upload_speed = 921600
2425
lib_deps =
2526
# https://github.com/espressif/esp32-camera
2627
esp32-camera
27-
https://github.com/me-no-dev/ESPAsyncWebServer.git
28-
https://github.com/me-no-dev/AsyncTCP.git
28+
ESP32Async/ESPAsyncWebServer @ 3.6.0
2929
https://github.com/bblanchon/ArduinoJson.git
3030
extra_scripts =
3131
pre:tools/customname.py

ESP/ini/pinouts.ini

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,43 @@
11
#!! DO NOT CHANGE ANYTHING BELOW THIS LINE UNLESS YOU KNOW WHAT YOU ARE DOING
22
# IF YOU ARE A USER DO NOT TOUCH THIS FILE
33

4+
[pinoutsM5Stack_Camera_F]
5+
pwdn_gpio_num = -1
6+
reset_gpio_num = 15
7+
xclk_gpio_num = 27
8+
siod_gpio_num = 25
9+
sioc_gpio_num = 23
10+
y9_gpio_num = 19
11+
y8_gpio_num = 36
12+
y7_gpio_num = 18
13+
y6_gpio_num = 39
14+
y5_gpio_num = 5
15+
y4_gpio_num = 34
16+
y3_gpio_num = 35
17+
y2_gpio_num = 32
18+
vsync_gpio_num = 22
19+
href_gpio_num = 26
20+
pclk_gpio_num = 21
21+
build_flags =
22+
'-DCAMERA_MODULE_NAME="M5STACK_CAMERA_F"'
23+
-DCONFIG_CAMERA_MODULE_M5STACK_CAMERA_F=1
24+
-DPWDN_GPIO_NUM=${pinoutsM5Stack_Camera_F.PWDN_GPIO_NUM}
25+
-DRESET_GPIO_NUM=${pinoutsM5Stack_Camera_F.RESET_GPIO_NUM}
26+
-DXCLK_GPIO_NUM=${pinoutsM5Stack_Camera_F.XCLK_GPIO_NUM}
27+
-DSIOD_GPIO_NUM=${pinoutsM5Stack_Camera_F.SIOD_GPIO_NUM}
28+
-DSIOC_GPIO_NUM=${pinoutsM5Stack_Camera_F.SIOC_GPIO_NUM}
29+
-DY9_GPIO_NUM=${pinoutsM5Stack_Camera_F.Y9_GPIO_NUM}
30+
-DY8_GPIO_NUM=${pinoutsM5Stack_Camera_F.Y8_GPIO_NUM}
31+
-DY7_GPIO_NUM=${pinoutsM5Stack_Camera_F.Y7_GPIO_NUM}
32+
-DY6_GPIO_NUM=${pinoutsM5Stack_Camera_F.Y6_GPIO_NUM}
33+
-DY5_GPIO_NUM=${pinoutsM5Stack_Camera_F.Y5_GPIO_NUM}
34+
-DY4_GPIO_NUM=${pinoutsM5Stack_Camera_F.Y4_GPIO_NUM}
35+
-DY3_GPIO_NUM=${pinoutsM5Stack_Camera_F.Y3_GPIO_NUM}
36+
-DY2_GPIO_NUM=${pinoutsM5Stack_Camera_F.Y2_GPIO_NUM}
37+
-DVSYNC_GPIO_NUM=${pinoutsM5Stack_Camera_F.VSYNC_GPIO_NUM}
38+
-DHREF_GPIO_NUM=${pinoutsM5Stack_Camera_F.HREF_GPIO_NUM}
39+
-DPCLK_GPIO_NUM=${pinoutsM5Stack_Camera_F.PCLK_GPIO_NUM}
40+
441
[pinoutsESPCAM_M5STACK]
542
pwdn_gpio_num = -1
643
reset_gpio_num = 15

ESP/lib/library.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"include": "/lib/src"
2121
},
2222
"dependencies": {},
23-
"version": "2.7.0",
23+
"version": "2.9.1",
2424
"frameworks": "arduino",
2525
"platforms": "espressif32"
2626
}

ESP/lib/src/io/Serial/SerialManager.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ void SerialManager::send_frame() {
5252
#endif
5353

5454
void SerialManager::init() {
55-
#ifndef SERIAL_MANAGER_USE_HIGHER_FREQUENCY
55+
#ifdef SERIAL_MANAGER_USE_HIGHER_FREQUENCY
5656
Serial.begin(3000000);
5757
#endif
5858
if (SERIAL_FLUSH_ENABLED) {

ESP/lib/src/network/api/baseAPI/baseAPI.cpp

Lines changed: 6 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,5 @@
11
#include "baseAPI.hpp"
22

3-
//! These have to be called before the constructor of the class because they are
4-
//! static C++ 11 does not have inline variables, sadly. So we have to do this.
5-
// const char *BaseAPI::MIMETYPE_HTML{"text/html"};
6-
// const char *BaseAPI::MIMETYPE_CSS{"text/css"};
7-
// const char *BaseAPI::MIMETYPE_JS{"application/javascript"};
8-
// const char *BaseAPI::MIMETYPE_PNG{"image/png"};
9-
// const char *BaseAPI::MIMETYPE_JPG{"image/jpeg"};
10-
// const char *BaseAPI::MIMETYPE_ICO{"image/x-icon"};
113
const char* BaseAPI::MIMETYPE_JSON{"application/json"};
124

135
BaseAPI::BaseAPI(ProjectConfig& projectConfig,
@@ -79,7 +71,7 @@ void BaseAPI::setWiFi(AsyncWebServerRequest* request) {
7971

8072
log_d("Number of Params: %d", params);
8173
for (int i = 0; i < params; i++) {
82-
AsyncWebParameter* param = request->getParam(i);
74+
const AsyncWebParameter* param = request->getParam(i);
8375
if (param->name() == "networkName") {
8476
networkName.assign(param->value().c_str());
8577
} else if (param->name() == "ssid") {
@@ -102,17 +94,6 @@ void BaseAPI::setWiFi(AsyncWebServerRequest* request) {
10294
projectConfig.setWifiConfig(networkName, ssid, password, channel, power,
10395
adhoc, true);
10496

105-
/* if (WiFiStateManager->getCurrentState() ==
106-
WiFiState_e::WiFiState_ADHOC)
107-
{
108-
projectConfig.setAPWifiConfig(ssid, password, &channel, adhoc,
109-
true);
110-
}
111-
else
112-
{
113-
114-
} */
115-
11697
request->send(200, MIMETYPE_JSON,
11798
"{\"msg\":\"Done. Wifi Creds have been set.\"}");
11899
break;
@@ -178,7 +159,7 @@ void BaseAPI::setDeviceConfig(AsyncWebServerRequest* request) {
178159
int ota_port;
179160

180161
for (int i = 0; i < params; i++) {
181-
AsyncWebParameter* param = request->getParam(i);
162+
const AsyncWebParameter* param = request->getParam(i);
182163
if (param->name() == "hostname") {
183164
std::string result = param->value().c_str();
184165

@@ -216,7 +197,7 @@ void BaseAPI::setWiFiTXPower(AsyncWebServerRequest* request) {
216197
uint8_t txPower = 0;
217198

218199
for (int i = 0; i < params; i++) {
219-
AsyncWebParameter* param = request->getParam(i);
200+
const AsyncWebParameter* param = request->getParam(i);
220201
if (param->name() == "txpower" || param->name() == "txPower") {
221202
txPower = atoi(param->value().c_str());
222203
}
@@ -275,7 +256,7 @@ void BaseAPI::setCamera(AsyncWebServerRequest* request) {
275256
//! be set in a specific order This means the order of the URL params does
276257
//! not matter
277258
for (int i = 0; i < params; i++) {
278-
AsyncWebParameter* param = request->getParam(i);
259+
const AsyncWebParameter* param = request->getParam(i);
279260
if (param->name() == "framesize") {
280261
temp_camera_framesize = (uint8_t)param->value().toInt();
281262
} else if (param->name() == "vflip") {
@@ -392,7 +373,6 @@ void BaseAPI::beginOTA() {
392373
"{\"id\": \"" + _id + "\", \"hardware\": \"ESP32\"}");
393374
});
394375

395-
// Note: HTT_GET
396376
server.on("/update", 0b00000001, [&](AsyncWebServerRequest* request) {
397377
log_d("[DEBUG] Free Heap: %d", ESP.getFreeHeap());
398378
checkAuthentication(request, login, password);
@@ -406,7 +386,8 @@ void BaseAPI::beginOTA() {
406386
response->addHeader("Content-Encoding", "gzip");
407387
request->send(response);
408388
});
409-
// Note: HTT_POST
389+
390+
// HTTP_POST
410391
server.on(
411392
"/update", 0b00000010,
412393
[&](AsyncWebServerRequest* request) {

0 commit comments

Comments
 (0)