/AFBR-S50-API

API for the AFBR-S50 Time-Of-Flight Sensor Family.

Primary LanguageCBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

AFBR-S50 API

Introduction

The AFBR-S50 API is the appertaining software for the AFBR-S50 Time-of-Flight Sensor family by Broadcom Inc.

The repository consists of the AFBR-S50 Core Library, a static ANSI-C library, and its accompanied header files and documentation. Additionally, example and demo projects are provided for certain processors and evaluation boards.

Documentation

The API Reference Manual can be viewed here.

Overview

File Structure

The repository is structured in the following way:

  • /AFBR-S50: Contains the AFBR-S50 API.

    • /Include: Contains the AFBR-S50 API as ANSI-C header files.

    • /Lib: Contains the static AFBR-S50 Core Libraries for multiple Cortex-Mx architectures.

    • /Test: The HAL-Self Test suite that can be used to verify the ported HAL.

  • /Doxygen: Contains additional documentation files that can be used with Doxygen to generate the API Reference Manual.

  • /Projects: Project files for several IDEs.

  • /Sources: Contains all source files.

Projects

All projects are located under /Projects/<IDE>/<PROJECT>. The following projects are available:

  • AFBR_S50_Example_<MCU>: A simple example application that streams measurement data via an UART connection.
  • AFBR_S50_ExplorerApp_<MCU>: A more sophisticated example application that implements a serial communication interface via USB or UART to connect to the corresponding AFBR-S50 Explorer GUI (download from the official Broadcom webpage).
  • AFBR_S50_CANApp_<MCU>: A CAN interface application running on the AFBR-S50 Reference Board by MikroElektronika. listens to commands and streams 1D range values on the CAN bus.

Getting Started

Required Hardware

Before you get started, you require some hardware. For an easy start, it is recommended to use one of the following:

Building the Documentation

Creating the documentation is generally not required since it is already hosted via GitHub Pages.

However, if an updated documentation needs to be created, the following tools are required and must be installed and setup correctly. Please refer the tools documentation on how to setup.

After successful setup, the documentation can be created by invoking doxygen from the root directory:

$ doxygen

Now, the index.html can be found at /Documentation/html/index.html.

Compile and Run the Demo Projects

Please refer the Getting Started in the API Reference Manual for a detailed guide on how to setup the projects.

Please also refer the Demo Applications in the API Reference Manual for an overview of existing projects.

Porting to another MCU Platform

In order to use the AFBR-S50 API on another MCU platform, refer to the generic Porting Guide in the API Reference Manual.

Also refer to the special Porting Guide based on a port of the AFBR-S50 API to the STM32F401RE Evaluation Kit with a Cortex-M4 MCU. The guide can be found on the Broadcom homepage.

Migrate from previous versions

If you have used the previous version of the AFBR-S50 API, please read the Migration guide to get an overview of the changes in the API as well as the HAL compared to the current version.

How to get Support

In order to get support, please make sure the issue is related to the AFBR-S50 API. If the issue is related to the AFBR-S50 Hardware, contact the corresponding support via support.tof[at]broadcom.com.

If your issue relates to the AFBR-S50 API, please make sure you have read and understood the API Reference Manual (especially the Troubleshooting section). If your issue is still there, please see if you can find an related issue in the Issue Section of the repository. Finally, feel free to open a new ticked describing your problem.

Contributing

We highly appreciate any contribution to the AFBR-S50 API project.

Ideas for contributions could be:

  • documentation work,
  • fixing/updating platform or example code or project files,
  • porting the platform code to new processors,
  • adding additional examples/demo projects,
  • and much more...

Please make sure your work fits well into the existing structure and coding style. Also, before you start your work, check if your planned contribution will be accepted by opening a new issue that describes your planned changes. This will also help to gather information about the implementation.

Acknowledgements

The AFBR-S50 API is based developed using the following tools:

Copyright and License

The AFBR-S50-API is published under the BSD 3-Clause License:

Copyright (c) 2023, Broadcom Inc All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.