Repository navigation
Releases
Releases · ThomasPohl/TrailCamHub
TrailCamHub v0.1.8
What's Changed
- Compare the C6 firmware version as numbers by @ThomasPohl in #183
- Review nits: idle vs. stall timeout, log file number range, comment by @ThomasPohl in #184
- Show the web UI address and password in status; web_password setting by @ThomasPohl in #185
- Add health_url and web_password to the list of settings by @ThomasPohl in #188
- Build the heartbeat with build_request by @ThomasPohl in #186
- Document where the discovery ID and the PRE_LOGIN header come from by @ThomasPohl in #187
- Make the camera login configurable (camera_user, camera_password) by @ThomasPohl in #190
- Move the media-list page logic out of camera_protocol.cpp by @ThomasPohl in #191
- Redact the camera screen code and passwords from logged answers by @ThomasPohl in #192
- Camera state from the device info via an allowlist by @ThomasPohl in #202
- Keep the Telegram bot token out of the HTTP client log by @ThomasPohl in #203
- Bound the check-in back-off at 12 hours with Telegram by @ThomasPohl in #204
- WebDAV videos over the modem: setting webdav_videos by @ThomasPohl in #205
- Web installer for every board; keep a connected hub awake by @ThomasPohl in #206
- Camera mock on an ESP32-WROOM, stage 1 (#122) by @ThomasPohl in #208
- Board: ESP32-WROOM-32D with SPI microSD (#77) by @ThomasPohl in #209
- Docs: split the README into focused documents by @ThomasPohl in #210
- USB dev container: hide the host's pts, shm and mqueue under /dev/host by @ThomasPohl in #189
- Document the SD formats, tasks, memory and design decisions by @ThomasPohl in #215
- Run the host tests with ASan and UBSan in CI by @ThomasPohl in #214
- Keep the catalog through a power loss and save it less often by @ThomasPohl in #212
- Limit thumbnail records kept in RAM to 256 KB by @ThomasPohl in #213
- Move the thumbnail queue out of camera_protocol.cpp by @ThomasPohl in #216
- Use one JSON escaper in the uplink by @ThomasPohl in #217
- ci: publish the installer build store as a single commit by @ThomasPohl in #225
- ci: publish tag builds on the installer and make every deploy go live by @ThomasPohl in #226
- Add the camera action layer: actions, answers by their own field, confirmation gate by @ThomasPohl in #227
- Camera actions from the web UI and Telegram, one shared request path by @ThomasPohl in #230
- ci: bump actions/cache restore/save to v5 (Node 24) by @ThomasPohl in #233
- Bring the camera action stack (#228, #229, #230) onto main by @ThomasPohl in #231
- CI: static RAM per board and clang-tidy on the host-testable files by @ThomasPohl in #234
- Kconfig: options in their components, menu "TrailCamHub" by @ThomasPohl in #235
- Trace each cycle: number in the log, heap and stack minimum, cycles.jsonl by @ThomasPohl in #236
- Rename the project to trailcamhub by @ThomasPohl in #238
- Thumbnail record: one block of the record's size, no abort without memory by @ThomasPohl in #241
- HTTP: one block for the response body, no abort without memory by @ThomasPohl in #243
- Check-in without PSRAM: 40 recordings at a time, free the request before the response by @ThomasPohl in #245
- WROOM-32D: allocate the TLS buffers per record by @ThomasPohl in #246
- Check-in: let the hub limit the thumbnail uploads by @ThomasPohl in #247
- WROOM-32D: ask for 2 thumbnail uploads, show the heap usable for data by @ThomasPohl in #248
- Cycle trace and status: report the heap that data can use by @ThomasPohl in #249
- docs: wiring diagram for the ESP32-WROOM-32D microSD reader by @ThomasPohl in #237
Full Changelog: v0.1.6...v0.1.8
TrailCamHub v0.1.7
What's Changed
- Compare the C6 firmware version as numbers by @ThomasPohl in #183
- Review nits: idle vs. stall timeout, log file number range, comment by @ThomasPohl in #184
- Show the web UI address and password in status; web_password setting by @ThomasPohl in #185
- Add health_url and web_password to the list of settings by @ThomasPohl in #188
- Build the heartbeat with build_request by @ThomasPohl in #186
- Document where the discovery ID and the PRE_LOGIN header come from by @ThomasPohl in #187
- Make the camera login configurable (camera_user, camera_password) by @ThomasPohl in #190
- Move the media-list page logic out of camera_protocol.cpp by @ThomasPohl in #191
- Redact the camera screen code and passwords from logged answers by @ThomasPohl in #192
- Camera state from the device info via an allowlist by @ThomasPohl in #202
- Keep the Telegram bot token out of the HTTP client log by @ThomasPohl in #203
- Bound the check-in back-off at 12 hours with Telegram by @ThomasPohl in #204
- WebDAV videos over the modem: setting webdav_videos by @ThomasPohl in #205
- Web installer for every board; keep a connected hub awake by @ThomasPohl in #206
- Camera mock on an ESP32-WROOM, stage 1 (#122) by @ThomasPohl in #208
- Board: ESP32-WROOM-32D with SPI microSD (#77) by @ThomasPohl in #209
- Docs: split the README into focused documents by @ThomasPohl in #210
- USB dev container: hide the host's pts, shm and mqueue under /dev/host by @ThomasPohl in #189
- Document the SD formats, tasks, memory and design decisions by @ThomasPohl in #215
- Run the host tests with ASan and UBSan in CI by @ThomasPohl in #214
- Keep the catalog through a power loss and save it less often by @ThomasPohl in #212
- Limit thumbnail records kept in RAM to 256 KB by @ThomasPohl in #213
- Move the thumbnail queue out of camera_protocol.cpp by @ThomasPohl in #216
- Use one JSON escaper in the uplink by @ThomasPohl in #217
- ci: publish the installer build store as a single commit by @ThomasPohl in #225
- ci: publish tag builds on the installer and make every deploy go live by @ThomasPohl in #226
- Add the camera action layer: actions, answers by their own field, confirmation gate by @ThomasPohl in #227
- Camera actions from the web UI and Telegram, one shared request path by @ThomasPohl in #230
- ci: bump actions/cache restore/save to v5 (Node 24) by @ThomasPohl in #233
- Bring the camera action stack (#228, #229, #230) onto main by @ThomasPohl in #231
- CI: static RAM per board and clang-tidy on the host-testable files by @ThomasPohl in #234
- Kconfig: options in their components, menu "TrailCamHub" by @ThomasPohl in #235
- Trace each cycle: number in the log, heap and stack minimum, cycles.jsonl by @ThomasPohl in #236
- Rename the project to trailcamhub by @ThomasPohl in #238
- Thumbnail record: one block of the record's size, no abort without memory by @ThomasPohl in #241
- HTTP: one block for the response body, no abort without memory by @ThomasPohl in #243
- Check-in without PSRAM: 40 recordings at a time, free the request before the response by @ThomasPohl in #245
- WROOM-32D: allocate the TLS buffers per record by @ThomasPohl in #246
- Check-in: let the hub limit the thumbnail uploads by @ThomasPohl in #247
- WROOM-32D: ask for 2 thumbnail uploads, show the heap usable for data by @ThomasPohl in #248
- Cycle trace and status: report the heap that data can use by @ThomasPohl in #249
- docs: wiring diagram for the ESP32-WROOM-32D microSD reader by @ThomasPohl in #237
Full Changelog: v0.1.6...v0.1.7
TrailCamHub v0.1.6
What's Changed
- Web installer: fix the serial console disconnect, release the port for the installer by @ThomasPohl in #169
- Web installer: keep the serial console's position while scrolled up by @ThomasPohl in #171
- Remember a refused SIM PIN and accept 4-digit PINs only by @ThomasPohl in #172
- Clearer modem logs and an early end without a SIM card by @ThomasPohl in #173
- Put the modem into flight mode after a power-on or reset by @ThomasPohl in #174
- Faster video uploads: no modem sleep while uploading, larger TCP windows by @ThomasPohl in #175
- Choose the mode at run time; boards.json for the boards and their capabilities by @ThomasPohl in #176
- Sync over Ethernet; support the Waveshare ESP32-S3-ETH (W5500) by @ThomasPohl in #177
- Push to a WebDAV folder or to Telegram directly by @ThomasPohl in #178
- Web UI on the home Wi-Fi, trailcamhub.local, health check pings by @ThomasPohl in #179
- Installer: setup assistant, advanced tools and support package by @ThomasPohl in #181
- Add README badges by @ThomasPohl in #182
Full Changelog: v0.1.5...v0.1.6
TrailCamHub v0.1.5
What's Changed
- CI: keep the ELF files of every firmware build by @ThomasPohl in #164
- Save power on a low hub battery by @ThomasPohl in #157
- Read firmware updates from GitHub and guard them over the modem by @ThomasPohl in #158
- Lower the video upload limit over the cellular modem by @ThomasPohl in #159
- Merge #158 (firmware updates from GitHub) into main by @ThomasPohl in #167
Full Changelog: v0.1.3...v0.1.5
TrailCamHub v0.1.4
What's Changed
- Camera protocol: docs, ARTEMIS client, and the web installer by @ThomasPohl in #13
- Docs/protocol analysis by @ThomasPohl in #14
- Typisiertes Medienlisten-Modell (cmdId 768) by @ThomasPohl in #15
- Web-Installer: Live-Protokoll-Ansicht by @ThomasPohl in #18
- CI: Actions auf Node-24-Versionen anheben (checkout/artifact/deploy-pages) by @ThomasPohl in #19
- Thumbnail-Bulk-Transport: Reassembly + Fenster-ACK (772) by @ThomasPohl in #20
- Docs: Roadmap für Onboarding/Setup-Vereinfachung by @ThomasPohl in #21
- Thumbnails auf SD-Karte + Pro-Kamera-Katalog (einfache DB) by @ThomasPohl in #22
- Thumbnails mit Aufnahmedatum datieren by @ThomasPohl in #23
- Update CI actions and documentation for ESP-IDF 5.5.6 by @HeikoGr in #24
- Add AWS SAM backend with OIDC deployment by @ThomasPohl in #27
- Add Telegram Mini App with CI and Pages deployment by @ThomasPohl in #26
- Hub: triggered scans, settings via web installer, backend uplink by @ThomasPohl in #28
- Several cameras per hub: hub keys, batch check-in, camera picker by @ThomasPohl in #30
- Backend: deploy into AWS projects (access key instead of OIDC, token without SSM) by @ThomasPohl in #31
- Backend deploy: report SAM and CloudFormation errors as annotations by @ThomasPohl in #39
- Bootstrap: allow the execution role to expand the SAM transform by @ThomasPohl in #40
- Session: neutral request and status interface for front ends by @ThomasPohl in #29
- SD card: SPI mode, sd_log, sdkconfig split into common and per-target files by @HeikoGr in #33
- Merge #32 and initialize the network stack in app_main by @ThomasPohl in #41
- camera_link: video download via playback stream, photo streaming to SD, robustness fixes by @HeikoGr in #32
- Board: LilyGO T-Dongle-C5 with display and button (on the session interface of #29) by @HeikoGr in #34
- Merge #36 (ESP32-P4-NANO) after #34 and resolve the conflicts by @ThomasPohl in #42
- Board: Waveshare ESP32-P4-NANO with Ethernet uplink (based on #32 and #33) by @HeikoGr in #36
- Board: LilyGO T-Dongle-S3 (stacked on the T-Dongle-C5 PR) by @HeikoGr in #35
- web_ui: access point with a page for status, files and the live log (stacked on #34) by @HeikoGr in #37
- Merge #38 (console diagnostics) after #37 and resolve the conflicts by @ThomasPohl in #43
- hub_console: USB-Serial-JTAG port, richer status and diagnostic commands (stacked on #34) by @HeikoGr in #38
- camera_link: log in with the current time instead of a fixed one by @HeikoGr in #46
- web_ui: Ethernet web UI for the P4 with MP4 download, browsing and clock sync by @HeikoGr in #47
- web: group captures and show thumbnail preview in the live protocol view by @ThomasPohl in #44
- backend: register hubs through the Lambda function by @ThomasPohl in #45
- backend: register-hub uses the AWS CLI's region by default by @ThomasPohl in #71
- web: remember device setup values in the browser by @ThomasPohl in #72
- hub_console: keep the console task stack in internal RAM by @ThomasPohl in #73
- camera_wifi: ignore late disconnect events of the previous network by @ThomasPohl in #74
- app: show the backend's error message on failed requests by @ThomasPohl in #78
- web: add Clear and Copy buttons to the serial console by @ThomasPohl in #80
- media_store: date SD files with the real UTC instant of the recording by @ThomasPohl in #82
- app: show media times as the camera's wall clock by @ThomasPohl in #83
- Add CLAUDE.md with git setup and project conventions by @ThomasPohl in #84
- Use-case profile, wake-up schedule and deep sleep (#56, #81) by @ThomasPohl in #86
- Key the hub catalog by mediaId by @ThomasPohl in #88
- End the camera session when the media list fails (no SD card) by @HeikoGr in #90
- Web UI: CSRF protection, and a password over Ethernet by @HeikoGr in #91
- sd_log: host tests for file naming, pruning and line cutting by @HeikoGr in #92
- time_sync.h: plain C API with its own source enum by @HeikoGr in #93
- Define the front-end phase once in session_controller by @HeikoGr in #96
- Show failed and stopped searches on the display and in the web UI by @HeikoGr in #97
- Name the hub SD files by mediaId by @ThomasPohl in #98
- Read the thumbnail media id at offset 0x28 by @ThomasPohl in #112
- Dev container: CI tools, ESP-IDF in every shell, USB access to boards by @HeikoGr in #95
- camera_link: move the handshake out of camera_protocol.cpp by @HeikoGr in #107
- camera_link: collect the video download figures in VideoTransferStats by @HeikoGr in #108
- web_ui: keep a landscape video and its controls inside the viewer by @HeikoGr in #110
- Merge #111 (PlaybackDownload) into main by @ThomasPohl in #116
- camera_link: move the video download by playback into PlaybackDownload by @HeikoGr in #111
- Document the camera's delete and format commands by @HeikoGr in #115
- docs: follow-ups to the camera delete and format notes by @ThomasPohl in #120
- Add a console command that lists the media on the camera by @HeikoGr in #119
- Read all pages of the camera's media list in a scan by @ThomasPohl in #124
- Count only new media frames as progress for the session watchdog by @ThomasPohl in #125
- Report a camlist listing as listed, not as a scan by @ThomasPohl in #127
- Session Results to main by @ThomasPohl in #128
- Merge the session result work into main by @ThomasPohl in #129
- Report the camera's SD card state in the check-in and show it in the app by @ThomasPohl in #130
- Read several cameras in one scan by @ThomasPohl in #131
- Merge the multi-camera scan into main by @ThomasPohl in #132
- Telegram bot: webhook, notifications and pairing by QR code by @ThomasPohl in #133
- Measure the hub battery (MAX17048) and send it in the check-in by @ThomasPohl in #137
- Download and upload videos on request by @ThomasPohl in #139
- Firmware updates through the check-in (OTA with rollback) by @ThomasPohl in #140
- Backend uplink over the A7670E cellular modem (USB host, PPP) by @ThomasPohl in #141
- CI: cache compiler output in the ESP-IDF builds by @ThomasPohl in #162
- Give the default event loop task a larger stack by @ThomasPohl in #165
New Contributors
Full Changelog: https://github.com/ThomasPohl/TrailCamHub/commits/v0.1.4
TrailCamHub v0.1.3
What's Changed
- Camera protocol: docs, ARTEMIS client, and the web installer by @ThomasPohl in #13
- Docs/protocol analysis by @ThomasPohl in #14
- Typisiertes Medienlisten-Modell (cmdId 768) by @ThomasPohl in #15
- Web-Installer: Live-Protokoll-Ansicht by @ThomasPohl in #18
- CI: Actions auf Node-24-Versionen anheben (checkout/artifact/deploy-pages) by @ThomasPohl in #19
- Thumbnail-Bulk-Transport: Reassembly + Fenster-ACK (772) by @ThomasPohl in #20
- Docs: Roadmap für Onboarding/Setup-Vereinfachung by @ThomasPohl in #21
- Thumbnails auf SD-Karte + Pro-Kamera-Katalog (einfache DB) by @ThomasPohl in #22
- Thumbnails mit Aufnahmedatum datieren by @ThomasPohl in #23
- Update CI actions and documentation for ESP-IDF 5.5.6 by @HeikoGr in #24
- Add AWS SAM backend with OIDC deployment by @ThomasPohl in #27
- Add Telegram Mini App with CI and Pages deployment by @ThomasPohl in #26
- Hub: triggered scans, settings via web installer, backend uplink by @ThomasPohl in #28
- Several cameras per hub: hub keys, batch check-in, camera picker by @ThomasPohl in #30
- Backend: deploy into AWS projects (access key instead of OIDC, token without SSM) by @ThomasPohl in #31
- Backend deploy: report SAM and CloudFormation errors as annotations by @ThomasPohl in #39
- Bootstrap: allow the execution role to expand the SAM transform by @ThomasPohl in #40
- Session: neutral request and status interface for front ends by @ThomasPohl in #29
- SD card: SPI mode, sd_log, sdkconfig split into common and per-target files by @HeikoGr in #33
- Merge #32 and initialize the network stack in app_main by @ThomasPohl in #41
- camera_link: video download via playback stream, photo streaming to SD, robustness fixes by @HeikoGr in #32
- Board: LilyGO T-Dongle-C5 with display and button (on the session interface of #29) by @HeikoGr in #34
- Merge #36 (ESP32-P4-NANO) after #34 and resolve the conflicts by @ThomasPohl in #42
- Board: Waveshare ESP32-P4-NANO with Ethernet uplink (based on #32 and #33) by @HeikoGr in #36
- Board: LilyGO T-Dongle-S3 (stacked on the T-Dongle-C5 PR) by @HeikoGr in #35
- web_ui: access point with a page for status, files and the live log (stacked on #34) by @HeikoGr in #37
- Merge #38 (console diagnostics) after #37 and resolve the conflicts by @ThomasPohl in #43
- hub_console: USB-Serial-JTAG port, richer status and diagnostic commands (stacked on #34) by @HeikoGr in #38
- camera_link: log in with the current time instead of a fixed one by @HeikoGr in #46
- web_ui: Ethernet web UI for the P4 with MP4 download, browsing and clock sync by @HeikoGr in #47
- web: group captures and show thumbnail preview in the live protocol view by @ThomasPohl in #44
- backend: register hubs through the Lambda function by @ThomasPohl in #45
- backend: register-hub uses the AWS CLI's region by default by @ThomasPohl in #71
- web: remember device setup values in the browser by @ThomasPohl in #72
- hub_console: keep the console task stack in internal RAM by @ThomasPohl in #73
- camera_wifi: ignore late disconnect events of the previous network by @ThomasPohl in #74
- app: show the backend's error message on failed requests by @ThomasPohl in #78
- web: add Clear and Copy buttons to the serial console by @ThomasPohl in #80
- media_store: date SD files with the real UTC instant of the recording by @ThomasPohl in #82
- app: show media times as the camera's wall clock by @ThomasPohl in #83
- Add CLAUDE.md with git setup and project conventions by @ThomasPohl in #84
- Use-case profile, wake-up schedule and deep sleep (#56, #81) by @ThomasPohl in #86
- Key the hub catalog by mediaId by @ThomasPohl in #88
- End the camera session when the media list fails (no SD card) by @HeikoGr in #90
- Web UI: CSRF protection, and a password over Ethernet by @HeikoGr in #91
- sd_log: host tests for file naming, pruning and line cutting by @HeikoGr in #92
- time_sync.h: plain C API with its own source enum by @HeikoGr in #93
- Define the front-end phase once in session_controller by @HeikoGr in #96
- Show failed and stopped searches on the display and in the web UI by @HeikoGr in #97
- Name the hub SD files by mediaId by @ThomasPohl in #98
- Read the thumbnail media id at offset 0x28 by @ThomasPohl in #112
- Dev container: CI tools, ESP-IDF in every shell, USB access to boards by @HeikoGr in #95
- camera_link: move the handshake out of camera_protocol.cpp by @HeikoGr in #107
- camera_link: collect the video download figures in VideoTransferStats by @HeikoGr in #108
- web_ui: keep a landscape video and its controls inside the viewer by @HeikoGr in #110
- Merge #111 (PlaybackDownload) into main by @ThomasPohl in #116
- camera_link: move the video download by playback into PlaybackDownload by @HeikoGr in #111
- Document the camera's delete and format commands by @HeikoGr in #115
- docs: follow-ups to the camera delete and format notes by @ThomasPohl in #120
- Add a console command that lists the media on the camera by @HeikoGr in #119
- Read all pages of the camera's media list in a scan by @ThomasPohl in #124
- Count only new media frames as progress for the session watchdog by @ThomasPohl in #125
- Report a camlist listing as listed, not as a scan by @ThomasPohl in #127
- Session Results to main by @ThomasPohl in #128
- Merge the session result work into main by @ThomasPohl in #129
- Report the camera's SD card state in the check-in and show it in the app by @ThomasPohl in #130
- Read several cameras in one scan by @ThomasPohl in #131
- Merge the multi-camera scan into main by @ThomasPohl in #132
- Telegram bot: webhook, notifications and pairing by QR code by @ThomasPohl in #133
- Measure the hub battery (MAX17048) and send it in the check-in by @ThomasPohl in #137
- Download and upload videos on request by @ThomasPohl in #139
- Firmware updates through the check-in (OTA with rollback) by @ThomasPohl in #140
- Backend uplink over the A7670E cellular modem (USB host, PPP) by @ThomasPohl in #141
- CI: cache compiler output in the ESP-IDF builds by @ThomasPohl in #162
- Give the default event loop task a larger stack by @ThomasPohl in #165
New Contributors
Full Changelog: https://github.com/ThomasPohl/TrailCamHub/commits/v0.1.3
TrailCamHub v0.1.2
Full Changelog: v0.1.0...v0.1.2
TrailCamHub v0.1.1
Full Changelog: v0.1.0...v0.1.1
TrailCamHub v0.1.0
What's Changed
- Camera protocol: docs, ARTEMIS client, and the web installer by @ThomasPohl in #13
- Docs/protocol analysis by @ThomasPohl in #14
- Typisiertes Medienlisten-Modell (cmdId 768) by @ThomasPohl in #15
- Web-Installer: Live-Protokoll-Ansicht by @ThomasPohl in #18
- CI: Actions auf Node-24-Versionen anheben (checkout/artifact/deploy-pages) by @ThomasPohl in #19
- Thumbnail-Bulk-Transport: Reassembly + Fenster-ACK (772) by @ThomasPohl in #20
- Docs: Roadmap für Onboarding/Setup-Vereinfachung by @ThomasPohl in #21
- Thumbnails auf SD-Karte + Pro-Kamera-Katalog (einfache DB) by @ThomasPohl in #22
- Thumbnails mit Aufnahmedatum datieren by @ThomasPohl in #23
- Update CI actions and documentation for ESP-IDF 5.5.6 by @HeikoGr in #24
- Add AWS SAM backend with OIDC deployment by @ThomasPohl in #27
- Add Telegram Mini App with CI and Pages deployment by @ThomasPohl in #26
- Hub: triggered scans, settings via web installer, backend uplink by @ThomasPohl in #28
- Several cameras per hub: hub keys, batch check-in, camera picker by @ThomasPohl in #30
- Backend: deploy into AWS projects (access key instead of OIDC, token without SSM) by @ThomasPohl in #31
- Backend deploy: report SAM and CloudFormation errors as annotations by @ThomasPohl in #39
- Bootstrap: allow the execution role to expand the SAM transform by @ThomasPohl in #40
- Session: neutral request and status interface for front ends by @ThomasPohl in #29
- SD card: SPI mode, sd_log, sdkconfig split into common and per-target files by @HeikoGr in #33
- Merge #32 and initialize the network stack in app_main by @ThomasPohl in #41
- camera_link: video download via playback stream, photo streaming to SD, robustness fixes by @HeikoGr in #32
- Board: LilyGO T-Dongle-C5 with display and button (on the session interface of #29) by @HeikoGr in #34
- Merge #36 (ESP32-P4-NANO) after #34 and resolve the conflicts by @ThomasPohl in #42
- Board: Waveshare ESP32-P4-NANO with Ethernet uplink (based on #32 and #33) by @HeikoGr in #36
- Board: LilyGO T-Dongle-S3 (stacked on the T-Dongle-C5 PR) by @HeikoGr in #35
- web_ui: access point with a page for status, files and the live log (stacked on #34) by @HeikoGr in #37
- Merge #38 (console diagnostics) after #37 and resolve the conflicts by @ThomasPohl in #43
- hub_console: USB-Serial-JTAG port, richer status and diagnostic commands (stacked on #34) by @HeikoGr in #38
- camera_link: log in with the current time instead of a fixed one by @HeikoGr in #46
- web_ui: Ethernet web UI for the P4 with MP4 download, browsing and clock sync by @HeikoGr in #47
- web: group captures and show thumbnail preview in the live protocol view by @ThomasPohl in #44
- backend: register hubs through the Lambda function by @ThomasPohl in #45
- backend: register-hub uses the AWS CLI's region by default by @ThomasPohl in #71
- web: remember device setup values in the browser by @ThomasPohl in #72
- hub_console: keep the console task stack in internal RAM by @ThomasPohl in #73
- camera_wifi: ignore late disconnect events of the previous network by @ThomasPohl in #74
- app: show the backend's error message on failed requests by @ThomasPohl in #78
- web: add Clear and Copy buttons to the serial console by @ThomasPohl in #80
- media_store: date SD files with the real UTC instant of the recording by @ThomasPohl in #82
- app: show media times as the camera's wall clock by @ThomasPohl in #83
- Add CLAUDE.md with git setup and project conventions by @ThomasPohl in #84
- Use-case profile, wake-up schedule and deep sleep (#56, #81) by @ThomasPohl in #86
- Key the hub catalog by mediaId by @ThomasPohl in #88
- End the camera session when the media list fails (no SD card) by @HeikoGr in #90
- Web UI: CSRF protection, and a password over Ethernet by @HeikoGr in #91
- sd_log: host tests for file naming, pruning and line cutting by @HeikoGr in #92
- time_sync.h: plain C API with its own source enum by @HeikoGr in #93
- Define the front-end phase once in session_controller by @HeikoGr in #96
- Show failed and stopped searches on the display and in the web UI by @HeikoGr in #97
- Name the hub SD files by mediaId by @ThomasPohl in #98
- Read the thumbnail media id at offset 0x28 by @ThomasPohl in #112
- Dev container: CI tools, ESP-IDF in every shell, USB access to boards by @HeikoGr in #95
- camera_link: move the handshake out of camera_protocol.cpp by @HeikoGr in #107
- camera_link: collect the video download figures in VideoTransferStats by @HeikoGr in #108
- web_ui: keep a landscape video and its controls inside the viewer by @HeikoGr in #110
- Merge #111 (PlaybackDownload) into main by @ThomasPohl in #116
- camera_link: move the video download by playback into PlaybackDownload by @HeikoGr in #111
- Document the camera's delete and format commands by @HeikoGr in #115
- docs: follow-ups to the camera delete and format notes by @ThomasPohl in #120
- Add a console command that lists the media on the camera by @HeikoGr in #119
- Read all pages of the camera's media list in a scan by @ThomasPohl in #124
- Count only new media frames as progress for the session watchdog by @ThomasPohl in #125
- Report a camlist listing as listed, not as a scan by @ThomasPohl in #127
- Session Results to main by @ThomasPohl in #128
- Merge the session result work into main by @ThomasPohl in #129
- Report the camera's SD card state in the check-in and show it in the app by @ThomasPohl in #130
- Read several cameras in one scan by @ThomasPohl in #131
- Merge the multi-camera scan into main by @ThomasPohl in #132
- Telegram bot: webhook, notifications and pairing by QR code by @ThomasPohl in #133
- Measure the hub battery (MAX17048) and send it in the check-in by @ThomasPohl in #137
- Download and upload videos on request by @ThomasPohl in #139
- Firmware updates through the check-in (OTA with rollback) by @ThomasPohl in #140
- Backend uplink over the A7670E cellular modem (USB host, PPP) by @ThomasPohl in #141
New Contributors
Full Changelog: https://github.com/ThomasPohl/TrailCamHub/commits/v0.1.0