Skip to content
Ryan Summers edited this page Sep 5, 2015 · 20 revisions

Welcome to the SUBLIBinal Wiki!

The purpose of this wiki is to provide users of SUBLIBinal an easy to understand guide to using the library.

What is SUBLIBinal?

SUBLIBinal is an interrupt driven microcontroller library designed for the PIC32MX250F128B. The library was developed by Palouse Robosub Club for microcontroller board bring up. The library provides easy to use structures based in the C programming language to quickly and simply implement peripheral features of the microcontroller, while also providing the end user the full functionality of an interrupt driven design.
One of the primary problems with external libraries is that they abstract too far away from the hardware and it can be difficult to understand what the library is actually doing. Because of this, SUBLIBinal is complete open-sourced. The code is licensed under the GPLv3 license.

What does SUBLIBinal offer?

SUBLIBinal provides an unique architecture to simply implement peripheral features at a low level within the microcontroller. Because the library is written in the C programming language, there is very little memory overhead required to use the library, which complements the limited memory space available on microcontrollers. By utilizing SUBLIBinal's functions, microcontroller bring-up and validation can be accelerated, as the chance of bit-wise configuration errors are minimized.
SUBLIBinal also helps the increase microcontroller code understandability. Enumerations have been created for the configuration settings, so that individual lines of code are extremely self-descriptive and can help with code portability and reusability.
SUBLIBinal is also extremely easy to use as it is only a C-based library. Use of SUBLIBinal does not restrict the user in any way in how they may program their microcontrollers. Internal registers on the microcontroller are still readily accessible for querying by the end-user and can be modified and manipulated within your own code. Please note, that configuration of registers after SUBLIBinal function calls can potentially disrupt functionality of the library function implements. However, SUBLIBinal has been programmed in a way that it is easy to understand how the library is modifying internal registers.

How can I utilize SUBLIBinal?

To use SUBLIBinal, you should clone the repository onto your local computer. SUBLIBinal relies on Microchips MPLABX development environment for configuration of microcontroller settings and project files. As such, it is simplest to implement the library functionality with MPLABX functionality. However, because SUBLIBinal is programmed in C, you can easily utilize the source code files in command-line compilation. To use the SUBLIBINAL library, simply include the

Note: A step-by-step tutorial on how to implement the library will be included in the future!

How do I use SUBLIBinal to program?

The SUBLIBinal library repository contains well-commented code examples for each of the features implemented within SUBLIBinal. There is also extensive documentation on how to use each of the functions within this wiki. Simply refer to the peripheral feature that you are interested in implementing to discover how to utilize SUBLIBinal to implement it!

Will additional functionality be implemented in the future?

SUBLIBinal is currently under very active development. We try to keep it up to date as we develope it. Currently, two of the active developers are students at Washington State University, and as such updates tend to be sporadic. Current plans for the future of the library will include implementation of most peripherals on the microcontroller. We also plan to implement many of the lower level peripherals into higher level abstractions for simple implementation of features such as touch sensitivity.

I'm interested in how SUBLIBinal functions on a lower level.

If youre interested in the internal functionality of how SUBLIBinal operates, please refer to the Technical Documentation file located within the Repository. The technical documentation describes all enumerations used within the code and also describes design decisions.

Note: In the future, Technical Documentation will be ported over to the wiki.

Clone this wiki locally