{"id":13894196,"url":"https://github.com/RobTillaart/DAC8550","last_synced_at":"2025-07-17T09:31:12.389Z","repository":{"id":45408759,"uuid":"401054010","full_name":"RobTillaart/DAC8550","owner":"RobTillaart","description":"Arduino library for DAC8550 SPI Digital Analog Convertor","archived":false,"fork":false,"pushed_at":"2024-05-23T17:39:10.000Z","size":22,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-19T06:33:16.181Z","etag":null,"topics":["arduino","dac","esp32"],"latest_commit_sha":null,"homepage":"","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/RobTillaart.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","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,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"RobTillaart","custom":"https://www.paypal.me/robtillaart"}},"created_at":"2021-08-29T13:52:35.000Z","updated_at":"2024-10-01T19:08:48.000Z","dependencies_parsed_at":"2024-01-20T13:25:13.623Z","dependency_job_id":"5e185cb7-2f49-4fd1-9f1c-f5e37fbe8aa2","html_url":"https://github.com/RobTillaart/DAC8550","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobTillaart%2FDAC8550","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobTillaart%2FDAC8550/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobTillaart%2FDAC8550/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobTillaart%2FDAC8550/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RobTillaart","download_url":"https://codeload.github.com/RobTillaart/DAC8550/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226248197,"owners_count":17595158,"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":["arduino","dac","esp32"],"created_at":"2024-08-06T18:01:26.249Z","updated_at":"2024-11-24T23:30:14.997Z","avatar_url":"https://github.com/RobTillaart.png","language":"C++","funding_links":["https://github.com/sponsors/RobTillaart","https://www.paypal.me/robtillaart"],"categories":["C++"],"sub_categories":[],"readme":"\n[![Arduino CI](https://github.com/RobTillaart/DAC8550/workflows/Arduino%20CI/badge.svg)](https://github.com/marketplace/actions/arduino_ci)\n[![Arduino-lint](https://github.com/RobTillaart/DAC8550/actions/workflows/arduino-lint.yml/badge.svg)](https://github.com/RobTillaart/DAC8550/actions/workflows/arduino-lint.yml)\n[![JSON check](https://github.com/RobTillaart/DAC8550/actions/workflows/jsoncheck.yml/badge.svg)](https://github.com/RobTillaart/DAC8550/actions/workflows/jsoncheck.yml)\n[![GitHub issues](https://img.shields.io/github/issues/RobTillaart/DAC8550.svg)](https://github.com/RobTillaart/DAC8550/issues)\n\n[![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/RobTillaart/DAC8550/blob/master/LICENSE)\n[![GitHub release](https://img.shields.io/github/release/RobTillaart/DAC8550.svg?maxAge=3600)](https://github.com/RobTillaart/DAC8550/releases)\n[![PlatformIO Registry](https://badges.registry.platformio.org/packages/robtillaart/library/DAC8550.svg)](https://registry.platformio.org/libraries/robtillaart/DAC8550)\n\n\n# DAC8550 - experimental\n\nArduino library for DAC8550 SPI Digital Analog Convertor.\n\n\n## Description\n\nThe DAC8550 is a SPI based 16 bit DAC with one channel.\n\n**WARNING** this library is not tested with real hardware yet.\nIt is derived from the DAC8551 library.\n\n\n#### 0.3.0 Breaking change\n\nVersion 0.3.0 introduced a breaking change to improve handling the SPI dependency.\nThe user has to call **SPI.begin()** or equivalent before calling **DAC.begin()**.\nOptionally the user can provide parameters to the **SPI.begin(...)**\n\n\n#### 0.2.0 Breaking change\n\nThe version 0.2.0 has breaking changes in the interface. \nThe essence is removal of ESP32 specific code from the library. \nThis makes it possible to support the ESP32-S3 and other processors in the future. \nAlso it makes the library a bit simpler to maintain.\n\nNote order of parameters changed.\n\n\n#### Related\n\n- https://github.com/RobTillaart/DAC8550\n- https://github.com/RobTillaart/DAC8551\n- https://github.com/RobTillaart/DAC8552\n- https://github.com/RobTillaart/DAC8554\n- https://github.com/RobTillaart/MCP_DAC\n- https://github.com/RobTillaart/AD5680  (18 bit DAC)\n\n\n## Interface\n\n```cpp\n#include \"DAC8550\"\n```\n\n### Core\n\n- **DAC8550(uint8_t select, SPIClassRP2040 \\* spi = \u0026SPI)** Constructor for hardware SPI, RP2040.\n- **DAC8550(uint8_t select, SPIClass \\* spi = \u0026SPI)** Constructor for hardware SPI, other.\n- **DAC8550(uint8_t select, uint8_t spiData, uint8_t spiClock)** Constructor for the software SPI.\n- **void begin()** initializes library internals.\n- **void setValue(uint16_t value)** set the value of the channel to 0 - 65535\n- **uint16_t getValue()** returns the last value written.\n\n\n### Hardware SPI\n\nTo be used only if one needs a specific speed.\n\n- **void setSPIspeed(uint32_t speed)** set SPI transfer rate.\n- **uint32_t getSPIspeed()** returns SPI transfer rate.\n- **bool usesHWSPI()** returns true if HW SPI is used.\n  \n\n### Power down\n\ncheck datasheet for details.\n\n- **void setPowerDown(uint8_t powerDownMode)** sets power down mode. 0 - 3.\n- **uint8_t getPowerDownMode()** returns last written mode.\n\n\n| Power down mode            | Value |\n|:---------------------------|:-----:|\n| DAC8550_POWERDOWN_NORMAL   |   0   |\n| DAC8550_POWERDOWN_1K       |   1   |\n| DAC8550_POWERDOWN_100K     |   2   |\n| DAC8550_POWERDOWN_HIGH_IMP |   3   |\n\n\n## Operation\n\nSee examples\n\n\n## Future\n\n#### Must\n\n- improve documentation\n\n#### Should\n\n- testing with real hardware\n\n#### Could\n\n- improve code incl readability\n  - spiData =\u003e spiDataOut\n\n#### Wont\n\n\n## Support\n\nIf you appreciate my libraries, you can support the development and maintenance.\nImprove the quality of the libraries by providing issues and Pull Requests, or\ndonate through PayPal or GitHub sponsors.\n\nThank you,\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRobTillaart%2FDAC8550","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRobTillaart%2FDAC8550","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRobTillaart%2FDAC8550/lists"}