ArdJack - an open-source command interpreter (yes, another) / helper / utility

ArdJack (on GitHub) is an open-source Arduino C++ application intended as a helper / utility for IoT development.

A command interpreter running on Arduinos receives the user's commands via e.g. a serial or UDP connection.

MIT license.

Main Features

  • ArdJack works on Arduino MKR1010, Adafruit Feather M0, DEVKIT ESP32, SparkFun RedBoard Turbo, Arduino Due (no WiFi), and potentially any Arduino IDE-compatible board with at least 32 KB of SRAM.
  • Includes support for WiFi, UDP, TCP, HTTP.
  • Object-oriented approach – there are user commands to create user objects: Devices, Connections, Beacons, Bridges etc., and to configure and use them. (Each has a corresponding C++ class.)
  • A Device, e.g. the board running the code, has a Part for each input or output. The ArduinoDevice class includes setup for several boards and may be easily extended.
  • A Device may be configured to use a Shield (see example class ArduinoMFShield), which then imposes its own Part configuration.
  • A Device may have UserParts to cater for connected components, e.g. sensors, actuators and displays. The UserPart class is subclassed for each type - see the example classes for DHT11/DHT22 sensors and NeoPixel displays.
  • Adapts to the current board type when compiled.
  • Configurable, via #defines.
  • Flexible routing scheme for routing input from Connections.
  • Macros – each macro stores one or more user commands.
  • Developed in Visual Studio / Visual Micro, and includes a Windows console application project which shares most of the code (for debugging).