Code Libraries

Below are CladLabs open-source (GPLv3) code libraries. All are Git repositories that are hosted on my GitHub account. Feel free to clone and submit issues/pull requests!

Most of these libraries are designed for embedded applications, although nothing is stopping you using them on more powerful platforms!

This page only contains brief overviews. See the landing page (the link) for more information (which is contained within the README in the GitHub repo).

C Code Libraries

C-FreeRTOS-Lights

Language: C
Platform: PSoC
Link: https://github.com/gbmhunter/C-FreeRTOS-Lights

A FreeRTOS task to control lights on a embedded platform, such as LED’s and MOSFET driven bulbs.

C-FreeRTOS-PerformanceMetrics

Language: C
Platform: PSoC
Link: https://github.com/gbmhunter/C-FreeRTOS-PerformanceMetrics

A FreeRTOS task for measuring and displaying performance-related data of an embedded system (idle time, time since start, e.t.c). Uses data types and inputs/outputs for a PSoC 5 microcontroller, but can be easily ported. Formatted for documentation with doxygen.

C-FreeRTOS-UART

Language: C
Platform: PSoC
Link: https://github.com/gbmhunter/C-FreeRTOS-Uart

A FreeRTOS task to control a UART on an embedded platform. Designed for use with a PSoC microcontroller.

C-PSoC-FreeRTOS-Cli

Language: C
Platform: PSoC
Link: https://github.com/gbmhunter/C-FreeRTOS-PSoC-Cli

Note: This has been superseded by Cpp-Clide.

A FreeRTOS task to control the command-line interface extension of the FreeRTOS platform.

C++ Code Libraries

Cpp-ClarkTransformation

Language: C++
Platform: Any (platform-independant)
Link: https://github.com/gbmhunter/Cpp-ClarkTransform

Library containing functions to perform forward and inverse Clark transformations. Commonly used in FOC for three-phase motor control (e.g. BLDC motor control).

Cpp-Clide

Link: C++
Platform: Any (platform-independent)
Uses: Embedded communications
Link: https://github.com/gbmhunter/Cpp-Clide
Build Status: https://travis-ci.org/gbmhunter/Cpp-Clide.png?branch=master

A command-line style communication interface designed to make it easy to send messages and data between two micro-controllers, a microcontroller and computer, or two computers, via a serial interface that supports ASCII characters (e.g. UART, I2C, SPI).

Cpp-Clide also has a counter-part version, Cs-Clide, which is written in C#.

Cpp-ParkTransformation

Language: C++
Platform: Any (platform-independent)
Uses: Embedded BLDC FOC motor control.
Link: https://github.com/gbmhunter/Cpp-ParkTransform

Library containing functions to perform forward and inverse Park transformations. Commonly used in FOC for three-phase motor control (e.g. BLDC motor control).

Cpp-FixedPoint

Language: C++
Platform: Any (platform-independent)
Uses: Embedded fixed-point arithmetic
Link: https://github.com/gbmhunter/Cpp-FixedPoint
Build Status: https://travis-ci.org/gbmhunter/Cpp-FixedPoint.png?branch=master

Powerful, dynamic fixed point library written in C++, designed for use on embedded systems. Allows quick calculation of decimals with processor architectures that don’t have hardware support for floats or doubles (e.g. 8051, MSP430, Arm Cortex M3).

CP3id (CppPID)

Language: C++
Platform: Any (platform-independent)
Uses: Embedded PID control loops
Link: https://github.com/gbmhunter/CP3id

Build Status: https://travis-ci.org/gbmhunter/CP3id.png?branch=master

CP3id is a PID library designed for embedded systems, written in C++. It has support for both standard double arithmetic and fast, fixed-point arithmetic, necessary in high-performance applications (e.g. BLDC motor control). Similar to the C-Pid library which is written in C, but written in object-orientated manner and leverages some of the extra features C++ provides. Platform independent. You can use this inconjuction with the Cpp-FixedPoint library if you want to use fixed point arithmetic.

Cpp-LinInterp

Language: C++
Platform: Any (platform-independent)
Link: https://github.com/gbmhunter/Cpp-LinInterp
Build Status: https://travis-ci.org/gbmhunter/Cpp-LinInterp.png?branch=master

A light-weight, fast linear interpolation library designed for use on embedded systems (but can also run on any machine which has a G++ compiler).

Sauron

Language: C++
Platform: Any (platform-independent)
Link: https://github.com/gbmhunter/Sauron

A portable, microcontroller-geared unit test, online test, and metric (benchmarking) library. It keeps a watchful eye on things…

FiFoFum

Language: C++
Platform: Any (platform-independent)
Link: https://github.com/gbmhunter/FiFoFum

A C++ FIFO buffer framework designed to embedded applications.

C# Code Libraries

Cs-Clide

Language: C++
Platform: .NET
Link: https://github.com/gbmhunter/Cs-Clide

A counter-part to Cpp-Clide, this is the version written in C#, designed for use on a higher end processor (embedded Linux or better) that can run the .NET framework.

Visual Basic Scripts

Altium-Scripts

Language: VBScript
Platform: Altium engine
Uses: Testing/verifing PCB designs
Link: https://github.com/gbmhunter/Altium-Scripts

A collection of useful Altium scripts written in the Visual Basic scripting language.

Mixed Language

LocalExtrema

Language: C/C++
Platform: Any (platform-independent, designed for embedded systems)
Link: https://github.com/gbmhunter/CP3id

A portable, microcontroller-geared mathematical library for finding local extrema (maxima and minima).