Configurable Firmata

A plugin-based version of Firmata

Internet of Things (IoT)C++LGPL-2.1

Abstract

Configurable Firmata is an open-source Internet of Things (IoT) project. A plugin-based version of Firmata. ConfigurableFirmata 3.0 contains some internal breaking changes for external modules. If you need to use a particular module (such as FirmataEncoder), either use a 2.xx version or ask the maintainer to update the module to work with V3.0. It is built using C++, Arduino, ESP32. The complete source code is publicly available on GitHub under the GNU Lesser General Public License v2.1, making it a useful reference for students building an Internet of Things (IoT) mini project or final-year project.

1. Introduction

ConfigurableFirmata 3.0 contains some internal breaking changes for external modules. If you need to use a particular module (such as FirmataEncoder), either use a 2.xx version or ask the maintainer to update the module to work with V3.0.

Firmata is a protocol for communicating with microcontrollers from software on a host computer. The protocol can be implemented in firmware on any microcontroller architecture as well as software on any host computer software package. The arduino repository described here is a Firmata library for Arduino and Arduino-compatible devices. If you would like to contribute to Firmata, please see the Contributing section below.

It's no longer necessary to call update() for every module that requires polling. That is now handled by the above call to report.

2. Objective

A plugin-based version of Firmata

This project demonstrates how C++, Arduino, ESP32 can be applied to a real-world Internet of Things (IoT) problem.

4. Technology Stack

C++ArduinoESP32
  • javascript
  • [https://github.com/jgautier/firmata]
  • [https://github.com/rwldrn/johnny-five]
  • [http://breakoutjs.com]
  • [https://github.com/ntruchsess/perl-firmata]
  • [https://www.diozero.com/]
  • C# / .NET
  • [https://github.com/dotnet/iot] - recommended

5. System Requirements

General requirements for this technology stack — check the README for exact versions.

  • Arduino IDE / PlatformIO or a C++ compiler (g++)
  • Target board (e.g. Arduino, ESP32) where applicable
  • Git (to clone the repository)

6. Installation & Setup

git clone https://github.com/firmata/ConfigurableFirmata.git
cd ConfigurableFirmata
  1. If you want to edit things yourself or help in development, clone this repo to \My Documents\Arduino\libraries\ConfigurableFirmata and start hacking. Just delete the folder if it exists already.

Full setup instructions are in the project README.

7. Future Enhancements

Suggested extensions you can add to make this your own project.

  • Add a mobile dashboard using Blynk or Firebase
  • Store readings in a cloud database for history charts
  • Add alerts via SMS / Telegram when thresholds are crossed

8. Viva / Review Questions

Common questions examiners ask for projects in this domain.

  1. Which microcontroller / board and sensors are used and why?
  2. How does the device send data (Wi-Fi, MQTT, HTTP, Bluetooth)?
  3. Where is the sensor data stored and visualised?
  4. How is power consumption managed?
  5. How would you secure the device and its communication?

9. Source Code & License

This project is developed by firmata and published on GitHub under the GNU Lesser General Public License v2.1. Please follow the license terms and credit the original author when you use or modify this code.

Want to build this as your internship project?

Work on an Internet of Things (IoT) project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.

Apply for Internet of Things (IoT) Internship