I was very excited to get our new heating system which uses the OpenTherm protocol to communicate between the boiler and the thermostat. I found the electronic schematics, including PCB design and PIC firmware to make an OpenTherm gateway. This would allow me to plot the different temperatures and modes and learn from the statistics to fine-tune the heating! Only to find out that my, newer, version of the boiler doesn’t use OpenTherm anymore, but uses another type of bus… Back to square one. Here is my journey to reverse-engineer the protocol.
Posts tagged ‘electronics’
I needed an oscilloscope that is able to record minutes of signal and export that data to a computer. An oscilloscope is, in fact, nothing more than a analogue-to-digital convertor that samples the input signal fast enough. Exactly what a sound card’s recorder does!
The line-in of my MacBook Pro (6,2) has an input impedance of 28kΩ, and is AC-coupled. So it’s not possible to measure DC voltages. The DC-decoupling capacitor has a 30ms half-time (τ=43.3ms), which makes it capable of measuring down to 3.6 Hz (@-3dB).
Test measurements have shown that 350mV results in 0.115 full-scale deflection, yielding an approximate full-scale voltage of 3V (i.e. ~2.1Vrms).
The signal that I wanted to measure was 12Vdc, with pulses down to 0V. Putting a 330kΩ resistor in series with the input resulted in a voltage division of ~12.7, bringing the 12V safely below 1V and limiting the maximum current draw to 33µA.
When looking for documentation on Ethernet, one can easily find that the frame includes a Frame Check Sequence. This is a bunch of bits that allow the receiver to verify the frame. If the frame somehow got corrupted on its way from sender to receiver, the FCS will not match the frame data and the receiver will discard the corrupt frame. Exactly how this FCS is calculated is not that easy to find.
Our weather station has a serial connection and comes with Windows-software to view the weather data on your PC. The app is very eye-candy, but doesn’t do anything more than displaying the data. I’m more interested in long-term trending. So I wrote my own application to talk to the weather station and store the result in an rrdtool database.
A few months ago, I got theas an add-on for my Raptor. The manual mentions that the recording can be started and stopped . With some additional electronics, it should be possible to start/stop the camera from the ground using one of the free channels on my remote.
The free channel can’t be used directly: the receiver sends out pulses of different lengths (between 1ms and 2ms), while the FlyCamOne2 needs a simple short to start recording. Some electronics will be needed to convert between these two.
After some googling, I found thewhich does exactly that. But there are some downsides:
- It consumes a lot of power (10mA on 5V)
- Isn’t cheap (£10, plus international shipping, at the time of this post)
- I don’t get to enjoy myself figuring out how to do this myself
The CurveRC print seems to be build around an Atmel Tiny25 microcontroller, which is an 8bit RISC processor with 2K of build-in flash. Using a microprocessor makes the design fairly simple since nearly everything can be done in software. However, it must be clocked at reasonable speed to do something useful. This explains the fairly high power consumption.
So I decided I could do “better”.