The hiletgos returned with the transmitter running on 8V & the receiver running on 5V. This yielded acceptable range in a test. It also worked with the motors running. The receiver forwarded all the desk commands along with the weather station data on USB. The big differences are the receiver not running on the desk power & the receiver not changing any voltages in the long desk wires.
The mane problem was extreme interference with the audio amplifier.
The next step was connecting the ESP8266 to the desk. A quick flick of the multimeter showed the desk UART sourcing 5mA to 0V & the desk buttons sourcing 0.6mA to 0V so it would be a straight connection.
The last ESP8266 project was an access point in 2018 which merely forwarded the UART to WIFI. It only has 1 UART. For a software UART, the ESP8266 has only 1 spare hardware timer, timer1. timer1_attachInterrupt, timer1_enable, timer1_write access the hardware timer directly.
To get a system time for delays, there's the millis() function, os_timer_arm, os_timer_setfn. These share timer0.
An ESP8266 went straight into the desk connections with no buffers. Verified the desks accept 3.3V as high.
There was a complete mockup of a new transmitter with buttons. Then the wheels fell off. The radio signal integrity wasn't good enough to differentiate multiple codes. The previous test only exercised 1 code.
The transmitter got a 1/4 wavelength & the receiver got a full wavelength antenna. The bitrate was 2kb. These were the most optimum conditions. There was no obvious benefit from 8V. Higher bitrates were worse.
At least the ESP8266 demonstrated the rest of the communication path was working. It received the button codes over Wifi UDP at 10Hz.
Another bag of CC1101's seems to be the only next step. They have a role in many other projects.