|juˈekaɪdiːˈiː| :: Wake Up Your Arduino
Last edit: 2020-10-12 by matt

Publishing Libraries

Libraries may be published via this website using the automated library packaging system.

To use it:

  • Libraries must be stored on github
  • You must create a uecide.json file in your repository (details below)
  • You need to create a "library" node on here with the link to the repsitory (ask in the Forum to have this permission granted).

Here is an example uecide.json file:

    "name": "CLI",
    "provides": "CLI.h",
    "license": "LICENSE",
    "readme": "README.md",
    "description": "Command-line Interface library for Arduino",
    "category": "Communications",
    "subcategory": "Serial",
    "maintainer": "Matt Jenkins <matt@majenko.co.uk>",
    "version": "1.2.0",
    "family": "all",
    "core": "all",
    "install": {
        "examples": "/",
        "CLI.cpp": "/",
        "CLI.h": "/"
    "depends": [

Most fields are required.

  • name should be a single word - spaces are not allowed. It should be the same as the main include file without the .h extension.
  • license and readme should point to files within your repository.
  • description is a one-line "sentence" describing the library
  • maintainer is your name and email address in the format shown above.
  • version is the version number of the library. This should follow good version numbering rules and only ever increase.
  • family should be "all" for a family-agnostic library or one of the UECIDE Families
  • core should be "all" for any core or the codename of a core this library works with.
  • install is an object of files and directories (relative to the root of your repository) and the location within the packaged library where those files should be placed.
  • The readme and license files are automatically bundled and are not required.
  • depends is an array of package codenames that this library relies on. If the library is specific to a core it's common to include that core's codename as a dependency. Also if SPI or Wire are needed those libraries are often also included. It is not required, but makes for a better installation experience for the user.

Once a library page has been created the library will be included in the next build run.

Categories and subcategories

Please try and keep the category and subcategory to within this tree. If you really need something not in this tree then consider adding it to this tree for other people to use.

  • Audio
    • Amplifier
    • CODEC
    • Control
  • Communications
    • Serial
    • Networking
    • Wireless
  • Display
    • LCD
    • LED
    • OLED
    • TFT
    • Emulation
  • IO
    • Digital
    • Analog
  • Math
    • Algorithms
    • Signal Processing
  • Motor
    • Driver
    • Servo
    • Stepper
  • Sensors
    • Attitude
    • Distance
    • Environmental
    • Position
    • Power
  • Storage
    • Buffer
    • EEPROM
    • Flash
    • RAM
    • SD and MMC
  • System
    • Languages
    • Power
    • Support
    • Watchdog
  • Time
    • RTC
    • Timers

Support Us

Running this server costs money. This server not only hosts this website, but is also the main build platform for creating the download files for UECIDE. Just a couple of pounds (or Dollars, Yen, Mongolian tögrög... we're not fussy) can help to offset the costs.

Alternatively, if you want to be more personal, you could buy me something on Amazon. I have a small wish-list of low-cost items that I'd quite like to receive. Make it a surprise.

Latest WiKi Edits