ADAMaps Android companion app — Hivemapper Bee data proxy and monitor
- app/build.gradle.kts: remove hardcoded keystore password (was 'adacam-varroa-2026' in 4 spots across a duplicated signingConfigs block). Now reads VARROA_KEYSTORE_PATH + VARROA_KEYSTORE_PASSWORD + VARROA_KEY_PASSWORD from env. Password vaulted as 'Varroa — release keystore'. Drops orphan zxing/camera deps that aren't wired up. - app/src/main/res/xml/network_security_config.xml: tighten cleartext scope from global to just 192.168.0.10 (Bee AP). HTTPS strict for everything else. - app/src/main/java/.../api/AdaMapsApiClient.kt: drop apiKey.take(8) in log to apiKey.length — no need to leak prefix to logcat. - README.md: add. Public repo without one was a bad first impression. - docs/BEE-CAMERA.md: rewrite (811→467 lines). Keep all paths, pinouts, bus diagrams, depthai/VPU/xlink details, intercept architecture. Strip Executive-Summary framing, verdict box, phased roadmap, appendices. - docs/AIR-QUALITY-INTEGRATION.md: rewrite (712→369 lines). Keep BOM, sensor comparisons, wiring, IAQ calc, ingest endpoint shape. Strip feasibility-report scaffolding. - docs/AIR-API-PATCH.py: delete. Was a one-shot apply-and-discard patch script, not docs. |
||
|---|---|---|
| app | ||
| blackbox | ||
| docs | ||
| gradle | ||
| .gitignore | ||
| build.gradle.kts | ||
| gradle.properties | ||
| gradlew | ||
| README.md | ||
| settings.gradle.kts | ||
varroa
Android companion for the Hivemapper Bee dashcam. Pulls detection
landmarks off the on-Bee adacam-api, queues them in a local Room
DB, forwards to AdaMaps when the phone has real internet.
Sister piece: blackbox/ — Python aggregator that runs on a truck
Pi (BME680 + PMS5003) and ships air-quality readings into the same
AdaMaps stream.
Build
JDK 17, Android SDK 34
./gradlew :app:assembleDebug
Release signing needs:
VARROA_KEYSTORE_PATH=/path/to/varroa-release.keystore
VARROA_KEYSTORE_PASSWORD=<see vault>
VARROA_KEY_PASSWORD=<see vault>
./gradlew :app:assembleRelease
Config (set in-app)
- Bee URL — defaults to
http://192.168.0.10:5000(Bee AP). - AdaMaps URL + ingest key — required before uploads run.
- Cardano wallet — optional. Attaches to detection ingest for rewards routing.
Architecture
BeeCollectorService— polls the Bee, writes landmarks to Room.AdaMapsUploadWorker— drains Room toapi.adamaps.orgonce validated internet is available.ImageCollectorService— pulls detection JPEGs from the Bee.
blackbox
The air-quality side. air_aggregator.py reads BME680 +
PMS5003 over USB, posts to AdaMaps every 60s. Systemd unit at
blackbox/air-aggregator.service — set ADAMAPS_KEY and
AGGREGATOR_BEE_URL in the unit before enabling.