sparkfun / SparkFun_Toolkit

Toolkit of common functionality for use within SparkFun Libraries
https://docs.sparkfun.com/SparkFun_Toolkit/
MIT License
2 stars 0 forks source link

Description: Create a library of common entitles/functionality for use across other SparkFun Libraries/Applications #5

Open gigapod opened 1 year ago

gigapod commented 1 year ago

Description

Design, develop and implement a foundational software library that implements support for common, embedded functionality. This library is intended to be a core foundational block for SparkFun software implementations, enabling the use of a single, well tested solution across all products. Today, for common capabilities, each new library implements its own version of the functionality – a option that is error prone and difficult to maintain. With a “toolkit” library, only one, well tested and validated implementation is used across all our solutions. Additionally, updates to the toolkit library are rapidly integrated into existing solution updates.

The key premise that makes this toolkit library possible, is the library dependency functionally supported by the development environments the library is used within. For example, when building a new SparkFun Arduino Library, the new library can mark the SparkFun Toolkit library as a dependency.

While the initial focus of this library is communication bus architectures, the capabilities of this library will expand over time to deliver a wide variety of capabilities.

Initial Focus - Communication Bus Functionality

The library is designed to deliver a common communication bus interface, that is shared across the various bus types supported. This common interface enables the implementation of capabilities, with little need to understand the underlying details of the bus architecture, or even which type of bus is being used.

This implementation should support the following communication bus types:

While the setup of each bus is different (initialization and definition), the data communication interface is the same, enabling common functionality use across different bus architectures

Use Scenarios

The general use case/scenario for the communication bus implementation of the Foundation library is:

Target Personas/Users

Key Functionality

Design Considerations

Note that the implementation should follow the pattern delivered as part of these libraries:

Documentation

Delivered using GitHub Pages, the documentation should include:

Product Launch

Once launched and in use internally, the launch shall be marked via a SparkFun blog post. The intent is for internal use, but there's nothing to prevent external use of this library