My version of onboard oled display for arducopter 3.4

hi All
i add new functions for onboard display (now supported for my F4BY and linux version board)
it may to be used for pixhawk and other controllers too
ssd1306 it is small and low cost display (~4 USD)
data connection and powering from i2c port
it may to be interested for provide prearm checks for models without fpv or telemetry link

my source changes here
display i got here

when vehicle in armed state: display show only “armed” warning then stop update the display for prevent CPU and I2c BUS utilisation in fly


This looks interesting. How do you use it. Do you use it when starting up and then remove it?
It could be useful as a tiny gcs

it is very small and lightweight display, it is constantly mounted on frame
size 30X30mm

Hi Alexey,
thanks for your work. I wrote the display driver this is based of. I would like to see a PR that your work could get into the ArduPilot code.
King regards


hi, if needs insert into source comments any copyright / autors info - please send me this info

Hi Alexey,

no that is not my intention. Did you think about creating a pull request to ArduPilot that your code improvements getting into the master code? I think that would be fine.


It would be great to have an OLED display option in Ardupilot. Great work.

1 Like

my problem is that I am writing the code slowly and usually by the time change readiness is a new version has significant differences with oficial ardupilot.

my curent sources match to arducopter 3.4 rc1 / arduplane 3.6
actual version of arducopter is 3.4 rc5

most of the changes refers to the ap_notify class which may not be changed, but a number of of edits relating to sending messages stored in files of arduplane and arducopter.

Now I am able to build pixhawk (or pixracer) firmware for arducolter 3.4 rc1

Hi Marc, there is already a OLED dsiplay option in ArduPilot BBBmini used it by default.


Hi Alexey, you have to rebase your code, it is not that hard.


I missed that. Thanks for clarifying this. I will have to give it a go.

i push my last changes for pixhawk ssd1306 display support here

firmware file for test display

tested with pixhawk

Created a pull request to a master branch of ardupilot repository:

IMHO in case it will be merged we have a good chance to see support for this OLED in 3.5.

1 Like

Thank you Alexey for contributing this project to the Ardupilot community. Like Mirko says flashing lights as annunciators for Ardupilot are very lacking. I like this yellow/blue display because it highlights your movng “ticker” top line in the display. Thanks Alexey for supplying the compile test code to make it easy to try it out.
I hope it can be merged soon because I am having real difficulty trying to compile 3.4.3. I have done it for BBBmini last spring but now with 3.4.3 I can’t get any technique to work, linux or windows. Documentation for people like me, on the edge of understanding, is just not accurate enough. If there is one mis-step in the directions or one module that has changed versions then I am stuck. It is natural for the devs to make assumptions that others will not make.

The work on pull request for OLED feature is still in progress
There are two issues for this moment:

  • Randy Mackay was unable to run his OLED module for some reason. Still investigating.
  • Some modules has another driver chip named SH1106 which is incompatible. Support for this chip already implemented, but chip type auto-detection still in the progress yet.

Also Alexey have fixed an issue with string spacing for two-colored OLED modules. It is an issue that is shown on your photo. It will be also included in pull request.

Thank you for your efforts Dmitry. I have been following the discussion. Just wanted to voice my support that this a valuable addition for me. Great that Alexey has fixed the issue on the first “yellow” line of text.

All the best

When I tried to compile Alexey"s code linked above, for my hex, “enable ssd1306 display for pixhawk” in kozinalexey/ardupilot_f4by_12out I get a missing module “PX4Firmware @ 2bd88d7”. Gives me a 404 web error when I try and “git submodule update”.

When I try and compile mariansoban’s “fixed” code it compiles but does not drive the display.

The 1.3" modules are still very light but a bit easier to read for old eyes. Current driver has ticker line but the rest does not work.

Alexey et al,

I am just a general user looking through the knot-hole at Ardupilot. I can follow instrutions but I am stuck after at least 40 hours trying to get a compiled copy of arducopter with ALexey’s ssd-1306 display.

I tried months ago to change Mirko’s BBB code to use it with Pixhawk but never got it to work.

I am trying very had to use this display. I think is very valuable to the APM community because so many users don’t understand that GPS signal quality must be high before using GPS dependent modes. Most users think that a basic 3D lock is enough and they get no other feedback, unless the they have a ground station connected.

So I have been following this project and I am now at a dead end. I followed the linked conversations on github and in it there is talk of the sturctures and conforming to the standards of Ardupilot. These issues seem to be resolved. There is some talk of the different versions of the display etc. Then it ends with Mariansoban providing a link to “Full Copter-3.4.3 with OLED support source code can be found here:”

I expected that the changes would be incorporated into master and maybe seen in 3.4.3 but that does not appear to be the case.Hence I don’t understand what state the request was left in now that there is no more discussion on this proposal.

I don’t really understand negotiating all the trees and branches in github.

I can compile the master or release versions of arducopter but I can not figure out how to point to mariansoban’s area and the ssd1306 changes in it’s branch. I tried using git checkout -b to change the head to point to the branch but I never get the changes just the root/master.

Can someone just clue me in on:

  1. WIll this project be incorporated into master some time soon?
  2. IF I must compile mariansoban’s fix, generally how do I approach it?

Mike Kelly
Hayward, WI USA

Support for your display type (SH1106) has been added to PR (pull request) for ardupilot project. Also display type parameter has been introduced.

Randy has this PR assigned to him, but I can see a lack of attention spent by ardupilot team to this PR. I unsure why and I unsure what is going on. Some time ago Randy attempted to run our code with no luck. I supposed he used a controller with different i2c bus number and so I asked him about controller type many times. No answer has been provided.

I totally unable to see what is going on with this PR. Probably an attention of community may push it to have some progress. Everything has been implemented and provided. All issues reported so far were fixed.

So you can ask dev team why this PR isn’t merged so far.

1 Like