Seniors health monitoring wristband

Team – 2x Embedded Software Developer
Tech stack – Nordic nRF5340, LTE-M, BLE, GNSS, IMU, Pulse oximeter & HR

What was the client’s initial situation? What challenges were they facing?

The client was working on a wearable device for seniors that combined several sensors: an IMU (with activity recognition based on decision trees), a heart rate monitor, GPS, and a modem supporting SMS and voice calls via microphone and speaker.

The system used BLE for communication and was designed to connect with a backend. Early firmware was built on FreeRTOS and ran on a simplified prototype board without full feature support.

At that point, the client didn’t have a stable development setup, lacked testing tools and automation, and had limited access to embedded engineers – especially those familiar with Zephyr – while being under pressure to deliver a working prototype for stakeholder demos.

How was the client handling the problem before we stepped in?

GoodByte joined the project at a key architectural decision point – the client was transitioning to a new processor and RTOS (nRF with Zephyr). Firmware development was previously done locally, without a consistent environment, automation, or a test system.

Full system bring-up required manual configuration and troubleshooting. While the client had full control over the product vision, they needed acceleration and structure in both software development and hardware integration.

How did GoodByte solve the problem?

  • Modem control offloading for the Quectel BG77 was implemented, enabling GPS, SMS, and secure LTE-M data transmission.
  • BLE communication was implemented to support interaction with the companion mobile application.
  • HTTPS-based communication laid the groundwork for secure backend integration.
  • Support for multiple hardware prototypes was added while maintaining compatibility, starting from the nRF5340DK.
  • USB-based logging (VCOM) accelerated debugging and testing during development.
  • Firmware was migrated from FreeRTOS to Zephyr RTOS to leverage better BLE support and long-term scalability.
  • A secure firmware update system with rollback support was implemented over USB, BLE, and HTTPS.
  • Runtime monitoring tools were introduced for task and resource tracking within the firmware.

How did the changes help the customer?

Thanks to our collaboration, the client received a flexible, extensible firmware platform and a prototype ready for live demonstration. Fast testing and firmware updates (including rollback) significantly accelerated development cycles. The new architecture made it easy to scale the system and toggle features per hardware build.

Our support extended beyond software — we helped with hardware bring-up and communication with partners, improving the overall technical quality and maturity of the solution.

Embedded Software Development

  • BLE – pairing, bonding, synchronization with the mobile app.
  • Zephyr → FreeRTOS – porting from FreeRTOS, task management, priorities, watchdogs, task/resource monitoring.
  • IMU / Health Sensor / GPS / GNSS – integration and support for multiple sensing modules.
  • HTTPS POST/GET – backend communication, data reporting, time/data synchronization.
  • USB – firmware updates and debug communication via VCOM.
  • KConfig – dynamic enabling/disabling of components per build.
  • Storage – measurement logging with resilience to power loss.
  • Firmware Update with Rollback – secure update process with automatic fallback in case of failure.

PoC development

  • VoLTE – Proof of Concept with LTE-M modem in Orange networks; modern voice call setup (discontinued by the operator).
  • GSM voice calls – Classic GSM voice calling via a Quectel modem using a non-standard audio codec; firmware- level integration enabled reliable audio despite the lack of official support.
  • Modem offload – GPS and communication management via modem (e.g. Quectel BG77), including SMS.
  • Audio codecs – Testing and integration of two solutions, analysis of hardware behavior and limitations, hardware- level debugging.
  • Standalone modem debug mode – Special development mode allowing the modem to operate independently via USB VCOM, enabling AT command access and low-level testing without running full firmware.

DevOps for Embedded Systems

  • DevContainer – Standardized OS-independent development environment, ready to use from day one.
  • CI/CD – Bitbucket Pipelines: testing, building, formatting, and static analysis on every pull request.
  • GoogleTest – Unit testing of logic and bring-up testing for all hardware prototypes.
  • Formatting and linting – clang-format, clang-tidy, cpp-check — early error detection before code review.