A common problem in spectroscopy experiments is variable temperature control. One of the giant companies in the field, Bruker, has made a device that blows hot or cold air at samples to regulate their temperature. The device that blows air and runs the show has gone through several iterations over the years, but one variant is called the Bruker BVT3000 variable temperature controller. It has a little microcontroller, and talks to a commercially available (at the time) PID controller called the Eurotherm 902 series.
They speak over a 9600 baud, 7E1 serial link, via a modified form of the Bisync protocol. Command words are sent, and the whole device aims to (a) regulate gas flow through a binary encoding scheme through a manifold block with up to 15 different flow choices, and (b) regulate temperature through a (non-magnetic, in my case) resistive device with an embedded thermocouple in it. My lab had one of these devices that was approximately 25 years old, and it had “never worked”, in part due to difficulties in controlling the thing. I’ve therefore re-written an open source implementation of the controlling software, which you can find on Github at https://github.com/NeutralKaon/BVTserialInterfacer.
Some hard-to-find technical documents that may be of use to the other five people in the world who care about this are as follows: