Using a OLED Display: Difference between revisions

From STorM32-BGC Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 5: Line 5:
{{#ev:youtube|mso4yRp5ymc|480}}
{{#ev:youtube|mso4yRp5ymc|480}}


Unfortunately, the OLED display cannot be directly connected to the STorM32 main board. This is so because otherwise only v3.x boards could have been supported, but not the abundant v1.x boards. Also, the firmware is close to exhaust the RAM on the F103RC micro-controller, and supporting the OLED display directly would have compromised future features. Thus, the STorM32's OLED support involves a bridge module, which is connected in between the STorM32 and the OLED display. On the positive side, this approach potentially allows users to customize the displayed information to their specific needs.
Unfortunately, the OLED display cannot be directly connected to the STorM32 main board. This is so because otherwise only v3.x boards could have been supported, but not the abundant v1.x boards. Also, the firmware is close to exhausting the RAM on the F103RC micro-controller, and supporting the OLED display directly would have compromised future features. Thus, the STorM32's OLED support involves a bridge module, which is connected in between the STorM32 and the OLED display. On the positive side, this approach potentially allows users to customize the displayed information to their specific needs.


Currently, firmware is provided only for bridge modules which use a STM32 F103T8, F103C8, or F103CB chip. This covers many of the available STM32 development boards, as well as the CC3D atom.
Currently, firmware is provided only for bridge modules which use a STM32 F103T8, F103C8, or F103CB chip. This covers many of the available STM32 development boards, as well as the CC3D atom.


'''''Call for contribution:''' A 32-bit micro-controller is not required; 8-bit controllers such as the ATmega should also do it. That is, it would be possible to create a OLED bridge module using Arduino compatible hardware, and Arduino for programming. The firmware author has no intent to do that himself, but would strongly support any effoirt in this direction. If, e.g., someone would identify suitable hardware and establish a basic framework Arduino code, which implements an UART at 115200 baud and the OLED drivers (e.g. using the [[https://learn.adafruit.com/adafruit-gfx-graphics-library/overview AdafruitGFX]] library), then the firmware author would be happy to add the communication code to make it functional.''
'''''Call for contribution:''' A 32-bit micro-controller is not required; 8-bit controllers such as the ATmega should also do it. That is, it would be possible to create a OLED bridge module using Arduino compatible hardware, and Arduino for programming. The firmware author has no intent to do that himself, but would strongly support any effort in this direction. If, e.g., someone would identify suitable hardware and establish a basic framework Arduino code, which implements an UART at 115200 baud and the OLED drivers (e.g. using the [[https://learn.adafruit.com/adafruit-gfx-graphics-library/overview AdafruitGFX]] library), then the firmware author would be happy to add the communication code to make it functional.''


<div class="toclimit-2">__TOC__</div>
<div class="toclimit-2">__TOC__</div>


== Hardware ==
== Hardware ==
Things to have at minimum:
* 128x64 OLED display with SSD1306 controller and I2C
* STM32 module with F103T8, F103C8, or F103CB micro-controller
* something to flash the micro-controller (USB-TTL adapter or ST-Link)
The OLED display is available for few bucks at many places. However, a large variety exist, with different display controllers (SSD1306, SH1106, ...), different sizes (0.96'', 1.3'', ...), different resolution (128x64, 128x32,...), and different pins (I2C, SPI, I2C&SPI, ...). It is important to get a suitable OLED module; the specs are given in the list.
In addition a module with a STM32 F103T8, F103C8, or F103CB micro-controller is required. This can be anything available and which provides access to the UART1 and I2C pins, as well as the programming pins (BOOT0, or SWDCLK, SWDIO). Many development boards exist at low cost. They are however relatively bulky. Also the CC3D atom can be used, which is potentially the smallest currently available option. Finally, home-made solutions of course can be used.
Finally the hardware for flashing the STM32 micro-controller is required, usually a USB-TTL adapter or a ST-Link, depending on the STM32 module. This article [[How_to_flash_NT_Modules#First-Time_Flashing|How to flash NT Modules: First-Time Flashing]] provides information.


== Firmware ==
== Firmware ==


== Setup ==
== Setup ==

Revision as of 07:57, 3 October 2017

The information on this page refers to firmware v2.31e and higher.

Since firmware version v2.31e, the STorM32 supports OLED displays. It allows to graphically present various information, such as the battery voltage and charge level, the gimbal status, and the currently selected pan mode.

Unfortunately, the OLED display cannot be directly connected to the STorM32 main board. This is so because otherwise only v3.x boards could have been supported, but not the abundant v1.x boards. Also, the firmware is close to exhausting the RAM on the F103RC micro-controller, and supporting the OLED display directly would have compromised future features. Thus, the STorM32's OLED support involves a bridge module, which is connected in between the STorM32 and the OLED display. On the positive side, this approach potentially allows users to customize the displayed information to their specific needs.

Currently, firmware is provided only for bridge modules which use a STM32 F103T8, F103C8, or F103CB chip. This covers many of the available STM32 development boards, as well as the CC3D atom.

Call for contribution: A 32-bit micro-controller is not required; 8-bit controllers such as the ATmega should also do it. That is, it would be possible to create a OLED bridge module using Arduino compatible hardware, and Arduino for programming. The firmware author has no intent to do that himself, but would strongly support any effort in this direction. If, e.g., someone would identify suitable hardware and establish a basic framework Arduino code, which implements an UART at 115200 baud and the OLED drivers (e.g. using the [AdafruitGFX] library), then the firmware author would be happy to add the communication code to make it functional.

Hardware

Things to have at minimum:

  • 128x64 OLED display with SSD1306 controller and I2C
  • STM32 module with F103T8, F103C8, or F103CB micro-controller
  • something to flash the micro-controller (USB-TTL adapter or ST-Link)

The OLED display is available for few bucks at many places. However, a large variety exist, with different display controllers (SSD1306, SH1106, ...), different sizes (0.96, 1.3, ...), different resolution (128x64, 128x32,...), and different pins (I2C, SPI, I2C&SPI, ...). It is important to get a suitable OLED module; the specs are given in the list.

In addition a module with a STM32 F103T8, F103C8, or F103CB micro-controller is required. This can be anything available and which provides access to the UART1 and I2C pins, as well as the programming pins (BOOT0, or SWDCLK, SWDIO). Many development boards exist at low cost. They are however relatively bulky. Also the CC3D atom can be used, which is potentially the smallest currently available option. Finally, home-made solutions of course can be used.

Finally the hardware for flashing the STM32 micro-controller is required, usually a USB-TTL adapter or a ST-Link, depending on the STM32 module. This article How to flash NT Modules: First-Time Flashing provides information.


Firmware

Setup