# MeshCore T1000-E BLE Companion – DO1FFE Silent

- **Firmware-Name:** MeshCore T1000-E BLE Companion – DO1FFE Silent
- **Firmware-Kennung im Gerät:** `v1.17.1-DO1FFE-S`
- **MeshCore-Version:** 1.17.1
- **Basis-Branch:** `main`
- **Offizieller Tag:** `companion-v1.17.1`
- **Commit SHA:** `d92964352441e53b93e8667b802e04f6e072b39e`
- **Build-Datum:** `2026-08-25T20:22:00Z`
- **Zielhardware:** Seeed Studio SenseCAP T1000-E (nRF52840 / LR1110)
- **Zielmodus:** Bluetooth Companion
- **Offizielle Environment:** `t1000e_companion_radio_ble`
- **Custom-Environment:** `t1000e_companion_radio_ble_do1ffe_silent`
- **Besonderheit:** Der Buzzer ist auf Build-Ebene dauerhaft deaktiviert.

## Exakte Buzzer-Deaktivierung

Die neue Custom-Environment erbt sämtliche Einstellungen der offiziellen BLE-Companion-Environment und wendet danach `-UPIN_BUZZER` sowie `-UPIN_BUZZER_EN` an. Dadurch sind die Makros in allen Übersetzungseinheiten undefiniert: Buzzer-Objekt, Initialisierung, RTTTL-Wiedergabe, Startup-/Shutdown-Töne, Benachrichtigungen und Triple-Click-Umschaltung werden nicht in die Firmware gelinkt.

Der davon unabhängige Hardware-Pin `BUZZER_EN` bleibt in der Seeed-Board-Initialisierung erhalten und wird beim Start sowie beim Ausschalten auf `LOW` gesetzt. Das hält die physische Buzzer-Versorgung zusätzlich abgeschaltet. Der finale ELF-Stand wurde auf fehlende `genericBuzzer`-/RTTTL-Symbole geprüft.

LoRa/LR1110, BLE, MeshCore Companion Protocol, Kontakte, Channels, Direct Messages, Advertisements, GPS/GNSS, Akkuüberwachung, Buttons, LEDs, Pairing, Routing und die normalen Companion-Funktionen bleiben Bestandteil des Builds.

## Firmware installieren

### Browser-Flasher

1. Öffne [flasher.do1ffe.de](https://flasher.do1ffe.de/) in Chrome, Chromium oder Edge auf einem Desktop-Rechner.
2. Verbinde den T1000-E über USB und folge dort den Schritten für den DFU-Modus.
3. Der Browser lädt das DFU-ZIP, prüft dessen SHA256 und überträgt es per Web Serial.

### UF2-Fallback

1. Gerätetaste gedrückt halten und das Ladekabel geräteseitig zweimal schnell verbinden.
2. Warten, bis die grüne LED dauerhaft leuchtet und das Laufwerk `T1000-E` erscheint.
3. `meshcore-t1000e-ble-companion-do1ffe-silent-1.17.1.uf2` auf dieses Laufwerk kopieren.

Das Web-Flashverfahren ist **Adafruit nRF52 Legacy Serial DFU** mit einem DFU-ZIP. Die UF2-Datei ist nur der manuelle Massenspeicher-Fallback. WebUSB und Web Bluetooth werden nicht zum Flashen verwendet.

> **Achtung:** Ein normales Anwendungsupdate soll den getrennten MeshCore-Dateisystembereich erhalten. Ein Datenverlust kann dennoch nicht vollständig ausgeschlossen werden. Dieser Release führt keinen vollständigen Flash-Erase aus.

## Dateien und Prüfsummen

| Datei | Größe | SHA256 |
|---|---:|---|
| `meshcore-t1000e-ble-companion-do1ffe-silent-1.17.1.zip` | 241.869 Byte | `1f77a00301ff283a33407cd3b2613b953a9fdf444f8a8d64196d55c6eb9e8a6b` |
| `meshcore-t1000e-ble-companion-do1ffe-silent-1.17.1.uf2` | 687.104 Byte | `d29025beb947eb748c7a5cf7e141b7977766bdaf767bce5d3cee8b47cd8dd8f1` |

Die vollständigen Listen stehen in `SHA256SUMS.txt` und `SHA512SUMS.txt`.

## Reproduzierbarer Build

Der Build verwendet PlatformIO Core 6.1.19, `platformio/nordicnrf52@10.12.0`, GCC ARM 7.2.1 und das per Digest fixierte x86_64-Buildabbild aus `Dockerfile.build`:

```bash
./build-t1000e-silent.sh
```

Der Quellpatch befindet sich in `do1ffe-t1000e-silent.patch`. Es handelt sich um einen privaten Custom-Build, nicht um eine offizielle MeshCore-Veröffentlichung.

Offizielles Projekt: [meshcore-dev/MeshCore](https://github.com/meshcore-dev/MeshCore)
