How is the twinkle made

The Twinkle consists of both custom hardware and software.


Twinkle Hardware Diagram


The electronics are based on the system-on-chip ESP8266 board with the following specifications:

  • 2.4 GHz 802.11 B/G/N
  • 80 MHz system on chip CPU
  • 4M Flash Capacity
  • 80K RAM

I order these chips in small batches from China.

Push Button

The push button is used for the following operations:

  • Restore Factory Defaults – While the device is powered on, press and hold the button until the blue Status LED starts rapidly flashing. Once the blue LED stops flashing the device will reboot.
  • Change WiFi configuration – Press and hold the button WHILE powering on the Twinkle. Release the button once the blue LED glows solid.
Ambient Light Sensor

Senses the amount of ambient light. In some modes it uses this information to change the brightness of the RGB LED.


The main light source containing a Red, Green, and Blue LED…covered by the diffuser over top of it.

Status LED

A bright blue LED that indicates various system things:

  • Solid – Access Point (AP) Mode. This indicates the Twinkle is acting as a WiFi access point and you can connect to it directly. The light will automatically turn off after 5 minutes despite remaining in AP mode.
  • Blinking – Trying to connect to WiFi.
  • Rapid Blinking – Restoring default configuration.
  • Off – This is the default state.
Micro USB

The power source. Can come from a wall plug, laptop, or battery pack.


The enclosure is designed with Tinkercad and made of nylon and ABS plastic. The case, in black, is made from SLS 3D printed nylon. These are printed by JawsTec in Idaho on a commercial printer. The light diffuser is printed on a traditional FDM 3D printer with ABS filament.


The software is created using Arduino. Some aspects of the backend have been open sourced, but not all.

The frontend uses the Svelte Javascript framework for functionality and the Bulma framework for look and feel.