Board resets when I2C is used on battery only (Expansionboard 3.2)



  • I have a program that reads a I2C device via P9 and P10 pins.
    The program works fine if the board is supplied by USB power, but when it is supplied by battery only, it keeps resetting. I have pin-pointed that the reset happens as soon as the I2C is initialized.

    Some additional information:

    • Tried with both LoPy4s and FiPys on Expansion v 3.2.
    • Tried with different units of both boards and expansion boards to rule out defective specimens.
    • Do not use pullups on the I2C.
    • Voltage on the 5V-pin is about 4.7V with USB supply and about 3.6V (same as the battery itself) when on battery only.
    • When on battery only, the moment the I2C is used the voltage (on 5V-pin) drops under 3V and the unit resets.
    • The "raw" battery voltage does not drop.
    • The I2C device is powered by the 3.3V-pin and GND.
    • It doesn't matter whether the I2C device is connected or not.
    • I can run other power consuming devices like e.g. WiFi on battery only with out any drop in voltage on the 5V-pin.


  • The problem is solved!

    We got a new firmware for the expansion board from Pycom.

    As far as the information I have got from Pycom, the reason was that a custom expansion board firmware with a 30 sec watch dog implemented, was accidentally shipped on boards to others than the costumer who requested this function.

    The problem was entirely related to the firmware and not to the I2C bus as indicated in the headline and the initial post.


  • administrators

    @PSH_IS_NIVA We accidentally shipped a number of Expansion Board 3.2 that were designed for a specific customer.

    Anyone who received an Expansion Board 3.2 please email support@pycom.io so we can provide a resolution.

    Thanks a lot.



  • @robert-hh said in Board resets when I2C is used on battery only:

    @PSH_IS_NIVA OK. So either a design flaw or a manufacturing problem. Time for Pycom to act.

    Yep!

    Just did one more test.

    • 6 pcs Expansion board v3.2
    • 1 pcs Expansion board v3.1
    • 1 pcs LoPy4 (Pycom MicroPython 1.20.2.r3 [v1.11-a6eabf9fe] on 2020-02-26; LoPy4 with ESP32)
    • 1 pcs FyPy (Pycom MicroPython 1.20.2.rc6 [v1.11-01f49f7] on 2020-02-28; FiPy with ESP32)
      and the following program on both modules:
    import pycom
    from time import sleep
    pycom.heartbeat(False)
    for i in range(5):
      pycom.rgbled(0xFF0000)
      sleep(0.01)
      pycom.rgbled(0x000000)
      sleep(0.5)
    
    sleep(3)
    
    while True:
      pycom.rgbled(0xFFFFFF)
      sleep(0.01)
      pycom.rgbled(0x000000)
      sleep(2)
    

    Result when using either of the two programmed modules on any of the expansion boards v3.2 with battery only:
    Reboot after 14 white blink - every time.

    Same on the expansion board v3.1: no reboot.

    Just to be sure i checked for new firmware with firmware updater v1.16.5 and there the current version for the modules is 1.20.2.r1

    I can't find any (new) firmware for the expansion board v.3.2 (https://docs.pycom.io/updatefirmware/expansionboard/)



  • @PSH_IS_NIVA OK. So either a design flaw or a manufacturing problem. Time for Pycom to act.



  • It seems to me there is a major problem with expansion board v3.2.!!

    After some more testing I found out that none of three expansion boards v3.2 can run ANYTHING on battery alone.

    • They reset as soon as the the program uses the I2C interface
    • BUT more important they ALWAYS reset after 20-30 seconds with very simple programs. A simple program just blinking the rgb-led, resets after a short while when on battery alone.

    Today I found one older v3.1 board I had, and on this board the test programs I used here work fine with battery alone.



  • @jcaron said in Board resets when I2C is used on battery only:

    @PSH_IS_NIVA have you tried using different pins to see if that changes anything?

    Not sure :) I did in fact at one point try P2 and P3 which worked with USB power, but now I do not recall if i also tried that with battery only power. Will revert tomorrow on that..



  • @robert-hh said in Board resets when I2C is used on battery only:

    @PSH_IS_NIVA So just to confirm: You tried different expansion boards too?

    Yes I did.



  • @PSH_IS_NIVA So just to confirm: You tried different expansion boards too?



  • @PSH_IS_NIVA have you tried using different pins to see if that changes anything?



  • @robert-hh said in Board resets when I2C is used on battery only:

    Thank you for your reply..

    Does that happen with any I2C device or just with the one you are using?

    Well, think so, I have tried with three devices of which two are the same type.

    I anything else connected to P9 and P10?

    No.

    Could it be that there is a short of the wires connected to P9 and P10 to a h
    igh level signal, like Vdd?

    No. As I mentioned above even without a device or anything else connected the problem occurs.

    And as always: which firmware version are you using.

    Different boards, but the current one: Pycom MicroPython 1.20.2.r3 [v1.11-a6eabf9fe] on 2020-02-26; LoPy4 with ESP32



  • @PSH_IS_NIVA
    Does that happen with any I2C device or just with the one you are using?
    I anything else connected to P9 and P10?
    Could it be that there is a short of the wires connected to P9 and P10 to a high level signal, like Vdd?
    And as always: which firmware version are you using.


Log in to reply
 

Pycom on Twitter