Czy wolisz polską wersję strony elektroda?
Nie, dziękuję Przekieruj mnie tamI don't have the SSD1306 driver in my openbeken firmware, RTL87x0C, I can't seem to install a firmware with this driver enabled, I can't run a simple oled screen
Yes: the most likely reason is that your current RTL87x0C OpenBeken binary was built without the SSD1306 driver. In OpenBeken, SSD1306 is a compile-time optional driver enabled by ENABLE_DRIVER_SSD1306, and the official driver list explicitly says some drivers are not enabled on all platforms by default. OpenBeken does currently publish RTL87X0C firmware images, but that does not mean every optional driver is included in the stock binary. (github.com)
One important correction: the in-tree OpenBeken SSD1306 driver is currently described as an “SSD1306 OLED 128x32 I2C display driver”, and the source code initializes a 128x32 panel, not a generic 128x64 OLED. So if your display is the common 128x64 module, even a custom build with SSD1306 enabled may still need code changes to work properly. (github.com)
startDriver SSD1306 <CLK> <DATA> 0x3C. (raw.githubusercontent.com)OpenBeken’s driver model is not like a package manager on Linux where you add modules after flashing. The SSD1306 driver is listed in the generated driver catalog as something enabled by a preprocessor define in obk_config.h, and that same catalog warns that some drivers are not enabled on certain platforms by default. In other words, if your currently flashed RTL87x0C image does not contain that code, the firmware cannot start it. (github.com)
From the project side, this is consistent with how OpenBeken is distributed today: there are standard prebuilt binaries per platform, and there is also an online/per-user build system for custom builds across supported chipsets, including RTL87X0C. That means your path forward is not “find a menu option to install SSD1306,” but rather flash a binary that was compiled with SSD1306 enabled. (github.com)
There is another, more subtle technical issue. The current SSD1306 entry in the driver list says 128x32, and the source matches that: the init sequence uses a multiplex value for 32 lines, the fill routine writes only 512 bytes, and the page range is hardcoded for 4 pages, which is correct for 128x32 but not for 128x64. From an engineering standpoint, that means a 128x64 panel would need at least a different init geometry and a doubled page/data span. This is why some users think “the SSD1306 driver exists, so any SSD1306 OLED should work,” but that is not true here. (github.com)
The implementation detail also matters for wiring and bring-up. The current source does not rely on a generic hardware-I2C peripheral abstraction here; it initializes a software I2C object and takes the pins from the startDriver command. The examples published by the maintainer use commands such as startDriver SSD1306 16 20 0x3C, then ssd1306_clear, ssd1306_on, ssd1306_goto, and ssd1306_print. So after you get the correct firmware, the expected workflow is command-driven, not Arduino-library-style application code. (raw.githubusercontent.com)
If you type a driver start command and OpenBeken effectively behaves as if SSD1306 does not exist, the most reasonable conclusion is that your build simply lacks that driver. That conclusion is an inference, but it is strongly supported by the fact that SSD1306 is compile-time gated and not guaranteed on every platform build. (github.com)
As of March 19, 2026, OpenBeken’s release page shows release 1.18.277, including a published OpenRTL87X0C_1.18.277.bin image. So RTL87x0C support is current and actively shipped. (github.com)
At the same time, the autogenerated driver catalog still presents SSD1306 as an optional compile-time driver, and explicitly notes that some drivers may not yet be enabled on certain platforms but can be enabled per request. That is the strongest indication that stock RTL87x0C images may omit SSD1306 even though the platform itself is supported. (github.com)
A notable recent development is that the maintainer has shown a minimal SSD1306 command interface with ssd1306_print, ssd1306_goto, ssd1306_clear, and ssd1306_on, driven from OpenBeken’s console/scripting environment. That is useful because once you have the right build, testing is straightforward. (elektroda.com)
The present source registers these commands:
ssd1306_clearssd1306_onssd1306_printssd1306_rectssd1306_goto (raw.githubusercontent.com)It is started with a syntax equivalent to:
startDriver SSD1306 <CLK_pin> <DATA_pin> [I2C_address]
The published example is:
backlog stopdriver SSD1306 ; startDriver SSD1306 16 20 0x3C
ssd1306_clear 0
ssd1306_on 1
ssd1306_goto 0 0
ssd1306_print "HELLO"
These examples come directly from the maintainer’s SSD1306 article and the current driver source. (elektroda.com)
The current code is clearly tailored to 128x32:
0..3So for a 128x64 display, I would expect you to need code changes such as:
That last part is my engineering inference from the shipped 128x32 implementation. (raw.githubusercontent.com)
Identify the OLED geometry
Check whether your module is 128x32 or 128x64. This is critical because current OBK SSD1306 support is specifically documented as 128x32. (github.com)
Check whether the driver exists in your flashed image
In the OpenBeken console, try starting it. If SSD1306 is absent, the console behavior should indicate that the driver is unavailable; that is the expected inference for a build missing the compile-time option. (github.com)
If present, test with the maintainer’s minimal sequence
Use the command block above, adapting pins and address. The default address in code is 0x3C. (raw.githubusercontent.com)
Best-case path:
ENABLE_DRIVER_SSD1306 enabled. The project supports online custom builds for all platforms, including RTL87X0C. (github.com)backlog stopdriver SSD1306 ; startDriver SSD1306 <SCL_pin> <SDA_pin> 0x3C
ssd1306_clear 0
ssd1306_on 1
ssd1306_goto 0 0
ssd1306_print "TEST"
Then I would not expect the current in-tree OBK SSD1306 driver to work correctly without modification, because the shipped implementation is 128x32-specific. Your options are: (github.com)
0x3C. (raw.githubusercontent.com)If you want, the next useful steps are:
If you provide those 4 items, I can give you one of two things:
Your diagnosis is probably correct: your current RTL87x0C OpenBeken firmware does not include the SSD1306 driver. OpenBeken supports RTL87x0C and publishes current binaries, but SSD1306 is an optional compile-time driver, not something added after flashing. Also, the current OBK SSD1306 implementation is 128x32-specific, so a common 128x64 OLED is a separate compatibility problem even after enabling the driver. (github.com)
If you want, send me:
startDriver SSD1306and I will turn that into a concrete, copy-paste recovery plan.