Compare commits

...

37 Commits

Author SHA1 Message Date
Thomas Göttgens
193929fbf5
Merge b06d3c0dfd into 72dd5bd88d 2025-04-20 22:46:47 +02:00
Austin
72dd5bd88d
Publish firmware all together (#6642)
Some checks are pending
CI / build-esp32-c3 (push) Blocked by required conditions
CI / build-esp32-c6 (push) Blocked by required conditions
CI / build-nrf52 (push) Blocked by required conditions
CI / build-rpi2040 (push) Blocked by required conditions
CI / build-stm32 (push) Blocked by required conditions
CI / build-debian-src (push) Waiting to run
CI / package-pio-deps-native-tft (push) Waiting to run
CI / test-native (push) Waiting to run
CI / docker-deb-amd64 (push) Waiting to run
CI / docker-deb-amd64-tft (push) Waiting to run
CI / docker-alp-amd64 (push) Waiting to run
CI / docker-alp-amd64-tft (push) Waiting to run
CI / docker-deb-arm64 (push) Waiting to run
CI / docker-deb-armv7 (push) Waiting to run
CI / gather-artifacts (esp32) (push) Blocked by required conditions
CI / gather-artifacts (esp32c3) (push) Blocked by required conditions
CI / gather-artifacts (esp32c6) (push) Blocked by required conditions
CI / gather-artifacts (esp32s3) (push) Blocked by required conditions
CI / gather-artifacts (nrf52840) (push) Blocked by required conditions
CI / gather-artifacts (rp2040) (push) Blocked by required conditions
CI / gather-artifacts (stm32) (push) Blocked by required conditions
CI / release-artifacts (push) Blocked by required conditions
CI / release-firmware (esp32) (push) Blocked by required conditions
CI / release-firmware (esp32c3) (push) Blocked by required conditions
CI / release-firmware (esp32c6) (push) Blocked by required conditions
CI / release-firmware (esp32s3) (push) Blocked by required conditions
CI / release-firmware (nrf52840) (push) Blocked by required conditions
CI / release-firmware (rp2040) (push) Blocked by required conditions
CI / release-firmware (stm32) (push) Blocked by required conditions
CI / publish-firmware (push) Blocked by required conditions
2025-04-20 16:31:47 -04:00
Austin
8812eadd44
Revert "Add IP Address Frame (#6615)" (#6639)
Some checks are pending
CI / build-esp32-s3 (push) Blocked by required conditions
CI / build-esp32-c3 (push) Blocked by required conditions
CI / build-esp32-c6 (push) Blocked by required conditions
CI / build-nrf52 (push) Blocked by required conditions
CI / build-rpi2040 (push) Blocked by required conditions
CI / build-stm32 (push) Blocked by required conditions
CI / build-debian-src (push) Waiting to run
CI / package-pio-deps-native-tft (push) Waiting to run
CI / test-native (push) Waiting to run
CI / docker-deb-amd64 (push) Waiting to run
CI / docker-deb-amd64-tft (push) Waiting to run
CI / docker-alp-amd64 (push) Waiting to run
CI / docker-alp-amd64-tft (push) Waiting to run
CI / docker-deb-arm64 (push) Waiting to run
CI / docker-deb-armv7 (push) Waiting to run
CI / gather-artifacts (esp32) (push) Blocked by required conditions
CI / gather-artifacts (esp32c3) (push) Blocked by required conditions
CI / gather-artifacts (esp32c6) (push) Blocked by required conditions
CI / gather-artifacts (esp32s3) (push) Blocked by required conditions
CI / gather-artifacts (nrf52840) (push) Blocked by required conditions
CI / gather-artifacts (rp2040) (push) Blocked by required conditions
CI / gather-artifacts (stm32) (push) Blocked by required conditions
CI / release-artifacts (push) Blocked by required conditions
CI / release-firmware (esp32) (push) Blocked by required conditions
CI / release-firmware (esp32c3) (push) Blocked by required conditions
CI / release-firmware (esp32c6) (push) Blocked by required conditions
CI / release-firmware (esp32s3) (push) Blocked by required conditions
CI / release-firmware (nrf52840) (push) Blocked by required conditions
CI / release-firmware (rp2040) (push) Blocked by required conditions
CI / release-firmware (stm32) (push) Blocked by required conditions
This reverts commit 5d48d2c0a7.
2025-04-20 09:49:21 -05:00
Ben Meadors
48dc0e014c
Revert "Lib Update (#6510)" (#6640)
This reverts commit e2f6600cb9.
2025-04-20 09:48:07 -05:00
Austin
e03f3de185
Build and deploy event firmwares (#6628) 2025-04-20 09:45:58 -05:00
Nivek-domo
5d48d2c0a7
Add IP Address Frame (#6615)
* Update Screen.cpp

add ip on screen if has ethernet pcb like w5500 spi

* Run Trunk Format and Translate Comments FR->EN

---------

Co-authored-by: Tom Fifield <tom@tomfifield.net>
2025-04-20 20:06:39 +10:00
Nivek-domo
2b57ffafd7
Rak13800 Ethernet works on rak11310 too
we can use rak13800 on rak11310 too
2025-04-20 18:51:01 +10:00
Thomas Göttgens
b06d3c0dfd fix braces 2025-04-17 22:23:08 +02:00
Thomas Göttgens
ad4b65c2d4 Merge branch 'master' of https://github.com/meshtastic/firmware into crowpanel
# Conflicts:
#	variants/elecrow_panel/platformio.ini
2025-04-17 17:10:25 +02:00
Thomas Göttgens
ecfa97d068 Add stubs for the bigger panels. WIP! 2025-04-17 17:07:15 +02:00
Thomas Göttgens
390b9df25b add hardware ID for TFT panels 2025-04-17 13:09:21 +02:00
Thomas Göttgens
888cc5c61c
Merge branch 'master' into crowpanel 2025-04-17 12:46:04 +02:00
Manuel
c4ca1c4941
Merge branch 'master' into crowpanel 2025-04-17 08:28:37 +02:00
Thomas Göttgens
ce2d48d5d8 Finalize support for Crowpanel TFT 2.4, 2.8 and 3.5 2025-04-17 00:55:58 +02:00
Manuel
0cca2cb29c
Merge branch 'master' into crowpanel 2025-04-16 22:43:46 +02:00
Manuel
de66f439cc
Merge branch 'master' into crowpanel 2025-04-16 17:15:33 +02:00
mverch67
1886c2fd30 use pwm buzzer 2025-04-16 17:13:46 +02:00
mverch67
d8058c2c4f don't build non-MUI variants 2025-04-16 17:13:46 +02:00
mverch67
71a77c1dd3 allow wake on touch 2025-04-16 17:13:46 +02:00
mverch67
8deff9bdc2 fix notification crash; 2025-04-16 17:13:46 +02:00
Manuel
50734a73ef
Merge branch 'master' into crowpanel 2025-04-15 14:35:06 +02:00
mverch67
1c8a763496 SD software SPI control 2025-04-15 14:29:50 +02:00
Manuel
920505698b
Merge branch 'master' into crowpanel 2025-04-14 18:25:39 +02:00
Manuel
48d34890f5
Merge branch 'master' into crowpanel 2025-04-14 12:26:40 +02:00
Thomas Göttgens
f3f58f8d2c
Merge branch 'master' into crowpanel 2025-04-06 23:06:00 +02:00
Thomas Göttgens
23057658e1
Update variants/elecrow_panel/platformio.ini
Co-authored-by: Austin <vidplace7@gmail.com>
2025-04-06 23:05:49 +02:00
Manuel
0a7d0db237
Merge branch 'master' into crowpanel 2025-04-01 19:39:52 +02:00
mverch67
3d26a243f1 make SPI1 use more generic 2025-03-31 10:03:22 +02:00
mverch67
83fc3647b1 Elecrow: TFT uses SPI2_HOST (otherwise LoRa does not work on HSPI) 2025-03-31 10:03:22 +02:00
mverch67
7ee554fb0a Elecrow: LoRa uses HSPI; TCXO 3.3V 2025-03-31 10:03:22 +02:00
mverch67
dce1c78a66 allow LoRa on SPI/HSPI (elecrow) 2025-03-31 10:03:22 +02:00
Thomas Göttgens
8f20bb19ba Fix build warning and trunk format 2025-03-31 10:03:22 +02:00
mverch67
2703fc1f18 merge 2.4"/2.8", blindly added 3.5" tft target 2025-03-31 10:03:22 +02:00
mverch67
fcef6fbb14 fix touch screen 2025-03-31 10:03:22 +02:00
mverch67
26b72d1188 elecrow: default BT off, GPS not present, powersave on, debug logs via virtual USB 2025-03-31 10:03:22 +02:00
mverch67
b1cc8facbf added elecrow-24-tft 2025-03-31 10:03:22 +02:00
Thomas Göttgens
557ab17333 [WIP] Crowpanel support 2025-03-31 10:03:22 +02:00
6 changed files with 118 additions and 31 deletions

View File

@ -5,14 +5,20 @@ concurrency:
on:
# # Triggers the workflow on push but only for the master branch
push:
branches: [master, develop]
branches:
- master
- develop
- event/*
paths-ignore:
- "**.md"
- version.properties
# Note: This is different from "pull_request". Need to specify ref when doing checkouts.
pull_request_target:
branches: [master, develop]
branches:
- master
- develop
- event/*
paths-ignore:
- "**.md"
#- "**.yml"
@ -32,12 +38,12 @@ jobs:
name: Checkout base
- id: jsonStep
run: |
if [[ "${{ github.head_ref }}" == "" ]]; then
if [[ "$GITHUB_HEAD_REF" == "" ]]; then
TARGETS=$(./bin/generate_ci_matrix.py ${{matrix.arch}})
else
TARGETS=$(./bin/generate_ci_matrix.py ${{matrix.arch}} quick)
fi
echo "Name: ${{ github.ref_name }} Base: ${{ github.base_ref }} } Ref: ${{ github.ref }} Targets: $TARGETS"
echo "Name: $GITHUB_REF_NAME Base: $GITHUB_BASE_REF Ref: $GITHUB_REF Targets: $TARGETS"
echo "${{matrix.arch}}=$(jq -cn --argjson environments "$TARGETS" '{board: $environments}')" >> $GITHUB_OUTPUT
outputs:
esp32: ${{ steps.jsonStep.outputs.esp32 }}
@ -195,17 +201,6 @@ jobs:
runs-on: ubuntu-24.04-arm
push: false
after-checks:
runs-on: ubuntu-latest
if: ${{ github.event_name != 'workflow_dispatch' }}
needs: [check]
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}
gather-artifacts:
permissions:
contents: write
@ -350,7 +345,7 @@ jobs:
merge-multiple: true
path: ./output/pio-deps-native-tft
- name: Zip linux sources
- name: Zip Linux sources
working-directory: output
run: |
zip -j -9 -r ./meshtasticd-${{ steps.version.outputs.deb }}-src.zip ./debian-src
@ -360,7 +355,9 @@ jobs:
- name: Display structure of downloaded files
run: ls -lR
- name: Add linux sources to release
- name: Add Linux sources to GtiHub Release
# Only run when targeting master branch with workflow_dispatch
if: ${{ github.ref_name == 'master' }}
run: |
gh release upload v${{ steps.version.outputs.long }} ./output/meshtasticd-${{ steps.version.outputs.deb }}-src.zip
gh release upload v${{ steps.version.outputs.long }} ./output/platformio-deps-native-tft-${{ steps.version.outputs.long }}.zip
@ -418,9 +415,53 @@ jobs:
- name: Display structure of downloaded files
run: ls -lR
- name: Add bins and debug elfs to release
- name: Add bins and debug elfs to GitHub Release
# Only run when targeting master branch with workflow_dispatch
if: ${{ github.ref_name == 'master' }}
run: |
gh release upload v${{ steps.version.outputs.long }} ./firmware-${{matrix.arch}}-${{ steps.version.outputs.long }}.zip
gh release upload v${{ steps.version.outputs.long }} ./debug-elfs-${{matrix.arch}}-${{ steps.version.outputs.long }}.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
publish-firmware:
runs-on: ubuntu-latest
if: ${{ github.event_name == 'workflow_dispatch' }}
needs: [release-firmware]
env:
targets: esp32,esp32s3,esp32c3,esp32c6,nrf52840,rp2040,stm32
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: 3.x
- name: Get release version string
run: echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
id: version
- uses: actions/download-artifact@v4
with:
pattern: firmware-{${{ env.targets }}}-${{ steps.version.outputs.long }}
merge-multiple: true
path: ./publish
- name: Publish firmware to meshtastic.github.io
uses: peaceiris/actions-gh-pages@v4
env:
# On event/* branches, use the event name as the destination prefix
DEST_PREFIX: ${{ contains(github.ref_name, 'event/') && format('{0}/', github.ref_name) || '' }}
with:
deploy_key: ${{ secrets.DIST_PAGES_DEPLOY_KEY }}
external_repository: meshtastic/meshtastic.github.io
publish_branch: master
publish_dir: ./publish
destination_dir: ${{ env.DEST_PREFIX }}firmware-${{ steps.version.outputs.long }}
keep_files: true
user_name: github-actions[bot]
user_email: github-actions[bot]@users.noreply.github.com
commit_message: ${{ steps.version.outputs.long }}
enable_jekyll: true

View File

@ -50,7 +50,7 @@ lib_deps =
# renovate: datasource=git-refs depName=meshtastic-esp32_https_server packageName=https://github.com/meshtastic/esp32_https_server gitBranch=master
https://github.com/meshtastic/esp32_https_server/archive/896f1771ceb5979987a0b41028bf1b4e7aad419b.zip
# renovate: datasource=custom.pio depName=NimBLE-Arduino packageName=h2zero/library/NimBLE-Arduino
h2zero/NimBLE-Arduino@^2.2.3
h2zero/NimBLE-Arduino@^1.4.3
# renovate: datasource=git-refs depName=libpax packageName=https://github.com/dbinfrago/libpax gitBranch=master
https://github.com/dbinfrago/libpax/archive/3cdc0371c375676a97967547f4065607d4c53fd1.zip
# renovate: datasource=custom.pio depName=XPowersLib packageName=lewisxhe/library/XPowersLib

View File

@ -65,8 +65,8 @@
#endif
#if (defined(USE_EINK) || defined(ILI9341_DRIVER) || defined(ILI9342_DRIVER) || defined(ST7701_CS) || defined(ST7735_CS) || \
defined(ST7789_CS) || defined(USE_ST7789) || defined(HX8357_CS)) || \
defined(ILI9488_CS) && !defined(DISPLAY_FORCE_SMALL_FONTS)
defined(ST7789_CS) || defined(USE_ST7789) || defined(HX8357_CS) || \
defined(ILI9488_CS)) && !defined(DISPLAY_FORCE_SMALL_FONTS)
// The screen is bigger so use bigger fonts
#define FONT_SMALL FONT_MEDIUM_LOCAL // Height: 19
#define FONT_MEDIUM FONT_LARGE_LOCAL // Height: 28

View File

@ -43,7 +43,7 @@ template <class T, class U> class APIServerPort : public U, private concurrency:
* delegate to the worker. Once coroutines are implemented we can relax this restriction.
*/
T *openAPI = NULL;
#if RAK_4631
#if defined(RAK_4631) || defined(RAK11310)
// Track wait time for RAK13800 Ethernet requests
int32_t waitTime = 100;
#endif

View File

@ -49,7 +49,7 @@ static uint8_t lastToRadio[MAX_TO_FROM_RADIO_SIZE];
class NimbleBluetoothToRadioCallback : public NimBLECharacteristicCallbacks
{
virtual void onWrite(NimBLECharacteristic *pCharacteristic, NimBLEConnInfo &connInfo)
virtual void onWrite(NimBLECharacteristic *pCharacteristic)
{
LOG_DEBUG("To Radio onwrite");
auto val = pCharacteristic->getValue();
@ -66,7 +66,7 @@ class NimbleBluetoothToRadioCallback : public NimBLECharacteristicCallbacks
class NimbleBluetoothFromRadioCallback : public NimBLECharacteristicCallbacks
{
virtual void onRead(NimBLECharacteristic *pCharacteristic, NimBLEConnInfo &connInfo)
virtual void onRead(NimBLECharacteristic *pCharacteristic)
{
uint8_t fromRadioBytes[meshtastic_FromRadio_size];
size_t numBytes = bluetoothPhoneAPI->getFromRadio(fromRadioBytes);
@ -79,7 +79,7 @@ class NimbleBluetoothFromRadioCallback : public NimBLECharacteristicCallbacks
class NimbleBluetoothServerCallback : public NimBLEServerCallbacks
{
virtual uint32_t onPassKeyDisplay()
virtual uint32_t onPassKeyRequest()
{
uint32_t passkey = config.bluetooth.fixed_pin;
@ -125,7 +125,7 @@ class NimbleBluetoothServerCallback : public NimBLEServerCallbacks
return passkey;
}
virtual void onAuthenticationComplete(NimBLEConnInfo &connInfo)
virtual void onAuthenticationComplete(ble_gap_conn_desc *desc)
{
LOG_INFO("BLE authentication complete");
@ -138,9 +138,9 @@ class NimbleBluetoothServerCallback : public NimBLEServerCallbacks
}
}
virtual void onDisconnect(NimBLEServer *pServer, NimBLEConnInfo &connInfo, int reason)
virtual void onDisconnect(NimBLEServer *pServer, ble_gap_conn_desc *desc)
{
LOG_INFO("BLE disconnect. Reason %i", reason);
LOG_INFO("BLE disconnect");
bluetoothStatus->updateStatus(
new meshtastic::BluetoothStatus(meshtastic::BluetoothStatus::ConnectionState::DISCONNECTED));
@ -191,7 +191,7 @@ int NimbleBluetooth::getRssi()
if (bleServer && isConnected()) {
auto service = bleServer->getServiceByUUID(MESH_SERVICE_UUID);
uint16_t handle = service->getHandle();
return NimBLEDevice::getClientByHandle(handle)->getRssi();
return NimBLEDevice::getClientByID(handle)->getRssi();
}
return 0; // FIXME figure out where to source this
}
@ -216,7 +216,6 @@ void NimbleBluetooth::setup()
NimbleBluetoothServerCallback *serverCallbacks = new NimbleBluetoothServerCallback();
bleServer->setCallbacks(serverCallbacks, true);
bleServer->advertiseOnDisconnect(true);
setupService();
startAdvertising();
}
@ -260,7 +259,7 @@ void NimbleBluetooth::setupService()
BatteryCharacteristic = batteryService->createCharacteristic( // 0x2A19 is the Battery Level characteristic)
(uint16_t)0x2a19, NIMBLE_PROPERTY::READ | NIMBLE_PROPERTY::NOTIFY, 1);
NimBLE2904 *batteryLevelDescriptor = (NimBLE2904 *)BatteryCharacteristic->create2904();
NimBLE2904 *batteryLevelDescriptor = (NimBLE2904 *)BatteryCharacteristic->createDescriptor((uint16_t)0x2904);
batteryLevelDescriptor->setFormat(NimBLE2904::FORMAT_UINT8);
batteryLevelDescriptor->setNamespace(1);
batteryLevelDescriptor->setUnit(0x27ad);

View File

@ -121,3 +121,50 @@ build_flags =
-D DISPLAY_SET_RESOLUTION
-D VIEW_320x240
-D MAP_FULL_REDRAW
# 4.3 inch 800x480 IPS ST7265
[env:elecrow-43-tft]
extends = crowpanel_base
board_level = extra
build_flags =
${crowpanel_base.build_flags}
-D TFT_HEIGHT=480
-D TFT_WIDTH=800
-D TFT_OFFSET_X=0
-D TFT_OFFSET_Y=0
-D TFT_BUSY=-1
-D CROW_SELECT=1
# 5 inch 800x480 IPS ST7262
[env:elecrow-50-tft]
extends = crowpanel_base
board_level = extra
build_flags =
${crowpanel_base.build_flags}
-D TFT_HEIGHT=480
-D TFT_WIDTH=800
-D TFT_OFFSET_X=0
-D TFT_OFFSET_Y=0
-D TFT_BUSY=-1
-D CROW_SELECT=2
# 7 inch 800x480 IPS SC7277
[env:elecrow-70-tft]
extends = crowpanel_base
board_level = extra
build_flags =
${crowpanel_base.build_flags}
-D TFT_HEIGHT=480
-D TFT_WIDTH=800
-D TFT_OFFSET_X=0
-D TFT_OFFSET_Y=0
-D TFT_BUSY=-1
-D CROW_SELECT=3
-D LGFX_DRIVER=LGFX_ELECROW70
-D GFX_DRIVER_INC=\"graphics/LGFX/LGFX_ELECROW70.h\"
-D VIEW_800x480
-I lib/device-ui/generated/ui_800x480