The bounding box of the font is 6x12 [1]. If the errant pixels is a 2 pixel wide column, then it may be related to how displayio is being used with the font/text facilities. Since text can be up to 21 characters == 21*6 == 126 pixels, that leaves 2 pixels possibly not written to.
IIRC the SH1106 datasheet does not specify that it will clear its display memory during reset; so if CircuitPython does not write the last pixel 2 columns, then it may just be left as random bits. (Can easily happen, assuming default SH1106 display memory mapping -- a byte is a vertical column of 8 pixels.)
Persumably, there are ways to use displayio to clear the errant pixels. There is code on the Internet that you can examine and the online documentation for CircuitPython seems to be pretty good.
Disclaimer: I am not a CircuitPython user, just someone who has used SH1106/I2C with the C SDK.
[1] https://github.com/adafruit/circuitpyth ... r-u12n.bdf
IIRC the SH1106 datasheet does not specify that it will clear its display memory during reset; so if CircuitPython does not write the last pixel 2 columns, then it may just be left as random bits. (Can easily happen, assuming default SH1106 display memory mapping -- a byte is a vertical column of 8 pixels.)
Persumably, there are ways to use displayio to clear the errant pixels. There is code on the Internet that you can examine and the online documentation for CircuitPython seems to be pretty good.
Disclaimer: I am not a CircuitPython user, just someone who has used SH1106/I2C with the C SDK.
[1] https://github.com/adafruit/circuitpyth ... r-u12n.bdf
Statistics: Posted by katak255 — Thu Jun 05, 2025 3:12 am