Using RPi 3 with volkszaehler
Now that it is possible to boot from network on RPi, I wanted to have my volkszaehler Pi use this feature. However, this is only possible with RPi 3, not with 2. I therefore replaced the RPi 2 with a newer 3.
While the NFS boot was working flawlessly, the IR head expansion board was not detected correctly - should have been available as /dev/ttyAMA0.
So debug started :
- debug instructions for RPi - volkszaehler.org -> use xxd </dev/ttyAMA0 to see what can be read from this device
- generic debug instructions - volkszaehler.org
Result : no data available on /dev/ttyAMA0
Turns out that the RPi 3 has changed things a bit : ttyAMA0 now refers to the serial port that is connected to the bluetooth. The old serial port is now called ttyS0. However, ttyS0 was not existing in /dev. Nevertheless, I wanted to access the serial port on the expansion card, not the one on the main board.
Further research found that it is possible to configure the so-called firmware overlays that are loaded upon boot, activating or configuring the various hardware parts. One of them deactivates the bluetooth chipset and should put things back like on the RPi 2.(here another howto)
This is part of the device tree concept of the RPi. Software for debugging the overlay stack (man vcdbg and man dtc)
All without success. I noticed in the logfiles that instead of the available bcm2709-rpi-2-b.dtb the RPi was trying to load bcm2710-rpi-3.dtb. Renaming the first file didn’t help neither.
One solution that I didn’t try in the end was to use a TTL-to-USB converter to connect the IR head without needing the serial interface.
In the end I resorted to resinstalll the volkszaehler distro from scratch, thus reverting back to the old firmware. While this made the serial port available anew (the formware is targetted at RPi 2), it also removed the possibility to perform network boot out of the box. ather, a SD card is needed that holds the /boot and then allows to mount / per NFS.