{"id":19144964,"url":"https://github.com/ldab/sara-rx-application-board","last_synced_at":"2026-06-15T06:32:43.764Z","repository":{"id":56481765,"uuid":"228784505","full_name":"ldab/SARA-Rx-application-board","owner":"ldab","description":"SARA-R4 NB-IoT + Cat-M1 + GNSS application board - NINA-B3 with Secure MQTT","archived":false,"fork":false,"pushed_at":"2020-11-11T10:27:09.000Z","size":9716,"stargazers_count":0,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-08T03:55:10.951Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ldab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-12-18T07:36:51.000Z","updated_at":"2020-11-11T10:26:57.000Z","dependencies_parsed_at":"2022-08-15T19:31:33.516Z","dependency_job_id":null,"html_url":"https://github.com/ldab/SARA-Rx-application-board","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ldab/SARA-Rx-application-board","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldab%2FSARA-Rx-application-board","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldab%2FSARA-Rx-application-board/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldab%2FSARA-Rx-application-board/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldab%2FSARA-Rx-application-board/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ldab","download_url":"https://codeload.github.com/ldab/SARA-Rx-application-board/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldab%2FSARA-Rx-application-board/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34351448,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-15T02:00:07.085Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T07:37:11.218Z","updated_at":"2026-06-15T06:32:43.746Z","avatar_url":"https://github.com/ldab.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SARA-Rx application board\n\n SARA-R4 NB-IoT + Cat-M1 + GNSS application board - NINA-B3 with Secure MQTT\n\n[![GitHub version](https://img.shields.io/github/release/ldab/SARA-Rx-application-board.svg)](https://github.com/ldab/SARA-Rx-application-board/releases/latest)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/ldab/SARA-Rx-application-board/blob/master/LICENSE)\n\n[![GitHub last commit](https://img.shields.io/github/last-commit/ldab/SARA-Rx-application-board.svg?style=social)](https://github.com/ldab/SARA-Rx-application-board)\n\n# **:heavy_exclamation_mark:BEFORE YOU DO ANYTHING, CHECK BATTERY POLARITY:heavy_exclamation_mark:**\n\n## TODO\n\n- [ ] More details about battery etc...\n- [ ] !!! Better Socket close URC handler.\n- [ ] Check AT response based on the last chars, in order to avoid missing URCs when after \"OK\" for example\n- [ ] Implement Subscribe;\n\n![](./pics/mqtt_RTT-print.png)\n\n## Energy Budget\n\n* 88mA active current;\n* Code takes ~10 seconds to execute;\n* Wakes every hour;\n* 40uA Sleep current;\n* 10 hours of light available;\n* V charge ready = 3.67V;\n* V Over discharge = 3.6V;\n* V Over charge = 4.12V;\n\n**Source Power Required = 3.8mW**\n\n**Storage Required = 4.73mAh**\n\n![](./power_profile/exec_time.png)\n\n![](./power_profile/power.png)\n\n### Sleep Current\n\n| Component \t| Current \t|\n|-----------\t|---------\t|\n| SARA-R410 \t| 7uA     \t|\n| NINA-B3   \t| 3uA     \t|\n| Batt ADC  \t| 3uA     \t|\n| SHTC3     \t| 0.5uA   \t|\n| TP4054    \t| 1uA     \t|\n| TXS0108   \t| 5uA(?)  \t|\n| TPS61021A  \t| 17uA   \t  |\n| TOTAL     \t| ~37uA   \t|\n\n## Nordic SDK\n\n* This is based on nRF5_SDK_16.0.0_98a08e2, get yours here: https://www.nordicsemi.com/Software-and-tools/Software/nRF5-SDK/Download\n\n![](./pics/mqtt_RTT-print.png)\n\n1. Sign in to the AWS IoT Console\n2. Register a Device in the Registry\n3. Configure Your Device\n4. View Device MQTT Messages with the AWS IoT MQTT Client\n\nhttps://docs.aws.amazon.com/iot/latest/developerguide/iot-gs.html\n\n* 120mA active current;\n* Code takes 15 seconds to execute;\n* Wakes every hour;\n* 2mA Sleep current *This needs to be optimized*;\n* 10 hours of light available;\n* V charge ready = 3.67V;\n* V Over discharge = 3.6V;\n* V Over charge = 4.12V;\n\n1. Clone this repo to a local folder ```\u003e git clone https://github.com/ldab/SARA-Rx-application-board```\n2. Point the `$(SDK)` @`./code/ninab3/blank/ses/libuarte_pca10056.emProject` to where you have installed Nordic SDK, for example `C:\\nRF\\nRF5_SDK_16.0.0_98a08e2`\n3. Like so: `macros=\"CMSIS_CONFIG_TOOL=C:/nRF/nRF5_SDK_16.0.0_98a08e2/external_tools/cmsisconfig/CMSIS_Configuration_Wizard.jar;SDK=C:/nRF/nRF5_SDK_16.0.0_98a08e2\"`\n4. Open the SEGGER Embedded Studio project file located in `./code/ninab3/blank/ses/libuarte_pca10056.emProject`\n\n* PS. don't forget to set the NFC Pins as GPIO on the Preprocessor: `CONFIG_NFCT_PINS_AS_GPIOS`\n\nRef. https://devzone.nordicsemi.com/f/nordic-q-a/44638/how-to-move-an-sdk-example-out-of-the-sdk-tree\n\n## IoT Dashboard\n\n* Adafruit https://io.adafruit.com provides a free MQTT broker with a Dashboard allowing this project to be displayed publicly with little to no effort\n  * Create an account and insert your KEY as the `MQTT_PASS`\n  * `MQTT_USER` is the username used for creating the account.\n\n* Adafruit expect data as a json, for example:\n\n    ```\n    sprintf(_msg, \"{\\\"feeds\\\": {\\\"T\\\": %.01f,\\\"H\\\": %.01f,\\\"Bpc\\\": %d,\\\"RSRP\\\": %.02f,\\\"Bv\\\": %.02f}}\",\n            temperature, humidity, batt_lvl_in_percentage, modemInfo.RSRP, _b)\n    ```\n\n* The topic, groups and feeds are created automagically, on the example the MAC address is added as an identifier:\n\n    ```\n    sprintf(topic, \"lbispo/g/nina_%X/json\", NRF_FICR-\u003eDEVICEADDR[0]);\n    ```\n\n\u003cimg src=\"./pics/dashboard.png\" width=\"50%\"\u003e \n\nhttps://io.adafruit.com/lbispo/dashboards/moree?kiosk=true\n\n## Efficiency\n\n\u003cimg src=\"./pics/effchart.png\" width=\"75%\"\u003e \n\n## Schematic\n\n[![Board Schematic](./pics/schematic.png)](./PCB/schematic.pdf)\n\n## PCB\n\n\u003cimg src=\"./pics/pcb.png\" alt=\"3D PCB\" width=\"50%\"\u003e \n\n## BOM\n\n[![Board BOM](./pics/BOM.png)](./KiCad/BOM.csv)\n\n## Enclosure\n\n\u003cimg src=\"./pics/enclosure.png\" alt=\"3D\" width=\"50%\"\u003e \n\n## Kown issues, limintations\n\n* MQTT Socket Implementaition can only **publish** QoS 0 messages.\n\n## Thoughts or Improvements\n\n* Use STATUS 2 of AEM10941 as last grasp;\n* Control boost converter EN, in order to turn SARA Off;\n  * Remove boost converter, as it does not boost a lot since Vbatt ON = 3.6V.\n* SARA RESET Pin access;\n* Use 101b AEM10941 Configuration in order to Vovdis = 3.0V givin extra ~20% battery (?).\n* Open Drain 74LVC3G07 buffer on NINA LED, in order to avoid leakage.\n\n## Credits\n\n* [MQTTBox](http://workswithweb.com/mqttbox.html) for Windows in order to communicate with the broker and check messages;\n* [CloudMQTT](https://www.cloudmqtt.com/) Free Cloud Broker;\n* MQTT implementation inspired and based on [knolleary PubSub Client](https://github.com/knolleary/pubsubclient);\n* AT Commands implementation inspired on [vshymanskyy TinyGSM](https://github.com/vshymanskyy/TinyGSM);\n* GitHub Shields and Badges created with [Shields.io](https://github.com/badges/shields/);\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fldab%2Fsara-rx-application-board","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fldab%2Fsara-rx-application-board","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fldab%2Fsara-rx-application-board/lists"}