{"id":21477744,"url":"https://github.com/edward62740/i2ds","last_synced_at":"2026-04-18T00:31:38.626Z","repository":{"id":47504316,"uuid":"444317251","full_name":"edward62740/I2DS","owner":"edward62740","description":"Security sensor system with app control and cloud messaging capabilities.","archived":false,"fork":false,"pushed_at":"2022-09-29T13:11:08.000Z","size":935345,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-22T13:55:22.918Z","etag":null,"topics":["efr32","fcm-notifications","firebase","freertos","iot-sensors","micrium","security","sub-ghz","wifi"],"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/edward62740.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}},"created_at":"2022-01-04T06:55:52.000Z","updated_at":"2023-05-28T03:42:12.000Z","dependencies_parsed_at":"2023-01-18T18:45:47.606Z","dependency_job_id":null,"html_url":"https://github.com/edward62740/I2DS","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/edward62740/I2DS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edward62740%2FI2DS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edward62740%2FI2DS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edward62740%2FI2DS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edward62740%2FI2DS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edward62740","download_url":"https://codeload.github.com/edward62740/I2DS/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edward62740%2FI2DS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31951253,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T17:29:20.459Z","status":"ssl_error","status_checked_at":"2026-04-17T17:28:47.801Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["efr32","fcm-notifications","firebase","freertos","iot-sensors","micrium","security","sub-ghz","wifi"],"created_at":"2024-11-23T11:14:57.589Z","updated_at":"2026-04-18T00:31:38.190Z","avatar_url":"https://github.com/edward62740.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Internal Intruder Detection System (I\u003csup\u003e2\u003c/sup\u003eDS)\n\n## Overview\nThis is a sub-GHz proprietary security sensor system. The sensors listed below will enter sensing mode once enabled through the [CPN GUI](https://github.com/edward62740/i2ds/blob/master/CPN%20ESP32/src/app_gui.cpp) or the [mobile app](https://github.com/edward62740/i2ds/tree/master/App). Any detected intrusion will then trigger a [FCM](https://github.com/edward62740/i2ds-fcm) background notification on the smartphones of the users with the mobile app installed.\nUsed in conjunction with [WMNS](https://github.com/edward62740/Wireless-Mesh-Network-System) for integrated data collection and security.\n\n## Related/Parallel Development\n[Firebase Cloud Messaging](https://github.com/edward62740/i2ds-fcm) for providing mobile notifications of security events\u003cbr\u003e\n[Google Actions + Dialogflow](https://github.com/edward62740/i2ds-assistant) to integrate with Google Home systems\u003cbr\u003e\n[Camera + tflite Person Detector](https://github.com/edward62740/i2ds-sentinel) to provide image capture and continuous on-device person detection with tensorflow lite \u003cbr\u003e\n[Firebase Responder](https://github.com/edward62740/firebase-responder) to trigger other IoT devices' actions \u003cbr\u003e\n\n## System Structure\n![](https://github.com/edward62740/i2ds/blob/master/Documentation/functional.png)\n#### Subnetwork\nAll network management and communication between sensors is restricted to this region. Some management functions are exposed to the Wi-Fi/GUI co-processor via USART.\n#### Local Sensor Network\nIncludes the subnetwork, as well as the CPN Wi-Fi section, which is used to communicate with Firebase RTDB.\n#### Mobile App\nUsed to control the active/inactive state of the sensors, receive status updates.\u003cbr\u003e\u003cbr\u003e\n\u003cimg src=\"https://github.com/edward62740/i2ds/blob/master/Documentation/App-main.jpg\" alt=\"App\" width=\"200\"/\u003e\n\u003cimg src=\"https://github.com/edward62740/i2ds/blob/master/Documentation/App-settings.jpg\" alt=\"App\" width=\"200\"/\u003e\n\u003cimg src=\"https://github.com/edward62740/i2ds/blob/master/Documentation/App-errors.jpg\" alt=\"App\" width=\"200\"/\u003e\n#### FCM\nUsed to detect certain changes to the RTDB (i.e sensor triggered), and notify the user even if the app is not running.\n\n \n ## Sensors\n CPN             |  PIRSN      |  ACSN\n:-------------------------:|:-------------------------:|:-------------------------:\n\u003cimg src=\"https://github.com/edward62740/i2ds/blob/master/Documentation/ic_cpn.png\" alt=\"CPN\" width=\"200\"/\u003e\u003cbr /\u003eThis is the main network controller \u003cbr\u003e and provides a touch GUI for setting sensors|\u003cimg src=\"https://github.com/edward62740/i2ds/blob/master/Documentation/ic_pirsn.png\" alt=\"PIRSN\" width=\"200\"/\u003e\u003cbr /\u003eThis is a PIR sensor node for detecting *motion* |  \u003cimg src=\"https://github.com/edward62740/i2ds/blob/master/Documentation/ic_acsn.png\" alt=\"ACSN\" width=\"200\"/\u003e\u003cbr /\u003eThis is a hall-effect sensor for detecting \u003cbr\u003e open/closed doors and windows\n\n## Important Information\n### PIRSN\n* This sensor uses EKMB1110112 PIR sensor to detect motion up to a distance of 7m (indoors).\n* Typical 5.5uA in sleep, avg 19uA with 2s polling and 5s reporting interval.\n\u003cimg src=\"https://github.com/edward62740/I2DS/blob/master/Documentation/prod-pirsn.jpg\" alt=\"pirsn\" width=\"200\"/\u003e\n\n\n### ACSN\n* This sensor uses the SM353LT hall effect sensor to detect when the sensor's magnet moves away (door opens).\n* Typical 5.3uA in sleep, avg 19uA with 2s polling and 5s reporting interval.\n\u003cimg src=\"https://github.com/edward62740/I2DS/blob/master/Documentation/prod-acsn.jpg\" alt=\"pirsn\" width=\"200\"/\u003e\n\n### CPN\n* This device contains two microcontrollers, for the sensor network [(EFR32xG23)](https://www.silabs.com/wireless/proprietary/efr32fg23-sub-ghz-wireless-soc) and Wi-Fi/GUI (ESP32). Sensor network functions are exposed to the Wi-Fi processor via USART. While there is significant traffic, in effect the only change that can be made to the sensor network is to activate/inactivate the sensors. Doing so also requires the relevant Firebase auth credentials. This provides some protection from attacks based on injecting false data into the system to incapacitate the sensor network.\n* This device also provides internal battery backup with FCM notification when triggered. It is assumed that physical security beyond debug lock, encryption etc. is not crucial as the sensors would have already triggered warnings before the CPN can be tampered with. This functionality is mostly to keep the system afloat during a power outage (but this must be used with a backup 4G network or other such systems).\n\u003cimg src=\"https://github.com/edward62740/I2DS/blob/master/Documentation/prod-cpn.jpg\" alt=\"pirsn\" width=\"200\"/\u003e\n\n### Overall System\n* From testing, there was a net delay of 3-4s from sensor triggered to receiving FCM notification on client smartphone. Results will vary based on Internet speeds.\n* Sensors are capable of receiving messages to implement the aforementioned enabling/disabling feature. This is necessary to prevent constant triggering of the sensor when not in use, and is much more energy efficient than letting the sensor trigger all the time and filter on the coordinator side.\n* The subnetwork communicates in the 915MHz ISM band, but a simple hardware swap of the chip antenna (W3211 -\u003e W3214) allows for reconfiguration to 868MHz band. RF matching is optimized for both. Modulation/frequency is set to OQPSK 500kbps, to increase operational range set to DSSS with lower bitrate, enable FEC.\n* For increased network size, where \u003e2 hops are expected, the ACK timeout should be increased.\n\n## Security\n* The sensor HW is built around the [EFR32xG23](https://www.silabs.com/wireless/proprietary/efr32fg23-sub-ghz-wireless-soc) series, industry-leading at the time of this release, with PSA 3 level security qualifications. Anti-tamper functions are configured such that the sensor will automatically raise a warning and drop out of the network if tamper is detected.\n* Sensor OTA communication is AES encrypted with [Mbed TLS](https://github.com/Mbed-TLS/mbedtls).\n* Only necessary state control functions are exposed outside of the subnetwork.\n* Parts of this project are not published due to security concerns. Please contact the developer for more information.\n\n## Upkeep\n* Estimated $0.00 cost from Firebase cloud functions for triggering [FCM](https://github.com/edward62740/i2ds-fcm), unless triggered more than 2 million times/month for some reason.\n* More than 2 years battery life for sensors, using low-cost CR2450 cells.\n* Electricity costs from CPN. Consumes less power than a night-light.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedward62740%2Fi2ds","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedward62740%2Fi2ds","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedward62740%2Fi2ds/lists"}