How dakotawolfi/collar-pet works
CollarPet is a wearable pet-computing prototype: the Orange Pi runtime combines sensor and connection inputs into reactive behaviour, while the ESP32 handles real-time hardware work and several companion interfaces expose status and controls. The README documents major integrations and responsibilities; sampled source is partial, so links for unsampled subsystems follow those documented roles rather than presumed implementation details.
Main entry points: collarpet.py CollarPet runtime · CollarPet_ESP32S3_v2_4_HotPlug_PPG.ino ESP32 coprocessor · collarpet_remote.ino LoRa remote firmware · collarpet-fan.py Thermal fan control
Components 18
Wearable runtime
- CollarPet runtime
pi/collarpet.py - BLE socket client
pi/collarpet_ble_client.py - E-paper display drivers
pi/epaper_driver_select.py
Companion interfaces
- PT35 dashboard
pt35/link/dashboard.py - PT35 link dashboard
pt35/link/collarpet_dashboard.py - PetMind training UI
pt35/training - LoRa remote firmware
remote/collarpet_remote.ino
Recognition and behaviour
- Song recognition
pi/songlib.py - Song reactions
pi/music_feel.py - PetMind inference
pi/brain/petmind_nn_v0_3.py
Hardware and integrations
- ESP32 coprocessor
esp32/CollarPet_ESP32S3_v2_4_HotPlug_PPG.ino - Wearable sensors
- LEDs and haptics
- Tail and ear gear
- Thermal fan control
tools/fan/collarpet-fan.py
Other components
- Wearer
- Phone BLE owner
- PT35 user
Connections 21
- Wearable sensors → ESP32 coprocessor: supply readings
- ESP32 coprocessor → CollarPet runtime: UART data
- CollarPet runtime → ESP32 coprocessor: hardware commands
- ESP32 coprocessor → LEDs and haptics: drive outputs
- CollarPet runtime → E-paper display drivers: update display
- CollarPet runtime → Song recognition: recognize songs
- CollarPet runtime → Song reactions: trigger reactions
- CollarPet runtime → PetMind inference: infer behaviour
- CollarPet runtime → BLE socket client: request BLE operations
- BLE socket client → Tail and ear gear: scan and control
- Phone BLE owner → Tail and ear gear: connect when idle
- Wearer → LoRa remote firmware: use controls
- LoRa remote firmware → CollarPet runtime: send actions
- CollarPet runtime → LoRa remote firmware: publish state
- PT35 user → PT35 dashboard: view and control
- PT35 dashboard → CollarPet runtime: request status and actions
- PT35 link dashboard → CollarPet runtime: discover and connect
- PT35 user → PetMind training UI: label events
- PetMind training UI → CollarPet runtime: record training events
- Thermal fan control → Wearable sensors: read temperatures
- Thermal fan control → LEDs and haptics: set fan state