Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Useful Arduino utilities which are too small as separate libraries, but complex enough to have external dependencies to other libraries.

License

Notifications You must be signed in to change notification settings

bxparks/AceUtils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AceUtils

Arduino utilities which are too small to be in separate libraries. The following are provided:

  • PrintString
    • An object of a fixed size that implements the Print interface so that quantities can be printed into it, then extracted as human-readable string. It is meant to be an alternative to the Arduino String class without the risk of heap fragmentation because the entire PrintString object can be created on the stack.
  • UrlEncoding
    • Encodes and decodes strings using "form URL encoding" which converts spaces ' ' into '+', and non-alphnumerics into percent-hex digits.

Version: 0.1 (2020-08-27)

Changelog: CHANGELOG.md

Installation

The latest stable release will be available in the Arduino IDE Library Manager soon. Search for "AceUtil". Click Install. (Not yet).

The development version can be installed by cloning the GitHub repository, checking out the develop branch, then manually copying over the contents to the ./libraries directory used by the Arduino IDE. (The result is a directory named ./libraries/AceUtils.) The master branch contains the stable release.

Source Code

  • src/AceUtil.h: The main include header file.
  • tests/*: Unit tests using AUnit.

Doxygen Docs

The docs/ directory contains the Doxygen docs on GitHub Pages. This may be useful to navigate the various classes in this library and to lookup the signatures of the methods in those classes.

Usage

See the README.md for each of the various utilties listed above.

System Requirements

Tool Chain

This library was developed and tested using:

It should work with PlatformIO but I have not tested it.

The library works on Linux or MacOS (using both g++ and clang++ compilers) using the UnixHostDuino emulation layer.

Operating System

I use Ubuntu 18.04 and 20.04 for the vast majority of my development. I expect that the library will work fine under MacOS and Windows, but I have not tested them.

Hardware

The library is extensively tested on the following boards:

  • Arduino Nano clone (16 MHz ATmega328P)
  • SparkFun Pro Micro clone (16 MHz ATmega32U4)
  • WeMos D1 Mini clone (ESP-12E module, 80 MHz ESP8266)
  • ESP32 dev board (ESP-WROOM-32 module, 240 MHz dual core Tensilica LX6)

I will occasionally test on the following hardware as a sanity check:

  • Teensy 3.2 (72 MHz ARM Cortex-M4)
  • Mini Mega 2560 (Arduino Mega 2560 compatible, 16 MHz ATmega2560)
  • SAMD21 M0 Mini (48 MHz ARM Cortex-M0+) (compatible with Arduino Zero)

License

MIT License

Feedback and Support

If you have any questions, comments, bug reports, or feature requests, please file a GitHub ticket instead of emailing me unless the content is sensitive. (The problem with email is that I cannot reference the email conversation when other people ask similar questions later.) I'd love to hear about how this software and its documentation can be improved. I can't promise that I will incorporate everything, but I will give your ideas serious consideration.

Authors

About

Useful Arduino utilities which are too small as separate libraries, but complex enough to have external dependencies to other libraries.

Resources

License

Stars

Watchers

Forks

Packages

No packages published