RFM69HCW registers for 1.8V-2.4V

Started by drewpolek, November 02, 2021, 06:50:09 AM

drewpolek

I have RFM69HCW on my Moteino R6 board. Device is powered by CR123 battery (range from 1.8V to 3V). In my tests board works fine as soon as power voltage is above 2.4V. From documentation I see this is +20dB output range (2.4V-3.6V). I my project I would like to switch transceiver to use lower transmit power +13dB (1.8V-2.4V). How can I change registers by using Felix's lowpower library to achieve it?

Felix

A regular Moteino R6 is not the best to use in this case as it requires ~3.5v+ to achieve lowest power, below that the regulator will drain a lot more quiescent current. Instead, the Moteino-8mhz is a better choice and it runs at a more appropriate 8mhz speed for the lower voltages.
To achieve lowest transmit power you can call setPowerLevel(0).
Also this blog is worth a read to better understand the power levels of RFM69: https://lowpowerlab.com/2021/08/31/rfm69-tx-output-power-testing-library-fix/

drewpolek

Thanks for the answer, I converted regular R6 to low power version by changing fuses to use internal 8MHz (UART friendly) and flashing 8MHz DualOptiboot version. LDO is removed too and jumper is placed. Moteino R6 is the only one version which I is on my local market available. Btw. I will try your proposal. Thanks!

Felix

Ok, good.
Did you get yours from Welectron?

drewpolek

Yes, but not directly. I changed power level to mentioned one and device is stable above 2.0V. Below it hangs during TX. Thanks a lot.
I have another doubts. It is possible to set ATC with power level? When I setPowerLevel to 15 which is +13dB is it possible to setup ATC to work in this range from 0 to +13 automatically?


drewpolek

So if I setup it this way:
radio.initialize(FREQUENCY, NODEID, NETWORKID);
radio.setHighPower();
radio.encrypt(ENCRYPT_KEY);
radio.enableAutoPower(ATC_RSSI);
radio.setPowerDBm(13);

Will it work like I described?

Felix

Well setPowerDBm() is intended to be used manually. Not really in conjunction with ATC. ATC is doing it automatically, starts at MAX power and tunes it automatically based on feedback from the base station.

drewpolek

So, is possible to manually set MAX power from which ATC starts?

Felix

Ah I think I understand now, so you want to start not from MAX but from some lower power, then your code should work yes.

drewpolek

Thanks, I will measure power when receive newly ordered oscilloscope.