Repository navigation
Releases: haksolot/PhysDAQ
Release list
PhysDAQ v1.2.1 — BLE link stability
Nodes "kept disconnecting" over BLE. They were rebooting, not losing the radio. This release fixes the three stacked causes in both firmwares and adds the diagnostics that made them visible.
Fixes
bt_gatt_notify()blocks withK_FOREVERon TX-buffer exhaustion; called frommain()it starved the watchdog. The radio is now driven by a dedicatedble_txthread behind a bounded queue.- The BLE controller ran 27 B link-layer packets, splitting every line into five and saturating the link. Data Length Extension is on; TX pools are 6 deep.
- Zephyr's default fatal handler halted with interrupts locked, making crashes invisible.
crashlog.crecords the fault and reboots at once. - Watchdog fed inside the FIFO-drain loop; connection-parameter auto-update disabled (crashed on Windows);
IDline sent when notifications are actually enabled and when the USB port is opened; a cabled node no longer sleeps while the host holds the port.
Diagnostics — after every new link the node reports Boot: cause=…, and Crash: / Hang: when the previous boot ended that way; the Power: line shows BLE lines dropped under back-pressure; the bridge logs OS-side drops and tears down zombie links after 8 s.
Flash physdaq.uf2 (node) or physdaq-hub.uf2 (hub) via the UF2 bootloader; the desktop app is 1.2.1. The hub firmware carries the same code but was not run on hardware for this release.
Full changes: #27
v1.2.0
What's Changed
Full Changelog: v1.1.0...v1.2.0
PhysDAQ v1.1.0
Finding and setting up a node no longer means reading raw MAC addresses or
leaving the app for a build toolchain.
Download
| Your machine | File |
|---|---|
| Windows | physdaq-1.1.0-setup.exe |
| Mac (Apple Silicon) | physdaq-1.1.0-arm64.dmg |
| Linux | physdaq-1.1.0-x86_64.AppImage or physdaq_1.1.0_amd64.deb |
physdaq.uf2 is the node firmware. You do not need to download it — it ships
inside the app — but it is here for flashing by hand.
All downloads are unsigned; your system will warn you the first time.
Windows: More info → Run anyway. macOS: right-click → Open. Linux:
chmod +x the AppImage.
What's new
The BLE list only shows your nodes. The scan filters on the sensor's service
UUID instead of returning every phone and pair of headphones in range — in
testing, 19 nearby devices dropped to just the nodes. A "show all BLE devices"
checkbox is there if you ever need the unfiltered list. Results are sorted by
signal strength, so the node in your hand comes first.
Every node has its own name. Nodes used to advertise the identical string
PhysDAQ, so a scan could not tell two of them apart. Each one now appends a
suffix from its chip's factory ID — PhysDAQ-4F2A — which is stable across
reboots and reflashes. Reflash your nodes to get this.
You can name your nodes. Give a node a name like "chest strap" and the app
remembers it, so you recognise it in the list next time wherever you place it.
The device pickers are searchable. Type part of a name, a MAC address or a
COM port to filter, instead of scrolling.
You can flash a node from the app. Connect it over USB, press Flash this
node, double-tap its RST button. No Zephyr toolchain, no command line.
The flashing flow has not yet been run against real hardware — the image it
installs is built and verified in CI, but if something goes wrong on a real
node, please open an issue.make flashremains available as a fallback.
Research instrument — not a medical device. Nothing here is validated for
diagnosis, and no claim of clinical accuracy is made.
What's Changed
- docs: all four platform builds are published by @haksolot in #21
- Make nodes findable: filter the BLE scan, searchable pickers, per-node names by @haksolot in #22
- Flash a node from the desktop app by @haksolot in #24
- chore: release v1.1.0 by @haksolot in #25
Full Changelog: v1.0.0...v1.1.0
PhysDAQ v1.0.0
First published build of PhysDAQ — a wearable research instrument for
multi-point photoplethysmography and inertial motion capture.
Download
| Your machine | File |
|---|---|
| Windows | physdaq-1.0.0-setup.exe |
| Mac (Apple Silicon) | physdaq-1.0.0-arm64.dmg |
| Linux | physdaq-1.0.0-x86_64.AppImage or physdaq_1.0.0_amd64.deb |
All downloads are unsigned — PhysDAQ is a lab instrument, not a commercial
product, and a signing certificate is not something the project has. Your system
will warn you the first time:
- Windows — SmartScreen shows "Windows protected your PC". Click
More info → Run anyway. - macOS — the app is blocked on a double-click. Right-click → Open, then
confirm. Once only. - Linux —
chmod +x physdaq-*.AppImagefirst. For USB you also need to be in
thedialoutgroup.
The Windows build has been run and verified. The macOS and Linux builds have
not. This is the first release for those platforms — they compile and package
cleanly in CI, but no one has yet launched them on real hardware. If you hit
something, please open an issue.
What it does
Records the raw red and infrared pulse-oximetry waveform plus 6-axis motion at
100 Hz, from several wearable sensor nodes at once, and writes one CSV per
sensor per session to Documents/PhysDAQ_Sessions/. Nodes connect over USB or
Bluetooth Low Energy. No Python installation is needed — the acquisition bridge
ships frozen inside the download.
New here? Start with the
User Guide.
Research instrument — not a medical device. Nothing here is validated for
diagnosis, and no claim of clinical accuracy is made.