Exemplo n.º 1
0
/* This function loops forever --------------------------------------------*/
void loop()
{
	if (millis() - old_time >= 500){
		socValue = FUEL.getSoC();

		PMIC.setInputCurrentLimit(500);
	//D0 to D7
		for(uint8_t i = 0;i<8;i++){
			digitalWrite(i,!digitalRead(i));
		}

		//A0 to A5
		for(uint8_t i = 10;i<17;i++){
			digitalWrite(i,!digitalRead(i));
		}

		//B0 to B5, C0 to C5
		for(uint8_t i = 24;i<36;i++){
			digitalWrite(i,!digitalRead(i));
		}
		old_time = millis();
	}

	if (millis() - pubSoc >= 5*60000){
		Particle.publish("soc"+deviceName, String(FUEL.getSoC()), 120, PRIVATE);
		pubSoc = millis();
	}

}
Exemplo n.º 2
0
/* This function is called once at start up ----------------------------------*/
void setup()
{
	if (System.deviceID() == "5b0033000e51343035353132")
		deviceName = "-3g";

	RGB.brightness(10);
	Serial.begin(9600);
	PMIC.begin();
	FUEL.quickStart();
	Serial.println("");

	//D0 to D7
	for(uint8_t i = 0;i<8;i++){
		pinMode(i,OUTPUT);
		digitalWrite(i,LOW);
	}

	//A0 to A5
	for(uint8_t i = 10;i<17;i++){
		pinMode(i,OUTPUT);
		digitalWrite(i,LOW);
	}

	//B0 to B5, C0 to C5
	for(uint8_t i = 24;i<36;i++){
		pinMode(i,OUTPUT);
		digitalWrite(i,LOW);
	}

	electronMDM.setDebug(3); // enable this for debugging issues

	delay(3000);
    DEBUG_D("\e[0;36mHello from the Electron! Boot time is: %d\r\n",millis());

	Particle.connect(); // blocking call to connect

	//Register all the Tinker functions
	Particle.function("digitalread", tinkerDigitalRead);
  Particle.function("digitalwrite", tinkerDigitalWrite);

	Particle.function("analogread", tinkerAnalogRead);
	Particle.function("analogwrite", tinkerAnalogWrite);
	Particle.variable("soc",&socValue,DOUBLE);
	Particle.variable("test","test-string",STRING);

	PMIC.setInputCurrentLimit(150);
}
Exemplo n.º 3
0
void setupPower() {

    
    Serial1.println("Entered power setup");

    Serial1.println("Initializing PMIC");
    power.begin(); 
    delay(500);

    Serial1.println("Setting input voltage limit");
    power.setInputVoltageLimit(4120);
    delay(50);

    Serial1.println("Disabling PMIC watchdog timer");
    power.disableWatchdog();
    delay(50);

    Serial1.println("Disabling DPDM detection");
    power.disableDPDM();
    delay(50);

    //Serial1.println("Setting input current limit");
    //power.setInputCurrentLimit(100);
    //delay(50);

    //Serial1.println("disabling buck regulator");
    //power.disableBuck();
    //delay(50);

    //Serial1.println("turning off battery FET");
    //power.disableBATFET();
    //delay(20);


    //power.setChargeCurrent(0,0,0,0,0,0); //512
    //delay (50);

    //Serial1.println("Forcing charge enable");
    //power.enableCharging();
    //delay(50);

}
Exemplo n.º 4
0
/* This function loops forever --------------------------------------------*/
void loop()
{
    //updatePower();
    
    //Serial1.print("power off returned:");
    //Serial1.println(electronMDM.powerOff());
    //RGB.color(0,0,255);
    //delay(200);
    //RGB.color(0,255,0);
    //delay(200);
    //RGB.color(255,0,0);
    //delay(200);
    //Serial1.println(power.readPowerONRegister(),BIN);
    if (Serial1.available() > 0)
    {
        char inByte = Serial1.read();
        Serial1.print("I rxed this shit:");
        Serial1.println(inByte);
        if (inByte == 'o') {
            Serial1.println("char o received");
            power.enableOTG();
            delay(50);
        }
        if (inByte == 'd') {
            Serial1.println("char d received");
            power.disableCharging();
            delay(50);
        }
        if (inByte == 'e') {
            Serial1.println("char d received");
            power.enableCharging();
            delay(50);
        }
    }
    //System.sleep(SLEEP_MODE_DEEP,60);

}
Exemplo n.º 5
0
// Setup method runs once, when the sketch starts
void setup() {
    // Stop red LED blinking on Electron
    batteryCharger.disableCharging();

	Serial.begin(9600);
    delay(100);
    Serial.println("Logomatic");
    randomSeed(HAL_RNG_GetRandomNumber());

    // FIXME: disable gesture sensor for now
    //gesture.begin();
    setupAnimationContext();
    setupSdCard();

    addStartupAnimations();
}
Exemplo n.º 6
0
/* This function is called once at start up ----------------------------------*/
void setup()
{
    RGB.control(true);
    RGB.color(0,0,255);
    delay(1000);
    Serial1.begin(9600);
    delay(200);
    power.begin();
    delay(500);

    Serial1.println("Disabling PMIC watchdog timer");
    power.disableWatchdog();
    delay(50);

    //Serial1.println("Enabling OTG/PMID");
    //power.enableOTG();
    //delay(50);

    //Serial1.println("disabling buck regulator");
    //power.disableBuck();
    //delay(50);


    Serial1.print("power on returned:");
    Serial1.println(electronMDM.powerOn("8934076500002587657"));
    //setupPower();
    //delay(200);
    //fuel.sleep();

    /*
    RGB.color(0,0,255);
    delay(200);
    RGB.color(0,255,0);
    delay(200);
    RGB.color(255,0,0);
    delay(200);
    RGB.color(0,0,0);
   
    power.begin();
    delay(100);

    if (fuel.getVersion() == 3) {
        RGB.color(0,255,0);
    }
    else {
        RGB.color(255,0,0);
    }
    delay(2000);
    fuel.sleep();
    delay(100);
*/
    //electronMDM.powerOff();
    
    //System.sleep(SLEEP_MODE_DEEP,60);
    //setupPower();

    //electronMDM.setDebug(3); // enable this for debugging issues

    //delay(3000);
    //DEBUG_D("\e[0;36mHello from the Electron! Boot time is: %d\r\n",millis());

    //Particle.connect(); // blocking call to connect

    //Register all the Tinker functions
    //Particle.function("digitalread", tinkerDigitalRead);
    //Particle.function("digitalwrite", tinkerDigitalWrite);

    //Particle.function("analogread", tinkerAnalogRead);
    //Particle.function("analogwrite", tinkerAnalogWrite);

    //Particle.function("sleep",sleep);
    

    //Particle.connect(); // blocking call to connect


    //Serial1.begin(9600);
    //Serial1.println("Setup complete");
    //delay(1000);

    Serial1.print("Fuel Gauge Version Number: ");
    Serial1.println(fuel.getVersion());
    delay(200);
    
    fuel.sleep();
    delay(200);

    //Serial1.print("power off returned:");
    //Serial1.println(electronMDM.powerOff());
}
Exemplo n.º 7
0
void updatePower(void) {

    //Serial1.println("Setting input voltage limit");
    //power.setInputVoltageLimit(4);
    //delay(50);

    Serial1.println("Setting input current limit");
    power.setInputCurrentLimit(500);
    delay(50);

    //Serial1.println("Force DPDM detection");
    //power.enableDPDM();
    //delay(500);

    //Serial1.println("Forcing charge enable");
    //power.enableCharging();
    //delay(50);

    //Serial1.println("Enabling the buck regulator");
    //power.enableBuck();
    //delay(50);

    //This will run in a loop
    Serial1.print("Power good: ");
    Serial1.println(power.isPowerGood());

    Serial1.print("System Status: ");
    Serial1.println(power.getSystemStatus(), BIN);

    byte status = 0;
    status = power.getSystemStatus();
    if (status & 0b00000001) Serial1.println("In regulation: YES");
    else Serial1.println("In regulation: NO");

    //if (status & 0b00000010) Serial1.println("HOT");
    //else Serial1.println("Normal");

    if (status & 0b00000100) Serial1.println("Power: Good");
    else Serial1.println("Power: Bad");

    if (status & 0b00000100) Serial1.println("In DPM mode: YES");
    else Serial1.println("In DPM mode: NO");

    if ((status & 0b00110000) == 0x00) //00
        Serial1.println("Not charging");
    if ((status & 0b00110000) == 0x30) //11
        Serial1.println("Charge termination done");
    if ((status & 0b00110000) == 0x10) //01
        Serial1.println("Pre charging");
    if ((status & 0b00110000) == 0x20) //10
        Serial1.println("Fast charging");

    if ((status & 0b11000000) == 0x00) //00
        Serial1.println("no input/dpdm detection incomplete");
    if ((status & 0b11000000) == 0x40) //01
        Serial1.println("USB Host");
    if ((status & 0b11000000) == 0x80) //10
        Serial1.println("Adaptor Port");
    if ((status & 0b11000000) == 0xC0) //11
        Serial1.println("OTG");



    Serial1.print("Input Register: ");
    Serial1.println(power.readInputSourceRegister(), BIN);

    Serial1.print("Term/Timer Register: ");
    Serial1.println(power.readChargeTermRegister(), BIN);

    Serial1.print("Misc Operation Register: ");
    Serial1.println(power.readOpControlRegister(), BIN);

    Serial1.print("Charge current control register: ");
    Serial1.println(power.getChargeCurrent(), BIN);

    Serial1.println(" ---------- ");

    delay(2000);
}