Looking great,
Iâve already added encoder support to my code, so if you decide to try out my firmware, be aware that we used different pin numbers! You will need to update the configuration in Pins.h first.
Here is what I have collected so far for a Requirements overview document. I also have project / task tracking setup on my OpenProject instance, and can grant logins to anyone who wishes. (below text exists as a wiki page)
Processor
The main processor the device is an ESP32-S2-WROOM, a device more then capable of preforming the task at hand. Chosen for it's low cost, WiFi capabilities, and Arduino integrations, this processor will allow a wide range of remote control tasks and even allows for OTA upgrades. This processor is so powerful in-fact, we will be under-clocking it to the lowest possible speed which still supports WiFi. Normally running at 240MHz (2x CPUs @ 120MHz), we under-clock our device to just 80MHz (1x CPU @ 80MHz) in order to save as much power as possible from the tiny LiPo pack attached.
WiFi Connectivity
Using the ESP32 as it's core, the device will communicate with Arylic devices via the HTTP API.
Power
The device will be powered by a single small LiPo cell, and due to the low-power nature of the device, should last quite a while.
- Single Cell LiPo (500mAh?)
- LDO Regulator for stable processor voltage
- Ability to self monitor battery voltage
- GPIO drives a transistor to enable a voltage divider
- ESP32 reads analog voltage across divider
- MicroUSB input for battery charging
Input
A simple device, the remote has just a simple jog wheel for volume control and 5 buttons which can preform a variety of actions.
- A directional pad will be connected on pins N(#), E(#), S(#), W(#), S(#)
- A jog wheel encoder will be connected on pins A(#), B(#)
Status LED
A single RGB status LED will be used to indicate all modes and statuses of the device.
- A status LED will be available on pins R(#), G(#), B(#)
- Different colors and pule counts will indicate device status
- Purple solid
- Connected to WiFi
- Fades to [0] with inactivity
- Purple flashing
- Blue flashing
- Unconfigured / Setup Mode
- Red
- Number of flashes indicate error code
- Error connecting to WiFi
- Error when making API call
- Low battery
BOM
- Encoder [Link] [$8.95/ea]
- Encoder Board [Link] [$1.50/ea]
- ESP32 Devkit [Link] [<$10/ea]
- Battery Hypervisor [Link] [<$.80/ea]
- RGB LED