Skip to content

Commit 132617c

Browse files
committed
Bruce Enhanced App Platform for T-Embed CC1101
- Added Apps menu to main menu for discovering/launching apps from SD card - Increased JS interpreter heap to 512KB (PSRAM) and task stack to 16KB - New JS API modules: BLE (scan/advertise), NRF24 (RF24 bindings), LED (RGB control), Menu (native UI) - App launcher with manifest.json support for /apps/ directory on SD/LittleFS - Based on Bruce firmware with enhanced app loading (Flipper Zero-style)
0 parents  commit 132617c

1,183 files changed

Lines changed: 216891 additions & 0 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.

.clang-format

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
BasedOnStyle: LLVM
2+
3+
UseTab: Never
4+
IndentWidth: 4
5+
TabWidth: 4
6+
AccessModifierOffset: -4
7+
ColumnLimit: 110
8+
9+
AlignAfterOpenBracket: BlockIndent
10+
AlignArrayOfStructures: Left
11+
12+
AllowShortBlocksOnASingleLine: Always
13+
AllowShortCaseExpressionOnASingleLine: true
14+
AllowShortCaseLabelsOnASingleLine: true
15+
AllowShortCompoundRequirementOnASingleLine: true
16+
AllowShortEnumsOnASingleLine: true
17+
AllowShortFunctionsOnASingleLine: All
18+
AllowShortLambdasOnASingleLine: All
19+
AllowShortLoopsOnASingleLine: true
20+
AllowShortIfStatementsOnASingleLine: AllIfsAndElse
21+
22+
BreakBeforeBraces: Attach
23+
BinPackArguments: false
24+
25+
IndentCaseLabels: true

.dockerignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
.pio/
2+
.platformio/
3+
.git/
4+
.vscode/
5+
__pycache__/
6+
*.pyc
7+
mqjs_build/
8+
Bruce-*.bin

.github/FUNDING.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# These are supported funding model platforms
2+
3+
github: bmorcelli
4+
patreon: BruceFirmware
5+
open_collective: brucefirmware
6+
ko_fi: brucefw
7+
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8+
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9+
liberapay: # Replace with a single Liberapay username
10+
issuehunt: # Replace with a single IssueHunt username
11+
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
12+
polar: # Replace with a single Polar username
13+
buy_me_a_coffee: bmorcelliz
14+
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
**Describe the bug:**
11+
<!-- A clear and concise description of what the bug is. -->
12+
13+
**Steps To Reproduce:**
14+
<!-- Steps to reproduce the behavior. -->
15+
- Device used:
16+
17+
**Expected behavior:**
18+
<!-- A clear and concise description of what you expected to happen. -->
19+
20+
**Actual behavior:**
21+
<!-- A clear and concise description of what actually happened. -->
22+
23+
**Additional context / logs:**
24+
<!-- Add any other context and/or logs about the problem here. -->
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
**Is your feature request related to a problem? Please describe.**
11+
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
12+
13+
**Describe the solution you'd like**
14+
<!-- A clear and concise description of what you want to happen. -->
15+
16+
**Describe alternatives you've considered**
17+
<!-- A clear and concise description of any alternative solutions or features you've considered. -->
18+
19+
**Additional context**
20+
<!-- Add any other context or screenshots about the feature request here. -->
21+
22+

.github/pull_request_template.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#### Proposed Changes ####
2+
3+
<!-- Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. -->
4+
5+
#### Types of Changes ####
6+
7+
<!-- What types of changes does your code introduce to Bruce? Bugfix, New Feature, Breaking Change, etc -->
8+
9+
#### Verification ####
10+
11+
<!-- How can the changes be verified? Please provide whatever additional information necessary to help verify the proposed changes. -->
12+
13+
#### Testing ####
14+
15+
<!-- Is this change covered by testing? If not, consider adding a Unit or Integration test. -->
16+
17+
#### Linked Issues ####
18+
19+
<!-- Link any related issues, pull-requests, or commit hashes that are relevant to this pull request. If you are opening a PR without a corresponding issue please consider creating one first. -->
20+
21+
#### User-Facing Change ####
22+
<!--
23+
Does this PR introduce a user-facing change? If no, just write "NONE" in the release-note block below.
24+
If the PR requires additional action from users switching to the new release, include the string "action required".
25+
-->
26+
```release-note
27+
28+
```
29+
30+
#### Further Comments ####
31+

.github/workflows/PR_All_envs.yml

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
---
2+
name: PR Check All envs on Dispatch
3+
4+
on:
5+
workflow_dispatch:
6+
inputs:
7+
pr_number:
8+
description: "Pull Request Number"
9+
type: string
10+
required: true
11+
12+
jobs:
13+
compile_sketch:
14+
name: Build ${{ matrix.board.env }}
15+
runs-on: ubuntu-latest
16+
strategy:
17+
fail-fast: false
18+
matrix:
19+
board:
20+
- { env: "m5stack-cardputer", family: "ESP32-S3",}
21+
- { env: "m5stack-cplus2", family: "ESP32",}
22+
- { env: "m5stack-cplus1_1", family: "ESP32",}
23+
- { env: "LAUNCHER_m5stack-cplus1_1", family: "ESP32",}
24+
- { env: "m5stack-core2", family: "ESP32",}
25+
- { env: "m5stack-core16mb", family: "ESP32",}
26+
- { env: "m5stack-core4mb", family: "ESP32",}
27+
- { env: "m5stack-cores3", family: "ESP32-S3",}
28+
- { env: "esp32-s3-devkitc-1", family: "ESP32-S3",}
29+
- { env: "esp32-c5", family: "ESP32-C5",}
30+
- { env: "esp32-c5-tft", family: "ESP32-C5",}
31+
- { env: "CYD-2432S028", family: "ESP32",}
32+
- { env: "CYD-2USB", family: "ESP32",}
33+
- { env: "CYD-2432W328C", family: "ESP32",}
34+
- { env: "CYD-2432W328C_2", family: "ESP32",}
35+
- { env: "CYD-2432W328R-or-S024R", family: "ESP32",}
36+
- { env: "CYD-3248S035R", family: "ESP32",}
37+
- { env: "CYD-3248S035C", family: "ESP32",}
38+
- { env: "LAUNCHER_CYD-2432W328R-or-S024R", family: "ESP32",}
39+
- { env: "LAUNCHER_CYD-2432S028", family: "ESP32",}
40+
- { env: "LAUNCHER_CYD-2USB", family: "ESP32",}
41+
- { env: "LAUNCHER_CYD-2432W328C", family: "ESP32",}
42+
- { env: "LAUNCHER_CYD-3248S035R", family: "ESP32",}
43+
- { env: "LAUNCHER_CYD-3248S035C", family: "ESP32",}
44+
- { env: "lilygo-t-embed-cc1101", family: "ESP32-S3",}
45+
- { env: "lilygo-t-embed", family: "ESP32-S3",}
46+
- { env: "lilygo-t-deck", family: "ESP32-S3",}
47+
- { env: "lilygo-t-watch-s3", family: "ESP32-S3",}
48+
- { env: "lilygo-t-deck-pro", family: "ESP32-S3",}
49+
- { env: "lilygo-t-display-s3", family: "ESP32-S3",}
50+
- { env: "lilygo-t-display-s3-touch", family: "ESP32-S3",}
51+
- { env: "lilygo-t-display-s3-mmc", family: "ESP32-S3",}
52+
- { env: "lilygo-t-display-s3-touch-mmc", family: "ESP32-S3",}
53+
- { env: "lilygo-t-display-S3-pro", family: "ESP32-S3",}
54+
- { env: "lilygo-t-display-ttgo", family: "ESP32",}
55+
- { env: "lilygo-t-hmi", family: "ESP32-S3",}
56+
- { env: "lilygo-t-lora-pager", family: "ESP32-S3",}
57+
- { env: "smoochiee-board", family: "ESP32-S3",}
58+
- { env: "Phantom_S024R", family: "ESP32",}
59+
- { env: "LAUNCHER_Phantom_S024R", family: "ESP32",}
60+
- { env: "Marauder-Mini", family: "ESP32",}
61+
- { env: "LAUNCHER_Marauder-Mini", family: "ESP32",}
62+
- { env: "Awok-Mini", family: "ESP32",}
63+
- { env: "Marauder-v7", family: "ESP32",}
64+
- { env: "LAUNCHER_Marauder-v7", family: "ESP32",}
65+
- { env: "Marauder-V4-V6", family: "ESP32",}
66+
- { env: "Marauder-v61", family: "ESP32",}
67+
- { env: "LAUNCHER_Marauder-V4-V6", family: "ESP32",}
68+
- { env: "LAUNCHER_Marauder-v61", family: "ESP32",}
69+
- { env: "Awok-Touch", family: "ESP32",}
70+
- { env: "WaveSentry-R1", family: "ESP32",}
71+
- { env: "LAUNCHER_WaveSentry-R1", family: "ESP32",}
72+
steps:
73+
- uses: actions/checkout@v4
74+
with:
75+
ref: refs/pull/${{ github.event.inputs.pr_number }}/merge
76+
77+
- id: build
78+
name: Setup Python
79+
uses: actions/setup-python@v5
80+
with:
81+
python-version: "3.13"
82+
83+
- name: Install build deps (multilib)
84+
run: |
85+
sudo apt-get update
86+
sudo apt-get install -y --no-install-recommends gcc-multilib libc6-dev-i386
87+
88+
# - name: Cache pip
89+
# uses: actions/cache@v4
90+
# with:
91+
# path: ~/.cache/pip
92+
# key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
93+
# restore-keys: |
94+
# ${{ runner.os }}-pip-
95+
96+
# - name: Cache PlatformIO
97+
# uses: actions/cache@v4
98+
# with:
99+
# path: |
100+
# ~/.platformio
101+
# key: Bruce-platformio-${{ hashFiles('**/platformio.ini') }}
102+
# restore-keys: Bruce-platformio-
103+
104+
# - name: Restore PIO
105+
# uses: actions/cache/restore@v4
106+
# with:
107+
# path: |
108+
# ${{ github.workspace }}/.pio
109+
# key: Bruce-pio-${{ matrix.board.env }}-${{ github.run_id }}-${{ github.run_attempt }}
110+
# restore-keys: |
111+
# Bruce-pio-${{ matrix.board.env }}-
112+
113+
- name: Install PlatformIO Core
114+
run: |
115+
pip install platformio requests esptool intelhex
116+
if [[ "${{ github.ref_type }}" == "tag" ]]; then
117+
version=${{ github.ref_name }}
118+
else
119+
version="${GITHUB_SHA::7}"
120+
fi
121+
122+
sed -i "s/-DBRUCE_VERSION=/-DBRUCE_VERSION='\"$version\"' ; /g" ./platformio.ini
123+
sed -i "s/-DGIT_COMMIT_HASH='\"Homebrew\"'/\!echo '-DGIT_COMMIT_HASH=\\\\\\\\\"'\$\(git describe --always --dirty)'\\\\\\\\\"'/g" ./platformio.ini
124+
125+
cat ./platformio.ini
126+
127+
- name: Run Compile
128+
run: |
129+
platformio run -e ${{ matrix.board.env }}
130+
131+
# - name: Cache PIO
132+
# uses: actions/cache/save@v4
133+
# with:
134+
# path: |
135+
# ${{ github.workspace }}/.pio
136+
# key: Bruce-pio-${{ matrix.board.env }}-${{ github.run_id }}-${{ github.run_attempt }}
137+
138+
# - name: Merge Files
139+
# run: |
140+
# pio run -e ${{ matrix.board.env }} -t build-firmware
141+
142+
- name: Upload ${{ matrix.board.env }}
143+
uses: actions/upload-artifact@v4
144+
with:
145+
name: Bruce-${{ matrix.board.env }}
146+
path: Bruce-*.bin
147+
retention-days: 5
148+
if-no-files-found: error

0 commit comments

Comments
 (0)