Fixing the Macaron low power mode. WIP
Share on facebook
Share on twitter
Share on linkedin

I had previously been using a 3.3V linear voltage regulator to regulate the battery for the circuits on the Macaron board. Because of the wide voltage range, 2.8 at low and 4.2 at high, I figured 3.3 would be the appropriate voltage to take, it also seemed the standard most other projects had. During low power mode while the voltage of the battery was at 3.3 or above, the device would only drain around 200uA, meaning a charge capacity for months. However, I noticed that if the battery went below 3.3, the current would hit 1.8mA, nearly a factor above the original. So, I’ve decided to lower the LDO voltage. I had considered switching to a buck converter topology, however this does not have the best use for low current when the device is turned off.

I have currently placed a 2.85V chip onto the board as a direct replacement, everything works except the touch screen which is a critical aspect of the device. I don’t know for 100% certain that it is due to the 2.85V as the datasheet says it should be okay, but I don’t have the appropriate soldering iron tips for this small chip and to ensure I can rule most things out, I’ve ordered more soldering iron tips and a 3V LDO as well. This should hopefully arrive by next weekend and I’ll be able to conclude this part of the testing. It also may mean that these PCBs can be considered much closer to production ready than before.

I’ve just tried with 2.85V with PCB 4 and am not able to recognise the touch screen, am getting the error getChipIdentity:33281 with the interrupt remaining in a pull down.

3V LDO on PCB 5 gets the error getChipIdentity:33282 and the interrupt sits in pull down, however trying with another Fresh OLED, I’m unable to identify the existance.

Trying experiments out on Saturday. The get chip identity command is failing when the powered supply is below 3.1, however after passing that in the function, getting touch inputs. taking the voltage down below 3.1V, I’m still able to recognise touch inputs.

The final test for this that I can think of, is to replace another board with a 3V LDO, I’ve used the 3v3 LDO on PCB 1 and I can access the touch screen. After switching over to the 3V LDO, I’m unable to get connection, which suggests that the touch screen IC is unable to run on 3V. I should have tested this way in the first place. I plugged in another PCB with a 3V3 reglutor and lowered the battery voltage to find the limit. When the limit is above 3.1V, it works, when it’s below. It will get address NACKs. The power supply in the Datasheet says it will accept as low as 2.8V though.

I suspect it all has to do with how much the OLED3v3 requires from the GPIO on the microcontroller, with the microcontroller GPIO not being able to supply the current requirement.

Measuring the GPIO pin, it shows up at 2.3 (VCC: 3.05) when the i2c commands are not working and 2.7 (VCC: 3.05) when the VCC has been increased and decreased back to 3.05. It’s coming off a GPIO and I would suggest that the current out of this GPIO isn’t enough to supply startup current, let alone regular usage. The reason behind using this was to be able to shut off the voltage, however the OLED ground can serve the same purpose, and there can be alternate ways of dealing with this. To ensure this is fully root caused, I’ll cut the trace on the OLED3V3 GPIO and connect it dirrectly to VDD (set on the output of the voltage regulator. I’ll do this on PCB1, which currently has a 3V regulator on it. This voltage had previously been wired to a GPIO because during testing of thise device, I found a need to reset the power in order to have a proper “boot up” of this device. I had done this in two ways, by powering it with a GPIO and putting a mosfet at the ground of the device (effectively making a switch at the ground.) Trying it out with 2.85V, I’m able to get the touch screen to work properly by adding the ground mosfet back in and disconnecting the power from the GPIO.