In 1999 I bought my Mechanical Ventilation Heat Recovery (MVHR) system from Paul.
I didn`t like the control system so it was replaced with an AVR Atmega. Three years ago I saw, that the transformer overheated and replaced it with an 48V switching power supply. Last year after 17 years of working one of the vents began to be noisy.
I dcided it was time to replace the vents and wanted a system that could be managed over internet.
My old BeagleBone had problems to get data from the uarts after an update. I decided to use a new BeagleBone black (bbb) with new kernel (4.4) to use eMMC instead the SD-card.
The old GPIO lib did not work with the new kernel, so I needed the the adafruit gpio lib.
Unfortunately this change was not easy and extremely time consuming. The used GPIOs are not free with the new device tree overlays and I had to dig deep to get it work.
The device tree is a data structure for describing hardware. So there is no further need to do this in the kernel for all the different arm controller boards. This data structure is passed to the operating system at boot time.
A dts-file (device tree source) is describing the data structure in a human readable format. A compiler (dtc; decvice tree compiler) converts the dts file to compact device tree blob file used by the kernel. This files have the ending dtb (device tree blob). The dtb files can be found on bbb in
It is possible to change these dtb files in
/boot/dtbs, but we have to reboot every time after we change the device tree. A more flexible way is to use device tree overlays in user space to change the device tree in runtime.