Green Power LED Isn’t Lit
Make sure the Hat is properly seated on the Pi’s 40-pin GPIO connector, and the Raspberry Pi is powered on.
Pi Doesn’t Recognise the Hat
Make sure the Hat is properly seated on the Pi’s 40-pin GPIO connector.
Physically power of the Pi and power it on. Then check again with the following command:
- cat /proc/device-tree/hat/product
Red M-Bus LED Isn’t Lit
GPIO 26 (25 if using wiringPi) must be set to output mode and set high to power on the M-Bus. To do this, run:
Make sure the Hat is properly seated on the Pi’s 40-pin GPIO connector, and the Raspberry Pi is powered on.
- sudo apt install wiringpi
- gpio mode 25 out
- gpio write 25 1
Check for a short on the M-Bus.
If you are using a Raspberry Pi 4 make sure you have upgraded wiringPi to at least version 2.52 following the instructions here. Then try the following again:
- gpio mode 25 out
- gpio write 25 1
Red M-Bus LED Is Dimly Lit
Check for a short on the M-Bus.
libmbus Reports Collisions
Ensure two slaves aren’t configured to use the same address.
You may have more than 3 unit loads (4.5mA) of slaves attached. The M-Bus Master Hat only supports up to 3 unit loads. Disconnect some slaves, or use slaves that require fewer unit loads.
It is possible that your meter doesn’t support the M-Bus protocol, just the M-Bus physical layer. Instead it may support the IEC 62056 protocol. While the M-Bus Master Hat does support being used as the physical layer for meters that use just the M-Bus physical layer, M-Bus protocol software doesn’t support communicating over IEC 62056. You would need to connect to the meter using the M-Bus Master Hat, and a serial connection from the Raspberry Pi using the appropriate port, and then use a piece of software to decode the IEC 62056 encoded data. To test this, use the linux callup tool “cu” as follows:
- sudo apt install cu
- cu -l /dev/ttyAMA0 -s 2400
If you receive some data back then your meter likely supports IEC 62056 rather than the M-Bus protocol.
docker: Error response from daemon
If you get an error like this:
docker: Error response from daemon: image with reference packom/mbus-release was found but does not match the specified platform: wanted linux/arm/v7, actual: linux/amd64.
Rerun the docker command with this immediately following docker run:
--platform=linux/arm/armv7l