OLED display support for nRF52832 (SSD1306, Adafruit GFX)

Just a quick post to say that we have ported the Adafruit GFX and SSD1306 libraries to nRF52832. Currently only I2C is supported.

The code can be found here:

https://github.com/electronut/ElectronutLabs-bluey/tree/master/code/bluey-OLED

Here it's seen working with our Bluey nRF52 development board. More information about Bluey here:

http://electronut.in/bluey/

image description

Anonymous
  • No problem, thank you anyway Makesh! I love your projects, will buying an bluey in near future :)

  • My code uses Softdevice, and it uses the ARM GCC toolchain. Sorry, but I am not familiar with Keil. The issue as I said is just with linking.

  • Hey Makesh,

    I tried to figure out where the code is linkin twice, but I can't find where... I uploaded my code to github. IDE is Keil.

    github link

    Thanks Kevin

  • ...textsize multiply defined (by main.o and adafruit_gfx.o).

    You are linking in the same code twice.

    How did you build our code? Which SDK, and did you add any extra code?

    Regards

    Mahesh

  • I copied the code into my ble application.

    But everytime I get the same errors:

    .\_build\nrf52832_xxaa.axf: Error: L6200E: Symbol textsize multiply defined (by main.o and adafruit_gfx.o).
    .\_build\nrf52832_xxaa.axf: Error: L6200E: Symbol rotation multiply defined (by main.o and adafruit_gfx.o).
    .\_build\nrf52832_xxaa.axf: Error: L6200E: Symbol wrap multiply defined (by main.o and adafruit_gfx.o).
    .\_build\nrf52832_xxaa.axf: Error: L6200E: Symbol WIDTH multiply defined (by ssd1306.o and adafruit_gfx.o).
    .\_build\nrf52832_xxaa.axf: Error: L6200E: Symbol WIDTH multiply defined (by main.o and adafruit_gfx.o).
    .\_build\nrf52832_xxaa.axf: Error: L6200E: Symbol HEIGHT multiply defined (by ssd1306.o and adafruit_gfx.o).
    .\_build\nrf52832_xxaa.axf: Error: L6200E: Symbol HEIGHT multiply defined (by main.o and adafruit_gfx.o).
    .\_build\nrf52832_xxaa.axf: Error: L6200E: Symbol _width multiply defined (by main.o and adafruit_gfx.o).
    .\_build\nrf52832_xxaa.axf: Error: L6200E: Symbol _height multiply defined (by main.o and adafruit_gfx.o).
    .\_build\nrf52832_xxaa.axf: Error: L6200E: Symbol cursor_x multiply defined (by main.o and adafruit_gfx.o).
    .\_build\nrf52832_xxaa.axf: Error: L6200E: Symbol cursor_y multiply defined (by main.o and adafruit_gfx.o).
    .\_build\nrf52832_xxaa.axf: Error: L6200E: Symbol textcolor multiply defined (by main.o and adafruit_gfx.o).
    .\_build\nrf52832_xxaa.axf: Error: L6200E: Symbol textbgcolor multiply defined (by main.o and adafruit_gfx.o).
    .\_build\nrf52832_xxaa.axf: Error: L6200E: Symbol _drawPixel multiply defined (by main.o and adafruit_gfx.o).
    .\_build\nrf52832_xxaa.axf: Error: L6200E: Symbol _i2caddr multiply defined (by main.o and ssd1306.o).
    .\_build\nrf52832_xxaa.axf: Error: L6200E: Symbol _vccstate multiply defined (by main.o and ssd1306.o).
    

    Can't figure out why this happen.

    Can you help me guys?

    Thanks