Skip to content

Commit 06ade4b

Browse files
committed
Merge branch 'develop'
2 parents 1dc8f67 + 810b924 commit 06ade4b

79 files changed

Lines changed: 1838 additions & 486 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/arduino-esp-v2-build-check.yml

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,16 @@ jobs:
6767
build-properties:
6868
- "-DUSING_UNIT_RFID2"
6969

70+
# Build CI board axis = distinct compile config only (skill m5-build-ci-matrix).
71+
# esp32:esp32 2.0.x covers only ESP32 / ESP32-S3 (no C6/H2/P4).
7072
board:
71-
- m5stack-atom
72-
- m5stack-atoms3
73-
- m5stack-core-esp32
74-
- m5stack-core2
75-
- m5stack-coreink
76-
- m5stack-cores3
77-
- m5stack-fire
73+
- m5stack-core-esp32 # espressif32 x ESP32 (xtensa-esp32)
74+
- m5stack-cores3 # espressif32 x ESP32-S3 (separate GCC target)
75+
# - m5stack-atom # ESP32: represented by m5stack-core-esp32
76+
# - m5stack-atoms3 # ESP32-S3: represented by m5stack-cores3
77+
# - m5stack-core2 # ESP32: represented by m5stack-core-esp32
78+
# - m5stack-coreink # ESP32: represented by m5stack-core-esp32
79+
# - m5stack-fire # ESP32: represented by m5stack-core-esp32
7880

7981
platform-version:
8082
- 2.0.17

.github/workflows/arduino-esp-v3-build-check.yml

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -67,25 +67,27 @@ jobs:
6767
build-properties:
6868
- "-DUSING_UNIT_RFID2"
6969

70+
# Build CI board axis = distinct compile config only (skill m5-build-ci-matrix).
71+
# esp32:esp32 3.x covers ESP32 / S3 / C6 / P4 (no H2 in this package).
7072
board:
71-
- arduino_nesso_n1
72-
- m5stack_atom
73-
- m5stack_atoms3
74-
- m5stack_capsule
75-
- m5stack_cardputer
76-
- m5stack_core
77-
- m5stack_core2
78-
- m5stack_coreink
79-
- m5stack_cores3
80-
- m5stack_dial
81-
- m5stack_dinmeter
82-
- m5stack_fire
83-
- m5stack_nanoc6
84-
- m5stack_paper
85-
- m5stack_stamp_s3
86-
- m5stack_stickc_plus
87-
- m5stack_stickc_plus2
88-
- m5stack_tab5
73+
- m5stack_core # esp32:esp32 x ESP32 (xtensa-esp32)
74+
- m5stack_cores3 # esp32:esp32 x ESP32-S3 (separate GCC target)
75+
- m5stack_nanoc6 # esp32:esp32 x ESP32-C6 (rv32)
76+
- m5stack_tab5 # esp32:esp32 x ESP32-P4 (rv32 single-float)
77+
# - arduino_nesso_n1 # ESP32-C6: represented by m5stack_nanoc6
78+
# - m5stack_atom # ESP32: represented by m5stack_core
79+
# - m5stack_atoms3 # ESP32-S3: represented by m5stack_cores3
80+
# - m5stack_capsule # ESP32-S3: represented by m5stack_cores3
81+
# - m5stack_cardputer # ESP32-S3: represented by m5stack_cores3
82+
# - m5stack_core2 # ESP32: represented by m5stack_core
83+
# - m5stack_coreink # ESP32: represented by m5stack_core
84+
# - m5stack_dial # ESP32-S3: represented by m5stack_cores3
85+
# - m5stack_dinmeter # ESP32-S3: represented by m5stack_cores3
86+
# - m5stack_fire # ESP32: represented by m5stack_core
87+
# - m5stack_paper # ESP32: represented by m5stack_core
88+
# - m5stack_stamp_s3 # ESP32-S3: represented by m5stack_cores3
89+
# - m5stack_stickc_plus # ESP32: represented by m5stack_core
90+
# - m5stack_stickc_plus2 # ESP32: represented by m5stack_core
8991

9092
platform-version:
9193
- 3.3.6

.github/workflows/arduino-m5-build-check.yml

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -67,29 +67,31 @@ jobs:
6767
build-properties:
6868
- "-DUSING_UNIT_RFID2"
6969

70+
# Build CI board axis = distinct compile config only (skill m5-build-ci-matrix).
71+
# m5stack:esp32 3.x covers ESP32 / S3 / C6 / P4 (no H2 in this package).
7072
board:
71-
- arduino_nesso_n1
72-
- m5stack_atom
73-
- m5stack_atoms3
74-
- m5stack_atoms3r
75-
- m5stack_capsule
76-
- m5stack_cardputer
77-
- m5stack_core
78-
- m5stack_core2
79-
- m5stack_coreink
80-
- m5stack_cores3
81-
- m5stack_dial
82-
- m5stack_dinmeter
83-
- m5stack_fire
84-
- m5stack_nano_c6
85-
- m5stack_paper
86-
- m5stack_papers3
87-
- m5stack_stamp_s3
88-
- m5stack_stickc
89-
- m5stack_stickc_plus
90-
- m5stack_stickc_plus2
91-
- m5stack_sticks3
92-
- m5stack_tab5
73+
- m5stack_core # m5stack:esp32 x ESP32 (xtensa-esp32)
74+
- m5stack_cores3 # m5stack:esp32 x ESP32-S3 (separate GCC target)
75+
- m5stack_nano_c6 # m5stack:esp32 x ESP32-C6 (rv32)
76+
- m5stack_tab5 # m5stack:esp32 x ESP32-P4 (rv32 single-float)
77+
# - arduino_nesso_n1 # ESP32-C6: represented by m5stack_nano_c6
78+
# - m5stack_atom # ESP32: represented by m5stack_core
79+
# - m5stack_atoms3 # ESP32-S3: represented by m5stack_cores3
80+
# - m5stack_atoms3r # ESP32-S3: represented by m5stack_cores3
81+
# - m5stack_capsule # ESP32-S3: represented by m5stack_cores3
82+
# - m5stack_cardputer # ESP32-S3: represented by m5stack_cores3
83+
# - m5stack_core2 # ESP32: represented by m5stack_core
84+
# - m5stack_coreink # ESP32: represented by m5stack_core
85+
# - m5stack_dial # ESP32-S3: represented by m5stack_cores3
86+
# - m5stack_dinmeter # ESP32-S3: represented by m5stack_cores3
87+
# - m5stack_fire # ESP32: represented by m5stack_core
88+
# - m5stack_paper # ESP32: represented by m5stack_core
89+
# - m5stack_papers3 # ESP32-S3: represented by m5stack_cores3
90+
# - m5stack_stamp_s3 # ESP32-S3: represented by m5stack_cores3
91+
# - m5stack_stickc # ESP32: represented by m5stack_core
92+
# - m5stack_stickc_plus # ESP32: represented by m5stack_core
93+
# - m5stack_stickc_plus2 # ESP32: represented by m5stack_core
94+
# - m5stack_sticks3 # ESP32-S3: represented by m5stack_cores3
9395

9496
platform-version:
9597
- 3.2.5

.github/workflows/doxygen-gh-pages.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
name: Deploy Doxygen document on GitHub Pages
2-
on: [release, workflow_dispatch]
3-
# branches:
4-
# - main
5-
# - master
2+
on:
3+
release:
4+
types: [published]
5+
workflow_dispatch:
66
permissions:
77
contents: write
88
defaults:
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
name: Build(esp-idf-native)
2+
3+
on:
4+
push:
5+
tags-ignore:
6+
- '*.*.*'
7+
- 'v*.*.*'
8+
branches:
9+
- '*'
10+
paths:
11+
- 'src/**.cpp'
12+
- 'src/**.hpp'
13+
- 'src/**.h'
14+
- 'src/**.c'
15+
- 'CMakeLists.txt'
16+
- 'idf_component.yml'
17+
- 'examples/UnitUnified/**.cpp'
18+
- 'examples/UnitUnified/**.hpp'
19+
- 'examples/UnitUnified/**.h'
20+
- 'examples/UnitUnified/**.c'
21+
- 'examples/UnitUnified/**/CMakeLists.txt'
22+
- 'examples/UnitUnified/**/Kconfig.projbuild'
23+
- 'examples/UnitUnified/common/**'
24+
- '.github/workflows/esp-idf-build-check.yml'
25+
pull_request:
26+
paths:
27+
- 'src/**.cpp'
28+
- 'src/**.hpp'
29+
- 'src/**.h'
30+
- 'src/**.c'
31+
- 'CMakeLists.txt'
32+
- 'idf_component.yml'
33+
- 'examples/UnitUnified/**.cpp'
34+
- 'examples/UnitUnified/**.hpp'
35+
- 'examples/UnitUnified/**.h'
36+
- 'examples/UnitUnified/**.c'
37+
- 'examples/UnitUnified/**/CMakeLists.txt'
38+
- 'examples/UnitUnified/**/Kconfig.projbuild'
39+
- 'examples/UnitUnified/common/**'
40+
- '.github/workflows/esp-idf-build-check.yml'
41+
workflow_dispatch:
42+
43+
defaults:
44+
run:
45+
shell: bash
46+
47+
concurrency:
48+
group: ${{ github.workflow }}-${{ github.ref }}
49+
cancel-in-progress: true
50+
51+
# Cross design: variant coverage on esp32s3, chip coverage on the other SoCs with the default
52+
# I2C variant (UnitRFID2). The M5Unit-RFID driver (WS1850S) is exercised by UnitRFID2 (GROVE I2C)
53+
# and the M5Dial built-in WS1850S (In_I2C, ESP32-S3 only); UnitNFC / CapCC1101 select the
54+
# ST25R3916 (M5Unit-NFC) path and are not built here. RFID has no Tab5-specific example, so
55+
# esp32p4 (Tab5) is folded into chip coverage rather than a separate Tab5 job.
56+
jobs:
57+
# Variant coverage: RFID variants on esp32s3 (LCD-capable dual-core Xtensa with PSRAM; also the
58+
# M5Dial host chip). M5Dial built-in (In_I2C) is ESP32-S3 only, so it lives here.
59+
build-variants:
60+
name: ${{ matrix.idf }} esp32s3 ${{ matrix.example_config.label }}
61+
runs-on: ubuntu-latest
62+
timeout-minutes: 30
63+
strategy:
64+
fail-fast: false
65+
max-parallel: 20
66+
matrix:
67+
# idf boundaries: 5.1.7 = oldest legacy-driver (5.0.x dropped: M5GFX needs esp_mm added
68+
# in 5.1), 5.4.4 = new driver/*_master.h + touch_sens.h era, 5.5.4 = latest.
69+
idf: [v5.1.7, v5.4.4, v5.5.4]
70+
# NFCA Detect gets UnitRFID2 (GROVE) and the M5Dial built-in WS1850S (In_I2C). NFCB Detect
71+
# gets UnitRFID2 only (NFCB is not offered for the Dial built-in — small-antenna limit).
72+
example_config:
73+
- label: NFCA-Detect-UnitRFID2 (full)
74+
example_path: examples/UnitUnified/NFCA/Detect
75+
variant: USING_UNIT_RFID2
76+
- label: NFCA-Detect-M5DialBuiltin (full)
77+
example_path: examples/UnitUnified/NFCA/Detect
78+
variant: USING_M5DIAL_BUILTIN_WS1850S
79+
- label: NFCB-Detect-UnitRFID2 (no_dial)
80+
example_path: examples/UnitUnified/NFCB/Detect
81+
variant: USING_UNIT_RFID2
82+
steps:
83+
- name: Checkout
84+
uses: actions/checkout@v4
85+
86+
- name: Select Kconfig variant
87+
# The example's own sdkconfig.defaults is not read (top CMakeLists points SDKCONFIG_DEFAULTS
88+
# at common/sdkconfig.defaults). Append the choice to common/ in the CI workspace only.
89+
run: |
90+
echo "" >> examples/UnitUnified/common/sdkconfig.defaults
91+
echo "CONFIG_EXAMPLE_${{ matrix.example_config.variant }}=y" >> examples/UnitUnified/common/sdkconfig.defaults
92+
93+
- name: ESP-IDF build
94+
uses: espressif/esp-idf-ci-action@v1
95+
with:
96+
esp_idf_version: ${{ matrix.idf }}
97+
target: esp32s3
98+
path: ${{ matrix.example_config.example_path }}
99+
100+
# Chip coverage: NFCA Detect (UnitRFID2 / GROVE I2C) on every other supported SoC. esp32 = classic
101+
# Xtensa dual-core (M5Unified touch-deprecation path). esp32c6 / esp32h2 = RISC-V single-core,
102+
# exercises the app_main CONFIG_FREERTOS_UNICORE feedIdle branch. esp32p4 (M5Stack Tab5) =
103+
# RISC-V dual-core; sdkconfig.defaults.esp32p4 overlay (chip-rev minimum keys) is auto-applied.
104+
build-chips:
105+
name: ${{ matrix.idf }} ${{ matrix.target }} NFCA-Detect-UnitRFID2
106+
runs-on: ubuntu-latest
107+
timeout-minutes: 30
108+
strategy:
109+
fail-fast: false
110+
max-parallel: 20
111+
matrix:
112+
target: [esp32, esp32c6, esp32h2, esp32p4]
113+
idf: [v5.1.7, v5.4.4, v5.5.4]
114+
exclude:
115+
# esp32p4 stable from IDF v5.3 (M5GFX P4 verified on 5.4/5.5). 5.1.7 not applicable.
116+
- target: esp32p4
117+
idf: v5.1.7
118+
steps:
119+
- name: Checkout
120+
uses: actions/checkout@v4
121+
122+
- name: Select Kconfig variant
123+
run: |
124+
echo "" >> examples/UnitUnified/common/sdkconfig.defaults
125+
echo "CONFIG_EXAMPLE_USING_UNIT_RFID2=y" >> examples/UnitUnified/common/sdkconfig.defaults
126+
127+
- name: ESP-IDF build
128+
uses: espressif/esp-idf-ci-action@v1
129+
with:
130+
esp_idf_version: ${{ matrix.idf }}
131+
target: ${{ matrix.target }}
132+
path: examples/UnitUnified/NFCA/Detect

.github/workflows/platformio-build-check.yml

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -57,25 +57,29 @@ jobs:
5757
- NFCA_Detect
5858
- NFCB_Detect
5959

60+
# Build CI board axis = distinct compile config only (skill m5-build-ci-matrix).
61+
# I2C path is a runtime M5.getBoard() branch (same compile for all boards), so
62+
# only one board per compile config is kept; variant-header siblings are commented out.
6063
board:
61-
- Core
62-
- Core2
63-
- CoreS3
64-
- Fire
65-
- StampS3
66-
- Dial
67-
- Atom
68-
- AtomS3
69-
- AtomS3R
70-
- NanoC6
71-
- StickCPlus
72-
- StickCPlus2
73-
- StickS3
74-
- Paper
75-
- CoreInk
76-
- Cardputer
77-
- Tab5
78-
- NessoN1
64+
- Core # espressif32 x ESP32 (xtensa-esp32)
65+
- CoreS3 # espressif32 x ESP32-S3 (xtensa-esp32s3, separate GCC target)
66+
- NanoC6 # pioarduino x ESP32-C6 (rv32)
67+
- NanoH2 # pioarduino x ESP32-H2 (H2 image target / f_flash16M)
68+
- Tab5 # pioarduino x ESP32-P4 (rv32 single-float / 16MB partition)
69+
# - Core2 # ESP32: represented by Core
70+
# - Fire # ESP32: represented by Core
71+
# - StampS3 # ESP32-S3: represented by CoreS3
72+
# - Dial # ESP32-S3: represented by CoreS3
73+
# - Atom # ESP32: represented by Core
74+
# - AtomS3 # ESP32-S3: represented by CoreS3
75+
# - AtomS3R # ESP32-S3: represented by CoreS3
76+
# - StickCPlus # ESP32: represented by Core
77+
# - StickCPlus2 # ESP32: represented by Core
78+
# - StickS3 # ESP32-S3: represented by CoreS3
79+
# - Paper # ESP32: represented by Core
80+
# - CoreInk # ESP32: represented by Core
81+
# - Cardputer # ESP32-S3: represented by CoreS3
82+
# - NessoN1 # ESP32-C6: represented by NanoC6
7983

8084
framework:
8185
- Arduino

.gitignore

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,19 @@ docs/html/
3737
# PlatformIO
3838
.pio/
3939

40+
# ESP-IDF (idf.py) build artifacts
41+
build/
42+
managed_components/
43+
sdkconfig
44+
sdkconfig.old
45+
dependencies.lock
46+
4047
# IDE
4148
.vscode/
4249

50+
# clangd LSP (個人用、環境依存)
51+
.clangd
52+
4353
# macOS
4454
.DS_Store
4555

CMakeLists.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# ESP-IDF component manifest for M5Unit-RFID.
2+
# MFRC522 / WS1850S are I2C polling devices (no GPIO ISR / SPI / crypto on the
3+
# host side), so unlike M5Unit-NFC this component needs no driver / mbedtls
4+
# dependency. MIFARE authentication runs on-chip via the MFAuthent command.
5+
file(GLOB_RECURSE SRCS "src/*.cpp")
6+
idf_component_register(
7+
SRCS ${SRCS}
8+
INCLUDE_DIRS "src"
9+
REQUIRES M5UnitUnified M5Unit-NFC
10+
PRIV_REQUIRES M5Utility
11+
)

0 commit comments

Comments
 (0)