pyfitterbap 0.4.1

Creator: bradpython12

Last updated:

Add to Cart

Description:

pyfitterbap 0.4.1

Welcome!
Welcome to Fitterbap, the Firmware toolkit to enable
reliable best architecture practices!
Fitterbap provides common utilities useful for embedded systems that are often
not included in an RTOS or the standard C library. Fitterbap includes:

A distributed publish-subscribe implementation for easy command, control,
and configuration of your designs.
A high-reliability data link protocol, suitable for UARTs.
Common C macros, including assert and design-by-contract.
Host software and UI to accelerate firmware development.
And more!

This library is intended for use by software developers producing
firmware for embedded devices based upon microcontrollers. Many features of
the library use malloc, but it avoids using free.
The Fitterbap library is available under the permissive Apache 2.0 license.
As of June 2021, the Fitterbap library API is not yet stable and subject to
change without notice.
Getting started
The easiest way to get started is to check out the
fitterbap_example_stm32g4.
If you want to try distributed PubSub and the comm stack, you can buy the
STMicroelectronics Nucleo-G491RE
development board. When you first connect the Nucleo board over USB,
it shows up as a mass storage device. You can simply copy over the
release binaries and start the host UI, which looks like this:

Known limitations

Comm

No native USB reference implementation yet, but can use USB-CDC.


PubSub

Hard-coded maximum topic lengths.
No validation using provided topic metadata.


Host

Win 10x64 only, no macOS or Linux yet.
fbp_fatal not properly implemented for pyfitterbap.



Installation
The Fitterbap library uses CMake to generate the project make files for
the C components.
Since Fitterbap is a library primarily targeted at embedded microcontrollers,
you will likely want to include compile it into your project. Projects
using CMake can use ExternalProject_Add. Other build systems
will likely need to include the source files directly. Consider using
git subtrees or git submodules.
You will need to manually create the fitterbap/config.h file and implement the
platform abstraction layer. See fitterbap/platform.h for details.
Host python
Install 64-bit python 3.8 or newer on your system. Confirm that it is correctly installed:
python3 -VV

On Windows, python 3 is usually installed as python rather than python3.
Then install the pyfitterbap package from pypi:
pip install -U pyfitterbap

You can then run the pyfitterbap communication UI tools using either:
python3 -m pyfitterbap comm_ui

Or
fitterbap comm_ui

Ubuntu
First install the build tools for your system.
sudo apt-get install build-essential cmake doxygen graphviz git

Then compile the Fitterbap library:
cd PROJECT_DIRECTORY
mkdir build && cd $_
cmake ..
cmake --build .
ctest .

You can also build and test the python library:
python3 setup.py build_ext --inplace
python3 -m unittest

To run the host comm UI:
python3 -m pyfitterbap comm_ui

Licenses
The Fitterbap library is available under the permissive Apache 2.0 license.
This library includes all third-party dependencies in the third-party
directory. The dependencies are built along with this project.
These third-party libraries are provided under their own
licenses.
More information
The Fitterbap API is documented using doxygen.
For a history of changes, see the changelog.
Alternatives
Fitterbap is a broad library that implements several distinct features.
Here are some other libraries that you can consider.
Full system:

Pigweed
MBEDDR
Piconomic FW Library

Communication protocols:

luos
Telemetry
min
SerialFiller
Lasp - totally different scale
Stream Control Transmission Protocol (SCTP)
Lab Streaming Layer
and PlotJuggler

PubSub:

pubsub-c

Command & control:

microrl - command line

Random number generation:

https://en.wikipedia.org/wiki/Xorshift
http://www.pcg-random.org/
small

String

mpaland's printf

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.