nRF5 action!
-
I don't think sendSignalStrength function is implemented yet, but you should be able to get this info with:
int16_t transportGetSendingRSSI(void) int16_t transportGetReceivingRSSI(void) -
-
@Toyman
it has been explained above in the topic ;)
you have to follow -
Regarding the PCB/KiCad comments.
I was trying out KiCad and copied the NRF52832 DC/DC schematic from the datasheet.It might be of help for someone.
https://github.com/Omemanti/KiCAD/tree/master/NRF52832PS. been at KiCad for a couple of hours, been used to Eagle, so please double check.
-
@NeverDie
As mentioned earlier by someone the nrf52 is preset to 0.6v internal ref and a 1/5 divider so 0 - 3v is the max input so your calculation is correct.
The nrf51 is different because the ref can be set to a few different settings but the default is vdd.@rmtucker said in nRF5 Bluetooth action!:
@NeverDie
As mentioned earlier by someone the nrf52 is preset to 0.6v internal ref and a 1/5 divider so 0 - 3v is the max input so your calculation is correct.
The nrf51 is different because the ref can be set to a few different settings but the default is vdd.I've lately found that I seem to get a more accurate measurement if I multiply by 3131 instead of 3000. Just an empirical result with no real theory behind it.
-
What's going to be the best way to reduce the sleep current and Tx current on the nRF52? Since I'm feeding off a supercap for power, it's noticeably worse (by an order of magnitude) on the same task than the atmega328p+rfm69 combo. I've already increased the datarate to 2mbps, and it's inherently lower Tx current should give it a natural advantage.
I guess I'll try reducing Tx power and see if that makes much of a dent....
I suppose reducing 3 separate packets to one single packet, and maybe turning off ACK requests might also help. Then, maybe all of the LONG_WAIT's can be eliminated. Is the radio still awake even if the CPU is sleeping during a "wait" period? If so, that might be a large chunk of the wasted power.
I wonder if the mysensors mesh networking (which I don't intend to use) might be getting in the way, and possibly keeping it awake longer than it otherwise would be? Can I disable the mysensors meshnetworking just to be sure?
Sorry for the shotgun blast of questions, but I'm trying to get a sense of what will yield the highest payoff.
-
Since I'll be reducing Tx power in an attempt to reduce current consumption, I'll be using a scanner program to try to find empty channels. The only one I know of is: https://github.com/nRF24/RF24/tree/master/examples/scanner
for the nRF24L01, but it seems to work well enough if you let it run awhile. Anyone else using one that they like? -
Since I'll be reducing Tx power in an attempt to reduce current consumption, I'll be using a scanner program to try to find empty channels. The only one I know of is: https://github.com/nRF24/RF24/tree/master/examples/scanner
for the nRF24L01, but it seems to work well enough if you let it run awhile. Anyone else using one that they like?@NeverDie said in nRF5 Bluetooth action!:
Since I'll be reducing Tx power in an attempt to reduce current consumption, I'll be using a scanner program to try to find empty channels. The only one I know of is: https://github.com/nRF24/RF24/tree/master/examples/scanner
for the nRF24L01, but it seems to work well enough if you let it run awhile. Anyone else using one that they like?Nevermind. I see now that there's an entire entry on it:
https://forum.mysensors.org/topic/2454/node-cant-see-gateway-less-than-10m-away/11 -
I don't know if it is actually related, but I'll post the link to this programmer :)
adafruit.com/product/3571@gohan said in nRF5 Bluetooth action!:
I don't know if it is actually related, but I'll post the link to this programmer :)
adafruit.com/product/3571Not sure it's even legal to use this if you ever plan to sell PCBs on openhardware.io ...
You may use the J-Link EDU for non profit educational purposes only! Non-profit educational purposes means that you >may not use the J-Link EDU and its J-Link software.
- direct or indirect in or for a profit organization or business purposes or other undertaking intended for profit
- direct or indirect in any other commercial environment (e.g. office)
- to develop, debug, program or manufacturer a commercial product (or parts thereof)
- to use it to either earn money or reasonably anticipate the receipt of monetary gain from it.
-
@gohan said in nRF5 Bluetooth action!:
I don't know if it is actually related, but I'll post the link to this programmer :)
adafruit.com/product/3571Not sure it's even legal to use this if you ever plan to sell PCBs on openhardware.io ...
You may use the J-Link EDU for non profit educational purposes only! Non-profit educational purposes means that you >may not use the J-Link EDU and its J-Link software.
- direct or indirect in or for a profit organization or business purposes or other undertaking intended for profit
- direct or indirect in any other commercial environment (e.g. office)
- to develop, debug, program or manufacturer a commercial product (or parts thereof)
- to use it to either earn money or reasonably anticipate the receipt of monetary gain from it.
-
In my testing, NRF5_PA_LOW did offer some modest reduction in overall current consumption, but it's no silver bullet.
The range with NRF5_PA_MIN is just a few feet, so I don't consider it practical for the vast majority of use cases.
So, further reductions in current consumption will have to come from somewhere (?) else.
I suppose the next step is to turn-off auto ACK's and any listening for ACK's by the mote. Hopefully (?) there's a switch in myconfig which does that.
-
I have checked the current with my nRF52 board with integrated shunt. I have measured 6.5µA while sleeping until timeout or sleeping until interrupt. It doesn't matter if RX/TX are connected but after flashing the firmware a reset by removing the voltage is required.
There was an bug, with any type of sleep(0) which is fixed by this PR https://github.com/mysensors/MySensors/pull/909
-
Unless I'm doing it unwittingly, I'm not doing any sleep(0)'s at present.
-
I'm finding that having a very simple adapter board, such as that in the photo here, is quite convenient both for programming and for powering the nRF52832, and for wiring-up prototypes. I made my breakout board for breadboards, but those connections are always just too flakey. Maybe I need to use better breadboards? Anyhow, this meets the requirement for reliable, solid connections.

-
I removed this useless block of code from the main loop, which, with its long waits, may have been what was draining the power:
Serial.println(""); Serial.println(""); Serial.println(""); Serial.println("#########################"); randNumber=random(0,101); Serial.print("RandomNumber:"); Serial.println(randNumber); // Send fake battery level Serial.println("Send Battery Level"); sendBatteryLevel(randNumber); wait(LONG_WAIT); // Request time Serial.println("Request Time"); requestTime(); wait(LONG_WAIT); -
What's going to be the best way to reduce the sleep current and Tx current on the nRF52? Since I'm feeding off a supercap for power, it's noticeably worse (by an order of magnitude) on the same task than the atmega328p+rfm69 combo. I've already increased the datarate to 2mbps, and it's inherently lower Tx current should give it a natural advantage.
I guess I'll try reducing Tx power and see if that makes much of a dent....
I suppose reducing 3 separate packets to one single packet, and maybe turning off ACK requests might also help. Then, maybe all of the LONG_WAIT's can be eliminated. Is the radio still awake even if the CPU is sleeping during a "wait" period? If so, that might be a large chunk of the wasted power.
I wonder if the mysensors mesh networking (which I don't intend to use) might be getting in the way, and possibly keeping it awake longer than it otherwise would be? Can I disable the mysensors meshnetworking just to be sure?
Sorry for the shotgun blast of questions, but I'm trying to get a sense of what will yield the highest payoff.
-
@NeverDie
When you are comparing the atmega 328 and the nrf52 what sketch are you using to come to your conclusions?.@rmtucker said in nRF5 Bluetooth action!:
@NeverDie
When you are comparing the atmega 328 and the nrf52 what sketch are you using to come to your conclusions?.A solar mote which reports the voltage on the supercap and the unloaded voltage on the solar panel.
The goal is to get the mote to be a solar powered remote, where it will wake up and listen for a packet once every 100ms and then go back to sleep if it doesn't receive one inside a very narrow window of time. That window can be a lot narrower on the nRF52302, because it supports 2Mbps, whereas the RFM69 can support at most 300kbps. I got the atmega328p+rfm69 to do that (although it required a larger than 10F supercap to get through the night), and it worked. At the present moment, though, I don't think the nrf52 can do it, unless I were to use an even bigger supercap and more than one mini solar panel. The potential to do it is there though. I just need to drive it better.
I think a high priority is to get the DCDC working on the nRF52.
That should cut the higher currents (such as during Tx and Rx) by about half, as discussed earlier in this thread.BTW, removing the above block of code did help appreciably.
-
@rmtucker said in nRF5 Bluetooth action!:
@NeverDie
When you are comparing the atmega 328 and the nrf52 what sketch are you using to come to your conclusions?.A solar mote which reports the voltage on the supercap and the unloaded voltage on the solar panel.
The goal is to get the mote to be a solar powered remote, where it will wake up and listen for a packet once every 100ms and then go back to sleep if it doesn't receive one inside a very narrow window of time. That window can be a lot narrower on the nRF52302, because it supports 2Mbps, whereas the RFM69 can support at most 300kbps. I got the atmega328p+rfm69 to do that (although it required a larger than 10F supercap to get through the night), and it worked. At the present moment, though, I don't think the nrf52 can do it, unless I were to use an even bigger supercap and more than one mini solar panel. The potential to do it is there though. I just need to drive it better.
I think a high priority is to get the DCDC working on the nRF52.
That should cut the higher currents (such as during Tx and Rx) by about half, as discussed earlier in this thread.BTW, removing the above block of code did help appreciably.
@NeverDie said in nRF5 Bluetooth action!:
I think a high priority is to get the DCDC working on the nRF52.
You can try to do this:
#include <nrf.h>...in before()
NRF_POWER->DCDCEN = 1;
-
I haven't yet touched DCDC, but having stripped the example code down a bit, my 10F capacitor is now losing only about 18mv per hour, which is much better than when I began. Some of that is even self-discharge. Whew! Another bullet dodged. Of course, it needs to go lower still, but at least this is meaningful progress for minimal effort.