Project Overview

Our goal

We aim to make it easy and fun to create connected devices.

Simply load our software into a device and send it commands to turn it into whatever you want it to be.

A box can respond to incoming messages, or send messages of its own, or both. It can work with multipole inputs and outputs, all simultaneously. The software supports a range of sensors and it has been designed to make it easy for you to add new ones if you wish.

Boxes are configured and controlled by tiny snippets of JSON which can be sent by other boxes, from a server or from one of your programs

There are full circuit diagrams and parts lists for boxes and a complete set of easy to print case designs.

There is full server backend support for remote management and control.

Box Hardware

A box is controlled by an ESP8266 or ESP32 processor. We have driver support for NeoPixels, rotary encoders (pulse and potentiometer), servos, serial printers, the BME280 environmental sensor and MAX 7219 displays.

We have circuit designs for standard device configurations but these can be changed as required.

We have produced a set of STL files for popular box configurations but you can of course create your own.

Box Software

All the boxes run the same software which is remotely or locally configured. The software can support multiple processes and peripherals at the same time using a multi-tasking design.

The devices are controlled and configured using JSON messages which are entered locally via a USB connection or sent via MQTT. In addition a device can host a WiFi access point and host a configuration site, allowing device setup from a mobile phone or tablet.

The code is written in C++ and is freely available on GitHub. It was built using Visual Studio Code running the PlatformIO framework. The architecture has been designed to be extensible.

Code Free

You don't need to be a software guru to use our boxes. We've developed a simple set of commands that you can use to connect sensors (things that produce data) and processes (things that make stuff happen). These are documented in our reference manual here. here.

Once you've got those under your belt you can start sending commands to remote boxes using the aptly named 'to' option. Then, before you know it you'll be adding command stores and creating complex automated actions. If that's what you want.

Free Code

If you really want to make our boxes better you're welcome to jump into our C++ code and start improving things and adding features. All the software is freely available on GitHub as open source. You can take it and do what you like with it.

Although if you make a million from the code we'd appreciate at least a thank-you note.

You can find all the code here on our GitHub site.

Server Support

Boxes can talk directly to each other, there is no need for a central server to link them together.

However, if you want to perform centralised management of the devices you can install a server.

Boxes can be registered to a server providing centralised remote control and configuration.