Project Overview
The embedded C firmware for NeoWarm will be developed using standard ARM development environments (such as Segger Embedded Studio, Arm Keil, or equivalent) and will leverage an RTOS to manage concurrency, timing constraints, and safety-critical tasks. The system must support simultaneous connections to multiple BLE central devices, enabling monitoring by caregivers, clinicians, and supervisory systems at the same time.
A major focus of the project will be security, data integrity, and power efficiency, ensuring that sensitive medical data is stored and transmitted securely while maintaining optimal battery life for portable operation.
The firmware will integrate closely with the NeoRoo mobile application, developed using Flutter, providing real-time telemetry, configuration, alerts, and historical data visualization.
Key Objectives
-
Develop production-ready firmware for the NeoWarm device using nRF52840
-
Replace or refactor existing Arduino-based firmware into a structured RTOS-based architecture
-
Ensure secure BLE communication with multiple central devices simultaneously
-
Enable robust integration with the NeoRoo Flutter mobile application
-
Implement secure data storage and power-efficient operation
-
Validate firmware through extensive testing, including battery life and current consumption analysis
Key Features
Firmware Architecture
-
RTOS-based task scheduling for:
-
Sensor data acquisition
-
BLE communication
-
Device control logic
-
Power management
-
Fault detection and recovery
-
-
Modular and maintainable firmware design using standard ARM toolchains
-
Clear separation of hardware abstraction, application logic, and communication layers
Secure Communication
-
BLE support for multiple concurrent central connections
-
Encrypted communication channels using BLE security features
-
Secure device pairing and bonding
-
Protection against unauthorized access and data tampering
Data Management
-
Secure local storage of device data (measurements, logs, alerts)
-
Data buffering and synchronization with mobile apps
-
Safe handling of power-loss scenarios
-
Configurable data retention policies
NeoRoo App Integration
-
Real-time data streaming to the Flutter-based NeoRoo app
-
Bi-directional communication for:
-
Device configuration
-
Threshold updates
-
Control commands
-
-
Well-defined BLE services and characteristics
-
Support for background operation and reconnection handling
Power Optimization
-
Low-power design using nRF52840 features
-
Sleep modes and dynamic power scaling
-
Measurement and optimization of:
-
Current consumption
-
Battery life under different workloads
-
-
Validation against expected clinical usage patterns
Testing and Validation
The project will include comprehensive testing to ensure safety, reliability, and efficiency:
-
Functional testing of all firmware modules
-
Stress testing with multiple BLE central devices connected simultaneously
-
Security testing for data storage and communication
-
Power profiling and current consumption measurements
-
Battery life estimation and optimization
-
Long-duration stability testing
Deliverables
-
Fully functional, RTOS-based firmware for NeoWarm
-
Secure BLE communication stack with multi-central support
-
Defined BLE protocol and documentation for NeoRoo app integration
-
Optimized power management and battery usage reports
-
Migration documentation from Arduino-based firmware
-
Developer documentation and build instructions
-
Test reports covering performance, security, and power metrics
Preliminary Tasks
-
Review and analyze existing Arduino and Segger Studio firmware
-
Set up RTOS environment on nRF52840
-
Implement basic RTOS task structure
-
Establish secure BLE communication with a sample Flutter app
-
Prototype multi-central BLE connectivity
-
Measure baseline current consumption and battery performance
Required Skills
A developer working on this project should have experience with:
-
Embedded C/C++ development for ARM Cortex-M microcontrollers
-
nRF52 series and Nordic SDKs
-
RTOS concepts (tasks, queues, semaphores, timers)
-
BLE protocols and security mechanisms
-
Low-power embedded system design
-
Flutter mobile application integration
-
Debugging and profiling embedded systems
-
Familiarity with ARM-based IDEs (Segger, Keil, etc.)
Current Status and Motivation
Current work includes basic firmware written in Arduino and Segger Embedded Studio, primarily focused on validating BLE communication with the mobile application. However, the existing implementation lacks scalability, security, structured task management, and power optimization.
This project aims to elevate NeoWarm from a prototype stage to a production-quality medical device firmware, ensuring reliability, security, and seamless integration with the NeoRoo app.
Impact
By completing this project, NeoWarm will gain a robust, secure, and extensible firmware foundation suitable for deployment in real healthcare environments. The work will significantly improve device reliability, patient safety, and maintainability, while enabling future enhancements and integrations within the LibreHealth ecosystem.
Mentors: @Hrishikesh-Bhagwat @sunbiz