Raspberry Pi - Model B + RFM12Pi V2 stopped working => what to do?

Hello,

I have a monitoring system, built over years, with the following components (bought from OpenEnergyMonitor shop):

  • Raspberry Pi - Model B + RFM12Pi V2 (868 MHz)
  • emonTx V3
  • emonTH (868 MHz)
  • emonTH V2 (868 MHz)

One day ago the system stopped to feed the data to emoncms.org.

I realized that the Raspi was booting but then hanging (even not connected to newtork).

I tried the following:

  • download and burn emonSD-17Oct19 => still hanging
  • download and burn emonSD-30Oct18 => still hanging
  • download and burn Raspbian (working) + install with EmonScripts (working) + enable serial port via raspi-config (hanging) => sill hanging

Any reccomendation on what to do now ?

Did you try a new SD Card?

Yes I tried with a different SDCard to be able to compare.

Odd. Try removing the emonBase (RFM) card from the Pi. Does it still hang with the setup above?

If you install Raspbian and enable the Serial Port does it still hang?

I just tried to remove emonBase with emonSD-17Oct19 and it is still hanging at the boot phase.

I have to try with “vanilla” Raspbian.

Was the SD Card you tried a new card or a known good card?

A known good card. In fact I am rewriting it for all the tests.

Now just tried “vanilla” Raspbian + serial active without RFM => boot working

Looks like it might be an issue with the RFM card then. @Robert.Wall @TrystanLea any thoughts?

The Baud rate for the RFM12B has changed over the years. Try 38400, 9600 and 57600
Also, remember to change the frequency to 868.

If all those do not work…

First check which RFM module you have on the RFM12Pi board - see Learn→Electricity Monitoring→Networking→Which radio module→Identifying different Radio Modules because I have a RFM12Pi printed with “RFM12B Raspberry Pi Expansion” that has a RFM69CW on it.

If you do have a RFM12B module, you will need to upload the RFM12B version of the software to the RFM12Pi board. The RFM12Pi will lock up and not boot if it really is a RFM12B and loaded with the RFM69CW software.

RFM12B modules have been known to fail, especially the “black blob” sort

A faulty RFM will prevent the RFM12Pi from booting and hence from working. I can’t confirm that a faulty RFM12Pi will definitely prevent the RPi from booting.

The baud rate and frequency should not prevent the RPi from booting, the RFM just won’t communicate with the Pi (wrong baud rate) or with the emonTx & emonTH (wrong frequency).

If you think the RFM has failed - and it does seem likely, it’s worth emailing the shop [email protected] to see if they can do you either a RFM12Pi or a RFM69Pi at 868 MHz (normally, only 433 MHz is available now) or if they can’t help, Martin Harizanov.

Hello,

this is the pic:

So it should be RFM12B - 868 MHz option.

I will try to contact the Shop.

In the meantime I tried vanilla Raspbian + serial => it is booting (also RM12Pi blinking during boot).

I tried the following command:

pi@emonPi:~ $ sudo avrdude -c arduino -p ATMEGA328P -P /dev/ttyAMA0 -b 38400
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00

Does this mean anything ?

That is indeed a RFM12B - 868 MHz.

I think it means 38400 baud is wrong! What happens at the other baud rates I suggested?

pi@emonPi:~ $ sudo avrdude -c arduino -p ATMEGA328P -P /dev/ttyAMA0 -b 38400
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
^C
pi@emonPi:~ $ sudo avrdude -c arduino -p ATMEGA328P -P /dev/ttyAMA0 -b 57600
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
^C
pi@emonPi:~ $ sudo avrdude -c arduino -p ATMEGA328P -P /dev/ttyAMA0 -b 9600
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00

“Not responding” means that the RPi can’t communicate with RFM12B module. I don’t know if the latest RPi operating system has kept the same names for the serial ports. We need a Raspberry Pi expert to tell us if “ttyAMA0” is correct for your Pi Model B.

I’ve seen /dev/ttyACM0 used to refer to a Pi serial port.

Exact replacement part (RFM12B 868MHz Crystal Can) are available at the JeeLabs Shop if you really have to change the module - it isn’t easy to remove the old module without damaging the PCB pads.

1 Like

Just a thought, I had the same problem when using a pi2 but there was an instruction in the release notes to comment out the arm_freq line in /boot/config.txt. (I’m not exactly sure what Pi you have)

* To use this image on Pi2 remove the following lines from /boot/config.txt:

arm_freq=1200
arm_freq_min=600

Edit: I noticed you had it working with stock raspbian and only started hanging when enabling serial port. So this is probably irrelevant.