{"id":16484746,"url":"https://github.com/damdo/mkr1310-lora-lowpower","last_synced_at":"2025-05-02T02:31:29.247Z","repository":{"id":96653092,"uuid":"329442041","full_name":"damdo/mkr1310-lora-lowpower","owner":"damdo","description":"Arduino MKR WAN 1310 Low Power with LoRa (104µA at sleep)","archived":false,"fork":false,"pushed_at":"2021-01-13T23:42:27.000Z","size":2,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-06T21:24:59.796Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/damdo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-13T22:01:54.000Z","updated_at":"2024-05-01T21:12:10.000Z","dependencies_parsed_at":"2023-05-06T12:17:52.982Z","dependency_job_id":null,"html_url":"https://github.com/damdo/mkr1310-lora-lowpower","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/damdo%2Fmkr1310-lora-lowpower","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/damdo%2Fmkr1310-lora-lowpower/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/damdo%2Fmkr1310-lora-lowpower/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/damdo%2Fmkr1310-lora-lowpower/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/damdo","download_url":"https://codeload.github.com/damdo/mkr1310-lora-lowpower/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251972508,"owners_count":21673616,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-10-11T13:18:08.275Z","updated_at":"2025-05-02T02:31:29.240Z","avatar_url":"https://github.com/damdo.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"## damdo/mkr1310-lora-lowpower\n\nArduino MKR WAN 1310 Low Power LoRa comms\n\n### Motivation\nThe overview of the Arduino MKR WAN 1310 on the [Arduino Store](https://store.arduino.cc/mkr-wan-1310) states the following:\n\n_\"The latest modifications have considerably improved the battery life on the MKR WAN 1310. When properly configured, the power consumption is now as low as 104uA!\"_.\n\nSo I've read a decent amount of blogs/forums/code on how to make Low Power LoRa comms the Arduino MKR WAN boards but either they:\n- weren't performing as low as I needed them to go (\u003c150µA during deep sleep)\n- [they involved physical surgery of the board](https://forum.arduino.cc/index.php?topic=698897.0)\n- [they involved the usage of Low Power Timers](https://github.com/AmedeeBulle/TTNMkrWanNode) to bring the sleep current down\n\n\nAfter combining some findings, and testing various approaches I achieved the desired result and so I want to share how I did this, but without the above hardware compromises.\n\nThe key takeaway is that even after a `LoRa.end()` the pins used to communicate with the on-board LoRa chip are not put in low power consumption mode and they still draw a quite significant amount of current. They thus need to be manually reset to achieve power efficiency.\n\nFor now there is only an example for simple 1:1 LoRa communication but I might add one for LoRaWAN later down the line.\n\n### Caveat\nThe code is compatible with both the 1300 and the 1310 boards\nbut I've only tested its performances with the 1310 revision.\n\nAlso the 1310 revision was born to fix the high power consumption of it's predecessor the 1300, so I wouldn't be surprised to see worse performances for the 1300.\n\nAlthough that doesn't change the fact that the code should require minimal current during sleep independently of the revision.\n\n### Performances\nThe measured performance of the code with the two revisions of the MKR WAN board.\n\n| Model          | Sleep            | Transmitting |\n| :------------- | :----------:     | -----------: |\n| MKR 1310       | `104µA` (`0.1mA`)| `~20/30mA`   |\n| MKR 1300       | untested         | untested     |\n\nN.B. the power in the tests was provided via the battery connector, as this Arduino automatically disables the power led, when it's getting powered through that.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdamdo%2Fmkr1310-lora-lowpower","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdamdo%2Fmkr1310-lora-lowpower","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdamdo%2Fmkr1310-lora-lowpower/lists"}