{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":467178165,"defaultBranch":"main","name":"lora-modem","ownerLogin":"hardwario","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-03-07T16:44:16.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/28539912?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716044093.0","currentOid":""},"activityList":{"items":[{"before":"dea35bbe200063106309c9855e95b267bd74beb3","after":"7220b7bbe391d91aa0e3a696da66c268e082c783","ref":"refs/heads/main","pushedAt":"2024-05-18T14:52:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Fix LPUART blocking/unblocking in AT commands that read data","shortMessageHtmlLink":"Fix LPUART blocking/unblocking in AT commands that read data"}},{"before":"b97ba3f3cde458cc8943417283cb4e977950fd80","after":"dea35bbe200063106309c9855e95b267bd74beb3","ref":"refs/heads/main","pushedAt":"2024-04-06T15:20:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Language and style fixes in comments and documentation.","shortMessageHtmlLink":"Language and style fixes in comments and documentation."}},{"before":"f287eceaeec74432e90f93997eb59365ab9dd558","after":"b97ba3f3cde458cc8943417283cb4e977950fd80","ref":"refs/heads/main","pushedAt":"2024-04-06T01:40:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Add support for AT$ASYNC","shortMessageHtmlLink":"Add support for AT$ASYNC"}},{"before":"be83a6d4c8660a36573704d310f19fad596eb654","after":"f287eceaeec74432e90f93997eb59365ab9dd558","ref":"refs/heads/main","pushedAt":"2024-04-04T18:34:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Fix AppEUI initialization on region change\n\nCloses #133","shortMessageHtmlLink":"Fix AppEUI initialization on region change"}},{"before":"1506b2cc15d49b179188676ce8d9e13caab0930b","after":"be83a6d4c8660a36573704d310f19fad596eb654","ref":"refs/heads/main","pushedAt":"2024-02-19T02:27:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Implement a polling mode of ATCI communication.\n\nThe modem can send a variety of asynchronous messages to the host. These\ninclude asynchronous +EVENT notifications, +RECV messages containining\nincoming (downlink) messages, +ACK and +NOACK, and +ANS. The host must\nbe ready to receive such messages at any time, typically seconds or tens\nof seconds after the most recent AT command. An +EVENT=0,0 message\nemitted after a modem reset can arrive at any time and typically\nrequires some response from the host, e.g., to reconfigure the modem.\n\nHandling asynchronous modem notifications requires that the host keeps\nits UART peripheral active at all times. This can be problematic on\nplatforms where the UART peripheral consumes significant amounts of\npower while running.\n\nThis patch introduces a new ATCI command AT$ASYNC which can be used to\nconfigure the modem's behavior with respect to asynchronous messages\nsent to the host. When set to 1 (the default), the modem behaves as\nbefore and can send asynchronous messages to the host at any time.\n\nWhen set to 0 with AT$ASYNC=0, the modem switches into a polling mode of\noperation. In the polling mode, the modem buffers all asynchronous\nmessages for the host. The buffered asynchronous messages will only be\ntransmitted upon receiving an AT command from the host. Upong receiving\nany AT command, the modem first sends all buffered asynchronous messages\nbefore sending the final response (+OK or +ERR) to the AT command. After\nsending the final response, the modem guarantees that no asynchronous\nmessages will be sent until the next AT command. Thus, the host only\nneeds to be ready to receive between the time it sends an AT command to\nthe modem, and the time it receives the final response to the command.\n\nConsider AT+JOIN as an example. In the asynchronous mode of operation,\nthe modem returns +OK immediately. After some time, it returns either\n+EVENT=1,0 or +EVENT=1,1, depending on the outcome of the join:\n\n| AT$ASYN=1\n| +OK\n|\n| AT+JOIN\n| +OK\n|\n| (...some amount of time...)\n|\n| +EVENT=1,1\n\nIn the polling mode, the +EVENT=1,1 message will be buffered and will\nonly be sent after another AT command received from the host:\n\n| AT$ASYNC=0\n| +OK\n|\n| AT+JOIN\n| +OK\n|\n| (...arbitrary amount of time...)\n|\n| AT\n| +EVENT=1,1\n|\n| +OK\n\nAny AT command will trigger the sending of all buffered messages first.\nIf the host only wishes to poll for buffered messages, it can send the\ndummy command 'AT' as shown above.\n\nTHe AT$SYNC value is backed in NVM (EEPROM) and survives modem reboots.\nThis is necessary because a host operating in the polling mode could\neasily miss the modem's reboot indications (+EVENT=0,0).\n\nThis patch is a reinterpretation of PR #138.","shortMessageHtmlLink":"Implement a polling mode of ATCI communication."}},{"before":"883450516abf9d42653ddcc27a691e5f99c7f24c","after":"1506b2cc15d49b179188676ce8d9e13caab0930b","ref":"refs/heads/main","pushedAt":"2023-07-23T14:57:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Update and document the devtime command (property)","shortMessageHtmlLink":"Update and document the devtime command (property)"}},{"before":"219dcdc84af6975a3c4a253db2246a235377518d","after":"883450516abf9d42653ddcc27a691e5f99c7f24c","ref":"refs/heads/main","pushedAt":"2023-07-23T13:46:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Enable DeviceTimeReq piggybacking\n\nWhen sending a device time request via AT$DEVTIME, the application can\nchoose to have the request piggybacked on the next regular uplink\ninstead of sending an empy unconfirmed uplink immediately. This\npiggybacked mode can be selected with the optional AT command argument\n1, i.e., \"AT$DEVTIME 1\". Ommitting the argument or setting it to 0 will\ntrigger an immediate unconfirmed uplink with an empty payload.\n\nCloses #136","shortMessageHtmlLink":"Enable DeviceTimeReq piggybacking"}},{"before":"ed4a3e173a165e1af09642591a5c8aec7e723e33","after":"219dcdc84af6975a3c4a253db2246a235377518d","ref":"refs/heads/main","pushedAt":"2023-07-16T16:22:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Add options to control the release process\n\nThis patch adds a bunch of command line options to the release script\nthat could be used to control which steps of the release process get\nexecuted. The options allow disabling uploads to GitHuB and PyPI,\nskipping PGP signature generation, or skipping building the Python\nlibrary entirely.","shortMessageHtmlLink":"Add options to control the release process"}},{"before":"b16a63018eae6922ff0ce2102c90ff73b705ec94","after":"ed4a3e173a165e1af09642591a5c8aec7e723e33","ref":"refs/heads/main","pushedAt":"2023-07-16T16:20:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Add options to control the release process\n\nThis patch adds a bunch of command line options to the release script\nthat could be used to control which steps of the release process get\nexecuted. The options allow disabling uploads to GitHuB and PyPI,\nskipping PGP signature generation, or skipping building the Python\nlibrary entirely.","shortMessageHtmlLink":"Add options to control the release process"}},{"before":"dd2f2b5b829d456ac64b0d4cb164c2114472f679","after":"b16a63018eae6922ff0ce2102c90ff73b705ec94","ref":"refs/heads/main","pushedAt":"2023-07-16T01:05:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Add support for AT$DEVNONCE and AT$MCUID\n\nThe values returned by the two new AT commands will be shown in the\ndevice summary table.","shortMessageHtmlLink":"Add support for AT$DEVNONCE and AT$MCUID"}},{"before":"9e8335408cb95f7766f124a783a98de7811eb163","after":"dd2f2b5b829d456ac64b0d4cb164c2114472f679","ref":"refs/heads/main","pushedAt":"2023-07-16T00:29:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Implement AT$MCUID\n\nThis AT command can be used to obtain the globally unique ID of the\nmodem's microcontroller (MCU). Upon factory reset, the MCU ID seeds the\nDevEUI, however, the DevEUI value can be changed by the application.\n\nMCU ID is read only.\n\nCloses #81","shortMessageHtmlLink":"Implement AT$MCUID"}},{"before":"a02d0526d12a5ac71416ac665eea5af864a4aee8","after":"9e8335408cb95f7766f124a783a98de7811eb163","ref":"refs/heads/main","pushedAt":"2023-07-15T22:14:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Implement AT$DEVNONCE\n\nLoRaWAN 1.1 DevNonce is a 16-bit counter that is incremented on every\nJoin. The getter variant of this AT command could be used to obtain the\ncurrent LoRaWAN 1.1 DevNonce value. The setter variant could be used to\nupdate the device's DevNonce value in EEPROM.\n\nCloses #80","shortMessageHtmlLink":"Implement AT$DEVNONCE"}},{"before":"914df09ff4984d2065be4d96398fd46a67ba2dca","after":"a02d0526d12a5ac71416ac665eea5af864a4aee8","ref":"refs/heads/main","pushedAt":"2023-07-15T21:47:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Conditional inclusion of certification AT commands\n\nThis patch includes the three certification-related AT commands\n(AT$PORT, AT$CW, AT$CM) conditionally when the CERTIFICATION_ATCI\ncompile-time option is set to 1. The option is set to 0 by default. The\nrelease script enables the option when building binary firmware for the\nChester platform.","shortMessageHtmlLink":"Conditional inclusion of certification AT commands"}},{"before":"48d12f8e21afa17c9ff74e4abe427d3a936d5742","after":"914df09ff4984d2065be4d96398fd46a67ba2dca","ref":"refs/heads/main","pushedAt":"2023-07-08T15:26:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Fixes for the most recent build toolchains\n\nThe added flags are neccessary to compile the project with gcc 12.x\nand newer toolchains.","shortMessageHtmlLink":"Fixes for the most recent build toolchains"}},{"before":"70a9e19de253839c1e16acbc3a725d8eec37f1e6","after":"48d12f8e21afa17c9ff74e4abe427d3a936d5742","ref":"refs/heads/main","pushedAt":"2023-06-17T20:05:49.866Z","pushType":"push","commitsCount":6,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Update repository name to lora-modem","shortMessageHtmlLink":"Update repository name to lora-modem"}},{"before":"505877b6005019c0fc038ba182a484aa0bed9566","after":"70a9e19de253839c1e16acbc3a725d8eec37f1e6","ref":"refs/heads/main","pushedAt":"2023-06-17T18:32:10.225Z","pushType":"push","commitsCount":1,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Fix parameter types","shortMessageHtmlLink":"Fix parameter types"}},{"before":"29baf816455172eb7e33269989977bd87104c1a1","after":"505877b6005019c0fc038ba182a484aa0bed9566","ref":"refs/heads/main","pushedAt":"2023-06-17T15:56:55.635Z","pushType":"push","commitsCount":1,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Ignore the .env folder if it exists","shortMessageHtmlLink":"Ignore the .env folder if it exists"}},{"before":"9af396b40f871964b5305dbe65c1a7f9c4861598","after":"53fc0a67c25b05ba696aa69f3c961af0f9eeb4d7","ref":"refs/heads/receive-fifo","pushedAt":"2023-06-05T07:35:56.600Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"blavka","name":"Karel Blavka","path":"/blavka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22239151?s=80&v=4"},"commit":{"message":"Update description in lrw.h","shortMessageHtmlLink":"Update description in lrw.h"}},{"before":"8aa4db01950dda6f4b98db4b4fe8b12997ff7a40","after":"9af396b40f871964b5305dbe65c1a7f9c4861598","ref":"refs/heads/receive-fifo","pushedAt":"2023-06-05T06:55:49.844Z","pushType":"push","commitsCount":1,"pusher":{"login":"blavka","name":"Karel Blavka","path":"/blavka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22239151?s=80&v=4"},"commit":{"message":"Update description in lrw.h","shortMessageHtmlLink":"Update description in lrw.h"}},{"before":"42948a66e8fa5f8a5d13b7a6eb929b86cf511bd0","after":"8aa4db01950dda6f4b98db4b4fe8b12997ff7a40","ref":"refs/heads/receive-fifo","pushedAt":"2023-06-01T06:57:46.936Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"blavka","name":"Karel Blavka","path":"/blavka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22239151?s=80&v=4"},"commit":{"message":"Add receive fifo functionality + AT commands","shortMessageHtmlLink":"Add receive fifo functionality + AT commands"}},{"before":"09539c6615c6ff74803632f1e3fa5c6904a77381","after":"29baf816455172eb7e33269989977bd87104c1a1","ref":"refs/heads/main","pushedAt":"2023-05-31T18:36:37.784Z","pushType":"push","commitsCount":2,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Unify time property setter/getter types\n\nMake sure that the time setter and getter return and accept the same\ndate time, i.e., GPS time represented with a float value.","shortMessageHtmlLink":"Unify time property setter/getter types"}},{"before":null,"after":"42948a66e8fa5f8a5d13b7a6eb929b86cf511bd0","ref":"refs/heads/receive-fifo","pushedAt":"2023-05-31T14:40:45.640Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"blavka","name":"Karel Blavka","path":"/blavka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22239151?s=80&v=4"},"commit":{"message":"Add receive fifo functionality + AT commands","shortMessageHtmlLink":"Add receive fifo functionality + AT commands"}},{"before":"be79f64b6989b7c4b07b2a8b0e563d7273033055","after":"09539c6615c6ff74803632f1e3fa5c6904a77381","ref":"refs/heads/main","pushedAt":"2023-05-30T03:44:53.369Z","pushType":"push","commitsCount":1,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Add support for AT$TIME and AT$DEVTIME\n\nThis patch adds support for the new time-related AT commands to the\ncompanion Python library. The library provides a convenient method for\nworking with the modem's RTC clock:\n\nlora time:\n +-------------+----------------------------------+\n | Device time | 2023-05-29 23:31:27.191000-04:00 |\n | Host time | 2023-05-29 23:31:27.099966-04:00 |\n | Difference | 91.034 ms |\n +-------------+----------------------------------+\n\nlora time --sync\n Synchronizing time in device /dev/tty.usbserial-A6023NZX...done.\n +-------------+----------------------------------+\n | Device time | 2023-05-29 23:33:58.032000-04:00 |\n +-------------+----------------------------------+\n\nCloses #134","shortMessageHtmlLink":"Add support for AT$TIME and AT$DEVTIME"}},{"before":"0b0cebf738ca5683e037e283b89817406de7b32f","after":"be79f64b6989b7c4b07b2a8b0e563d7273033055","ref":"refs/heads/main","pushedAt":"2023-05-29T21:09:21.235Z","pushType":"push","commitsCount":2,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Compensate for UART transmission time\n\nWhen transmitting time information over ATCI UART, calculate the time it\ntakes to transmit the message and adjust the timestamp so that it is\naccurate when the recipient receives it. Applies to AT$DEVTIME,\nAT$TIME?, and AT$TIME=...\n\nCloses #135","shortMessageHtmlLink":"Compensate for UART transmission time"}},{"before":"085b28cc62029349b3d90dd72bb6a2894ebf0e48","after":"0b0cebf738ca5683e037e283b89817406de7b32f","ref":"refs/heads/main","pushedAt":"2023-05-29T04:51:47.439Z","pushType":"push","commitsCount":1,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Return synchronized time relative to the GPS epoch\n\nThe LoRaWAN network returns the time as number of seconds and\nmilliseconds since the GPS epoch. We return the same data to the\napplication since we cannot reliably convert the time to proper UTC\ntime. That operation requires a leap second table.","shortMessageHtmlLink":"Return synchronized time relative to the GPS epoch"}},{"before":"1c4dea6415095ffbcdc6cc2d79ccd54824d806f5","after":"085b28cc62029349b3d90dd72bb6a2894ebf0e48","ref":"refs/heads/main","pushedAt":"2023-05-28T02:15:08.370Z","pushType":"push","commitsCount":2,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Update method lncheck\n\nThis patch contains slight modifications to the handling of +ANS events\nin the lncheck methods. These changes are necessary since the +ANS\nnotification will now also be used to report modem's current time during\ntime synchronization.","shortMessageHtmlLink":"Update method lncheck"}},{"before":"1a34435b764f592705bbcd7cbce63a80b2290dec","after":"1c4dea6415095ffbcdc6cc2d79ccd54824d806f5","ref":"refs/heads/main","pushedAt":"2023-05-27T19:50:43.841Z","pushType":"push","commitsCount":1,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Implement time synchronization\n\nThis commit implements device time synchronization via the DeviceTimeReq\nLoRaWAN MAC command. The command requires LoRaWAN >= 1.0.3. A new AT\ncommand AT$DEVTIME can be used to trigger time synchronization. A POSIX\ntimestamp is returned to the application in a +ANS response.\n\nPart of #73","shortMessageHtmlLink":"Implement time synchronization"}},{"before":"b9038a57800fb47c6d63c0db568446de58485a8e","after":"1a34435b764f592705bbcd7cbce63a80b2290dec","ref":"refs/heads/main","pushedAt":"2023-05-20T19:28:26.248Z","pushType":"push","commitsCount":2,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Merge branch 'main' of github.com:hardwario/lora-modem-abz","shortMessageHtmlLink":"Merge branch 'main' of github.com:hardwario/lora-modem-abz"}},{"before":"205b7c10e400c8d5ef0f87da8b71b71650379ed9","after":"b9038a57800fb47c6d63c0db568446de58485a8e","ref":"refs/heads/main","pushedAt":"2023-05-20T17:32:17.884Z","pushType":"push","commitsCount":1,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Update README.md","shortMessageHtmlLink":"Update README.md"}},{"before":"698b503b7e486aa2e922d06a36d790f72682fade","after":"205b7c10e400c8d5ef0f87da8b71b71650379ed9","ref":"refs/heads/main","pushedAt":"2023-05-20T17:24:42.276Z","pushType":"push","commitsCount":1,"pusher":{"login":"janakj","name":"Jan Janak","path":"/janakj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/574979?s=80&v=4"},"commit":{"message":"Fix LoRaWAN MAC internal initialization\n\nThis commit fixes the internal initialization of the LoRaMAC-node\nlibrary. This firmware aims to be backward compatible with Murata Modem\nfirmware which initializes the MAC in ABP mode upon factory default. We\nattempted to do the same, but the code that reconfigured the MAC into\nABP mode upon factory default was incorrect. It put the MAC into\nincorrect state.\n\nAs a consequence, not all state previously saved in NVM was correctly\nrecovered, including a previously saved application key.\n\nCloses #132","shortMessageHtmlLink":"Fix LoRaWAN MAC internal initialization"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAETalfVwA","startCursor":null,"endCursor":null}},"title":"Activity ยท hardwario/lora-modem"}