Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Hardware
  3. Solar Pannel and LiOn or Lipo

Solar Pannel and LiOn or Lipo

Scheduled Pinned Locked Moved Hardware
52 Posts 5 Posters 44.9k Views 9 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • epierreE Offline
    epierreE Offline
    epierre
    Hero Member
    wrote on last edited by
    #11

    @ceech yes I saw this one, but I have some hardware to use yet ;-)

    do you have an idea of the power of the pannel and the load duration for a CR123 or 18650 that we could consider on making a project ? that would be a good knowledge base for all !

    I am also searching for a casing that would be related to the panel size !

    z-wave - Vera -> Domoticz
    rfx - Domoticz <- MyDomoAtHome <- Imperihome
    mysensors -> mysensors-gw -> Domoticz

    C 1 Reply Last reply
    0
    • epierreE epierre

      @ceech yes I saw this one, but I have some hardware to use yet ;-)

      do you have an idea of the power of the pannel and the load duration for a CR123 or 18650 that we could consider on making a project ? that would be a good knowledge base for all !

      I am also searching for a casing that would be related to the panel size !

      C Offline
      C Offline
      ceech
      Hardware Contributor
      wrote on last edited by
      #12

      @epierre
      I'm sorry, I don't understand your question.

      1 Reply Last reply
      0
      • epierreE Offline
        epierreE Offline
        epierre
        Hero Member
        wrote on last edited by
        #13

        In fact I've found my answer

        "Facts on Battery Charging :

        The thumb rule for charging Ni Mh batteries is 1/10th (commonly known as C/10). To charge the battery pack at 1/10th its rated current requires 16 hours of charge time( You can see the picture).The solar panel receives optimal sunlight for only four hours per day, from 10 a.m. to 2 p.m. Thus, a totally ideal system would require four days to fully charge the battery pack.

        What is C/10 ?

        For example we have a 2xAA–sized 1300mAh battery pack that is rated at 1.2 volts per cell. With cells in series, our pack outputs 2.4 volts and 1300mAh.

        Here capacity C =1300mAh
        C/10 means 1300/10 =130mAh
        So to charge the above battery pack we need a higher voltage ( 2.4 to 3 V) with a maximum current of 130mAh.

        As per C/10 rule it requires 16 hours to fully charge the battery pack.

        You must be ask,what will happen if we increase the current (>130mAh) ?No doubt your battery will charge faster.But the life of the battery will be reduce.So my advice is to keep the current bellow the C/10 value."

        Choosing a panel:

        "The main source for powering the sensor module is solar panel.So it must be able to provide current for powering the arduino as well as current to charge the battery pack during the day.As per my experience it is the most challenging part for a novice user.

        Don't worry these are the following tricks which can help you to buy a right solar panel.

        1. Voltage : Choose 1.5 times the battery pack voltage
          2.Current : Current taken by the Arduino + current for charging (should be

        Example :
        A battery pack is made of 2 AA Ni Mh battery.
        Battery voltage = 1.2 x 2= 2.4V
        So required voltage for solar panel =2.4 x 1.5 = 3.6V
        By taking some margin we can choose a 4V solar panel for it.
        The sensor module along with arduino taking 100mAh current.

        Battery capacity is 1300mAh
        C/10 = 130mAh

        Solar panel have to provide current 100mAh for arduino along with a current not more than 130mAh.

        Lets take 100 mAh for charging the battery
        Total current required = 100+100=200mAh

        From the above calculation it is clear that we need a solar panel of 4V and 200mAh.

        The following table shows the solar system configuration relationship between storage batteries and mini solar panels.

        Battery ----> Solar Panel
        1.2V ------> 2V ~ 2.5V
        2.4V ------> 3.5V ~ 4V
        3.6V ------> 5V ~ 6V
        6V ------> 7.5V ~ 9V
        12V ------>15V ~ 18V

        Note : It is not the strict rule for choosing the exact rating solar panel, rather it is approximate rating .I write as per my experience"

        z-wave - Vera -> Domoticz
        rfx - Domoticz <- MyDomoAtHome <- Imperihome
        mysensors -> mysensors-gw -> Domoticz

        1 Reply Last reply
        0
        • C ceech

          Here, this is how you connect things:
          Untitled.png
          The second item from the left is a DC-DC converter. It is used when the solar panel voltage exceeds 5V. Otherwise it is not needed.
          The red board is battery charger. Note that the battery is connected to Batt connections and the Arduino is connected to Out connections, so that the battery protection circuit can do its job.
          Arduino is there as an example, I do not think that UNO will even work with such low voltage.

          epierreE Offline
          epierreE Offline
          epierre
          Hero Member
          wrote on last edited by
          #14

          @ceech said:

          The second item from the left is a DC-DC converter. It is used when the solar panel voltage exceeds 5V. Otherwise it is not needed.
          The red board is battery charger. Note that the battery is connected to Batt connections and the Arduino is connected to Out connections, so that the battery protection circuit can do its job.

          Hello,

          Now I have the item, so:
          - B+/B- connected to the voltage regulator of the pannel.

          • usb port connected to the 18650 / CR123
          • +/- near the usb port to the input voltage of the arduino ? or is that out+/out- ?

          subsidiary question: what would be the device to use to load a LiFePO4 ?

          z-wave - Vera -> Domoticz
          rfx - Domoticz <- MyDomoAtHome <- Imperihome
          mysensors -> mysensors-gw -> Domoticz

          C 1 Reply Last reply
          0
          • epierreE epierre

            @ceech said:

            The second item from the left is a DC-DC converter. It is used when the solar panel voltage exceeds 5V. Otherwise it is not needed.
            The red board is battery charger. Note that the battery is connected to Batt connections and the Arduino is connected to Out connections, so that the battery protection circuit can do its job.

            Hello,

            Now I have the item, so:
            - B+/B- connected to the voltage regulator of the pannel.

            • usb port connected to the 18650 / CR123
            • +/- near the usb port to the input voltage of the arduino ? or is that out+/out- ?

            subsidiary question: what would be the device to use to load a LiFePO4 ?

            C Offline
            C Offline
            ceech
            Hardware Contributor
            wrote on last edited by
            #15

            @epierre -B/+B to the battery, USB port is NOT connected. + and - near the USB port are inputs from the solar cell. out+/out- is for Arduino.

            1 Reply Last reply
            0
            • epierreE Offline
              epierreE Offline
              epierre
              Hero Member
              wrote on last edited by
              #16

              so bad, none worked for a long even with a 6800mAh... it was arduino mini pro ith a 1 W solar panel...

              I've moed to your boards to see if I can do better...

              z-wave - Vera -> Domoticz
              rfx - Domoticz <- MyDomoAtHome <- Imperihome
              mysensors -> mysensors-gw -> Domoticz

              1 Reply Last reply
              0
              • epierreE Offline
                epierreE Offline
                epierre
                Hero Member
                wrote on last edited by
                #17

                @ceech same issue ith your solar / battery board... sleep time is 300 * 1000, it starts up and then nothing anymore even with a fully charged 18650 6800mAh LIOn...

                z-wave - Vera -> Domoticz
                rfx - Domoticz <- MyDomoAtHome <- Imperihome
                mysensors -> mysensors-gw -> Domoticz

                1 Reply Last reply
                0
                • C Offline
                  C Offline
                  ceech
                  Hardware Contributor
                  wrote on last edited by ceech
                  #18

                  @epierre
                  Does the basic functionality work? Do you receive any data from LTC4067?

                  $_57.JPG

                  Here is an example of RAW analogRead data from LTC4067.
                  Notice the /CHRG change from High to Low. That indicates charging.

                  analog input A1 on ATmega 328 is /CHRG signal from LTC4067
                  analog input A0 on ATmega328 is battery voltage
                  analog input A2 is solar cell voltage
                  analog input A6 is input current ( I=V/R x 1000 )
                  analog input A7 is battery charge current ( I=V/Rprog x 1000 )

                  1 Reply Last reply
                  0
                  • epierreE Offline
                    epierreE Offline
                    epierre
                    Hero Member
                    wrote on last edited by
                    #19

                    Here is the code based on the other around:

                    /*
                      Vera Arduino BH1750FVI Light sensor
                      communicate using I2C Protocol
                      this library enable 2 slave device addresses
                      Main address  0x23
                      secondary address 0x5C
                      connect the sensor as follows :
                    
                      VCC  >>> 5V
                      Gnd  >>> Gnd
                      ADDR >>> NC or GND  
                      SCL  >>> A5
                      SDA  >>> A4
                      
                      Contribution: idefix/epierre for ceech
                     
                    */
                    #include <SPI.h>
                    #include <MySensor.h> 
                    #include <Wire.h> 				// I2C
                    #include <BH1750.h>
                    
                    #define LTC4067_CHRG_PIN	A1		//analog input A1 on ATmega 328 is /CHRG signal from LTC4067
                    #define batteryVoltage_PIN	A0		//analog input A0 on ATmega328 is battery voltage ( /2)
                    #define solarVoltage_PIN	A2		//analog input A2 is solar cell voltage (/ 2)
                    #define solarCurrent_PIN	A6		//analog input A6 is input current ( I=V/Rclprog x 1000 )
                    #define batteryChargeCurrent_PIN	A7		//analog input A7 is battery charge current ( I=V/Rprog x 1000 )
                    #define LTC4067_SUSPEND_PIN	9		//digital output D9 - drive it high to put LTC4067 in SUSPEND mode
                    
                    const float VccMin        = 1.0*3.5;  // Minimum expected Vcc level, in Volts. Example for 1 rechargeable lithium-ion.
                    const float VccMax        = 1.0*4.2;  // Maximum expected Vcc level, in Volts. 
                    
                    #define LIGHT_SENSOR_ANALOG_PIN 3   // Digital input did you attach your soil sensor.  
                    #define CHILD_ID_LIGHT 0   // Id of the sensor child
                    #define BATT_CHILD_ID 10
                    #define SOLAR_CHILD_ID 11
                    
                    // PIN Radio
                    #define RADIO_CE_PIN    7       // radio chip enable
                    #define RADIO_SS_PIN    8      // CS SS serial select
                    
                    float lastBattVoltage;
                    float lastBattCurrent;
                    float lastSolarVoltage;
                    float lastSolarCurrent;
                    int lastBattPct = 0;
                    uint16_t lastlux;
                    float VccReference = 3.3 ;				// voltage reference for measurement, definitive init in setup
                    
                    BH1750 lightSensor;
                    MySensor  gw(RADIO_CE_PIN, RADIO_SS_PIN);;
                    unsigned long SLEEP_TIME = 300*1000;  // sleep time between reads (seconds * 1000 milliseconds)
                    MyMessage msg(CHILD_ID_LIGHT, V_LIGHT_LEVEL);
                    MyMessage batteryVoltageMsg(BATT_CHILD_ID, V_VOLTAGE);		// Battery voltage (V)
                    MyMessage batteryCurrentMsg(BATT_CHILD_ID, V_CURRENT);		// Battery current (A)
                    MyMessage solarVoltageMsg(SOLAR_CHILD_ID, V_VOLTAGE);		// Solar voltage (V)
                    MyMessage solarCurrentMsg(SOLAR_CHILD_ID, V_CURRENT);		// Solar current (A)
                    
                    int lastSoilValue = -1;
                    
                    void setup()  
                    { 
                     
                      gw.begin();
                    
                      // Send the sketch version information to the gateway and Controller
                      gw.sendSketchInfo("Light Lux Sensor", "1.0");
                      // Register all sensors to gw (they will be created as child devices)  
                      gw.present(CHILD_ID_LIGHT, S_LIGHT_LEVEL);
                      gw.present(BATT_CHILD_ID, S_POWER);						// Battery parameters
                      gw.present(SOLAR_CHILD_ID, S_POWER);					// Solar parameters
                      
                      // use VCC (3.3V) reference
                      analogReference(DEFAULT);								// default external reference = 3.3v for Ceech board
                      VccReference = 3.323 ;									// measured Vcc input (on board LDO)
                      pinMode(LTC4067_SUSPEND_PIN, OUTPUT);					// suspend of Lion charger set
                      digitalWrite(LTC4067_SUSPEND_PIN,LOW);   			//  active (non suspend) at start
                    
                      lightSensor.begin();
                    }
                     
                    void loop()     
                    {     
                    
                      sendVoltage();
                      
                      uint16_t lux = lightSensor.readLightLevel();// Get Lux value
                      Serial.println(lux);
                      if (lux != lastlux) {
                          gw.send(msg.set(lux));
                          lastlux = lux;
                      } 
                      
                      // Power down the radio
                      gw.sleep(SLEEP_TIME);
                    }
                    
                    void sendVoltage(void)
                    // battery and charging values
                    {
                    	// get Battery Voltage & charge current
                    	float batteryVoltage = ((float)analogRead(batteryVoltage_PIN)* VccReference/1024) * 2;	// actual voltage is double
                    	Serial.print("Batt: ");
                    	Serial.print(batteryVoltage);
                    	Serial.print("V ; ");
                    	float batteryChargeCurrent = ((float)analogRead(batteryChargeCurrent_PIN) * VccReference/1024)/ 2.5 ; // current(A) = V/Rprog(kohm)
                    	Serial.print(batteryChargeCurrent);
                    	Serial.println("A ");
                    
                       
                    	// get Solar Voltage & charge current
                    	float solarVoltage = ((float)analogRead(solarVoltage_PIN)/1024 * VccReference) * 2 ;		// actual voltage is double
                    	Serial.print("Solar: ");
                    	Serial.print(solarVoltage);
                    	Serial.print("V ; ");
                    	// get Solar Current
                    	float solarCurrent = ((float)analogRead(solarCurrent_PIN)/1024 * VccReference)/ 2.5;		// current(A) = V/Rclprog(kohm)
                    	Serial.print(solarCurrent);
                    	Serial.print(" A; charge: ");
                    	Serial.println(digitalRead(LTC4067_CHRG_PIN)?"No":"Yes");
                    	
                    	// send battery percentage for node
                    	int battPct = 1 ;
                    	if (batteryVoltage > VccMin){
                    		battPct = 100.0*(batteryVoltage - VccMin)/(VccMax - VccMin);
                    	}
                    	Serial.print("BattPct: ");
                    	Serial.print(battPct);
                    	Serial.println("% ");
                    
                    	gw.send(batteryVoltageMsg.set(batteryVoltage, 3));  		// Send (V)
                    	gw.send(batteryCurrentMsg.set(batteryChargeCurrent, 6));  	// Send (Amps)
                    	gw.send(solarVoltageMsg.set(solarVoltage, 3));  			// Send (V)
                    	gw.send(solarCurrentMsg.set(solarCurrent, 6));  			// Send (Amps)
                    	gw.sendBatteryLevel(battPct);
                    }
                    

                    z-wave - Vera -&gt; Domoticz
                    rfx - Domoticz &lt;- MyDomoAtHome &lt;- Imperihome
                    mysensors -&gt; mysensors-gw -&gt; Domoticz

                    1 Reply Last reply
                    0
                    • epierreE Offline
                      epierreE Offline
                      epierre
                      Hero Member
                      wrote on last edited by epierre
                      #20

                      Batt: 3.94V ; 0.00A
                      Solar: 0.18V ; 0.00 A; charge: No
                      BattPct: 62%

                      Batt: 4.10V ; 0.00A
                      Solar: 0.55V ; 0.00 A; charge: No
                      BattPct: 85%

                      z-wave - Vera -&gt; Domoticz
                      rfx - Domoticz &lt;- MyDomoAtHome &lt;- Imperihome
                      mysensors -&gt; mysensors-gw -&gt; Domoticz

                      1 Reply Last reply
                      0
                      • epierreE Offline
                        epierreE Offline
                        epierre
                        Hero Member
                        wrote on last edited by epierre
                        #21

                        an idea maytbe, if I put sleep at 30 * 1000 it works, at 60 * 1000 infinite sleep... any idea ?

                        (I observed that on both units). It also loas the battery ...

                        Batt: 3.96V ; 0.00A
                        Solar: 0.55V ; 0.00 A; charge: No
                        BattPct: 65%
                        send: 14-14-0-0 s=10,c=1,t=38,pt=7,l=5,st=ok:3.959
                        send: 14-14-0-0 s=10,c=1,t=39,pt=7,l=5,st=ok:0.000000
                        send: 14-14-0-0 s=11,c=1,t=38,pt=7,l=5,st=ok:0.545
                        send: 14-14-0-0 s=11,c=1,t=39,pt=7,l=5,st=ok:0.000000
                        send: 14-14-0-0 s=255,c=3,t=0,pt=1,l=1,st=ok:65
                        22
                        send: 14-14-0-0 s=0,c=1,t=23,pt=3,l=2,st=ok:22
                        Batt: 3.97V ; 0.00A
                        Solar: 0.48V ; 0.00 A; charge: No
                        BattPct: 66%
                        send: 14-14-0-0 s=10,c=1,t=38,pt=7,l=5,st=ok:3.966
                        send: 14-14-0-0 s=10,c=1,t=39,pt=7,l=5,st=ok:0.000000
                        send: 14-14-0-0 s=11,c=1,t=38,pt=7,l=5,st=ok:0.480
                        send: 14-14-0-0 s=11,c=1,t=39,pt=7,l=5,st=ok:0.000000
                        send: 14-14-0-0 s=255,c=3,t=0,pt=1,l=1,st=ok:66
                        21
                        send: 14-14-0-0 s=0,c=1,t=23,pt=3,l=2,st=ok:21

                        z-wave - Vera -&gt; Domoticz
                        rfx - Domoticz &lt;- MyDomoAtHome &lt;- Imperihome
                        mysensors -&gt; mysensors-gw -&gt; Domoticz

                        C 1 Reply Last reply
                        0
                        • epierreE epierre

                          an idea maytbe, if I put sleep at 30 * 1000 it works, at 60 * 1000 infinite sleep... any idea ?

                          (I observed that on both units). It also loas the battery ...

                          Batt: 3.96V ; 0.00A
                          Solar: 0.55V ; 0.00 A; charge: No
                          BattPct: 65%
                          send: 14-14-0-0 s=10,c=1,t=38,pt=7,l=5,st=ok:3.959
                          send: 14-14-0-0 s=10,c=1,t=39,pt=7,l=5,st=ok:0.000000
                          send: 14-14-0-0 s=11,c=1,t=38,pt=7,l=5,st=ok:0.545
                          send: 14-14-0-0 s=11,c=1,t=39,pt=7,l=5,st=ok:0.000000
                          send: 14-14-0-0 s=255,c=3,t=0,pt=1,l=1,st=ok:65
                          22
                          send: 14-14-0-0 s=0,c=1,t=23,pt=3,l=2,st=ok:22
                          Batt: 3.97V ; 0.00A
                          Solar: 0.48V ; 0.00 A; charge: No
                          BattPct: 66%
                          send: 14-14-0-0 s=10,c=1,t=38,pt=7,l=5,st=ok:3.966
                          send: 14-14-0-0 s=10,c=1,t=39,pt=7,l=5,st=ok:0.000000
                          send: 14-14-0-0 s=11,c=1,t=38,pt=7,l=5,st=ok:0.480
                          send: 14-14-0-0 s=11,c=1,t=39,pt=7,l=5,st=ok:0.000000
                          send: 14-14-0-0 s=255,c=3,t=0,pt=1,l=1,st=ok:66
                          21
                          send: 14-14-0-0 s=0,c=1,t=23,pt=3,l=2,st=ok:21

                          C Offline
                          C Offline
                          ceech
                          Hardware Contributor
                          wrote on last edited by
                          #22

                          @epierre
                          Solar voltage seems a bit low. Can you raise it? And see if the charging takes place?

                          1 Reply Last reply
                          0
                          • epierreE Offline
                            epierreE Offline
                            epierre
                            Hero Member
                            wrote on last edited by epierre
                            #23

                            sleep is the problem, it loads at 30s never above...

                            Batt: 4.06V ; 0.00A 
                            Solar: 2.56V ; 0.00 A; charge: No
                            BattPct: 79% 
                            
                            Batt: 4.05V ; 0.00A 
                            Solar: 3.38V ; 0.00 A; charge: No
                            BattPct: 78%
                            

                            on the other:

                            2015-07-05 20:32:40 14 10 1 0 38 4.024
                            2015-07-05 20:32:40 14 10 1 0 39 0.001298
                            2015-07-05 20:32:41 14 11 1 0 38 3.991
                            2015-07-05 20:32:42 14 11 1 0 39 0.000000
                            2015-07-05 20:32:42 14 255 3 0 0 74
                            
                            2015-07-05 16:24:08 14 10 1 0 38 3.953
                            2015-07-05 16:24:08 14 10 1 0 39 0.001298
                            2015-07-05 16:24:09 14 11 1 0 38 4.731
                            2015-07-05 16:24:10 14 11 1 0 39 0.015577
                            2015-07-05 16:24:10 14 255 3 0 0 64
                            
                            2015-07-05 18:55:40 14 10 1 0 38 4.050
                            2015-07-05 18:55:40 14 10 1 0 39 0.061008
                            2015-07-05 18:55:40 14 11 1 0 38 4.212
                            2015-07-05 18:55:42 14 11 1 0 39 0.066200
                            2015-07-05 18:55:42 14 255 3 0 0 78
                            

                            One one of the two units I have issues on radio:

                            Batt: 4.05V ; 0.00A 
                            Solar: 1.80V ; 0.00 A; charge: No
                            BattPct: 78% 
                            send: 15-15-0-0 s=10,c=1,t=38,pt=7,l=5,st=fail:4.050
                            send: 15-15-0-0 s=10,c=1,t=39,pt=7,l=5,st=fail:0.001298
                            send: 15-15-0-0 s=11,c=1,t=38,pt=7,l=5,st=ok:1.804
                            send: 15-15-0-0 s=11,c=1,t=39,pt=7,l=5,st=fail:0.000000
                            send: 15-15-0-0 s=255,c=3,t=0,pt=1,l=1,st=fail:78
                            

                            z-wave - Vera -&gt; Domoticz
                            rfx - Domoticz &lt;- MyDomoAtHome &lt;- Imperihome
                            mysensors -&gt; mysensors-gw -&gt; Domoticz

                            C 1 Reply Last reply
                            0
                            • epierreE epierre

                              sleep is the problem, it loads at 30s never above...

                              Batt: 4.06V ; 0.00A 
                              Solar: 2.56V ; 0.00 A; charge: No
                              BattPct: 79% 
                              
                              Batt: 4.05V ; 0.00A 
                              Solar: 3.38V ; 0.00 A; charge: No
                              BattPct: 78%
                              

                              on the other:

                              2015-07-05 20:32:40 14 10 1 0 38 4.024
                              2015-07-05 20:32:40 14 10 1 0 39 0.001298
                              2015-07-05 20:32:41 14 11 1 0 38 3.991
                              2015-07-05 20:32:42 14 11 1 0 39 0.000000
                              2015-07-05 20:32:42 14 255 3 0 0 74
                              
                              2015-07-05 16:24:08 14 10 1 0 38 3.953
                              2015-07-05 16:24:08 14 10 1 0 39 0.001298
                              2015-07-05 16:24:09 14 11 1 0 38 4.731
                              2015-07-05 16:24:10 14 11 1 0 39 0.015577
                              2015-07-05 16:24:10 14 255 3 0 0 64
                              
                              2015-07-05 18:55:40 14 10 1 0 38 4.050
                              2015-07-05 18:55:40 14 10 1 0 39 0.061008
                              2015-07-05 18:55:40 14 11 1 0 38 4.212
                              2015-07-05 18:55:42 14 11 1 0 39 0.066200
                              2015-07-05 18:55:42 14 255 3 0 0 78
                              

                              One one of the two units I have issues on radio:

                              Batt: 4.05V ; 0.00A 
                              Solar: 1.80V ; 0.00 A; charge: No
                              BattPct: 78% 
                              send: 15-15-0-0 s=10,c=1,t=38,pt=7,l=5,st=fail:4.050
                              send: 15-15-0-0 s=10,c=1,t=39,pt=7,l=5,st=fail:0.001298
                              send: 15-15-0-0 s=11,c=1,t=38,pt=7,l=5,st=ok:1.804
                              send: 15-15-0-0 s=11,c=1,t=39,pt=7,l=5,st=fail:0.000000
                              send: 15-15-0-0 s=255,c=3,t=0,pt=1,l=1,st=fail:78
                              
                              C Offline
                              C Offline
                              ceech
                              Hardware Contributor
                              wrote on last edited by
                              #24

                              @epierre I'll ask @AWI, he may help.

                              1 Reply Last reply
                              0
                              • AWIA Offline
                                AWIA Offline
                                AWI
                                Hero Member
                                wrote on last edited by
                                #25

                                Your circuit seems to be working correctly. I cannot figure out why the sleep time should influence the metering. I suggest you first test it with a minimal sketch to figure out this sleep issue.

                                1 Reply Last reply
                                0
                                • epierreE Offline
                                  epierreE Offline
                                  epierre
                                  Hero Member
                                  wrote on last edited by
                                  #26

                                  @AWI What should I keep as minimal ? also any idea about the radio hazard ? I've changed several antennae and it is either half wrong or "check wire"

                                  z-wave - Vera -&gt; Domoticz
                                  rfx - Domoticz &lt;- MyDomoAtHome &lt;- Imperihome
                                  mysensors -&gt; mysensors-gw -&gt; Domoticz

                                  AWIA 1 Reply Last reply
                                  0
                                  • epierreE epierre

                                    @AWI What should I keep as minimal ? also any idea about the radio hazard ? I've changed several antennae and it is either half wrong or "check wire"

                                    AWIA Offline
                                    AWIA Offline
                                    AWI
                                    Hero Member
                                    wrote on last edited by
                                    #27

                                    @epierre in a minimal sketch I would remove have it only send one message and give it enough println's to debug via serial. Check the voltages with a meter and let it run with an increasing sleep time. It could be one of those 'bad radios' which are discussed here on the forum.

                                    For the charging part: it only charges a partly empty cell and the charge voltage should be high enough to let it happen.

                                    Debugging is where the fun starts (if you are able to solve it)..

                                    1 Reply Last reply
                                    0
                                    • epierreE Offline
                                      epierreE Offline
                                      epierre
                                      Hero Member
                                      wrote on last edited by
                                      #28

                                      so the same without sensor nor mysensors... 30 secs fine 40 secs dead...

                                      I've removed the radio chipset, same behavior...

                                      /*
                                       
                                      #include <SPI.h>
                                      
                                      #include <Wire.h> 				// I2C
                                      
                                      
                                      #define LTC4067_CHRG_PIN	A1		//analog input A1 on ATmega 328 is /CHRG signal from LTC4067
                                      #define batteryVoltage_PIN	A0		//analog input A0 on ATmega328 is battery voltage ( /2)
                                      #define solarVoltage_PIN	A2		//analog input A2 is solar cell voltage (/ 2)
                                      #define solarCurrent_PIN	A6		//analog input A6 is input current ( I=V/Rclprog x 1000 )
                                      #define batteryChargeCurrent_PIN	A7	//analog input A7 is battery charge current ( I=V/Rprog x 1000 )
                                      #define LTC4067_SUSPEND_PIN	9		//digital output D9 - drive it high to put LTC4067 in SUSPEND mode
                                      
                                      const float VccMin        = 1.0*3.5;  // Minimum expected Vcc level, in Volts. Example for 1 rechargeable lithium-ion.
                                      const float VccMax        = 1.0*4.2;  // Maximum expected Vcc level, in Volts. 
                                      
                                      #define LIGHT_SENSOR_ANALOG_PIN 3   // Digital input did you attach your soil sensor.  
                                      #define CHILD_ID_LIGHT 0   // Id of the sensor child
                                      #define BATT_CHILD_ID 10
                                      #define SOLAR_CHILD_ID 11
                                      
                                      // PIN Radio
                                      #define RADIO_CE_PIN    7       // radio chip enable
                                      #define RADIO_SS_PIN    8      // CS SS serial select
                                      
                                      float lastBattVoltage;
                                      float lastBattCurrent;
                                      float lastSolarVoltage;
                                      float lastSolarCurrent;
                                      int lastBattPct = 0;
                                      uint16_t lastlux;
                                      float VccReference = 3.3 ;				// voltage reference for measurement, definitive init in setup
                                      
                                      
                                      unsigned long SLEEP_TIME = 40*1000;  // sleep time between reads (seconds * 1000 milliseconds)
                                      
                                      int lastSoilValue = -1;
                                      
                                      void setup()  
                                      { 
                                       
                                        Serial.begin(115200);
                                        // use VCC (3.3V) reference
                                        analogReference(DEFAULT);								// default external reference = 3.3v for Ceech board
                                        VccReference = 3.323 ;									// measured Vcc input (on board LDO)
                                        pinMode(LTC4067_SUSPEND_PIN, OUTPUT);					// suspend of Lion charger set
                                        digitalWrite(LTC4067_SUSPEND_PIN,LOW);   			//  active (non suspend) at start
                                      
                                      }
                                       
                                      void loop()     
                                      {     
                                      
                                        sendVoltage();
                                        
                                          
                                        // Power down the radio
                                       delay(SLEEP_TIME);
                                      }
                                      
                                      void sendVoltage(void)
                                      // battery and charging values
                                      {
                                      	// get Battery Voltage & charge current
                                      	float batteryVoltage = ((float)analogRead(batteryVoltage_PIN)* VccReference/1024) * 2;	// actual voltage is double
                                      	Serial.print("Batt: ");
                                      	Serial.print(batteryVoltage);
                                      	Serial.print("V ; ");
                                      	float batteryChargeCurrent = ((float)analogRead(batteryChargeCurrent_PIN) * VccReference/1024)/ 2.5 ; // current(A) = V/Rprog(kohm)
                                      	Serial.print(batteryChargeCurrent);
                                      	Serial.println("A ");
                                      
                                         
                                      	// get Solar Voltage & charge current
                                      	float solarVoltage = ((float)analogRead(solarVoltage_PIN)/1024 * VccReference) * 2 ;		// actual voltage is double
                                      	Serial.print("Solar: ");
                                      	Serial.print(solarVoltage);
                                      	Serial.print("V ; ");
                                      	// get Solar Current
                                      	float solarCurrent = ((float)analogRead(solarCurrent_PIN)/1024 * VccReference)/ 2.5;		// current(A) = V/Rclprog(kohm)
                                      	Serial.print(solarCurrent);
                                      	Serial.print(" A; charge: ");
                                      	Serial.println(digitalRead(LTC4067_CHRG_PIN)?"No":"Yes");
                                      	
                                      	// send battery percentage for node
                                      	int battPct = 1 ;
                                      	if (batteryVoltage > VccMin){
                                      		battPct = 100.0*(batteryVoltage - VccMin)/(VccMax - VccMin);
                                      	}
                                      	Serial.print("BattPct: ");
                                      	Serial.print(battPct);
                                      	Serial.println("% ");
                                      
                                      	
                                      }
                                      

                                      z-wave - Vera -&gt; Domoticz
                                      rfx - Domoticz &lt;- MyDomoAtHome &lt;- Imperihome
                                      mysensors -&gt; mysensors-gw -&gt; Domoticz

                                      AWIA 1 Reply Last reply
                                      0
                                      • epierreE Offline
                                        epierreE Offline
                                        epierre
                                        Hero Member
                                        wrote on last edited by
                                        #29

                                        I've received a string of 10 radio chipset tonight and changing the component has no effect compared to the other board where radio is ok.

                                        are you sure the problem is softare for what I see here is not dependant of a sophisticated library ?

                                        I've learned recently of IAQ (incomming assurance quality) because Photon (formerly Sark) has been hit by a suppliers problem: https://community.particle.io/t/photon-manufacturing-shipping-update/12275

                                        z-wave - Vera -&gt; Domoticz
                                        rfx - Domoticz &lt;- MyDomoAtHome &lt;- Imperihome
                                        mysensors -&gt; mysensors-gw -&gt; Domoticz

                                        1 Reply Last reply
                                        0
                                        • epierreE epierre

                                          so the same without sensor nor mysensors... 30 secs fine 40 secs dead...

                                          I've removed the radio chipset, same behavior...

                                          /*
                                           
                                          #include <SPI.h>
                                          
                                          #include <Wire.h> 				// I2C
                                          
                                          
                                          #define LTC4067_CHRG_PIN	A1		//analog input A1 on ATmega 328 is /CHRG signal from LTC4067
                                          #define batteryVoltage_PIN	A0		//analog input A0 on ATmega328 is battery voltage ( /2)
                                          #define solarVoltage_PIN	A2		//analog input A2 is solar cell voltage (/ 2)
                                          #define solarCurrent_PIN	A6		//analog input A6 is input current ( I=V/Rclprog x 1000 )
                                          #define batteryChargeCurrent_PIN	A7	//analog input A7 is battery charge current ( I=V/Rprog x 1000 )
                                          #define LTC4067_SUSPEND_PIN	9		//digital output D9 - drive it high to put LTC4067 in SUSPEND mode
                                          
                                          const float VccMin        = 1.0*3.5;  // Minimum expected Vcc level, in Volts. Example for 1 rechargeable lithium-ion.
                                          const float VccMax        = 1.0*4.2;  // Maximum expected Vcc level, in Volts. 
                                          
                                          #define LIGHT_SENSOR_ANALOG_PIN 3   // Digital input did you attach your soil sensor.  
                                          #define CHILD_ID_LIGHT 0   // Id of the sensor child
                                          #define BATT_CHILD_ID 10
                                          #define SOLAR_CHILD_ID 11
                                          
                                          // PIN Radio
                                          #define RADIO_CE_PIN    7       // radio chip enable
                                          #define RADIO_SS_PIN    8      // CS SS serial select
                                          
                                          float lastBattVoltage;
                                          float lastBattCurrent;
                                          float lastSolarVoltage;
                                          float lastSolarCurrent;
                                          int lastBattPct = 0;
                                          uint16_t lastlux;
                                          float VccReference = 3.3 ;				// voltage reference for measurement, definitive init in setup
                                          
                                          
                                          unsigned long SLEEP_TIME = 40*1000;  // sleep time between reads (seconds * 1000 milliseconds)
                                          
                                          int lastSoilValue = -1;
                                          
                                          void setup()  
                                          { 
                                           
                                            Serial.begin(115200);
                                            // use VCC (3.3V) reference
                                            analogReference(DEFAULT);								// default external reference = 3.3v for Ceech board
                                            VccReference = 3.323 ;									// measured Vcc input (on board LDO)
                                            pinMode(LTC4067_SUSPEND_PIN, OUTPUT);					// suspend of Lion charger set
                                            digitalWrite(LTC4067_SUSPEND_PIN,LOW);   			//  active (non suspend) at start
                                          
                                          }
                                           
                                          void loop()     
                                          {     
                                          
                                            sendVoltage();
                                            
                                              
                                            // Power down the radio
                                           delay(SLEEP_TIME);
                                          }
                                          
                                          void sendVoltage(void)
                                          // battery and charging values
                                          {
                                          	// get Battery Voltage & charge current
                                          	float batteryVoltage = ((float)analogRead(batteryVoltage_PIN)* VccReference/1024) * 2;	// actual voltage is double
                                          	Serial.print("Batt: ");
                                          	Serial.print(batteryVoltage);
                                          	Serial.print("V ; ");
                                          	float batteryChargeCurrent = ((float)analogRead(batteryChargeCurrent_PIN) * VccReference/1024)/ 2.5 ; // current(A) = V/Rprog(kohm)
                                          	Serial.print(batteryChargeCurrent);
                                          	Serial.println("A ");
                                          
                                             
                                          	// get Solar Voltage & charge current
                                          	float solarVoltage = ((float)analogRead(solarVoltage_PIN)/1024 * VccReference) * 2 ;		// actual voltage is double
                                          	Serial.print("Solar: ");
                                          	Serial.print(solarVoltage);
                                          	Serial.print("V ; ");
                                          	// get Solar Current
                                          	float solarCurrent = ((float)analogRead(solarCurrent_PIN)/1024 * VccReference)/ 2.5;		// current(A) = V/Rclprog(kohm)
                                          	Serial.print(solarCurrent);
                                          	Serial.print(" A; charge: ");
                                          	Serial.println(digitalRead(LTC4067_CHRG_PIN)?"No":"Yes");
                                          	
                                          	// send battery percentage for node
                                          	int battPct = 1 ;
                                          	if (batteryVoltage > VccMin){
                                          		battPct = 100.0*(batteryVoltage - VccMin)/(VccMax - VccMin);
                                          	}
                                          	Serial.print("BattPct: ");
                                          	Serial.print(battPct);
                                          	Serial.println("% ");
                                          
                                          	
                                          }
                                          
                                          AWIA Offline
                                          AWIA Offline
                                          AWI
                                          Hero Member
                                          wrote on last edited by
                                          #30

                                          @epierre this sounds really weird. The delay() you used in this sketch does not sleep anything but just takes an active break. Can you measure the supply voltage on vcc to determine what is happening?

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          12

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.1k

                                          Posts


                                          Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • MySensors
                                          • OpenHardware.io
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular