{"id":22923512,"url":"https://github.com/ams-osram/osp_aotop","last_synced_at":"2026-05-03T02:42:09.528Z","repository":{"id":252422545,"uuid":"833989870","full_name":"ams-OSRAM/OSP_aotop","owner":"ams-OSRAM","description":"The landing page for the Open System Protocol (OSP) on Arduino with top-level sketches and documentation.","archived":false,"fork":false,"pushed_at":"2025-05-21T13:55:08.000Z","size":49872,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-21T14:56:07.933Z","etag":null,"topics":["arduino","as1163","e3731i","library","osp","rgb-led"],"latest_commit_sha":null,"homepage":"https://ams-osram.com/technology/open-system-protocol","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ams-OSRAM.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","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":"2024-07-26T07:31:54.000Z","updated_at":"2025-05-21T13:52:22.000Z","dependencies_parsed_at":"2024-08-09T17:49:27.573Z","dependency_job_id":"3b0fa0db-76c9-42a8-b916-d5e2e4dfdac4","html_url":"https://github.com/ams-OSRAM/OSP_aotop","commit_stats":null,"previous_names":["ams-osram-group/osp_aotop","ams-osram/osp_aotop"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/ams-OSRAM/OSP_aotop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ams-OSRAM%2FOSP_aotop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ams-OSRAM%2FOSP_aotop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ams-OSRAM%2FOSP_aotop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ams-OSRAM%2FOSP_aotop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ams-OSRAM","download_url":"https://codeload.github.com/ams-OSRAM/OSP_aotop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ams-OSRAM%2FOSP_aotop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32556771,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T00:31:16.350Z","status":"online","status_checked_at":"2026-05-03T02:00:09.297Z","response_time":103,"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":["arduino","as1163","e3731i","library","osp","rgb-led"],"created_at":"2024-12-14T08:15:54.342Z","updated_at":"2026-05-03T02:42:09.522Z","avatar_url":"https://github.com/ams-OSRAM.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"![OSP](extras/osp.jpg)\n# Open System Protocol (OSP) on Arduino\n\nWelcome to the [landing page](https://github.com/ams-OSRAM/OSP_aotop) \nof the **aolibs** (short for Arduino OSP libraries from ams-OSRAM) \nto be used with the **Arduino OSP evaluation kit**.\n\n\n## Introduction\n\nOSP or Open System Protocol was developed by ams OSRAM for dynamic lighting,\nfor example in car interiors. OSP is open for everybody and free of license. \n\nAn OSP based system consist of an MCU (the \"Root MCU\") connected to a series \nof (up to 1000) daisy chained OSP nodes. OSP nodes contain or drive (RGB) LED \nmodules, or implement gateways to other protocols like I2C. The SAID or\nStand Alone Intelligent Driver, officially known as AS1163, is an example of\nan OSP node with external LEDs and an integrated I2C bridge. The E3731i\nor Intelligent RGB (RGBI) is an example of an OSP node with an integrated red, \ngreen and blue LED.\n\n![OSP chain](extras/ospchain.jpg)\n\n\nams OSRAM supplies an evaluation kit demonstrating OSP. This kit is known as \nthe _Arduino OSP evaluation kit_. With this evaluation kit comes \nsoftware, which is partitioned over several libraries, the _aolibs_. \nEach library is stored in its own GitHub repository.\nThis document is part of one of those repositories/libraries known as _aotop_. \nHowever, _aotop_ is not really a library (with reusable code), but rather a \ncontainer for top level demo applications (which use the real libraries), and \na container for top-level documentation (like this readme and for example \ntraining material). The diagram below shows an overview of all _aolibs_.\n\n![aolibs in context](extras/aolibs.drawio.png)\n\nAll _aolibs_ (including _aotop_) are registered as Arduino libraries.\nLibrary _aotop_ is registered as an Arduino library which is dependent \non all others. \nUse the Library Manager of the Arduino IDE to search for _aotop_ \n(\"OSP ToplevelSketches aotop\"), install it and all others will \nalso be installed.\n\nThere is a dedicated [Getting started manual](gettingstarted.md) \nfor the evaluation kit. It describes what hard and software \ncomponents are needed (from the evaluation kit and the libraries), \nand how to turn on  the first RGBs. Those who want to bring up \ntheir own hardware, we suggest to have a look at \n[aospi_bringup](https://github.com/ams-OSRAM/OSP_aospi/tree/main/examples/aospi_bringup).\n\n\n## Links\n\nThis section links to various resources.\n\n- Open System Protocol [website](https://ams-osram.com/technology/open-system-protocol).\n\n- Open System Protocol application note [OSP specification](https://look.ams-osram.com/m/46e569ad50283dc5/original/OSIRE-E3731i-Open-System-Protocol.pdf)\n ([previous](https://look.ams-osram.com/m/36bafc7159df087a/original/OSIRE-E3731i-Open-System-Protocol-1-0.pdf)).\n\n- [Landing page](https://github.com/ams-OSRAM/OSP_aotop) for the _aolibs_ \n  (Arduino OSP libraries from ams-OSRAM) on GitHub (this page).\n\n  - [Getting started manual](gettingstarted.md);\n\n  - [Training slides and videos, manuals, appnotes](extras/manuals/);\n  \n  - [OSPprobe](examples/ospprobe) network sniffer.\n\n- The [aolibs](https://github.com/orgs/ams-OSRAM/repositories?q=OSP_ao)\n  (on the ams OSRAM GitHub [site](https://github.com/ams-OSRAM/)): \n\n  - [aotop](https://github.com/ams-OSRAM/OSP_aotop) (this repo) with _Top level sketches_;\n  - [aoapps](https://github.com/ams-OSRAM/OSP_aoapps) library with _Reusable apps_;\n  - [aoui32](https://github.com/ams-OSRAM/OSP_aoui32) library with _UI drivers for OSP32 board_;\n  - [aomw](https://github.com/ams-OSRAM/OSP_aomw) library with _Middleware_;\n  - [aocmd](https://github.com/ams-OSRAM/OSP_aocmd) library with a _Command interpreter_;\n  - [aoosp](https://github.com/ams-OSRAM/OSP_aoosp) library with _Telegrams_;\n  - [aospi](https://github.com/ams-OSRAM/OSP_aospi) library with a _2-wire SPI_ driver;\n  - [aoresult](https://github.com/ams-OSRAM/OSP_aoresult) library with _Result codes_.\n\n- Related products\n  - OSP\n    - RGBi [E3731i](https://ams-osram.com/products/leds/multi-color-leds/osram-osire-e3731i-krtbi-d2lm31-31) product page (OSP node with built-in RGB LEDs);\n    - SAID [AS1163](https://ams-osram.com/products/drivers/led-drivers/ams-as1163-automotive-9-channel-stand-alone-intelligent-led-driver-ic) product page (OSP node with drivers for 9 external LEDs);\n    - SAIDB [AS1163B](https://ams-osram.com/products/drivers/led-drivers/ams-as1163b-automotive-6-channel-stand-alone-intelligent-led-driver-ic) product page (OSP node with drivers for 6 external LEDs).\n  - LEDs in the EVK\n    - Top looker [E3323](https://ams-osram.com/products/leds/multi-color-leds/osram-osire-e3323-krtbdwlm31-32) product page (automotive ambient RGB);\n    - Side looker [E5515](https://ams-osram.com/products/leds/multi-color-leds/osram-osire-e5515-krtbaelps1-32) product page (automotive interior RGB).\n  - Sensors in the EVK\n    - Temperature sensor [AS6212](https://ams-osram.com/products/sensor-solutions/temperature-sensors/ams-as621x-temperature-sensors) product page (high accuracy digital I2C sensor);\n    - Light sensor [SFH5721](https://ams-osram.com/products/sensor-solutions/ambient-light-color-spectral-proximity-sensors/osram-chip-led-sfh-5721) product page (ambient light and infrared I2C sensor);\n    - Position sensor [AS5600](https://ams-osram.com/products/sensor-solutions/position-sensors/ams-as5600-position-sensor) product page (digital magnetic rotary position sensor).\n\n- [Arduino OSP evaluation kit](https://ams-osram.com/products/boards-kits-accessories/kits/ams-as1163-qf-evm-kt-osp-evaluation-kit)\n  contains several boards, here are the (latest) [schematics](extras/schematics):\n\n  - 1× OSP32 ([schematics](extras/schematics/OSP32_complete_v11.pdf)): root MCU board with an ESP32 (flashed with the [saidbasic](examples/saidbasic) demo), two SAIDs, and an I2C EEPROM (not flashed);\n  - 1× SAIDbasic ([schematics](extras/schematics/SAIDbasic_complete_v8.pdf)): demo board with 3 SAID and 4 RGBIs, I/O-expander and I2C EEPROM flashed with [rainbow](examples/eepromflasher) script;\n  - 1× SAIDsense ([schematics](extras/schematics/SAIDSense_v6.pdf)): demo board with 3 sensors, a selector and a display;\n  - 1× RGBIstrip ([schematics](extras/schematics/OSIRE_E3731i_V2.3.pdf)): demo board with 20 RGBIs;\n    ⚠️**WARNING**⚠️ New RGBI strips have integrated terminator, see ([schematics](extras/schematics/OSIRE_E3731i_V2.3.pdf)) for details.\n  - 1× SAIDlooker ([schematics](extras/schematics/SAIDLooker_complete_v4.pdf)): demo board with 3 SAIDs;\n  - 2× Terminator ([schematics](extras/schematics/Terminator_complete_v3.pdf));\n  - 2× EEPROM stick ([schematics](extras/schematics/I2CEEPROMstick-schematics_v2.pdf)): EEPROMs flashed with respectively the [bouncingblock](examples/eepromflasher) and [colormix](examples/eepromflasher) script;\n  - 2× CAN adapter ([schematics](extras/schematics/CANadapter_complete_v3.2.pdf));\n  - 5× ERNI cable ([supplier](https://www.distrelec.nl/en/ribbon-cable-27mm-cores-200mm-black-erni-839017/p/14362654)).\n  \n\n(end of top-level documentation)\n\n-----------------------------------------------------------------------------\n-----------------------------------------------------------------------------\n\n(begin of library specific documentation)\n\n\n# OSP ToplevelSketches aotop\n\nLibrary \"OSP ToplevelSketches aotop\", usually abbreviated to \"aotop\", \nis one of the **aolibs**; short for Arduino OSP libraries from ams-OSRAM.\nThis suite implements support for chips that use the Open System Protocol, \nlike the AS1163 (\"SAID\") or the OSIRE E3731i (\"RGBi\").\nThe landing page for the _aolibs_ is on \n[GitHub](https://github.com/ams-OSRAM/OSP_aotop).\n\n\n## Introduction\n\nLibrary _aotop_ is at the top of the dependency graph.\nIt contains no (library) code; but it serves several other functions.\n- It contains top-level sketches for advanced demos \n  (using the Arduino IDE examples mechanism).\n  See next section for an overview.\n- It is made dependent on all Open System Protocol libraries (aolibs),\n  so installing _aotop_ via the Arduino IDE will install all other \n  libraries as well.\n- It is the \"landing\" place for the Open System Protocol software,\n  providing global documentation (Getting Started, Training) with \n  links to all related resources.\n\n![aotop in context](extras/aolibs-aotop.drawio.png)\n\n\n## Examples\n\nThe examples in _aotop_ are not examples in the Arduino IDE sense \n(explaining a feature), rather they are full-fledged (demo) applications.\nYou can find them in the Arduino IDE via \n[File \u003e Examples \u003e OSP ToplevelSketches aotop \u003e ...](examples):\n\n- **saiddemo** ([source](examples/saiddemo))  \n  This is an official application (centered around the SAIDsense board). \n  This demo contains three apps: running LED, sensor visualization, \n  and selected country flags by pressing a button.\n  It comes with a [user manual](extras/manuals/saiddemo.pdf).\n\n- **saidbasic** ([source](examples/saidbasic))  \n  This is an official application (centered around the SAIDbasic board). \n  This demo contains 4 apps: scripted animation (from EEPROM), running LED, \n  (country) flags selected by pressing a button, and a dithering demo. \n  It comes with a [user manual](extras/manuals/saidbasic.pdf).\n\n- **osplink** ([source](examples/osplink))  \n  This is another official application. \n  It allows the PC (with a terminal like the Arduino Serial \n  Monitor) to send and receive OSP telegrams, using serial-over-USB. \n  There is  [documentation](https://github.com/ams-OSRAM/OSP_aocmd?tab=readme-ov-file#example-commands)\n  on using the command interpreter.\n  There is also an experimental Python app for PC\n  [`aocmd/python`](https://github.com/ams-OSRAM/OSP_aocmd/tree/main/python), \n  that sends commands to the `osplink` application.\n\n- **ospprobe** ([source](examples/ospprobe))  \n  This firmware is not for OSP32, but for a dedicated board \"OSPprobe\"\n  (ESP32S3, OLED, levelshifter, buttons, leds, 2×ERNI).\n  It implements and OSP telegram probe (network snooper, sniffer).\n\n- **evktester** ([source](examples/evktester))  \n  This application helps in testing the hardware components in the EVK.\n  It requires (human) operator support (via OLED and buttons).\n  A test report is printed to Serial.\n  \n- **eepromflasher** ([source](examples/eepromflasher))  \n  One of the features of the `saidbasic` application is to play (LED animation)\n  scripts from an EEPROM. There are EEPROMs on the OSP32 board, the SAIDbasic\n  board, and on stand-alone I2C EEPROM sticks. This `eepromflasher` application\n  allows writing any script (stock or user developed) to any of these EEPROMs.\n  The stock scripts are `rainbow`, `bouncingblock`, `colormix`, and `heartbeat`.\n\n- **training** ([source](examples/training1), [source](examples/training2), [source](examples/training3))  \n  These are exercises for the [training](extras/manuals/).\n\n\n## API\n\nThis library does not contain (reusable library) code, so there is no API.\n\nThe only exception is the macro `AOTOP_VERSION` (in `aotop.h`), \nwhich identifies the version of this \"library\".\n\n\n## Version history _aotop_\n\n- **2026 April 29, 0.6.0**\n  - The OSP network sniffer _OSPprobe_ has been added (firmware in `examples`, PCB in `extras/schematics`).\n  - Small updates to training slides (branching rule, OTP burn); added (refs) to other manuals.\n  - User manuals for SAIDbasic and SAIDdemo updated.\n  - Added link to application notes.\n  - Added `SAIDSense_v6` schematics and layout.\n  - Updated SAIDsense test cases in `evktester.ino`.\n  - Versions printout now separated with `,` in demos.\n  - Comments updates in `saidbasic.ino`, `saiddemo.ino`, and `osplink.ino`.\n  - Added warning for RGBIstrip (built-in terminator).\n  - Switched to latest latest Arduino IDE (2.3.8) and the latest ESP32 board package (3.3.8).\n  - Updated to `readme.md`.\n  \n- **2025 September 17, 0.5.0**\n  - Added `saiddemo.ino` application (with user manual) using the new SAIDsense demo board.\n  - Added SAIDsense board to EVK; also to Training, Schematics, and Getting Started.\n  - Added SAIDsense test cases to `evktester.ino`.\n  - Improved 3 UI messages `evktester.ino`.\n  - Improved user manual for `evktester.ino`; added flow chart.\n  - Comments fixed in `osplink.ino`.\n  - Stepped version of `saidbasic.ino` to 2.7 (using new `aomw_iox4b4l` i.o. `aomw_iox`).\n  - Switched to latest ESP32 board package (3.3.0).\n  - Textual changes in Getting Started.\n  - Corrected OTP burning training: bit burnt in the image @ slide 19.\n  - Explained where to get merged bins for [webflash](extras/manuals/webflash) manual.\n  - Added links to examples in Manuals page.\n  - Update Uniform colors training: section number ref to datasheet.\n  \n- **2025 May 27, 0.4.0**\n  - Added ref to merged bins.\n  - Added links to products used in EVK.\n  - Added links to training videos.\n  \n- **2025 May 21, 0.3.0**\n  - Added `evktester.ino`.\n  - Have prebuilt binaries for saidbasic and evktester.\n  - Renamed training slides.\n  - Updated training (mostly appendix 2 uniform colors) to match new module `aomw_color`.\n  - Added webflash to the manuals.\n  - Documented SAID versions 1.0 and 1.1 (with photos).\n  - Several text updates in `gettingstarted.md`.\n  - Added details to [SAIDbasic user manual](extras/manuals/saidbasic.pdf)\n  - Added reference to `aospi_bringup`.\n  - Switched to latest latest Arduino IDE (2.3.6) and the latest ESP32 board package (3.2.0) - applied a patch to `aospi/src/slave`.\n  - Corrected pptx links to pdf.\n  - Textual updates in training 3 (OTP burn).\n  - Fixed link in `extras/manuals` for `saidbasic.ino`.\n\n- **2025 March 3, 0.2.0**\n  - Added schematics of (new versions of) the various boards in the EVK.\n  - Improved description of USB settings in getting Started \u003e Debugging.\n  - Added training slides.\n  - New picture in Getting Started for USB/CMD.\n  - Updated link to latest OSP specification.\n  - Switched to ESP32 board (compiler) 3.1.1 in Arduino IDE.\n  - Switched to Arduino IDE 2.3.4 (debugging supported).\n  - Fixed typos in `readme.md`.\n\n- **2024 November 29, 0.1.7**\n  - Version update: ESP32 from 3.0.5 to 3.0.7.\n  - Updated OSP system picture.\n  - Text corrections, improved images and extra links in `readme.md` and `gettingstarted.md`.\n  \n- **2024 November 8, 0.1.6**  \n  - New image for evaluation kit; link added.\n  - Added schematic for RGBI strip `OSIRE_E3731i_V2.3.pdf`.\n  - OSP system picture now has two I2C devices.\n  - Replaced OSP32 schematics v9 by v10.\n  - Now 4 cables in EVK.\n  - Updates to `readme.md`.\n  - osplink 1.8 now prints all library versions.\n  \n- **2024 October 25, 0.1.5**  \n  - Replaced OSP system picture with one having also a SAID with I2C.\n  - Improved labels of links.\n  \n- **2024 October 24, 0.1.4**  \n  - Added URLs for SAID, SAIDB and Arduino OSP evaluation kit.\n  - Getting Started, section Debugging, explains the USB ports in more detail.\n\n- **2024 October 23, 0.1.3**  \n  - In `saidbasic.ino` started app before command interpreter.\n  - Added debugging section in Getting Started.\n\n- **2024 October 11, 0.1.2**  \n  - Made library version accessible in code (`AOTOP_VERSION`) and added to `saidbasic`.\n  - Improved _Installation_ of _Getting Started_ with new and more screenshots.\n  - Better comments in `eepromflasher.ino` and `saidbasic.ino`.\n  - Fixed links to training and OSP specification.\n\n- **2024 October 8, 0.1.1**  \n  - Updated intro section of getting started (added pictures).\n  - Added `examples\\training[123].ino`.\n  - Added `extras\\manuals\\ArduinoOSP-Training.pptx`.\n  \n- **2024 October 8, 0.1.0**  \n  - Fixed name to `Open System Protocol (OSP) on Arduino` and `aolibs`.\n  - Moved domain from `github.com/ams-OSRAM-Group` to `github.com/ams-OSRAM`.\n  - Added user manual (ppt) to `saidbasic.ino`.\n  - Changed `eepromflasher.ino` to _compare_ SAIDbasic eeprom to rainbow.\n  - Adapted to `aoosp_exec_resetinit` not needing `last` and `loop`.\n  - Added links in `readme.md` for all example sketches.\n  - Updated `ospchain.jpg`.\n  - Extended `gettingstarted.md`.\n  - Added minimal documentation to top of `saidbasic.ino`.\n  - Corrected link to all GitHub repos from aoxxx to OSP_aoxxx.\n  - Remove \"oalib\" from `sentence=` in `library.properties`.\n  - Updated `readme.md`.\n  - Arduino name changed from `OSP Top level sketches - aotop` to `OSP ToplevelSketches aotop`.\n  - `license.txt` line endings changed from LF to CR+LF.\n  - Reorder libs in `aocmd_version_extra()` in `saidbasic.ino`.\n  - Added `extra\\schematics\\xxx.pdf` of all boards in the evaluation kit.\n  \n- **2024 July 2, 0.0.1**  \n  - Initial release candidate.\n\n\n(end)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fams-osram%2Fosp_aotop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fams-osram%2Fosp_aotop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fams-osram%2Fosp_aotop/lists"}