Hey all,
For about two weeks now when I plug in my Librem 14, I hear a very distinct sound very similar to the sound old computers with HDDs used to make when the drive was seeking. It’s like a faint “brrrr” sound that’s not exactly constant but starts and stops. It doesn’t sound high-pitched like coil whine, it’s a bit lower than that.
Additionally, the laptop now will not charge above 83%-85%, and while plugged in, will regularly stop charging and immediately restart charging (as indicated by the unplugged/plugged noise and the charging icon disappearing and reappearing immediately).
Finally, this also translates into keyboard lag somehow? When the laptop is plugged in now, the keyboard will regularly miss keys making it quite infuriating to type. If I use the fn key + brightness up/down, that action will be delayed by 1-3 seconds as well.
I’m not sure what to make of this as I’m not a hardware expert. It seems something has gone off with either the charging hardware and/or battery and this is having ripple effects throughout the hardware (e.g. keyboard).
Has anyone ever experienced this before? Anyone at Purism encountered this?
I would contact Purism support. To me it sounds like an issue with the charger (but it could be a battery issue instead). Do you have a different charger that you can use?
That is strange. You could see if the CPU is throttling strangely when it’s charging vs. when it’s on battery. It’s possible that undervolting is causing it to go in strange power management states. Others here might have some better way of looking at this, but I would probably write a quick script that did a loop every few seconds and output the loop counter with the results of “cat /proc/cpuinfo | grep -i cpu | grep -i mhz” . There are other ways to find the power management state (the cpupower utility, etc.). Also, this could be triggering some sort of bug in the EC (which is not very well tested on the Librem 14’s …).
Hey all, a couple days later my laptop now no longer charges at all, and the battery charge/percentage indicator does not show up at all. I can sometimes get it to start charging again if I unplug it, turn it off, and plug it back in.
This is a very big issue.
I’ve installed Librem Control and hitting “start charge now” does not change anything.
Are there instructions for how to get set-up to debug EC? I’m willing to do some low-level debugging and contribute code back but I’m not sure how to do something as simple as, say, modify the EC to write something out to a log file when the charger is plugged in.
Sound like a common Windows or Linux User Complaints, Wherever, start RESET the EC, HowTo? Shutdown L14… prepare a dedicated-Screw-Driver-and-Gloves/Vacuum-Suction-Cups to manipulate L14 then disconnect the battery for one minute then put back. Do not try to touch the rest of the electronic components if there is no needed. Thanks
@splnkr Disconnecting and re-connecting the battery is a reasonable step to take. That resets the EC and ensures it probes the battery again. (The EC also resets when the system is off for >7 seconds and AC is unplugged, but disconnecting the battery ensures it is reset on the off chance there was a problem.)
When the charge indicator is missing, is /sys/class/power_supply/BAT0 missing? That typically means the EC cannot get a response from the battery, and it won’t charge in that case because it does not know the battery characteristics. In that case I’d recommend opening a ticket with support@puri.sm so we can determine why the EC can’t get a response from the battery.
If you want to set up external debugging for the EC:
Make sure you have a way to hardware flash the Librem 14 EC in case test firmware doesn’t work
Compile the EC firmware with that change and flash
Connect the Trinket to the Librem 14 battery I2C interface and another computer, connect to ttyACM0 from that computer
You’ll be able to see the debug output from the EC that way. You can also get debug output from the L14 itself using the ectool, but you can’t get battery probes that way since that happens before the system is on.
I’ll need to get the Adafruit Trinket but definitely interested in trying this out, if only to be able to have that low-level access to my laptop. And being able to contribute back would be cool
Thanks for the detailed instructions! I live in Portugal currently and I think it should be fairly easy to get the Adafruit. Otherwise, I already have a couple Teensys at home, no reason those wouldn’t be able to be adapted to work no?
As an aside, I turned the laptop off overnight and everything was working fine the next day. Looks like an EC reset was all it needed.
Glad to hear the EC reset took care of it @splnkr ! Yes I would think you could do it with a device like that. Looks like it is Arduino compatible so you could probably run the same firmware; I don’t know how the pin assignments work out but I’d assume it has a set of I2C pins you could use.
In principle anything with I2C should be able to do it, even if you had to write firmware for it, the firmware is pretty simple.
edit: Do make sure your debugger device uses 3.3V I/O though, I see a few of the older Teensys are 5V. I2C is open drain so if you know what you are doing it could still be possible to interface, but you must not pull the L14 I2C bus up to 5V, that may permanently damage the L14 mainboard and battery.