{"id":28139072,"url":"https://github.com/broadcom/afbr-s50-api","last_synced_at":"2025-05-14T17:19:12.019Z","repository":{"id":44520554,"uuid":"355707710","full_name":"Broadcom/AFBR-S50-API","owner":"Broadcom","description":"API for the AFBR-S50 Time-Of-Flight Sensor Family.","archived":false,"fork":false,"pushed_at":"2025-03-18T08:45:13.000Z","size":116528,"stargazers_count":29,"open_issues_count":2,"forks_count":10,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-03-18T09:35:59.913Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://broadcom.github.io/AFBR-S50-API/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Broadcom.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-07T23:23:53.000Z","updated_at":"2025-03-18T08:45:17.000Z","dependencies_parsed_at":"2024-02-28T15:44:33.423Z","dependency_job_id":"86fdf959-0ef3-4f17-8d52-fc681d4ddd11","html_url":"https://github.com/Broadcom/AFBR-S50-API","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Broadcom%2FAFBR-S50-API","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Broadcom%2FAFBR-S50-API/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Broadcom%2FAFBR-S50-API/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Broadcom%2FAFBR-S50-API/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Broadcom","download_url":"https://codeload.github.com/Broadcom/AFBR-S50-API/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254190392,"owners_count":22029639,"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":[],"created_at":"2025-05-14T17:16:13.963Z","updated_at":"2025-05-14T17:19:11.994Z","avatar_url":"https://github.com/Broadcom.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AFBR-S50 API\n\n## Introduction\n\nThe **AFBR-S50 API** is the appertaining software for the\n[AFBR-S50 Time-of-Flight Sensor family](https://www.broadcom.com/products/optical-sensors/time-of-flight-3d-sensors)\nby [Broadcom Inc](https://www.broadcom.com/).\n\nThe repository consists of the **AFBR-S50 Core Library**, a static ANSI-C\nlibrary, and its accompanied header files and documentation. Additionally,\nexample and demo projects are provided for certain processors and evaluation\nboards.\n\n## Documentation\n\nThe **API Reference Manual** can be viewed\n[here](https://broadcom.github.io/AFBR-S50-API/).\n\n## Overview\n![image](https://github.com/user-attachments/assets/11e45cb1-99b8-4e41-9a05-22e0e57470fc)\n\n\n### File Structure\n\nThe repository is structured in the following way:\n\n-   `/AFBR-S50`: Contains the **AFBR-S50 API**.\n\n    -   `/Include`: Contains the **AFBR-S50 API** as ANSI-C header files.\n\n    -   `/Lib`: Contains the static **AFBR-S50 Core Libraries** for multiple\n        [Cortex-Mx](https://developer.arm.com/ip-products/processors/cortex-m)\n        architectures.\n\n    -   `/Test`: The **HAL-Self Test** suite that can be used to verify the\n        ported HAL.\n\n-   `/Doxygen`: Contains additional documentation files that can be used with\n    Doxygen to generate the **API Reference Manual**.\n\n-   `/Projects`: Project files for several IDEs.\n\n    -   `/e2Studio`: Project files for the\n        [Renesas e² Studio IDE](https://www.renesas.com/us/en/software-tool/e-studio)\n        for all Renesas processors.\n\n    -   `/MCUXpressoIDE`: Project files for the\n        [NXP MCUXpresso IDE](https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/mcuxpresso-integrated-development-environment-ide:MCUXpresso-IDE)\n        for all NXP processors.\n\n    -   `/STM32CubeIDE`: Project files for the\n        [STM32Cube IDE](https://www.st.com/en/development-tools/stm32cubeide.html)\n        for all STM32 processors.\n\n-   `/Sources`: Contains all source files.\n\n    -   `/CANApp`: A **CAN-Bus** interface application running on the\n        [**AFBR-S50 Reference Board** by **MikroElektronika**](https://www.mikroe.com/bdc-afbr-s50-tof-sensor-board).\n        It listens to commands and streams 1D range values on the CAN-bus.\n\n    -   `/ExampleApp`: A collection of basic example applications that\n        demonstrate the usage of the **AFBR-S50 API** and stream measurement\n        data via an UART connection.\n\n    -   `/ExplorerApp`: A more sophisticated example application that implements\n        a serial communication interface via USB or UART to connect to the\n        corresponding **AFBR-S50 Explorer GUI** (download via the Software\n        Development Kit from the\n        [official Broadcom webpage](https://www.broadcom.com/products/optical-sensors/time-of-flight-3d-sensors/afbr-s50mv85g#downloads)).\n\n    -   `/Platform`: The platform specific code like peripheral drivers or\n        hardware abstraction layers (HAL).\n\n        -   `/NXP_MKLxxZ`: The platform code for the\n            [NXP Kinetis L-Series](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/kl-series-cortex-m0-plus:KINETIS_L_SERIES)\n            processors (e.g.\n            [MKL46z](https://www.nxp.com/design/development-boards/freedom-development-boards/mcu-boards/freedom-development-platform-for-kinetis-kl3x-and-kl4x-mcus:FRDM-KL46Z)\n            which is used by the\n            [AFBR-S50 Evaluation Kits](https://www.broadcom.com/products/optical-sensors/time-of-flight-3d-sensors)).\n\n        -   `/Renesas_RA4M2`: The platform code for the\n            [Renesas RA4M2 series](https://www.renesas.com/us/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus/ra4m2-100mhz-arm-cortex-m33-trustzone-high-integration-lowest-active-power-consumption)\n            which is used for the\n            [AFBR-S50 Reference Board by MikroElektronika](https://www.mikroe.com/bdc-afbr-s50-tof-sensor-board).\n\n        -   `/STM32F4xx`: The platform code for the\n            [STM32F4 Series](https://www.st.com/en/microcontrollers-microprocessors/stm32f4-series.html)\n            (e.g.\n            [STM32F401RE](https://www.st.com/en/microcontrollers-microprocessors/stm32f401re.html)).\n\n### Projects\n\nAll projects are located under `/Projects/\u003cIDE\u003e/\u003cPROJECT\u003e`. The following\nprojects are available:\n\n-   `AFBR_S50_Example_\u003cMCU\u003e`: A simple example application that streams\n    measurement data via an UART connection.\n-   `AFBR_S50_ExplorerApp_\u003cMCU\u003e`: A more sophisticated example application that\n    implements a serial communication interface via USB or UART to connect to\n    the corresponding **AFBR-S50 Explorer GUI** (download from the official\n    [Broadcom webpage](https://www.broadcom.com/products/optical-sensors/time-of-flight-3d-sensors)).\n-   `AFBR_S50_CANApp_\u003cMCU\u003e`: A CAN interface application running on the\n    [AFBR-S50 Reference Board by MikroElektronika](https://www.mikroe.com/bdc-afbr-s50-tof-sensor-board).\n    listens to commands and streams 1D range values on the CAN bus.\n\n## Getting Started\n\n### Required Hardware\n\nBefore you get started, you require some hardware. For an easy start, it is\nrecommended to use one of the following:\n\n-   [Broadcom AFBR-S50 Evaluation Kit](https://www.broadcom.com/products/optical-sensors/time-of-flight-3d-sensors)\n-   [MikroElektronika AFBR-S50 Reference Board](https://www.mikroe.com/bdc-afbr-s50-tof-sensor-board)\n\n### Building the Documentation\n\nCreating the documentation is generally not required since it is already hosted\nvia [GitHub Pages](https://broadcom.github.io/AFBR-S50-API/).\n\nHowever, if an updated documentation needs to be created, the following tools\nare required and must be installed and setup correctly. Please refer the tools\ndocumentation on how to setup.\n\n-   [Doxygen](https://www.doxygen.nl/)\n-   [Graphviz](https://graphviz.org/)\n\nAfter successful setup, the documentation can be created by invoking `doxygen`\nfrom the root directory:\n\n```bash\n$ doxygen\n```\n\nNow, the `index.html` can be found at `/Documentation/html/index.html`.\n\n### Compile and Run the Demo Projects\n\nPlease refer the\n[Getting Started](https://broadcom.github.io/AFBR-S50-API/getting_started.html)\nin the\n[API Reference Manual](https://broadcom.github.io/AFBR-S50-API/index.html) for a\ndetailed guide on how to setup the projects.\n\nPlease also refer the\n[Demo Applications](https://broadcom.github.io/AFBR-S50-API/apps.html) in the\n[API Reference Manual](https://broadcom.github.io/AFBR-S50-API/index.html) for\nan overview of existing projects.\n\n### Porting to another MCU Platform\n\nIn order to use the **AFBR-S50 API** on another MCU platform, refer to the\ngeneric\n[Porting Guide](https://broadcom.github.io/AFBR-S50-API/porting_guide.html) in\nthe [API Reference Manual](https://broadcom.github.io/AFBR-S50-API/index.html).\n\nAlso refer to the special **Porting Guide** based on a port of the **AFBR-S50\nAPI** to the\n[STM32F401RE](https://www.st.com/en/evaluation-tools/nucleo-f401re.html)\nEvaluation Kit with a Cortex-M4 MCU. The guide can be found on the\n[Broadcom homepage](https://docs.broadcom.com/docs/AFBR-S50-SDK-Porting-Guide-to-Cortex-M4-PG).\n\n### Migrate from previous versions\n\nIf you have used the previous version of the **AFBR-S50 API**, please read the\n[Migration guide](https://broadcom.github.io/AFBR-S50-API/migration_guide.html)\nto get an overview of the changes in the API as well as the HAL compared to the\ncurrent version.\n\n## How to get Support\n\nIn order to get support, please make sure the issue is related to the **AFBR-S50\nAPI**. If the issue is related to the **AFBR-S50 Hardware**, contact the\ncorresponding support via `support.tof[at]broadcom.com`.\n\nIf your issue relates to the **AFBR-S50 API**, please make sure you have read\nand understood the\n[API Reference Manual](https://broadcom.github.io/AFBR-S50-API/index.html)\n(especially the\n[Troubleshooting](https://broadcom.github.io/AFBR-S50-API/faq.html) section). If\nyour issue is still there, please see if you can find an related issue in the\nIssue Section of the repository. Finally, feel free to open a new ticked\ndescribing your problem.\n\n## Contributing\n\nWe highly appreciate any contribution to the **AFBR-S50 API** project.\n\nIdeas for contributions could be:\n\n-   documentation work,\n-   fixing/updating platform or example code or project files,\n-   porting the platform code to new processors,\n-   adding additional examples/demo projects,\n-   and much more...\n\nPlease make sure your work fits well into the existing structure and coding\nstyle. Also, before you start your work, check if your planned contribution will\nbe accepted by opening a new issue that describes your planned changes. This will\nalso help to gather information about the implementation.\n\n## Acknowledgements\n\nThe **AFBR-S50 API** is based developed using the following tools:\n\n-   [NXP MCUXpresso IDE](https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/mcuxpresso-integrated-development-environment-ide:MCUXpresso-IDE)\n-   [ST STM32Cube IDE](https://www.st.com/en/development-tools/stm32cubeide.html)\n-   [Renesas e² Studio IDE](https://www.renesas.com/us/en/software-tool/e-studio)\n-   printf library by [mpaland](https://github.com/mpaland/printf) and\n    [eyalroz](https://github.com/eyalroz/printf)\n-   [Doxygen](https://www.doxygen.nl/) and [Graphviz](https://graphviz.org/)\n\n## Copyright and License\n\nThe **AFBR-S50-API** is published under the **BSD 3-Clause License**:\n\n\u003e Copyright (c) 2023, Broadcom Inc All rights reserved.\n\u003e\n\u003e Redistribution and use in source and binary forms, with or without\n\u003e modification, are permitted provided that the following conditions are met:\n\u003e\n\u003e 1. Redistributions of source code must retain the above copyright notice, this\n\u003e    list of conditions and the following disclaimer.\n\u003e\n\u003e 2. Redistributions in binary form must reproduce the above copyright notice,\n\u003e    this list of conditions and the following disclaimer in the documentation\n\u003e    and/or other materials provided with the distribution.\n\u003e\n\u003e 3. Neither the name of the copyright holder nor the names of its contributors\n\u003e    may be used to endorse or promote products derived from this software\n\u003e    without specific prior written permission.\n\u003e\n\u003e THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n\u003e AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n\u003e IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n\u003e DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n\u003e FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n\u003e DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n\u003e SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n\u003e CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n\u003e OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\u003e OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbroadcom%2Fafbr-s50-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbroadcom%2Fafbr-s50-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbroadcom%2Fafbr-s50-api/lists"}