Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
545fc1b
Add read() method to SerialDevice and BLESerialService
emericklaw Feb 28, 2026
e523f0b
feat(iButton): enhance UI/UX and add file save/load support
Mar 16, 2026
0b94414
Add new board nm-cyd-c5, tested with nm-rf-hat.
RockBase-iot Mar 18, 2026
6c3c921
Improvements
wcd6 Mar 22, 2026
3c6bd6d
Bigger Apps Icon
wcd6 Mar 22, 2026
e9f9078
Better NRF24 and RF
wcd6 Mar 23, 2026
eea886b
Better Icons TAB
wcd6 Mar 23, 2026
6978d09
Fixed Only Text WIFI UI
wcd6 Mar 23, 2026
87a6b2f
Change of Apps Icon
wcd6 Mar 23, 2026
7e47015
Upgraded App Store with config destination of files, chage Apps icon …
wcd6 Mar 23, 2026
37e0ee7
Organized menu sections & merged connect in files section
wcd6 Mar 23, 2026
1538a55
Changes in WebUI
wcd6 Mar 23, 2026
d3e579e
Delete icons.txt
wcd6 Mar 23, 2026
4c1921a
Delete build_out.txt
wcd6 Mar 23, 2026
566003e
Changed Ethernet Icon
wcd6 Mar 23, 2026
a942cf1
Changed Ethernet Icon
wcd6 Mar 23, 2026
0fb02d0
Refactor EthernetMenu::drawIcon for clarity and structure
wcd6 Mar 23, 2026
4f54a6f
Moved Ethernet Icon
wcd6 Mar 23, 2026
c92040c
Merge pull request #2290 from RockBase-iot/nm-cyd-c5
pr3y Mar 23, 2026
fa0c477
Merge pull request #2288 from delfer/ibutton-files
bmorcelli Mar 25, 2026
a4193bf
Update main_menu.h
wcd6 Mar 27, 2026
8586994
Remove appStoreMenu from main menu in non-lite builds
wcd6 Mar 27, 2026
618bf33
Delete src/core/menu_items/AppStoreMenu.cpp
wcd6 Mar 27, 2026
48faf16
Delete src/core/menu_items/AppStoreMenu.h
wcd6 Mar 27, 2026
33a944d
Add USB file transfer support
emericklaw Mar 27, 2026
a8c2cd5
add function that checks if folder exists
Gosheto1234 Mar 31, 2026
f91afa4
revert small spaces
Gosheto1234 Mar 31, 2026
d2ee2ff
Add folderExists function declaration
Gosheto1234 Mar 31, 2026
227c2f8
🫡 fix overloaded bulk upload
lshaf Apr 1, 2026
4f9680b
Merge pull request #2333 from lshaf/dev
pr3y Apr 1, 2026
1e8adac
Merge pull request #2324 from emericklaw/app-store-serial
pr3y Apr 1, 2026
5960b93
BUILD] Add -include Arduino.h and patch library conflicts for dev bui…
ninja-jr-2 Apr 4, 2026
2795ad2
Merge branch 'main' into dev
bmorcelli Apr 4, 2026
4115825
Made the keyboard more intuitive (#2352)
Epickitrolaz Apr 4, 2026
7d736d3
fix(ui): auto-scale title font and fix wifi recover layout on small s…
pfefferle Apr 4, 2026
8f41d9d
fix NimBLE version to 2.5
bmorcelli Apr 5, 2026
3f7a341
Merge pull request #2332 from Gosheto1234/patch-10
pr3y Apr 5, 2026
467a49a
feat: add WDGoWars upload support for wardriving CSV files
Apr 9, 2026
a4fd5f7
feat: add API key hint in bruce.conf and validate key length
Apr 9, 2026
8187af4
update README.md to use new wiki
WERKuPL Apr 11, 2026
79695b7
Merge pull request #2376 from WERKuPL/WERKuPL-patch-1
pr3y Apr 12, 2026
dbfc282
Merge pull request #2369 from LOCOSP/feat/wdgwars-upload
bmorcelli Apr 16, 2026
ca10c73
Fix/m5sticks3 psram audio gif button (#2374)
PavelKivy Apr 16, 2026
2bdbe3b
remove Launcher CPlus1.1 from build
bmorcelli Apr 16, 2026
4293ebd
Add nm-cyd-c5 environment to build workflow
bmorcelli Apr 16, 2026
2702f38
Merge pull request #2312 from wcd6/dev
pr3y May 1, 2026
0306b74
config pins add pn532
May 1, 2026
69c1d01
Merge pull request #2417 from WERKuPL/pn532
pr3y May 2, 2026
72e752d
Add NetCut ARP Module for device management
ryocuy May 3, 2026
533579d
Create netcut.h for ARP poisoning and management
ryocuy May 3, 2026
71870be
Add NetCut option to WifiMenu
ryocuy May 3, 2026
7766abc
Simplify device restoration logic on exit
ryocuy May 3, 2026
2d11be1
fix(netcut): optimize bulk restoration for instant recovery
ryocuy May 3, 2026
1ffcf67
Merge pull request #2421 from ryocuy/main
pr3y May 4, 2026
033bee0
flto build
bmorcelli May 12, 2026
136ba22
elecrow boards
pr3y May 12, 2026
770fa72
elecrow boards on envs
pr3y May 12, 2026
5f7827f
elecrow to build
pr3y May 12, 2026
991985d
Reduce potential buffer overflow situations
paazmaya May 15, 2026
ed76b05
Merge pull request #2446 from paazmaya/main
pr3y May 20, 2026
c7e5e78
feat: implement Custom.md hardware optimizations and JS API extension…
DUptain1993 May 21, 2026
3c7d330
fix(ci): add multilib dependencies to manual build workflow
DUptain1993 May 21, 2026
e6779cf
Potential fix for pull request finding
DUptain1993 May 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .github/workflows/buil_parallel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,15 @@ jobs:
- { env: "m5stack-sticks3", family: "ESP32-S3",}
- { env: "m5stack-cplus2", family: "ESP32",}
- { env: "m5stack-cplus1_1", family: "ESP32",}
- { env: "LAUNCHER_m5stack-cplus1_1", family: "ESP32",}
# - { env: "LAUNCHER_m5stack-cplus1_1", family: "ESP32",}
- { env: "m5stack-core2", family: "ESP32",}
- { env: "m5stack-core16mb", family: "ESP32",}
- { env: "m5stack-core4mb", family: "ESP32",}
- { env: "m5stack-cores3", family: "ESP32-S3",}
- { env: "esp32-s3-devkitc-1", family: "ESP32-S3",}
- { env: "esp32-c5", family: "ESP32-C5",}
- { env: "esp32-c5-tft", family: "ESP32-C5",}
- { env: "nm-cyd-c5", family: "ESP32-C5",}
- { env: "CYD-2432S028", family: "ESP32",}
- { env: "CYD-2USB", family: "ESP32",}
- { env: "CYD-2432W328C", family: "ESP32",}
Expand All @@ -55,6 +56,8 @@ jobs:
- { env: "lilygo-t-display-ttgo", family: "ESP32",}
- { env: "lilygo-t-hmi", family: "ESP32-S3",}
- { env: "lilygo-t-lora-pager", family: "ESP32-S3",}
- { env: "elecrow-24B", family: "ESP32",}
- { env: "elecrow-28B", family: "ESP32",}
- { env: "smoochiee-board", family: "ESP32-S3",}
- { env: "reaper", family: "ESP32-S3",}
- { env: "Phantom_S024R", family: "ESP32",}
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/manual_build_sel_env.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,11 @@ jobs:
with:
python-version: "3.13"

- name: Install build deps (multilib)
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends gcc-multilib libc6-dev-i386
- name: Cache pip
uses: actions/cache@v4
with:
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,5 @@ docker-logs
lib/mquickjs_headers/mqjs_stdlib_generator
lib/mquickjs_headers/mqjs_stdlib_generator.exe
.github/agents/Bruce-AI.agent.md
.idea
.ai
215 changes: 106 additions & 109 deletions README.md

Large diffs are not rendered by default.

39 changes: 39 additions & 0 deletions boards/_boards_json/elecrow-esp32-24B.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"build": {
"arduino":{
"ldscript": "esp32_out.ld"
},
"core": "esp32",
"extra_flags": [
"-DELECROW_WROOM32",
"-DBOARD_HAS_PSRAM",
"-mfix-esp32-psram-cache-issue",
"-mfix-esp32-psram-cache-strategy=memw"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "dio",
"mcu": "esp32",
"variant": "pinouts"
},
"connectivity": [
"wifi",
"bluetooth",
"ethernet",
"can"
],
"frameworks": [
"arduino",
"espidf"
],
"name": "ELECROW 2.4R",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"require_upload_port": true,
"speed": 460800
},
"url": "https://en.wikipedia.org/wiki/ESP32",
"vendor": "ELECROW"
}
3 changes: 2 additions & 1 deletion boards/_boards_json/m5stack-sticks3.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
"build": {
"arduino": {
"ldscript": "esp32s3_out.ld",
"partitions": "default_8MB.csv"
"partitions": "default_8MB.csv",
"memory_type": "qio_opi"
},
"core": "esp32",
"extra_flags": [
Expand Down
262 changes: 262 additions & 0 deletions boards/elecrow/elecrow.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,262 @@
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

#################################### ELECROW MODELS ################################################
; Elecrow CrowPanel ESP32 HMI Display boards (2.4", 2.8", 3.5", 3.5" v2.2)
; Hardware: ESP32-WROOM-32, resistive XPT2046 touch (shared HSPI with TFT), SD on VSPI
; TFT SPI (HSPI): MISO=12, MOSI=13, SCLK=14, CS=15, DC=2, RST=-1, BL=27
; Touch: CS=33, IRQ=36 (shared with TFT SPI bus)
; SD Card: CS=5, SCK=18, MISO=19, MOSI=23
; Free GPIOs: 0(boot), 1(TX), 3(RX), 4, 21, 22, 25, 26

[elecrow_base]
board = elecrow-esp32-24B
board_build.partitions = custom_4Mb_full.csv
build_src_filter = ${env.build_src_filter} +<../boards/elecrow>
build_flags =
${env.build_flags}
${env_4mb.build_flags}
-Iboards/elecrow

-DELECROW

;No microphone
-DPIN_CLK=-1
-DI2S_SCLK_PIN=-1
-DI2S_DATA_PIN=-1
-DPIN_DATA=-1

;No RGB LED
-DRGB_LED=-1

;No speaker
-DBCLK=-1
-DWCLK=-1
-DDOUT=-1

;BadUSB on GROVE pins
-DBAD_TX=GROVE_SDA
-DBAD_RX=GROVE_SCL

;Serial/GPS
-DSERIAL_TX=1
-DSERIAL_RX=3
-DGPS_SERIAL_TX=SERIAL_TX
-DGPS_SERIAL_RX=SERIAL_RX

;Buttons - touch only
-DHAS_BTN=0
-DBTN_ALIAS='"Ok"'
-DBTN_PIN=0

;Infrared / RF pins
-DIR_TX_PINS='{{"Pin 21", 21}, {"Pin 22", 22}, {"Pin 25", 25}, {"Pin 26", 26}}'
-DIR_RX_PINS='{{"Pin 21", 21}, {"Pin 22", 22}, {"Pin 25", 25}, {"Pin 26", 26}}'
-DTXLED=22
-DLED_ON=HIGH
-DLED_OFF=LOW

;Radio Frequency (one pin modules)
-DRF_TX_PINS='{{"Pin 21", 21}, {"Pin 22", 22}, {"Pin 25", 25}, {"Pin 26", 26}}'
-DRF_RX_PINS='{{"Pin 21", 21}, {"Pin 22", 22}, {"Pin 25", 25}, {"Pin 26", 26}}'

;CC1101 on VSPI (shared with SD card, different CS)
-DUSE_CC1101_VIA_SPI
-DCC1101_GDO0_PIN=22
-DCC1101_SS_PIN=25
-DCC1101_MOSI_PIN=SPI_MOSI_PIN
-DCC1101_SCK_PIN=SPI_SCK_PIN
-DCC1101_MISO_PIN=SPI_MISO_PIN

;NRF24 on VSPI
-DUSE_NRF24_VIA_SPI
-DNRF24_CE_PIN=22
-DNRF24_SS_PIN=25
-DNRF24_MOSI_PIN=SPI_MOSI_PIN
-DNRF24_SCK_PIN=SPI_SCK_PIN
-DNRF24_MISO_PIN=SPI_MISO_PIN

;W5500 on VSPI
-DUSE_W5500_VIA_SPI
-DW5500_SS_PIN=25
-DW5500_MOSI_PIN=SPI_MOSI_PIN
-DW5500_SCK_PIN=SPI_SCK_PIN
-DW5500_MISO_PIN=SPI_MISO_PIN
-DW5500_INT_PIN=22

;Font sizes
-DFP=1
-DFM=2
-DFG=3

;Screen
-DHAS_SCREEN=1
-DROTATION=1
-DBACKLIGHT=27
-DMINBRIGHT=190

;TFT_eSPI - HSPI bus (pins 12/13/14)
-DUSER_SETUP_LOADED=1
-DUSE_HSPI_PORT=1
-DTFT_MISO=12
-DTFT_MOSI=13
-DTFT_SCLK=14
-DTFT_CS=15
-DTFT_DC=2
-DTFT_RST=-1
-DTFT_BL=27
-DTFT_BACKLIGHT_ON=HIGH
-DSMOOTH_FONT=1
-DSPI_FREQUENCY=40000000
-DSPI_READ_FREQUENCY=16000000
-DSPI_TOUCH_FREQUENCY=2500000

;Touch (XPT2046, shared HSPI with TFT)
-DHAS_TOUCH=1
-DTOUCH_CS=33
-DCYD28_TouchR_IRQ=36
-DCYD28_TouchR_MISO=12
-DCYD28_TouchR_MOSI=13
-DCYD28_TouchR_CSK=14
-DCYD28_TouchR_CS=33

;SD Card
-DSDCARD_CS=5
-DSDCARD_SCK=18
-DSDCARD_MISO=19
-DSDCARD_MOSI=23

;Backlight PWM
-DTFT_BRIGHT_CHANNEL=0
-DTFT_BRIGHT_Bits=8
-DTFT_BRIGHT_FREQ=5000

;I2C / GROVE
-DGROVE_SDA=21
-DGROVE_SCL=22

;External SPI (VSPI, shared with SD card)
-DSPI_SCK_PIN=18
-DSPI_MOSI_PIN=23
-DSPI_MISO_PIN=19
-DSPI_SS_PIN=25

lib_deps =
${env.lib_deps}

lib_ignore =
${env_4mb.lib_ignore}


#################################### 2.4" and 2.8" (ILI9341, 240x320) ##############################

[env:elecrow-24B]
extends = elecrow_base
build_flags =
${elecrow_base.build_flags}
-DILI9341_DRIVER=1
-DTFT_WIDTH=240
-DTFT_HEIGHT=320
-DHAS_RESISTIVE_TOUCH=1
-DCYD28_TouchR_ROT=6
-DCYD28_TouchR_CAL_XMIN=1
-DCYD28_TouchR_CAL_XMAX=5000
-DCYD28_TouchR_CAL_YMIN=1
-DCYD28_TouchR_CAL_YMAX=5000
-DDEVICE_NAME='"Elecrow 2.4B"'

[env:LAUNCHER_elecrow-24B]
extends = env:elecrow-24B
board_build.partitions = custom_4Mb.csv
build_flags =
${env:elecrow-24B.build_flags}
${env_light.build_flags}
lib_deps =
${env_light.lib_deps}


[env:elecrow-28B]
extends = elecrow_base
build_flags =
${elecrow_base.build_flags}
-DILI9341_DRIVER=1
-DTFT_WIDTH=240
-DTFT_HEIGHT=320
-DHAS_RESISTIVE_TOUCH=1
-DCYD28_TouchR_ROT=6
-DCYD28_TouchR_CAL_XMIN=189
-DCYD28_TouchR_CAL_XMAX=3416
-DCYD28_TouchR_CAL_YMIN=359
-DCYD28_TouchR_CAL_YMAX=3439
-DDEVICE_NAME='"Elecrow 2.8B"'

[env:LAUNCHER_elecrow-28B]
extends = env:elecrow-28B
board_build.partitions = custom_4Mb.csv
build_flags =
${env:elecrow-28B.build_flags}
${env_light.build_flags}
lib_deps =
${env_light.lib_deps}


#################################### 3.5" (ILI9488, 320x480) ######################################

[env:elecrow-35B]
extends = elecrow_base
build_flags =
${elecrow_base.build_flags}
-DILI9488_DRIVER=1
-DTFT_WIDTH=320
-DTFT_HEIGHT=480
-DHAS_RESISTIVE_TOUCH=1
-DCYD28_TouchR_ROT=6
-DCYD28_TouchR_CAL_XMIN=353
-DCYD28_TouchR_CAL_XMAX=3568
-DCYD28_TouchR_CAL_YMIN=269
-DCYD28_TouchR_CAL_YMAX=3491
-DDEVICE_NAME='"Elecrow 3.5B"'

[env:LAUNCHER_elecrow-35B]
extends = env:elecrow-35B
board_build.partitions = custom_4Mb.csv
build_flags =
${env:elecrow-35B.build_flags}
${env_light.build_flags}
lib_deps =
${env_light.lib_deps}


[env:elecrow-35Bv2_2]
extends = env:elecrow-35B
build_flags =
${env:elecrow-35B.build_flags}
-DCYD28_TouchR_CS=12
-DTFT_MISO=33
-DCYD28_TouchR_MISO=33
-DTOUCH_CS=12
-DDEVICE_NAME='"Elecrow 3.5B v2.2"'
build_unflags =
-DCYD28_TouchR_CS=33
-DCYD28_TouchR_MISO=12
-DTFT_MISO=12
-DTOUCH_CS=33
-DDEVICE_NAME='"Elecrow 3.5B"'

[env:LAUNCHER_elecrow-35Bv2_2]
extends = env:elecrow-35Bv2_2
board_build.partitions = custom_4Mb.csv
build_flags =
${env:elecrow-35Bv2_2.build_flags}
${env_light.build_flags}
lib_deps =
${env_light.lib_deps}

################################## END ELECROW MODELS ##############################################
Loading