Author Topic: RFM69HW Temperature Sensor  (Read 10308 times)

NixHydra

  • NewMember
  • *
  • Posts: 41
RFM69HW Temperature Sensor
« on: March 03, 2014, 10:24:02 PM »
Hi Felix and john k2ox,

Have recently been playing with the RFM69HW, byte temperature = radio.readTemperature(-1) function. If understood correctly, this function reads the 8 bit RFM69HW chip temperature and applies a minus 1 degree Celsius correction. Have had a look at the RFM69HW datasheet, Section 3.4.17. Temperature Sensor, Fig 16. Temperature Sensor Response, shows an inverse relationship between chip temperature and Temp Value, over the range -40 to 85 degrees Celsius. ie. as the chip temperature increases, the Temp Value decreases. Am attaching fig(i), third last column, which shows the reported temperatures for various power output levels. The reported temperature seems to be around 17 to 20 degrees Celsius, apparently regardless of the power setting, fig (i), 2nd last column. Am confused, particularly after reading reply#2 lilpint97, which refers to a reading of 240 degrees Celsius, even though the stated sensor range is -40 to 85C. Please see following link.

http://lowpowerlab.com/forum/index.php?topic=304.0

Could you please suggest what you guys have found from your experience, what kind of chip temperature readings you have found for various power level settings and what I could be missing, to explain my apparently low/stable readings?

Also, it would appear that when using the radio.setPowerLevel(0-31) function, that a radio.setPowerLevel(0-15) or radio.set
PowerLevel(16-31) produce the same outcome. Please see fig(i) last column, RSSI reading.

Any comment would be much appreciated.

cheers,


« Last Edit: March 04, 2014, 01:10:12 AM by NixHydra »

smni

  • NewMember
  • *
  • Posts: 7
Re: RFM69HW Temperature Sensor
« Reply #1 on: March 07, 2014, 01:23:58 AM »
I've only just started playing around with setPowerLevel, but I just noticed something interesting in the RFM69 datasheet

http://www.hoperf.com/upload/rf/RFM69W-V1.3.pdf

In section 6.3 Transmitter Registers, page 66:
Quote
** Only the16 upper values of OutputPower are accessible

Edit: Not quite sure what it means though!
« Last Edit: March 07, 2014, 01:52:19 AM by smni »

NixHydra

  • NewMember
  • *
  • Posts: 41
Re: RFM69HW Temperature Sensor
« Reply #2 on: March 07, 2014, 04:22:48 AM »
Hi smni,

   Thanks for that bit of information but like you, I had read it in the datasheet also. In fact after reading that I expected
that entering setPowerLevel(16-31) would increment the power level in 1 dBm steps. This also makes sense since the datasheet states the power output range is from +5dBm (3mW) to +20dBm (100mW) , 16 increments! I just decided to try entering setPowerLevel(0-31) out of curiousity and see what happened. Well, the surprise outcome was that it doesn't seem to matter whether you enter setPowerLevel(0-15) or (16-31), you still get the power incrementing in 1dBm steps. Point
being, there is no documentation to this effect ... maybe someone can enlighten me!

   Have also done a bit more testing with the radio.readTemperature( byte whatever) function and have noticed I'm getting
readings reported which range from 17 to 32 degrees Celsius. I was expecting that as the power output level increased so
would the chip temperature but the data doesn't bear this out ... anyone got a good explanation, no theory thanks, can
comment just be restricted to users' experience when making this measurement.

   Also was looking at the Moteino Quick comparison of RFM12 RFM69 modules from HopeRF and although have read it a hundred times or more before, noticed the RFM12B output power(max) stated as 0 dBm. The RFM12B Tx consumption is
stated as approximately 23mA, so shouldn't the RFM12B output power (max) be +5 dBm and not 0 dBm?

   Look forward to user comment.

                         cheers,


Felix

  • Administrator
  • Hero Member
  • *****
  • Posts: 6866
  • Country: us
    • LowPowerLab
Re: RFM69HW Temperature Sensor
« Reply #3 on: March 07, 2014, 07:34:23 AM »
You got some good points there.
I should revisit the setHighPower and adjust that for HW, maybe divide the steps so for each extra 2 input it will increase 1dBm...
Haven't actually done much temp sensing with the RFM chip myself, others seem to have so maybe they can chip in on the theory and their observations, there are some other topics too...
And yes the RFM12B seems it should be 5dBm. Not sure where I got the 0dBm figure at the time, but theoretically that is not wrong, doesn't mean there is NO output :)
Anyway, let's hope RFM12B is not really a popular choice going forward , and that people will look towards what is better, cheaper, and feature rich

john k2ox

  • Full Member
  • ***
  • Posts: 111
Re: RFM69HW Temperature Sensor
« Reply #4 on: March 07, 2014, 10:14:23 AM »
If you have an rfm69w you can set the power anywhere from 0 to 31 which corresponds to -18 to +13 dbm.
If you have an rfm69hw you should be using setting of 16 to 31 corresponding to +5 to +20 dbm with high power registers enabled.  +2 to +17 dbm  without.   

Actually, the rfm69hw puts increments power in one db steps from power settings 0 to 15, then starts over at 16 and increments up again from 16 to 31.

Please note that the data sheets actually refer to the Semtech SX1231 and SX1231H chips.  HopeRF unfortunately, simply put their name on the Semtech data sheet for the RFM69W and RFM69HW.  I say 'unfortunately' because HopeRF, the makers of the radios don't actually give any details on how they implement the radios using the Semtech chips.

If you look at the data sheet for the rfm69hw you will see that there are 3 different TX power amps and you can select them in various combinations through register settings. 

In HopeRf's implementation of the 69HW only the 'PA_BOOST' pin gets routed to the antenna.  That means you can't use PA0 to get to low power settings.  The RFM69W on the other hand only routes PA0 from the RFIO pin to the antenna so you are limited to +13 dbm and you can't get the full +17 from PA1+PA2.

HopeRF cleverly left out the lowest power output settings from there advertising to hide the limitation.

Your timing on this is impeccable.  I just figured this out two days ago!

Cheers,
john


Felix

  • Administrator
  • Hero Member
  • *****
  • Posts: 6866
  • Country: us
    • LowPowerLab
Re: RFM69HW Temperature Sensor
« Reply #5 on: March 07, 2014, 11:28:22 AM »
Thanks John, that explains a lot of things.
Would you consider it a waste to use the HWs at lower power settings? The rationale being that the W radios would then be pretty obsolete. It would be much easier for me to keep stock of only 2 HW radios, not 4.

KanyonKris

  • Full Member
  • ***
  • Posts: 113
Re: RFM69HW Temperature Sensor
« Reply #6 on: March 07, 2014, 12:08:53 PM »
john, good explanation of the output power. And good work figuring out that 0-15 and 16-31 do the same thing for the HW.

When I read this thread last night I went to the datasheets. This graph from the SX1231 datasheet (page 24) shows what we've been talking about:



The blue line is the RFM69W, the red line is the HW.

Felix, I agree it would be nice to offer only the W or HW, but they serve different uses. The HW helps those who need maximum range. Both the HW and W work for general use since most users transmit only little chunks of data periodically so power isn't a big issue. But for situations where a battery powered Moteino transmits frequently at close range, the W is nice because the output power can be turned way down to save power. If I had to choose I'd take the HW since I think you'd have more customers who want long range than those who want to maximize battery life at close range.
« Last Edit: March 07, 2014, 01:21:28 PM by KanyonKris »

john k2ox

  • Full Member
  • ***
  • Posts: 111
Re: RFM69HW Temperature Sensor
« Reply #7 on: March 07, 2014, 12:26:53 PM »
Hi Felix,

BTW.  As soon as I get caught up with all my existing projects I'm going to get a couple SwitchMotes from you. 

I was thinking about all the cool doors that you've opened with your contributions.  Thanks.  I want to get my RPi's going and use your SSH to cphone stuff.


Since the RF69HW only goes down to +2 vs -18 for the 69W's, I think there is a need for both.  W's for battery powered devices and HW's for mains powered. 

Actually, the chips have an RXTX pin that goes high on TX  and switches the antenna connection from the RFIO pin(on RX) to the PA_BOOST pin(tx) via the added rf switch IC on the HW radio. 

I think(hope) there is an undocumented register to disable the RXTX pin.  Then the radio would connect the antenna to RFIO in both TX and RX and enable low power rf/dc operation.

If we could find it, then we could use the HW on PA0 and get down to -18db.  Then you could use the 'HW' in 'H' mode and the HW would be all anyone would need.

I personally think the rfm69w is more useful, but I bet you sell more 'HW's.  The inclination is just to set it to 'eleven'.  :)

john

NixHydra

  • NewMember
  • *
  • Posts: 41
Re: RFM69HW Temperature Sensor
« Reply #8 on: March 07, 2014, 08:27:23 PM »
Hi Gals/Guys,

   John, thanks for the confirmation concerning power settings for the RFM69HW +5 to +20dBm range. Probably pushing it but
any chance you have also just been playing with the chip temperature measurement, as well?

   Felix, thanks for confirmation concerning the RFM12B, 5dBm (max) power setting. Also couldn't agree more with your statement in the last paragraph " Anyway, let's hope RFM12B is not really a popular choice going forward , and that people will look towards what is better, cheaper, and feature rich ". When I look over at the JeeLabs site, can't really understand why the inertia there as far as taking this ethos on-board ... but then they would certainly have a lot of "legacy" Jee RFM12B stuff, out there and by what would seem nothing other than a stroke of pure luck, that the RFM69CW is RFM12B "pinout" compatible!

    Anyway, keep those good toys rolling out.

                       cheers,


john k2ox

  • Full Member
  • ***
  • Posts: 111
Re: RFM69HW Temperature Sensor
« Reply #9 on: March 07, 2014, 11:45:55 PM »
As far as the temp readings go using the internal sensor.  The reported 2xx degree C temp that was reported was probably a mistake.

What I have observed are readings about 10F(5C) too high at an ambient around 32F.  That is simply with the radio in RX mode for hours setting outside.  Removing the power for thirty minutes or so, then applying power and reading the sensor I got the expected 32F.

I didn't record values vs. P out.

What I do remember is that I was transmitting temp readings every 5(?) seconds and the temp was stable, but high.  Then if I changed to a longer time interval the temp went down.

The data sheet says you'll burn it up if you run full power for more than 1% of the time. 

I think I watched the temp go up 10-20C when I decided the internal sensor wouldn't fit my needs.

That's after spending a hundred or so hours trying to get the routine to work in all modes.  That's all the info I can remember.  Your data looks reasonable to me.

john


 

NixHydra

  • NewMember
  • *
  • Posts: 41
Re: RFM69HW Temperature Sensor
« Reply #10 on: March 08, 2014, 02:51:53 AM »
Hi John,

   Thanks for taking the time to post that information concerning chip temperature measurement. The reason, I was
concerned, as you mentioned, didn't want to push the chip too hard and fry it. Also when I posted similar queries
on other sites, I got some of the "grey-bearded" demographic pushing a "sweaty" chip point-of -view and it's all bad!
Probably fair to say they had read the datasheets but never played with the chip. Well then, if the numbers I'm
getting seem OK, it looks like if you run the RFM69HW, sensibly (short duration), at +20dBm (100mW), then high chip temperature shouldn't pose a problem.

              cheers,

« Last Edit: March 08, 2014, 03:00:01 AM by NixHydra »

Felix

  • Administrator
  • Hero Member
  • *****
  • Posts: 6866
  • Country: us
    • LowPowerLab
Re: RFM69HW Temperature Sensor
« Reply #11 on: March 08, 2014, 11:46:20 AM »
   Felix, thanks for confirmation concerning the RFM12B, 5dBm (max) power setting. Also couldn't agree more with your statement in the last paragraph " Anyway, let's hope RFM12B is not really a popular choice going forward , and that people will look towards what is better, cheaper, and feature rich ". When I look over at the JeeLabs site, can't really understand why the inertia there as far as taking this ethos on-board ... but then they would certainly have a lot of "legacy" Jee RFM12B stuff, out there and by what would seem nothing other than a stroke of pure luck, that the RFM69CW is RFM12B "pinout" compatible!

RFM69CW is not a mistake per se, I'm sure HopeRF saw that as a necessary transition from RFM12B which is probably one of their most sold radios ever. And I am a relatively new kid on the block and I did not contribute as much as Jeelabs by far, so of course the legacy drives the ethos there. All I got is a library and a few examples ... but hoping for greater things to come.

pescadito

  • NewMember
  • *
  • Posts: 3
Re: RFM69HW Temperature Sensor
« Reply #12 on: March 12, 2014, 05:15:42 AM »
thank felix, jhon and kanyon for explaining power levels for hw!

i would try to use a rfm69hw as a tracker beacon, and i think a nice feature would be standing checking rssi values in a locator device as a indication of distance to the beacon (even it is not precise, it give me a approach direction). so i would apreciate to cycling the transmiter power of the beacon from high to low values (this way high power orient me when i far, low power when i close)

1) please, can anybody explain me how to put rfm69hw in the lower power level? i do some little test but i do not see differences using setPowerLevel(2) or setPowerLevel(20)

2) also i added two print lines to radio.readAllRegs() of moteino main example to show me the 0x5A, REG_TESTPA1 and 0x5C, REG_TESTPA2 values. So, after set 'setHighPower' i checked it currently use the default value (0x5A, 0x5C) instead of (0x5D and 0x7C) for high power setting. Please could anybody check this beahavoir? and suggest a correction for setHighPowerRegs function?

best regards, pescadito

KanyonKris

  • Full Member
  • ***
  • Posts: 113
Re: RFM69HW Temperature Sensor
« Reply #13 on: March 12, 2014, 01:05:41 PM »
1) please, can anybody explain me how to put rfm69hw in the lower power level? i do some little test but i do not see differences using setPowerLevel(2) or setPowerLevel(20)

Here's the power output graph from the HopeRF RFM69HW datasheet:



For RFM69W you can set the transmit power from 0 to 31; 0 = -18 dBm, 31 = +13 dBm, blue line in graph

The RFM69HW has higher maximum transmit power (+20 dBm, green line in graph) but less range (only goes down to +5 dBm). As john found, the RFM69HW transmit power is really only 0-15, then starts back at +5 dBm for 16-31:

dBm  setPowerLevel
+5     0 or 16
+6     1, 17
+7     2, 18
+8     3, 19
+9     4, 20
+10   5, 21
+11   6, 22
+12   7, 23
+13   8, 24
+14   9, 25
+15   10, 26
+16   11, 27
+17   12, 28
+18   13, 29
+19   14, 30
+20   15, 31

Since the power setting is 5 bits, I'm pretty sure the RFM69HW just uses the lower 4 bits and ignores the 5th bit - that's why 0-15 and 16-31 act the same (ie 01111 is the same as 11111).

 Note: the graph is a bit confusing since the green line for the RFM69HW doesn't go all the way down to +5 dBm. I guess it would fall on top of the red line so they had the green line just hanging out there.

john k2ox

  • Full Member
  • ***
  • Posts: 111
Re: RFM69HW Temperature Sensor
« Reply #14 on: March 12, 2014, 05:11:57 PM »
The rfm69hw I measured isn't quite that simple.  I get about 1.1 db higher output using 16-31 vs 0-15.
Also, if I use just PA1 instead of PA1+PA2, 0-15 has no output and 16-31 ranges from -2 to 13 dbm.

I've learned that Semtech used MatLab to create the chip and then synthesized it most likely into an FPGA and finally silicon.

So unfortunately,  common sense assumptions most often lead to brain damage when dealing with the rfm69.  Everything has to be tested and there are lots of sided effects. 

If you like solving puzzles, this device is for you! :)

john