emonTx V3 failure

Hi,

I purchase 3 x emonTx V3 units around a month ago. They have been working great for about 3 weeks until I arrived home today and found I was missing data from the GLCD and emoncms.

After some investigation I found that 2 of my3 emonTx's were not feeding information back to the emoncms or GLCD. All three units are connected via AC adaptor.

After physically looking at each unit I noted that only one was flashing the red light every ten seconds.

I powered the two units off that did not have the red flashing light, powered them back on, one has come back to life and is again working normally, the other one sits with the red light on solid. When I connect to it via the UART I get the following response.

emonTx V3 DS V1.4.1 RFM12B
OpenEnergyMonitor.org
POST......wait 10s

and it does nothing more, i have re uploaded the sketch and the same thing happens.

Suggestions?

grantwatson's picture

Re: emonTx V3 failure

UPDATE:

I have loaded a demo sketch that blinks the onboard led and prints to the serial port, both these work correctly.

So doing some investigation with writting information to the serial port and watching it boot up, its getting to this bit of code which appears to be the wireless initializing and fails.

Can someone confirm this, does this mean the wireless on this unit has died?

SKETCH CODE START

 //READ DIP SWITCH POSITIONS
  pinMode(DIP_switch1, INPUT_PULLUP);
  pinMode(DIP_switch2, INPUT_PULLUP);
  if (digitalRead(DIP_switch1)==LOW) nodeID--;                            //IF DIP switch 1 is switched on then subtract 1 from nodeID
  if (digitalRead(DIP_switch2)==LOW) USA=TRUE;                       //IF DIP switch 2 is switched on then activate USA mode

  if (USA==TRUE){                                                                             //if USA mode is true
  Vcal=Vcal_USA;                                                                               //Assume USA AC/AC adatper is being used, set calibration accordingly
 }

  delay(10);

  rf12_initialize(nodeID, RF_freq, networkGroup);                          // initialize RFM12B/rfm69CW
   for (int i=10; i>=0; i--)                                               //Send RF test sequence (for factory testing)
   {
     emontx.power1=i;
     rf12_sendNow(0, &emontx, sizeof emontx);
    delay(100);
   }
  rf12_sendWait(2);
  emontx.power1=0;

SKETCH CODE STOPS
 

It counts through the for loop from 10 to 0 and stops.

 

 

 

Robert Wall's picture

Re: emonTx V3 failure

It does indeed look like a wireless module fault. First check the soldering (because as far as I can recall, we've never received a report of a truly dead module).
However, the usual fault is it stops and doesn't return from rf12_initialize( ).
Is it actually transmitting the test numbers?

If you can't see anything suspicious, contact the shop.

grantwatson's picture

Re: emonTx V3 failure

Thanks Robert, I'll have a look at it an report back.

Robert Wall's picture

Re: emonTx V3 failure

Does it return from sendWait(..)?
I was presuming not, but from the way you annotated the code you might just have meant it got through that and stopped after setting emontx.power1.
If it is coming back from sendWait( ) but going no further, then I'm totally confused.

How do you know it's going through the 'for' loop - I presume you put a 'print' after but do you see the transmitted numbers?

grantwatson's picture

Re: emonTx V3 failure

Hi Robert, sorry my previous post was not that clear. so below is the edited sketch with the serial prints in place with the serial port output below.

+++++++++++++++++++++SKETCH EDIT+++++++++++++++++++++++++

Serial.println(DIP_switch1);
Serial.println(DIP_switch2);
Serial.println(USA);

 if (USA==TRUE){                                                                             //if USA mode is true  Vcal=Vcal_USA;                                                                               //Assume USA AC/AC adatper is being used, set calibration accordingly
 }

  delay(10);
Serial.println("AFTER 10 SECOND DELAY");
  rf12_initialize(nodeID, RF_freq, networkGroup);                          // initialize RFM12B/rfm69CW
   for (int i=10; i>=0; i--)                                               //Send RF test sequence (for factory testing)
   {

Serial.println(i);
     emontx.power1=i;
     rf12_sendNow(0, &emontx, sizeof emontx);
Serial.println("delay 100");
     delay(100);
   }
  rf12_sendWait(2);
  emontx.power1=0;
Serial.println("CTS START HERE");

++++++++++++++++++ Sketch end ++++++++++++++++++++++++++++

Output from serial port

emonTx V3 DS V1.4.1 RFM12B
OpenEnergyMonitor.org
POST.....wait 10s
8
9
0
AFTER 10 SECOND DELAY
10
delay 100
9
delay 100
8
delay 100
7
delay 100
6
delay 100
5
delay 100
4
delay 100
3
delay 100
2
delay 100
1
delay 100
0
delay 100

The unit stops here and does nothing more...

 

Robert Wall's picture

Re: emonTx V3 failure

I need to know a lot more about the inner workings of JeeLib to make sense of what's happening there, but it's certainly not right. If there's nothing wrong that you can see, I think it's time to contact the shop.

grantwatson's picture

Re: emonTx V3 failure

I have check the board and connections and they all look ok, nothing that sticks out. I'll contact the shop.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.