Like a lot of people here, my left P40i earbud became noticeably quieter than the right one after a couple of drops (even after cleaning the mesh).
The usual workaround is shifting the L/R audio balance in Android/iOS accessibility settings, but that has two annoying downsides:
As soon as you connect the earbuds to a laptop, TV, or another device, the imbalance is back.
When you connect your phone to a car stereo or another pair of headphones, the phone's balance is still skewed.
While looking into how the Soundcore protocol works (thanks to the OpenSCQ30 project), I realized that Soundcore earbuds with **HearID** (`P40i`, `Liberty 4 / 4 NC / 4 Pro / 5`, `Space A40`, `Life P3`, `Liberty 3 Pro`, `P30i`, etc.) actually have **two independent 8-band EQ + DRC registers (Left and Right)** stored in the earbuds' onboard non-volatile flash memory (`Command 0x03 0x87` over Bluetooth RFCOMM).
Neither the official Soundcore app nor third-party apps expose a simple "Hardware L/R Balance" slider that keeps your custom EQ curve intact while offsetting Left vs. Right gain, so I wrote a zero-dependency Python CLI/TUI tool to do it.
### What it does:
- Automatically detects your connected Soundcore earbuds and backs up your current factory/custom EQ state to a JSON file.
- Lets you use the Left/Right arrow keys in the terminal while music is playing to shift the L/R balance in `0.5 dB` steps in real time until the vocals/center image sound centered again.
- Calculates the stereo DRC biquad coefficients and flashes the separate Left and Right curves directly to the earbuds' chip.
- Once flashed, you can disconnect and use the earbuds on any phone, PC, TV, or console and they stay balanced.
**GitHub Repo:** https://github.com/Baran-sys/Anker-HearID-L-R-Calibrator
*(Note: This only works on Soundcore models that support HearID, since non-HearID entry-level models like the P20i only have a single mono EQ register in firmware.)*