{"id":26674574,"url":"https://github.com/turta-io/iothat","last_synced_at":"2026-02-12T06:12:00.202Z","repository":{"id":216161772,"uuid":"87008392","full_name":"Turta-io/IoTHAT","owner":"Turta-io","description":"Turta IoT HAT Source, Reference and Manual.","archived":false,"fork":false,"pushed_at":"2019-11-09T05:06:42.000Z","size":8818,"stargazers_count":24,"open_issues_count":1,"forks_count":7,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-11-27T13:26:47.487Z","etag":null,"topics":["am312","apds-9960","apds9960","bme280","bme680","iot","iothat","lca717","ltv-827","max30100","mma8491q","pc817","raspberrypi","sensor","tsop75338w","turta","uwp","veml6075","vsmb10940x01","windows10iotcore"],"latest_commit_sha":null,"homepage":"https://www.turta.io/iothat","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/Turta-io.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,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-04-02T18:56:17.000Z","updated_at":"2022-12-28T10:03:04.000Z","dependencies_parsed_at":"2024-01-08T19:24:26.014Z","dependency_job_id":"a03484ff-8c40-474e-808b-f904c9fe0757","html_url":"https://github.com/Turta-io/IoTHAT","commit_stats":null,"previous_names":["turta-io/iothat"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Turta-io/IoTHAT","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Turta-io%2FIoTHAT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Turta-io%2FIoTHAT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Turta-io%2FIoTHAT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Turta-io%2FIoTHAT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Turta-io","download_url":"https://codeload.github.com/Turta-io/IoTHAT/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Turta-io%2FIoTHAT/sbom","scorecard":{"id":144455,"data":{"date":"2025-08-11","repo":{"name":"github.com/Turta-io/IoTHAT","commit":"fe37801c852c1bff3564a1243c9ee82d743cee70"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.9,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 0/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: Driver/Windows10IoTCore/TurtaIoTHAT.dll:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-16T09:06:47.466Z","repository_id":216161772,"created_at":"2025-08-16T09:06:47.466Z","updated_at":"2025-08-16T09:06:47.466Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29360484,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T01:03:07.613Z","status":"online","status_checked_at":"2026-02-12T02:00:06.911Z","response_time":55,"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":["am312","apds-9960","apds9960","bme280","bme680","iot","iothat","lca717","ltv-827","max30100","mma8491q","pc817","raspberrypi","sensor","tsop75338w","turta","uwp","veml6075","vsmb10940x01","windows10iotcore"],"created_at":"2025-03-26T02:20:16.672Z","updated_at":"2026-02-12T06:12:00.197Z","avatar_url":"https://github.com/Turta-io.png","language":"C#","readme":"# IoT HAT\nIoT HAT orchestrates high-end components demanding in IoT scenarios. It combines sensors, relays, IO�s and an IR remote transceiver on a single board. This allows you to easily create complex scenarios without the hassle of cable clutter. Whether you are a beginner or a professional, IoT HAT will help you to develop the best in the shortest possible time.  \n\n## Documentation\n\nVisit [docs.turta.io](https://docs.turta.io) for documentation.\n\n## Sensors and Devices\n\n### Bosch Sensortec BME680 Environmental Sensor\n\nMeasures temperature, relative humidity, pressure and gas resistance. Calculates altitude and indoor air quality.\n\n* Gas Resistance: Measures gas resistance in Ohms. If used with Bosch's drivers, 0 to 500 IAQ (Indoor Air Quality) result can be read.\n* Temperature: Measures -40C to 85C temperature with +/- 1C accuracy and 0.01C resolution.\n* Humidity: Measures relative humidity within 0% to 100% range, in 3% accuracy and 0.008% resolution.\n* Pressure: Measures air pressure from 300 to 1100hPa in 0.18Pa resolution.\n* Altitude: The driver calculates altitude from sea level if air pressure at the sea level is given.\n\nThe sensor uses 0x76 address over the I2C bus.\n\n_IoT HAT will heat up as your Raspberry Pi warms up in hot environments. In this case, the sensor will read the temperature, humidity and pressure above normal levels. Keeping the device upright helps hot air to escape._\n\n\n### Broadcom APDS-9960 Ambient light, RGB, Gesture and Proximity Sensor\n\nMeasures ambient light, RGB values and proximity. Detects hand gestures.\n\n* Ambient Light: Measures ambient light with UV and IR blocking features.\n* Color Detection: Measures RGBC channels with UV and IR blocking features.\n* Hand gesture detection: Detects left, right, up and down directions within 30cm to the sensor.\n* Proximity detection: Detects distance to the object up to 30cm from the sensor.\n\nThe sensor uses 0x39 address on the I2C bus.\n\n### Vishay VEML6075 UV Sensor\n\nMeasures UVA and UVB. Calculates UV A Index, UVB Index and average UV Index.\n\n* UVA: Measures wavelenghts between 315nm to 400nm in 16-bit resolution.\n* UVB: Measures wavelenghts between 280nm to 315nm in 16-bit resolution.\n* UV Index: Calculates UV radiation.\n\nThe sensor uses 0x10 address over the I2C bus.\n\n### NXP MMA8491Q Accelerometer \u0026 Tilt Sensor\n\nMeasures 3 axis acceleration. Generates interrupt on tilt detect.\n\n* Acceleration: Measures +/- 8g acceleration data with 1 mg accuracy.\n* Tilt Detection: Generates interrupt over 0.688g acceleration or 43.5 degrees of tilt. IoT HAT uses Z-axis interrupt output.\n\nThe sensor uses 0x55 address over the I2C bus.\n\n### AM312 Passive IR Motion Sensor\n\nDetects human movement.\n\n* Motion Detection: Detects the movement of heat emitting objects.\n\nThe sensor uses GPIO25 pin to generate interrupt.\n\n### LCA717S Solid State Relay\n\nTurns DC devices on or off.\n\n* 2x Relays: DC30V 2A solid state relays can switch small devices.\n\nRelays can be activated using GPIO 20 and 12 pins respectively.\n\n_Do not use devices whose peak current consumption will be over 2A._\n\n### LTV-827S Photocoupler\n\nOptically isolates 4x inputs.\n\n* 4x Photocoupler Inputs: Reads optically isolated 5V inputs.\n\nPhotocoupler inputs can be read using GPIO 13, 19, 16 and 26 pins respectively.\n\n### Vishay TSOP75338W IR Receiver \u0026 VSMB10940X01 IR Transmitter\n\nDecodes and encodes 38KHz NEC protocol IR remote commands.\n\n* Infrared Receiver: Decodes 38KHz NEC protocol messages. NEC Protocol transfers 4-Bytes of data. On message receive, onboard microcontroller generates an interrupt. Then, received message can be read over the I2C bus.\n* Infrared Transmitter: Encodes 4-Bytes of data to 38KHz NEC protocol. The IR emitter is at 940nm and 104mW power.\n\nThe microcontroller uses 0x28 address over the I2C bus. Interrupt pin is GPIO18.\n\n### ADC\n\nMeasures 4x analog inputs.\n\n* 4x Analog Inputs: Measures input voltages from 0V to 3.3V with 1/1024 (10-bits) resolution.\n\nThe microcontroller uses 0x28 address over the I2C bus.\n\n### I2C and I/O Sockets\n\nBoard has 1x I2C and 4x I/O connection.\n\n* I2C Socket: Provides I2C connection for external devices, such as sensors and displays.\n* 4x I/O Sockets: Each socket provides analog input and GPIO pin. GPIO Pins are directly conected to the Raspberry Pi.\n\nGPIO Pins on I/O sockets are connected to Raspberry Pi's GPIO 21, 22, 23 and 24 pins respectively.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fturta-io%2Fiothat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fturta-io%2Fiothat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fturta-io%2Fiothat/lists"}