Charles, I suggest maybe to contact Phang, because his node with the RN2483 interrupt works flawless… but probably not easy to implement without a separate wire
I checked yesterday for a few minutes, did the current meassurement and thought everything worked fine
timing after waking up… reinitialize uart connection / delay ?
I look at the data in the console (app, data) there I get
10:28:392014
payload:0100010200000300000402014B056700E00665007B0771FFFA000603FEaccelerometer_7.x:-0.006accelerometer_7.y:0.006accelerometer_7.z:1.022analog_in_4:3.31digital_in_1:1digital_in_2:0digital_in_3:0luminosity_6:123temperature_5:22.4
In Cayenne also… there I get
and in node red where I also log it to a file
{ “accelerometer_7”: { “x”: -0.006, “y”: 0.006, “z”: 1.022 }, “analog_in_4”: 3.31, “digital_in_1”: 1, “digital_in_2”: 0, “digital_in_3”: 0, “luminosity_6”: 123, “temperature_5”: 22.4 }
and in the log written bei node red:
{“accelerometer_7”:{“x”:-0.006,“y”:0.006,“z”:1.022},“analog_in_4”:3.31,“digital_in_1”:1,“digital_in_2”:0,“digital_in_3”:0,“luminosity_6”:123,“temperature_5”:22.4}
its, everywhere the same data I see…right now the node is behaving normally, except the doigital 3 value always zero.
@BoRRoZ Phang use an ATmega 328p that do not have USB, so it’s less tricky, I can just try to disable USB totally (but you need to reset the node to upload sketch). Anyway for low power I will try to disable totally USB, and may be activate it back only for example if button is pressed longer than 2s, I need to add some features depending on button press
@rocketscream
Interesting looking at the Arduino source code so see detach() emtpy !!
anyway attach() do all the trick even powering back on UVREGE so something like that should do the trick
void TheThingsNode::deepSleep(void)
{
// We want to be awake by LoRa module ?
if (this->pttn) {
// watchdog Not needed, avoid wake every 8S
WDT_stop();
// Set LoRa module sleep mode
this->pttn->sleep(this->intervalMs);
// This one is not optionnal, remove it
// and say bye bye to RN2483 or RN2903 sleep mode
delay(50);
// Module need to wake us with interrupt
attachInterrupt(TTN_LORA_SERIAL_RX_INT, TTN_SERIAL_LORA_FN, FALLING);
// switch all interrupts off while messing with their settings
cli();
bitSet(EIFR,INTF2); // clear any pending interrupts for serial RX pin (INT2 D0)
sei();
} else {
// watchdog needed for wakeup
WDT_start();
}
ADCSRA &= ~_BV(ADEN);
MCUCR |= (1 << JTD);
USBCON |= (1 << FRZCLK); // Disable USB clock
PLLCSR &= ~_BV(PLLE); // Disable USB PLL
USBCON &= ~_BV(USBE); // Disable USB
UHWCON &= ~_BV(UVREGE); // Disable USB Regulator
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();
sleep_mode(); //Sweet dreams!
//wake up, after ISR we arrive here ->
sleep_disable();
power_all_enable();
USBDevice.attach();
ADCSRA |= (1 << ADEN);
}
Major update, just to let you know I’ve pushed a bug fix (almost it seems) version with optimized Low Power (disable USB regulator) mode.
Sounds like working fine on my side, please note that for now, only sketch BatteryMonitorLPP is so optimized.
So If it’s okay on your side, I will include these optimization on the others examples and do a pull request
Please note that for advanced Ultra Low Power techniques, all unneeded peripherals are disable during sleep mode, including USB Management. This means you won’t be able to upload anymore if the node is sleeping and when wake up, Lora transmission is approx 3s (including receive windows) this means that you have 3 seconds windows to upload, so unless you’re lucky, it’s almost impossible to sync Arduino compilation and upload.
But to avoid this, you can press the node button for more than 2s, then the led will yellow blink quickly for 60s, letting you time to upload
@BoRRoZ, I’m interested in some sleep mode measurement of this sketch
and what if things are completely messed up during dev/playing ?
I never want to open that thing again … so have to make an usb connector to the outside to
I’ve just pushed the updated version with the original cayenneLPP sketch (the one with sensors activated) and updated the documentation also.
Here is the Pull Request #15 @johan, it’s now up to you
@Charles I am not sure if the code of the cayenne Ultra LPP has problems.
channel 3 is always zero, I do not know how long the node has to be kept moving until this is triggered. But more important my ttn node is stuck on the blue light after having worked ok for some events but suddenly no more message from the node and blue light forever. Only disconnecting batteries resets the node…
Measured battery voltage is 3.7V. Also again strange temperature value of 25.1 degreeC in reality 22.5 outside the ttn box… maybee the ttn node heats up inside…?
Fixed blue led is a bug, I’m investigated on it, I saw it also and only way is to reset, I light the LED just before calling send, so I suspect lora module not responding or whaever, but it happened to me when moving the module so with motion detection
Just reproduced again, moving again just after a send and blocked