Navigation

    • Register
    • Login
    • Search
    • OpenHardware.io
    • Categories
    • Recent
    • Tags
    • Popular
    1. Home
    2. funky81
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    Reski Rukmantiyo

    @funky81

    2
    Reputation
    59
    Posts
    1069
    Profile views
    2
    Followers
    4
    Following
    Joined Last Online
    Website http://github.com/funky81 Location Indonesia

    funky81 Follow

    Best posts made by funky81

    • WTShare Serial Gateway Auto ID

      Hi, just wanna give my contribution to the community.
      Following is the serial gateway code with support of auto ID, which is still missing in the latest of MySensor (1.4) library (CMIIW).

      links : bitbucket

      posted in Development
      funky81
      funky81
    • RE: pimatic-mysensors controller plugin

      @Fredrik-Carlsson info you havent got one, please check my development git

      • Pulse sensor ( Watt, KWh and Ampere )
        {
        "id": "EnergySensor,
        "name": "Energy Sensor",
        "class": "MySensorsPulseMeter",
        "nodeid": 3,
        "batterySensor": true,
        "sensorid": 1,
        "appliedVoltage" : 220
        }
      posted in pimatic
      funky81
      funky81

    Latest posts made by funky81

    • RE: How low can arduino can go?

      Hi @ericvdb , you can use multi tester like in this link....

      posted in Troubleshooting
      funky81
      funky81
    • RE: How low can arduino can go?

      @Tibus my suggestion is that try other nrf radio.
      Right now I can low as 10uA while sleeping

      posted in Troubleshooting
      funky81
      funky81
    • RE: How low can arduino can go?

      @Tibus do you have other nrf to try? I'm affraid you're using fake nrf.
      30% of my nrf (out of 10), are fake...

      one more thing, sleep method in above post dont turn off nrf radio while sleep.
      you can try gw.sleep() if you want turn off nrf radio while sleep (MyGateway gw)

      posted in Troubleshooting
      funky81
      funky81
    • RE: How low can arduino can go?

      @iask how is the result?

      posted in Troubleshooting
      funky81
      funky81
    • RE: How low can arduino can go?

      @iask I haven't upload my latest door sketch to my node yet. But if I'm using above sketch, idle 4uA and around 18mA while transfer.

      Do you have any issues like me before?

      posted in Troubleshooting
      funky81
      funky81
    • RE: pimatic-mysensors controller plugin

      @Fredrik-Carlsson please try it, please notice me if you find any bugs.
      I'm in the middle of pull request to @Dheeraj

      posted in pimatic
      funky81
      funky81
    • RE: pimatic-mysensors controller plugin

      @Fredrik-Carlsson info you havent got one, please check my development git

      • Pulse sensor ( Watt, KWh and Ampere )
        {
        "id": "EnergySensor,
        "name": "Energy Sensor",
        "class": "MySensorsPulseMeter",
        "nodeid": 3,
        "batterySensor": true,
        "sensorid": 1,
        "appliedVoltage" : 220
        }
      posted in pimatic
      funky81
      funky81
    • RE: State of the physical switch

      @mainali have you finished the sketch? do you mind to share?

      posted in General Discussion
      funky81
      funky81
    • RE: State of the physical switch

      @mainali I think @ferpando solution is quite nice. He add RF switch to existing button. @ferpando could we track physical switch state using this?

      posted in General Discussion
      funky81
      funky81
    • RE: How low can arduino can go?

      @AWI yes, it can communicate with the gateway normally.
      Following is my test result

      1. First code
      /**
       */
      #include <SPI.h>
      #include <MySensor.h>  
      #include <avr/sleep.h>
      //#include <avr/wdt.h>
      
      MySensor gw;
      
      // watchdog interrupt
      //ISR (WDT_vect) { wdt_disable();  /* disable watchdog*/ }  // end of WDT_vect
      
      void setup()  
      { 
      //  pinMode(7,OUTPUT);
      //  digitalWrite(7, HIGH);
      //    gw.begin();
        Serial.begin(115200);
        Serial.print("Setup");
      }
      
      void loop()      
      {  
      //  gw.powerUp();
        //digitalWrite(7, HIGH);
      //  gw.sendBatteryLevel(0);  
        Serial.print("Loop");  
        Serial.flush();
      //  gw.powerDown();
        //gw.sleep(30*1000);
        sleep();
      //  digitalWrite(7, LOW);
      //  sleep();
      }
      
      void sleep(){
         // disable ADC
        ADCSRA = 0;  
      
        // clear various "reset" flags
        MCUSR = 0;     
        // allow changes, disable reset
        WDTCSR = bit (WDCE) | bit (WDE);
        // set interrupt mode and an interval 
        WDTCSR = bit (WDIE) | bit (WDP3) | bit (WDP0);    // set WDIE, and 1 second delay
        wdt_reset();  // pat the dog
        
        set_sleep_mode (SLEEP_MODE_PWR_DOWN);  
        noInterrupts ();           // timed sequence follows
        sleep_enable();
       
        // turn off brown-out enable in software
        MCUCR = bit (BODS) | bit (BODSE);
        MCUCR = bit (BODS); 
        interrupts ();             // guarantees next instruction executed
        sleep_cpu ();  
        
        // cancel sleep as a precaution
        sleep_disable();
      }
      

      With this code I've got

      1. Test_Current_0 : 0.004 mA - Plain, Just Arduino (w/o LED, w/o Voltage Regulator)
      2. Test_Current_0 : 0,009 mA - Config in point 1 + Voltage Regulator (HT7333)
      3. Test_Current_0 : 1,58 mA - Config in point 2 + NRF24L01+

      Another test

      /**
       */
      #include <SPI.h>
      #include <MySensor.h>  
      #include <avr/sleep.h>
      //#include <avr/wdt.h>
      
      MySensor gw;
      
      // watchdog interrupt
      //ISR (WDT_vect) { wdt_disable();  /* disable watchdog*/ }  // end of WDT_vect
      
      void setup()  
      { 
      //  pinMode(7,OUTPUT);
      //  digitalWrite(7, HIGH);
        gw.begin();
        Serial.begin(115200);
        Serial.print("Setup");
      }
      
      void loop()      
      {  
        //gw.powerUp();
        //digitalWrite(7, HIGH);
        gw.sendBatteryLevel(0);  
        Serial.print("Loop");  
        Serial.flush();
        //gw.powerDown();
        gw.sleep(30*1000);
        //sleep();
      //  digitalWrite(7, LOW);
      //  sleep();
      }
      
      void sleep(){
         // disable ADC
        ADCSRA = 0;  
      
        // clear various "reset" flags
        MCUSR = 0;     
        // allow changes, disable reset
        WDTCSR = bit (WDCE) | bit (WDE);
        // set interrupt mode and an interval 
        WDTCSR = bit (WDIE) | bit (WDP3) | bit (WDP0);    // set WDIE, and 1 second delay
        wdt_reset();  // pat the dog
        
        set_sleep_mode (SLEEP_MODE_PWR_DOWN);  
        noInterrupts ();           // timed sequence follows
        sleep_enable();
       
        // turn off brown-out enable in software
        MCUCR = bit (BODS) | bit (BODSE);
        MCUCR = bit (BODS); 
        interrupts ();             // guarantees next instruction executed
        sleep_cpu ();  
        
        // cancel sleep as a precaution
        sleep_disable();
      }
      

      Config is the same with no 3 (above), but the power consumption in sleep I take around 2.37 mA.

      Is it maybe I've got bad NRF24L01+ ?

      ----- Updated
      It seems my suspicion, it seems the cause of high power consumption is NRF24L01+ radio. I've checked all of my radio, it appears that 2 of 9 seems fake / bad condition.

      Thanks for contribution of @HarryDutch @AWI @Dheeraj @tbowmo @GuyP and others, so now I can play with other level of MySensor.

      Thanks

      posted in Troubleshooting
      funky81
      funky81