In the parameter settings menu, there are several option the tester can modify. I’ve seen this on a video also on YT. Did you analyze the communication when these parameters changed? I ordered a tester and I will analyze the protocol. It is good if you can manually set the compressor frequency or set the outdoor fan rpm with an esp32 connected to the ODU.
I have not looked into that yet. Even though the manual says otherwise, I am going to play around with the simulation feature and see if that results in any commands being sent to the test port.
FYI: DJ9KW's HP repair chronicles - Reverse Engineering the TCL Inverter Minisplit S-Line Protocol
A write-up from somebody who wants to do the same thing: Run the ODU without IDU. Not Midea, but I thought close enough to be potentially useful for you.
I just did some tinkering with my inverter tester. Went into
Operating Parameter Settings -> Set Target Frequency and started to increase the value.
Turns out, the inverter tester actually sends the target frequency to the ODU via the test port:
req=0xAA00|00|00000000000056
req=0xAA00|01|00000000000055
req=0xAA00|02|00000000000054
req=0xAA00|03|00000000000053
...
I think there is a good chance that you might be able to control the ODU using the test port (despite the manual saying otherwise).
Great project and very slick module @fmckee.
I have a rebranded Midea unit. It uses the xt-bpew main board. I confirmed the dongle sends the signal as described in the project, however, there are no frames received. I will do some debugging.
The TEST port looks the same as all other Midea pcb pics shared (circled red in the pic).
However, there is a display PCB (pictured) that shows about 40 parameters and set 9 parameters. The communication between the display PCB and the Main PCB is UART (red line in the diagram) and was able to extract some frames. Still need to map them though.
Hold up. I only ever see values of 4 and 8 with that byte?
Nice, does 0x00[2]=01 means 1 on the inverter tester set frequency? Is it actually 1 Hz?
Be carerul when you manually set these parameters. You should not run your airconditioner too much time. Maybe few minutes, because you are able to damage the compressor if the indoor unit is not working. At the compressor there could be too much presessure or get liquid on the suction line.
If you test the EEV opening or the outdoor fan motor in this mode is actually safe, you cant damage your outdoor unit. Only when you try to test the compressor.
I have never seen such a 4-pin connector labeled DEBUG on a display board before. I’m wondering if that’s UART, too.
And to confirm: You can connect the dongle to the test port on the ODU control board, the dongle powers up, but you don’t receive any data?
I assume 1 = 1Hz.
I performed a “bench test”: The inverter tester was not connected to an ODU while I was experimenting with the Parameter Settings menu.
I have a sketch that I upload on my dongle to emulate an ODU. That’s good enough to analyze some of the inverter tester communication w/o having it connected to an actual ODU.
Yep, I had this happen once. I was out of town and a bad storm hit. a byte went from 157 to 93. Maybe storm related but I also installed the unit May 10 2025. This byte changed May 7th. Its possible I put power to the system on May 7th but who know. Ill see if anything happens next year!
Dongle is working. The ODU doesn’t respond to the requests sent. I used a digital analyzer and it is silent when the clock is running.
I believe the debug port is for the MCU programming. It is a single-line communication. Fourth pin is reset. You should have one on the PCB. If you pull the last pin down, it’ll reset.
That’s double disappointing. First, and most obviously, the dongle isn’t working for you. Second, assuming your unit is otherwise fully functional, it breaks my assumption that any unit with a test port can use my dongle.
This is from the inverter tester manual (translated using Google Translate):
(7) UART (red 4-pin) interface:
• Monitors the main control board’s run info over serial UART at 9600 bps, which gives faster data exchange. In current Midea products, UART is mainly found on the red socket of floor-standing (cabinet) indoor boards.
(8) I2C (white 5-pin) interface:
• Monitors the main control board’s run info over software-emulated I2C, LSB first, at 1200 bps, which gives slower data exchange. In current Midea products, I2C is mainly found on the white socket of outdoor boards.
This is all very confusing: My test port is white, uses 4-pins, and neither speaks UART nor I2C.
Anyway, here is what I’m getting at: I’m wondering whether the test port color (e.g., red) has a meaning, and whether a red test port uses a different protocol than a white one.
I’ve messed a little with turbo/boost today. How interested are you in the HAHB bus. A link you sent me once showed you might have HAHB headers to tap. Ive been testing with turbo/boost and other fan speeds static pressures but the bus is very very noisy.
It’s interesting, but I don’t have the time for a deep dive right now. Hobby hours are limited, and the test port is keeping me busy.
The screenshot was taken with Dr Smart plugged into the TEST port. With nothing connected, both the clock and data lines idle high.
Me to. For now Ill just do a README in github of the bus. Ill eventually do a Home Assistant topic.
I would assume the 20 04 frames would contain all of your LNS data vs my S1S2 data.







