For those unaware, ESPHome is an ESP32 (the same hardware Cyberbrick uses) firmware architecture that allows for programming ESP32 boards to communicate with and be controlled by the Home Assistant home automation platform. It allows users to build custom sensors, lighting devices, and more using very accessible programming language.
What I’m curious about exploring is interfacing Cyberbricks into ESPHome to allow Cyberbrick powered projects to be controlled via Home Assistant and thus allowing more robust and automated controls.
Here’s my thinking; the Cyberbrick transmitter shield contains a series of input ports for digital and analogue input channels. In theory these are 3.3v high/low inputs for the digital headers, and 3.3v floating for the analogue headers. ESPHome can output 3.3v signals both as high/low (with pull up and pull down options) as well as ADC floating.
Does anyone know or speculate if it’d be possible to take an output from an ESPHome programmed ESP32 and connect it to an input on the Cyberbrick transmitter shield. The ESPHome board could then immitate a digital or analogue input device and thus control the Cyberbrick connected device?
The footprint is different than other ESP32 controllers, but I’ve got ESPNow running between an XIAO ESP32-C6 and an Adafruit ESP32 Feather controlling four servos. Just a patchwork, but is an existence proof and certainly extendable to ESPHome.
So, if you abandon the Cyberbrick SW ecosystem, yes it should work. Whether the reverse is true is TBD since I’ve not gotten my HDW yet.
Bear in mind that the Cyberbrick processor is an ESP32-C3 which only has one core so simultaneous networking while controlling may be delicate.
Oh, I’m not looking at abandoning the ecosystem, I’m looking at bridging it (ideally non-destructively).
My basic concept is:
The Cyberbrick transmitter shield accepts inputs that (I assume based on it being a 5v ESP32) use 3.3v signals
ESPHome can be programmed to output 3.3v signals from its GPIO pins
If the signal input schema for the transmitter shield is either a) simple enough or b) mapped, then
An ESPHome configured board could be programmed to output in a Cyberbrick compatible way on a given GPIO pin, then that pin could be connected to the transmitter shield as an input (instead of say a button or joystick)
That’s what I’m working with as a concept, but I’m not sure if any of my assumptions are off base and I’m not yet at a stage to start gambling my current hardware
The joystick inputs would respond to analog inputs ranging from 0-3.3V where 1.65V would be midrange.
Switch pins would be LOW/HIGH 0/3.3V.
It certainly appears that the infrastructure is there for simple configuration via JSON files.
Seems like a simple bridge is possible. I’m inclined to look to adding the host commands directly in the transmitter controller, avoiding translation altogether. It’s more likely that a Cyberbrick transmitter (rather than a receiver) ‘could’ connect to ESPHome in addition to it’s current workload (which seems minimal to me).
Thanks for that info on the voltages, that’s exactly what I was looking for. I’ll see if I can set up a bridged connection proxying the inputs and see what happens.