Embedded & IoT engineer — energy metering · CAN bus · reverse engineering · ESPHome
I build firmware and tools that live at the boundary between hardware and software: reading electricity & water meters, sniffing automotive CAN buses, and reverse-engineering embedded devices. Most of my open work ships as ESPHome components for utility meters, plus the protocol libraries underneath them. When I'm not on a serial bus, I'm designing PCBs in KiCad.
| Project | ★ | What it is |
|---|---|---|
| arduino-canbus-monitor | 332 | CAN bus monitor on Arduino implementing the Lawicel SLCAN ASCII protocol (CAN232/CANUSB compatible). |
| tenda-reverse | 154 | Reverse engineering & root access for the Tenda MW6 WiFi mesh router (RTL8197F). |
| esphome-dlms-cosem | 37 | ESPHome ↔ DLMS/COSEM (IEC 62056-21 Mode E / СПОДЭС) electricity meters. |
| esphome-energomera-iec | 37 | ESPHome component for Energomera CE102M/CE301/CE303/CE307 (IEC 61107) meters. |
| jeep-canbus | 30 | CAN bus projects for Chrysler/Jeep — VES enabler and other hacks. |
| painlessMeshMqttGateway | 27 | MQTT ↔ painlessMesh gateway bridging an IoT mesh to Ethernet. |
I'm an active contributor to the official ESPHome project, where I've authored and maintain a number of sensor, display, and accelerometer components that now ship with ESPHome itself. (merged PRs · all PRs)
Components I authored (merged into ESPHome core):
| Area | Devices | PR |
|---|---|---|
| Light / ALS / proximity | LTR-303 / 329 / 553 / 556 / 559 / 659 | #6076 |
| Light / ALS / proximity | LTR-501 / 301 / 558 | #6262 |
| Light | VEML7700 / VEML6030 | #6067 |
| Power / energy monitor | INA228 / 229 / 238 / 239 / 237 | #6138 |
| Accelerometer | MSA311 / MSA301 | #6795 |
| Display | ST7567 128×64 (I²C / SPI) | #5952 |
| Air quality | ENS160 (SPI + I²C) | #6369 |
| Environment | BMP390 / BMP380 (SPI + I²C) | #6652 |
| Battery | Multiple Daly-BMS | #6615 |
…plus fixes & enhancements to LTR390, INA226, VEML7700, BME280, the ac_dimmer (ESP-IDF 5+),
and the i2c bus.
I'm also one of the main developers of esphome-libs/dlms_parser — the shared DLMS/COSEM parsing library used across the ESPHome ecosystem, which grew out of my own esphome-dlms-cosem work.
In progress (open PRs): AS7341 / AS7343 spectral sensors, HUSB238 USB-PD controller, ST LIS2DH12 & LIS2DW12 accelerometers, Waveshare CH32V003 I/O expander, CST328 touch controller, BH1745 colour sensor, and signal filters.
| Project | ★ | Description |
|---|---|---|
| esphome-dlms-cosem | 37 | DLMS/COSEM over HDLC, session & passive PUSH readout (СПОДЭС / GOST). |
| esphome-energomera-iec | 37 | Energomera CE102M/CE301/CE303/CE307 over IEC 61107. |
| esphome-iec61107-meter | 8 | Generic reader for IEC-61107 / IEC-62056 Type C meters. |
| esphome-pulsar-m | 6 | Pulsar-M water meters & pulse loggers. |
| esphome-nartis-rf-meter | 5 | Nartis I100/I300 electricity meters over RF433 (CMT2300A). |
| esphome-energomera-ble | 5 | Energomera CE208/CE308 over Bluetooth LE. |
| esphome-energomera-ce | 4 | Energomera CE102/CE301М/CE306/CE307 (native CE protocol). |
| esphome-le2-meter | 2 | Lenelectro ЛЕ-2 D5/D6 electricity meters. |
| esphome-nartis-wmbus | 1 | Nartis meters over wM-Bus (RF433 / CMT2300A). |
| esphome-ce2727a-meter | 0 | CE2727A / CE2726A electricity meters over RS-485. |
| esphome-dlms-cosem-ble | 0 | DLMS/COSEM meters over Bluetooth LE. |
| Project | ★ | Description |
|---|---|---|
| dlms-parser | 0 | Lightweight C++20 library for DLMS/COSEM push telegrams (RAW/HDLC/M-Bus, AES-128-GCM, AXDR). |
| ce2727a-driver | 0 | CE2727A power-meter driver for ESP-IDF. |
| ce2727a-emulator-js | 1 | JS emulator of the ЦЭ2727А meter (RS-485 protocol). |
Some overlap with my ESPHome core contributions above — these are the external-component versions you can pull directly.
| Project | ★ | Description |
|---|---|---|
| esphome-ina228 | 10 | Digital power monitors INA228/229/237/238/239. |
| esphome-st7567s-display | 6 | ST7567S 128×64 COG LCD over I²C. |
| esphome-nordic-uart-ble | 4 | Connect to Nordic UART Service (NUS) BLE devices. |
| esphome-iqs7222c | 0 | IQS7222C capacitive touch controller driver. |
| esphome-ltr303 | 1 | LTR-303/329/553/556/559/659 ambient-light sensors. |
| esphome-ltr501 | 0 | LTR-501ALS / LTR-301ALS ambient-light sensors. |
| esphome-veml7700 | 2 | VEML7700 ambient-light sensor. |
| Project | ★ | Description |
|---|---|---|
| arduino-canbus-monitor | 332 | Arduino SLCAN/Lawicel CAN monitor for low-speed interior buses. |
| jeep-canbus | 30 | CAN bus features & hacks for Chrysler/Jeep vehicles. |
| Project | ★ | Description |
|---|---|---|
| tenda-reverse | 154 | Root access & RE notes for Tenda MW6 mesh router. |
| xpenology-mods | 1 | Custom kernel modules for XPenology DSM on HP MicroServer N54L (KVM-AMD, HWMon). |
| tenda-GPL | 0 | Mirror of Tenda's officially-released GPL source. |
| Project | ★ | Description |
|---|---|---|
| painlessMeshMqttGateway | 27 | MQTT ↔ painlessMesh gateway (ESP8266/ESP32). |
| esp8266-mqtt-pulsecounter | 10 | Simple pulse counter over MQTT. |
| deif-ha-bridge | 0 | DEIF GC-1F/2 generator controller (Modbus RTU) → MQTT for Home Assistant. |
| latonita-netagent-ha-bridge | 0 | NetAgent UPS → Home Assistant bridge (Go). |
| home-ups-sip | 0 | UPS events → SIP voice notifications. |
| asterisk-zte-dongle | 0 | Asterisk VoIP calls via a ZTE MF627 3G dongle. |
| home-bot-dacha | 0 | Home/cottage automation bot. |
| Project | ★ | Description |
|---|---|---|
| garage-door-controller | 0 | Garage door controller with integrated 24/36V 7A motor driver (DRV8701). |
| SoftwareStepDirUnipolarDriver | 6 | Arduino step/dir driver for unipolar motors via ULN2003. |
| power-enable-circuit | 0 | ATtiny13 high-side power supervisor with debounce & min-on-time. |
| ibus-telemetry-module | 0 | FlySky i-BUS RC telemetry module. |
| kicad-various-shematics | 1 | Assorted KiCad schematics and PCBs. |




