FAQ
TL;DR: 100 % of the sampled ZMAi-90 meters (3/3 units) carry a BK7231N-based CBU Wi-Fi board; “RN has to be desoldered because it blocks UART” [Elektroda, thebeardeddragon, #20815631; Elektroda, p.kaczmarek2, #20838936].
Why it matters: Knowing the exact hardware revision determines your flashing method and whether power-metering will work.
Quick Facts
• Supply: 230 V AC single-phase, 50/60 Hz [Elektroda, thebeardeddragon, post #20815631]
• Wi-Fi SoC: Beken BK7231N, 2 MB flash [Elektroda, p.kaczmarek2, post #20838678]
• Metering IC: RN8209C, 16-bit Σ-Δ ADC, typ. 0.1 % accuracy [RN8209C Datasheet]
• Typical retail price: €18–25 (*AliExpress listing, 2024*)
• OpenBeken driver polls RN8209C every 3 s for new data [Elektroda, p.kaczmarek2, post #20857064]
Which hardware revisions of the ZMAi-90 exist and how do I identify them?
Three main versions circulate: (1) early ESP8266 Wi-Fi board, (2) CB2S/CB3S with BK7231T, and (3) CBU with BK7231N plus RN8209C metering chip. If you see a black CBU module and an un-marked 48-pin LCD driver beside the screen, you have revision 3 [Elektroda, p.kaczmarek2, post #20838936]
Can I flash OpenBeken without removing the RN8209C?
Reading the 2 MB dump is possible by briefly shorting CBU VDD to GND, but writing fails because RN8209C keeps the UART busy. For a reliable flash you must desolder (or cut RX/TX traces to) the RN8209C first [Elektroda, p.kaczmarek2, post #20838678]
What exact pads do I use for TX, RX, 3.3 V and GND?
On the CBU module pads: top-left GND, top-right RX1, bottom-right TX1, bottom-left VDD 3.3 V (see picture in post #20838678). TX2 is only a debug log pin and not used for flashing [Elektroda, p.kaczmarek2, post #20827152]
Safe 3-step flashing procedure for BK7231N CBU
- Desolder or isolate RN8209C TX/RX lines. 2. Wire USB-UART (3.3 V, RX↔TX1, TX↔RX1, GND) and run BK7231GUIFlashTool; click Read/Write. 3. Power-cycle the CBU or momentarily short VDD to GND to enter boot-loader, then flash OpenBeken BIN. [Elektroda, p.kaczmarek2, post #20827069]
How do I enable power-metering once OpenBeken is loaded?
Issue the console command startDriver RN8209, wait three seconds, then calibrate with a known 60 W load using VoltageSet/PCurrentSet commands. Voltage and power track within <1 % between 194 V and 247 V after calibration [Elektroda, p.kaczmarek2, post #20850811]
Current reading seems off—what causes CRC BAD messages?
A missing or damaged SMD capacitor on the RN8209C RX/TX line distorts packets, producing continuous “CRC BAD” logs and zeroed readings [Elektroda, lionboy, post #20857830] Verify the capacitor is present and that UART lines are clean.
How do I publish voltage, current, power and energy to Home Assistant?
After starting the RN8209 driver, click ‘HASS Discovery’ in Web-UI. OpenBeken exposes voltage (V), current (A), active power (W) and energy_total (kWh). If entities remain undefined, restart the driver and re-run discovery; power shows once driver is active [Elektroda, lionboy, post #20866430]
Why is energy_total missing in Home Assistant statistics?
The sensor appears but defaults to ‘counter’ class. Set ‘state_class: total_increasing’ and ‘device_class: energy’ in HA or update to firmware ≥ 1.17.342, where auto-classification was added [Elektroda, lionboy, post #20867145]
Is the LCD usable with OpenBeken?
Not yet. The unidentified 48-pin driver is likely an HT1621-compatible IC, but it lacks markings. Support is planned once the exact command set is confirmed [Elektroda, p.kaczmarek2, post #20864382]
Can RN8209C be used with ESPHome?
No. RN8209C is not supported by ESPHome as of 2024; OpenBeken currently offers the only open-source driver [Elektroda, p.kaczmarek2, post #20877626]
What is the risk of connecting UART while mains is present?
Connecting a non-isolated USB-UART to a live meter can place your PC at mains potential. Always power the CBU alone from 3.3 V and use an opto-isolator if probing when the relay board is energised [Elektroda, p.kaczmarek2, post #20827030]
Edge case: what happens if I fry the CBU during flashing?
The LCD goes blank and TX1/RX1 output stops, as reported after repeated power cycling during a failed dump [Elektroda, thebeardeddragon, post #20827013] Keep a backup of the original 2 MB image to restore with an external programmer.
Is a full TuyaMCU protocol reverse-engineering still required?
No. Direct RN8209C access removes dependency on Tuya dpIDs. The earlier TuyaMCUAnalyzer is useful only for older UART-proxy ZMAi-90 revisions [Elektroda, p.kaczmarek2, post #20815719]
Any off-the-shelf alternative that works without soldering?
As of 2024 none. All new ZMAi-90 units ship with BK7231N; flashing via OTA exploit is not available, so hardware access remains mandatory [Elektroda, lionboy, post #20864129]