Project: NeoWarm Device Firmware Development

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

Hey,

I’m interested for this project and have a bit of experience in flutter. I wanted to go through codebase and setup the flow, but can’t find the repo.

Could you guide a bit?

Thanks

@kartikaeyy the current firmware code for the camera OCR is here - neosmart_esp_fw · main · LibreHealth / LibreHealth Incubating Projects / Mobile Helping Babies Survive (mHBS) / NeoSmartML · GitLab - However, this suggested GSoC project idea is a completely new project . This is less about the NeoRoo app itself, but rather the device firmware side of things.

1 Like

Successful acquisition of the project goals outlined by @sunbiz will move NeoWarm into a space within the design and development pipeline whereby we can perform a clinical technical feasibility field trial with partners in Kenya and India. I have high hopes for GSoC 2026!

1 Like

Continuing from my introduction, I would just like extend my background so that I could get some feedback on areas I would have to gain more knowledge. As this is a highly technical and zero error margin project affecting lives of infants, I would approach it with much seriousness as required.

Previously for a college project, I had built a Bluetooth indoor position tracker. This is based on BLE device on advertising mode and ESP32s receiving this transmissions.

For last year’s GSoC, I worked extensively with Flutter and Websockets (and Robotics Simulation) so this makes the NeoRoo app integration one of my stronger suites. You can check my last year’s work here: github-link. I also worked with Yaml and Cmake in ROS2 last year. I use Linux as my development OS.

For embedded systems, I write Assembly or C Code on Microchip Studio IDE for 8 bit Atmega32 Microcontroller which has RISC architecture. However I have a solid theoretical foundation in Finite State Machines, Computer Architecture and Operating Systems from my university curriculum to try and apply my learnings to the 32 bit ARM and RTOS environment.

Now keeping all this in mind, is there any specific order you would recommend I tackle the preliminary tasks to best strengthen my weak areas? What would be the deadline and mode of submission of these preliminary tasks? Also at what stage of completing these tasks would you suggest I begin drafting my formal proposal?

Thank you.

Demo for the said BLE position tracker project: demo and a formal report: report

Can anyone please clarify which existing firmware is talked about in here? Is it the one for camera OCR as shared by Saptarshi Sir. If anyone could share me the link to existing Firmware it would be very helpful.

Sorry if my messages seem spammy, had many things to say and clarify to get working as soon as possible.

Thank you.

@Hrishikesh-Bhagwat @sunbiz Hello Mentors,

Where should I submit my tasks and proposal for review?

Also tasks like analyze previous code and setup current code does not really have any deliverables, so what should I submit after completing them? Tasks like baseline current consumption and battery performance has to be with the hardware right? If yes, should I buy some hardware for this project?

I have been reading about designing the framework and have a major architectural doubt: @sunbiz @kartikaeyy Can I use Zephyr instead of FreeRTOS for this project? What’s your take on this?

A reply would greatly help me for my proposal and also motivate me towards working harder knowing that this is seriously being considered for GSoC this year.

I will submit many of the tasks by tomorrow. I could not however perform the last task due to lack of hardware.

Thank you.

First Two Tasks done. Rest in process. As I keep completing the tasks they will be updated here in this doc: LibreHealth Neowarm Tasks - Google Documenten

And I would notify in this thread.

You should post your code to a public repository, not as screenshots.

Done now. This is the repo and which is also updated in the doc: GitHub - devxdebanjan/myblinky · GitHub

Flutter programs will be published soon.

1 Like

RTOS Structure implemented in FreeRTOS. Code updated in Doc.

Hey is this for any code that I published recently? Were they flagged AI? Because in fact they were not. I saw tutorials and videos on youtube and learnt to write it from there. I can provide the source if asked to.

If this is a general warning then sorry for the misunderstanding. Also I am close to finishing my proposal. Have been learning some things around the project and refining my approach which is causing the delay. Will share that once completed.

Thank you.

No, I’m just making this prominent. I don’t want to see AI used at any point in this program.

1 Like

As the NeoRoo app already exists and I will just integrate the firmware with the app, do I need to again paste the wireframe of the UI of the app in my proposal?

Hello @r0bby here is my proposal, please let me know if I should submit to the GSoC portal: proposal

1 Like

Heads up: if you used any LLMs in any way, your proposal will not be even considered.

That said, go ahead and submit.

1 Like

I did not rely on LLMs for writing the proposal. Will be happy to clarify anything if needed.

Thank you, will be submitting to the portal now.

1 Like