LakeShark is een geavanceerde handheld SDR-scanner en radio-werkbank die primair is ontwikkeld voor de LilyGO T-Display P4. Het systeem maakt gebruik van een 4,1-inch AMOLED-scherm en biedt uitgebreide functionaliteiten wanneer er een RTL-SDR Blog V3 of V4 wordt aangesloten.
Belangrijkste kenmerken:
- Radio-ontvangst: Ondersteuning voor P25 Phase 1 trunking, analoge FM/AM, POCSAG en sub-GHz capture.
- Tracking & Navigatie: Mogelijkheid tot het volgen van vliegtuigen via ADS-B en Mesh-nodes op offline kaarten, inclusief GPS-track-recording.
- Hardware-integratie: Naast de T-Display P4 is er ondersteuning voor headless-modus (Waveshare ESP32-P4) en besturing via de Flipper Zero via Bluetooth of GPIO.
- Extra tools: Bevat functies voor NFC-detectie (Classic 4K), een digitaal velddagboek (Journal) en LoRa-experimenten via de ingebouwde SX1262.
Het project is gelicenseerd onder GPL-3.0 en is gebouwd met de ESP-IDF 5.4.3 SDK, waarbij gebruik is gemaakt van diverse open-source bibliotheken voor SDR-decodering en kaartrendering.
LakeShark: Handheld SDR-scanners voor T-Display P4 & ESP32-P4
Door een RTL-SDR Blog V3 of V4 aan te sluiten, is het apparaat in staat tot P25 Phase 1 trunking, FM, POCSAG, ADS-B en sub-GHz capture. De ingebouwde SX1262 ondersteunt MeshCore of LoRa Labs. Het optionele MIX-RF-toetsenbord voegt tools voor CC1101, nRF24 en NFC toe.
Functionaliteiten: Scannen, Replay en Vliegtuigtracking
Het systeem biedt geanimeerde SUB-GHZ scans, playback van bestanden naar opnames (FILES-to-RECORD), ADS-B minikaarten en een onthouden startpunt (home). De functie RADIOS bevat schakelaars voor het opstarten van Wi-Fi en Bluetooth.
Daarnaast genereert de site P25-profielen, GPS-scanlijsten, kanaalgeheugens en offline kaarttegels. Het is ontworpen om samen te werken met CartoTUI, een terminal ASCII-kaart (let op: deze integratie is momenteel in ontwikkeling, niet getest en mogelijk niet functioneel door recente firmware-updates).
Ondersteunde Hardware
LilyGO T-Display-P4
Dit is het primaire ontwikkelingsdoel. De specificaties zijn:
- 4,1-inch 568 x 1232 AMOLED-scherm.
- 16 MB flashgeheugen.
- Ingebouwde SX1262 LoRa, GPS en negen-assige sensoren.
- Bediening via touch of via het afneembare toetsenbord met MIX-RF radio's.
De interface maakt gebruik van ASCII-besturingselementen en labels die direct op het paneel worden getekend, met pixel-terrein in de nieuwe veldkaart. Elk bedieningselement reageert op een aanraking of een toetsaanslag. Het scherm past zich aan aan de manier waarop het bord wordt vastgehouden, en F11 kan het scherm handmatig draaien.
Headless-modus
De Waveshare ESP32-P4-NANO en ESP32-P4-WIFI6 kunnen dezelfde ontvangers draaien zonder scherm. Deze worden aangestuurd via een seriële console of via de Flipper Zero, wat handig is als de radio in een tas met antenne geplaatst moet worden.
Flipper-integratie
De Flipper-app bestuurt de radio via Bluetooth of de GPIO-header. Er is geen koppelingscode nodig; de Flipper adverteert en de radio maakt verbinding.
Waveshare Touch-LCD-4.3
Er is een versie beschikbaar voor een 480 x 800 beeld voor wie dit apparaat al bezit. Let op: dit was een eerdere poort en nieuwe ontwikkelingen vinden primair plaats voor de T-Display. De Touch-LCD-4B en Smart 86 Box kunnen worden gebouwd vanuit broncode op 720 x 720.
Overzicht van Applicaties en Functies
| App | Functie |
| P25 | Phase I trunking en conventionele spraak; AUTO/handmatige demodulatie, kanaallijst-scanning; Phase II [EXPERIMENTEEL] |
| FM | Analoge FM/AM-ontvangst, stepped-band scan, gemengde P25/FM kanaallijsten en POCSAG-pagers |
| ADS-B | Vliegtuigen op 1090 MHz, verkeersgeschiedenis; offline minikaart en onthouden startpunt (vanaf v2.2.2) |
| FALLS | P25, FM of LoRa waterval; tap-to-mark tuning |
| MESH | MeshCore-berichten en nodes op de ingebouwde SX1262 |
| LORA LABS | Directe radiobediening, pakketplots, geschiedenis van ontvangen signalen en een volledig scherm kompas |
| JOURNAL | Veldnotities met radio-, GPS- en bewegingsbijlagen; SD-archieven en bladwijzers |
| MIX-RF | Energiemonitor voor CC1101 (toetsenbord), nRF24 activiteitsscan en NFC-detectie |
| NFC | Classic 4K reads, geverifieerde blokkaarten, sleutelinvoer, hex/ASCII-weergaven en handmatige saves; Mini/1K volledige reads [EXPERIMENTEEL] |
| REC | Gedeelde capture-werkruimte en .sub export; v2.2.2 voegt bestand-replay, inline power en een geanimeerde golfvorm toe |
| SUB-GHZ | Scannen, leren, observeren, gedecodeerde detecties en capture-archief; OOK/FSK replay [EXPERIMENTEEL] |
| FILES | Bladeren door SD-kaart, sorteren en .sub preview; replay opent direct in RECORD |
| MAP | Offline kaarten, vliegtuigen en Mesh-nodes; pixel-veldweergave, GPS-marker en archive-picker [EXPERIMENTEEL] |
| GPS | Positie en een track-recorder die GPX exporteert |
| RADIOS | Radiostroom, antennaselectie en Wi-Fi/Bluetooth opstart-schakelaars |
| DIAG | Geheugen, radio's, sensoren, rebuild-tellers |
| SET | Helderheid, thema, lettertype, geluiden, Daylight-modus voor zonlicht |
| LINK | Wi-Fi en Bluetooth: scan, signaal- en kanaalgrafieken |
Technische Opmerkingen en Waarschuwingen
- Hardware-specifiek: Deze poort is voor de 568 x 1232 RM69A10 AMOLED met 16 MB flash. Andere T-Display-P4 panel-SKU's vereisen andere timings en een andere touch-driver. De LCD-4.3 image en de 32 MB layout horen bij een ander bord.
- LINK-functie: Vereist bijpassende ESP-Hosted firmware op de ESP32-C6. Fabrieks-ESP-AT is niet voldoende.
- Flipper-bediening: Gebeurt via Bluetooth op de T-Display-P4.
- Stroomwaarschuwing P4-toetsenbord: Sluit de 5V USB-uitgang van het toetsenbord nog niet aan op de P4. Tijdens testen veroorzaakte dit herhaaldelijke power-cycling, zelfs zonder RTL-SDR. Er wordt gezocht naar een betrouwbare manier om de RTL op batterij te voeden.
Experimentele Functies
Functies gemarkeerd met [EXPERIMENTAL] wachten nog op volledige hardware- of live-RF validatie:
- P25 Phase II: Handmatig verkeerskanaal of automatisch grant-volgen (beide uitgeschakeld na herstart). Getest op publieke opnames; live RF niet geverifieerd.
- HackRF: USB IQ transport getest op 2 MSPS. ADS-B decodering is gedeeltelijk geverifieerd; P25/FM ondersteuning is uitgesteld.
- LoRa bearing plot: RSSI gegroepeerd per kompasrichting; dit is geen gevalideerde richtingzoeker.
Bouwen vanuit Broncode
Gebruik de gepinde ESP-IDF 5.4.3 SDK. Geef elk bord zijn eigen build-directory:
# T-Display P4
idf.py -B build_tdp4 -D SDKCONFIG=build_tdp4/sdkconfig -D SDKCONFIG_DEFAULTS="sdkconfig.defaults;boards/t_display_p4.defaults" build
# Nano Headless
idf.py -B build_nano -D SDKCONFIG=build_nano/sdkconfig -D SDKCONFIG_DEFAULTS="sdkconfig.defaults;boards/nano_headless_ble.defaults" build
# LCD 4.3
idf.py -B build_lcd43 -D SDKCONFIG=build_lcd43/sdkconfig -D SDKCONFIG_DEFAULTS="sdkconfig.defaults;boards/lcd43_gui.defaults" build
De boards/ map bevat de defaults en partition layouts, en main/idfcomponent.yml vastlegt de afhankelijkheden. De Waveshare BSP is gepatcht in managedcomponents/.
Voer de host-checks uit vanuit de repository-directory: pwsh -File bench/verify.ps1 -Level host
Import en Scanning
Locatiescanning ondersteunt gemengde P25/FM-lijsten en GPS-filtering. CSV/JSON-imports werken zonder RadioReference. De optionele RadioReference-adapter [EXPERIMENTAL] vereist een goedgekeurde applicatiesleutel en een Premium-account van de gebruiker; live account-authenticatie is nog niet gevalideerd.
Afhankelijkheden en Credits
LakeShark is gebouwd op de volgende projecten en bijdragers:
- rtl-sdr / librtlsdr (Osmocom): De basisdongle-driver. (GPL-2.0+)
- xtrsdr (XTR1984): Versimpelde librtlsdr die past op een ESP32.
- OP25 (Pavel Yazev): Fixed-point imbe_vocoder; experimentele Phase II decodering door Max H. Parke, Graham J. Norbury en anderen. (GPL-3.0+)
- libmodes / dump1090 (Thomas Watson & Salvatore Sanfilippo): Mode S decoder lineage. (BSD-2-Clause)
- ADS-B Scope (John Stockdale & Off by One, Inc.): Referentie voor single-frame CPR decodering.
- DSD en dsd-fme (szechyjs & lwvmobile): P25 framing en symbol lineage. (ISC-style notice)
- mbelib (szechyjs): Fallback vocoder. (ISC)
- ESP-IDF (Espressif): Het platform.
- LILYGO device drivers: Bedrading, power sequencing en hardwarevoorbeelden voor T-Display P4 en MIX-RF.
- MeshCore (Scott Powell / Ripple Radios): Ingebouwde LoRa mesh stack.
- CartoTUI / ZeroMesh:
libcarto vector rendering en embedded PMTiles reader.
- PMTiles (Protomaps): Maakt offline kaarten mogelijk via één seekbaar bestand.
- OpenStreetMap: De kaartdata. (ODbL)
- Flipper Zero firmware: Platform voor controle-head en Crypto1 helpers voor Classic NFC reads.
- LVGL / DejaVu: UI-ondersteuning en lettertypen.
- Waveshare: Originele P4-ondersteuning en hardwarevoorbeelden.
Het ontwerp van de veldkaart is geïnspireerd door de Cardputer offgrid map (yuiseki) en HikePod (nongxl).
Licentie: LakeShark zelf is GPL-3.0. Code van derden behoudt eigen kennisgevingen. Het is de verantwoordelijkheid van de gebruiker om te controleren of het luisteren naar bepaalde frequenties is toegestaan volgens de lokale wetgeving.
LakeShark: Handheld SDR-scanners voor T-Display P4 & ESP32-P4
Door een RTL-SDR Blog V3 of V4 aan te sluiten, is het apparaat in staat tot P25 Phase 1 trunking, FM, POCSAG, ADS-B en sub-GHz capture. De ingebouwde SX1262 ondersteunt MeshCore of LoRa Labs. Het optionele MIX-RF-toetsenbord voegt tools voor CC1101, nRF24 en NFC toe.
Functionaliteiten: Scannen, Replay en Vliegtuigtracking
Het systeem biedt geanimeerde SUB-GHZ scans, playback van bestanden naar opnames (FILES-to-RECORD), ADS-B minikaarten en een onthouden startpunt (home). De functie RADIOS bevat schakelaars voor het opstarten van Wi-Fi en Bluetooth.
Daarnaast genereert de site P25-profielen, GPS-scanlijsten, kanaalgeheugens en offline kaarttegels. Het is ontworpen om samen te werken met CartoTUI, een terminal ASCII-kaart (let op: deze integratie is momenteel in ontwikkeling, niet getest en mogelijk niet functioneel door recente firmware-updates).
Ondersteunde Hardware
LilyGO T-Display-P4
Dit is het primaire ontwikkelingsdoel. De specificaties zijn:
- 4,1-inch 568 x 1232 AMOLED-scherm.
- 16 MB flashgeheugen.
- Ingebouwde SX1262 LoRa, GPS en negen-assige sensoren.
- Bediening via touch of via het afneembare toetsenbord met MIX-RF radio's.
De interface maakt gebruik van ASCII-besturingselementen en labels die direct op het paneel worden getekend, met pixel-terrein in de nieuwe veldkaart. Elk bedieningselement reageert op een aanraking of een toetsaanslag. Het scherm past zich aan aan de manier waarop het bord wordt vastgehouden, en F11 kan het scherm handmatig draaien.
Headless-modus
De Waveshare ESP32-P4-NANO en ESP32-P4-WIFI6 kunnen dezelfde ontvangers draaien zonder scherm. Deze worden aangestuurd via een seriële console of via de Flipper Zero, wat handig is als de radio in een tas met antenne geplaatst moet worden.
Flipper-integratie
De Flipper-app bestuurt de radio via Bluetooth of de GPIO-header. Er is geen koppelingscode nodig; de Flipper adverteert en de radio maakt verbinding.
Waveshare Touch-LCD-4.3
Er is een versie beschikbaar voor een 480 x 800 beeld voor wie dit apparaat al bezit. Let op: dit was een eerdere poort en nieuwe ontwikkelingen vinden primair plaats voor de T-Display. De Touch-LCD-4B en Smart 86 Box kunnen worden gebouwd vanuit broncode op 720 x 720.
Overzicht van Applicaties en Functies
| App | Functie |
| P25 | Phase I trunking en conventionele spraak; AUTO/handmatige demodulatie, kanaallijst-scanning; Phase II [EXPERIMENTEEL] |
| FM | Analoge FM/AM-ontvangst, stepped-band scan, gemengde P25/FM kanaallijsten en POCSAG-pagers |
| ADS-B | Vliegtuigen op 1090 MHz, verkeersgeschiedenis; offline minikaart en onthouden startpunt (vanaf v2.2.2) |
| FALLS | P25, FM of LoRa waterval; tap-to-mark tuning |
| MESH | MeshCore-berichten en nodes op de ingebouwde SX1262 |
| LORA LABS | Directe radiobediening, pakketplots, geschiedenis van ontvangen signalen en een volledig scherm kompas |
| JOURNAL | Veldnotities met radio-, GPS- en bewegingsbijlagen; SD-archieven en bladwijzers |
| MIX-RF | Energiemonitor voor CC1101 (toetsenbord), nRF24 activiteitsscan en NFC-detectie |
| NFC | Classic 4K reads, geverifieerde blokkaarten, sleutelinvoer, hex/ASCII-weergaven en handmatige saves; Mini/1K volledige reads [EXPERIMENTEEL] |
| REC | Gedeelde capture-werkruimte en .sub export; v2.2.2 voegt bestand-replay, inline power en een geanimeerde golfvorm toe |
| SUB-GHZ | Scannen, leren, observeren, gedecodeerde detecties en capture-archief; OOK/FSK replay [EXPERIMENTEEL] |
| FILES | Bladeren door SD-kaart, sorteren en .sub preview; replay opent direct in RECORD |
| MAP | Offline kaarten, vliegtuigen en Mesh-nodes; pixel-veldweergave, GPS-marker en archive-picker [EXPERIMENTEEL] |
| GPS | Positie en een track-recorder die GPX exporteert |
| RADIOS | Radiostroom, antennaselectie en Wi-Fi/Bluetooth opstart-schakelaars |
| DIAG | Geheugen, radio's, sensoren, rebuild-tellers |
| SET | Helderheid, thema, lettertype, geluiden, Daylight-modus voor zonlicht |
| LINK | Wi-Fi en Bluetooth: scan, signaal- en kanaalgrafieken |
Technische Opmerkingen en Waarschuwingen
- Hardware-specifiek: Deze poort is voor de 568 x 1232 RM69A10 AMOLED met 16 MB flash. Andere T-Display-P4 panel-SKU's vereisen andere timings en een andere touch-driver. De LCD-4.3 image en de 32 MB layout horen bij een ander bord.
- LINK-functie: Vereist bijpassende ESP-Hosted firmware op de ESP32-C6. Fabrieks-ESP-AT is niet voldoende.
- Flipper-bediening: Gebeurt via Bluetooth op de T-Display-P4.
- Stroomwaarschuwing P4-toetsenbord: Sluit de 5V USB-uitgang van het toetsenbord nog niet aan op de P4. Tijdens testen veroorzaakte dit herhaaldelijke power-cycling, zelfs zonder RTL-SDR. Er wordt gezocht naar een betrouwbare manier om de RTL op batterij te voeden.
Experimentele Functies
Functies gemarkeerd met [EXPERIMENTAL] wachten nog op volledige hardware- of live-RF validatie:
- P25 Phase II: Handmatig verkeerskanaal of automatisch grant-volgen (beide uitgeschakeld na herstart). Getest op publieke opnames; live RF niet geverifieerd.
- HackRF: USB IQ transport getest op 2 MSPS. ADS-B decodering is gedeeltelijk geverifieerd; P25/FM ondersteuning is uitgesteld.
- LoRa bearing plot: RSSI gegroepeerd per kompasrichting; dit is geen gevalideerde richtingzoeker.
Bouwen vanuit Broncode
Gebruik de gepinde ESP-IDF 5.4.3 SDK. Geef elk bord zijn eigen build-directory:
# T-Display P4
idf.py -B build_tdp4 -D SDKCONFIG=build_tdp4/sdkconfig -D SDKCONFIG_DEFAULTS="sdkconfig.defaults;boards/t_display_p4.defaults" build
# Nano Headless
idf.py -B build_nano -D SDKCONFIG=build_nano/sdkconfig -D SDKCONFIG_DEFAULTS="sdkconfig.defaults;boards/nano_headless_ble.defaults" build
# LCD 4.3
idf.py -B build_lcd43 -D SDKCONFIG=build_lcd43/sdkconfig -D SDKCONFIG_DEFAULTS="sdkconfig.defaults;boards/lcd43_gui.defaults" build
De boards/ map bevat de defaults en partition layouts, en main/idfcomponent.yml vastlegt de afhankelijkheden. De Waveshare BSP is gepatcht in managedcomponents/.
Voer de host-checks uit vanuit de repository-directory: pwsh -File bench/verify.ps1 -Level host
Import en Scanning
Locatiescanning ondersteunt gemengde P25/FM-lijsten en GPS-filtering. CSV/JSON-imports werken zonder RadioReference. De optionele RadioReference-adapter [EXPERIMENTAL] vereist een goedgekeurde applicatiesleutel en een Premium-account van de gebruiker; live account-authenticatie is nog niet gevalideerd.
Afhankelijkheden en Credits
LakeShark is gebouwd op de volgende projecten en bijdragers:
- rtl-sdr / librtlsdr (Osmocom): De basisdongle-driver. (GPL-2.0+)
- xtrsdr (XTR1984): Versimpelde librtlsdr die past op een ESP32.
- OP25 (Pavel Yazev): Fixed-point imbe_vocoder; experimentele Phase II decodering door Max H. Parke, Graham J. Norbury en anderen. (GPL-3.0+)
- libmodes / dump1090 (Thomas Watson & Salvatore Sanfilippo): Mode S decoder lineage. (BSD-2-Clause)
- ADS-B Scope (John Stockdale & Off by One, Inc.): Referentie voor single-frame CPR decodering.
- DSD en dsd-fme (szechyjs & lwvmobile): P25 framing en symbol lineage. (ISC-style notice)
- mbelib (szechyjs): Fallback vocoder. (ISC)
- ESP-IDF (Espressif): Het platform.
- LILYGO device drivers: Bedrading, power sequencing en hardwarevoorbeelden voor T-Display P4 en MIX-RF.
- MeshCore (Scott Powell / Ripple Radios): Ingebouwde LoRa mesh stack.
- CartoTUI / ZeroMesh:
libcarto vector rendering en embedded PMTiles reader.
- PMTiles (Protomaps): Maakt offline kaarten mogelijk via één seekbaar bestand.
- OpenStreetMap: De kaartdata. (ODbL)
- Flipper Zero firmware: Platform voor controle-head en Crypto1 helpers voor Classic NFC reads.
- LVGL / DejaVu: UI-ondersteuning en lettertypen.
- Waveshare: Originele P4-ondersteuning en hardwarevoorbeelden.
Het ontwerp van de veldkaart is geïnspireerd door de Cardputer offgrid map (yuiseki) en HikePod (nongxl).
Licentie: LakeShark zelf is GPL-3.0. Code van derden behoudt eigen kennisgevingen. Het is de verantwoordelijkheid van de gebruiker om te controleren of het luisteren naar bepaalde frequenties is toegestaan volgens de lokale wetgeving.