Firmware libraries are an important part of how you connect your Photon or Electron to sensors and actuators. Are you collecting temperature data from your garage? Buy a DS18B20 sensor and add the DS18B20 firmware library to your Particle project.
Particle has a library manager in our Web IDE, and it’s used quite a bit. It now includes:
- 7 Particle-built libraries for hardware like the Internet Button and Asset Tracker
- 387 community-built libraries for popular sensors, actuators, and communication protocols
In total, these libraries have been imported into Particle projects more than 82,000 times!
We’re pleased to announce that today we’re launching our new and improved firmware library manager, which brings several improvements to the experience of using libraries with Particle devices, including:
- Support in all our IDEs: Support for the Particle library manager in our Web IDE, Desktop IDE, and Command Line Interface (CLI)
- Improved Arduino library compatibility: Most Arduino libraries can now be copy/pasted into our library manager without modification
- Libraries with dependencies: Add one library to your Particle project and if it requires others, they’ll be included automatically
- Verified libraries: Libraries that have been tested for ease-of-use and completeness by the Particle team
- API access: Libraries can be accessed through the Particle Cloud API, so you can build plugins for other popular IDEs to access our firmware library manager
Want to try out the new firmware library manager? Login to the latest version of our IDEs to see it in action!
Libraries support across all of our tools: Web IDE, Desktop IDE, CLI
Firmware libraries are a powerful tool for creating projects on the Particle platform. They make it easy to reuse common bits of code and simplify the process of using code written by other people in your own project.
Great example – are you a beginner trying to gather motion data from the accelerometer on your PCB? Search for the right library in our library manager, add it to your project, and with just a few lines of code you’re up and running with the sensor, collecting valuable information for your robot, asset tracker, or flight controller.
Previously, it was only possible to add libraries to projects in our Web IDE. Starting today, our new and improved firmware library manager is available in our Web IDE (Build), Desktop IDE (Dev), and Command Line Interface (CLI), making the Particle development experience more flexible and powerful than ever.
Improved Arduino library compatibility
One of advantages of the Particle platform is that you can write code in Wiring, a flavor of C more commonly known as “Arduino”. Because Particle is Wiring-compatible you have access to a huge amount of open-source firmware and firmware libraries on the web from both the Particle and Arduino communities.
In addition to overhauling our firmware library manager to be compatible with Arduino’s library standard, we’ve further improved our firmware compatibility with the Arduino ecosystem (Particle firmware v061 or later to make porting popular open-source libraries to Particle even easier than before.
If you’re working on a project but can’t find the library for your sensor or actuator in our library manager, don’t fret! Simply copy and paste the library code into blank library files and compile your project like normal. If you’re feeling adventurous, try publishing the library to our firmware manager for others to use!
Libraries with dependencies
When libraries depend on other libraries, things can get complicated. Take our popular
INTERNETBUTTON library as an example. Particle’s Internet Button has both WS2812 “Neopixel” LEDs as well as an ADXL362 3-axis accelerometer that require their own libraries. On top of that, the Internet Button library contains additional functions for interacting with the on-board tactile buttons and creating coordinated LED patterns.
Previously, to create a library that depended on other libraries, you had to paste the source code from those libraries into the new library, which resulted in bloated libraries with redundant files that fell out of date as the dependent libraries were improved. Beginning today, dependencies between libraries can be defined with a single line of code, and library creators can even pin dependencies to a particular version number to ensure long-term functionality.
For library users, this means that libraries are simpler to understand and easier to use. For library contributors, libraries with dependencies make it easier to create dynamic, interconnected libraries that unlock new device behavior and are simple to maintain over time.
Verified libraries: trust us, they work!
Today, we’re also announcing a new category of libraries in the Particle ecosystem, verified libraries. Verified libraries have been thoroughly tested by the Particle team to ensure that they work as intended, making it easy to identify high quality libraries for your project.
Verified libraries have been tested to ensure that they meet the following criteria:
- They have high quality inline documentation
- They have examples that demonstrate proper usage of the library
- They compile for the relevant Particle hardware platforms, and have been confirmed to work in real life with real hardware
- They have instructions for verifying the function of the library
When you open up the firmware library manager in each of our IDEs, you’ll see a check mark next to all the libraries that have been verified to date. Our first set of verified libraries include community favorites like
NEOPIXEL for driving neopixels,
ONEWIRE for communicating with one-wire peripherals, and
DS18B20 for gathering temperature data.
API access to firmware libraries
We’ve done our best to build IDEs for the Particle platform that are powerful, easy-to-use, and open. That being said, we know that every engineer has their favorite development environment, and we’ve worked hard to make it possible to use our new firmware library manager in any IDE.
We’re excited to announce that all of the features described above are available and accessible via our Cloud API, which makes it possible to build plugins for third-party development tools that can search, include, and contribute libraries to the Particle ecosystem. You can learn more about working with our new library manager API by visiting our documentation.
We’re really excited about the flexibility that our new firmware library manager brings to each of our development tools, and can’t wait for your feedback! Have an idea for additional features you’d like to see in our development tools? Join us on the Particle forums and let us know!