shields: display: Add Waveshare Pico OLED 1.3
Added Waveshare 1.3inch OLED module for RaspberryPi Pico. Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
This commit is contained in:
parent
6a7765cfda
commit
429e3a96c2
11 changed files with 226 additions and 0 deletions
24
boards/shields/waveshare_pico_oled_1_3/Kconfig.defconfig
Normal file
24
boards/shields/waveshare_pico_oled_1_3/Kconfig.defconfig
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
# Copyright (c) 2025 TOKITA Hiroshi
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
if SHIELD_WAVESHARE_PICO_OLED_1_3
|
||||||
|
|
||||||
|
if DISPLAY
|
||||||
|
|
||||||
|
if LVGL
|
||||||
|
|
||||||
|
config LV_DPI_DEF
|
||||||
|
default 110
|
||||||
|
|
||||||
|
config LV_Z_BITS_PER_PIXEL
|
||||||
|
default 1
|
||||||
|
|
||||||
|
choice LV_COLOR_DEPTH
|
||||||
|
default LV_COLOR_DEPTH_1
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
endif # LVGL
|
||||||
|
|
||||||
|
endif # DISPLAY
|
||||||
|
|
||||||
|
endif # SHIELD_WAVESHARE_PICO_OLED_1_3
|
11
boards/shields/waveshare_pico_oled_1_3/Kconfig.shield
Normal file
11
boards/shields/waveshare_pico_oled_1_3/Kconfig.shield
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
# Copyright (c) 2025 TOKITA Hiroshi
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
config SHIELD_WAVESHARE_PICO_OLED_1_3
|
||||||
|
def_bool $(shields_list_contains,waveshare_pico_oled_1_3)
|
||||||
|
|
||||||
|
config SHIELD_WAVESHARE_PICO_OLED_1_3_DISPLAY
|
||||||
|
def_bool $(shields_list_contains,waveshare_pico_oled_1_3_display)
|
||||||
|
|
||||||
|
config SHIELD_WAVESHARE_PICO_OLED_1_3_BUTTONS
|
||||||
|
def_bool $(shields_list_contains,waveshare_pico_oled_1_3_buttons)
|
|
@ -0,0 +1,8 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2025 TOKITA Hiroshi
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* pico_plus2 can use with the rpi_pico configuration. */
|
||||||
|
#include "rpi_pico.overlay"
|
|
@ -0,0 +1,22 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2025 TOKITA Hiroshi
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
&pinctrl {
|
||||||
|
i2c1_default: i2c1_default {
|
||||||
|
waveshare_pico_oled_1_3_group1 {
|
||||||
|
pinmux = <I2C1_SDA_P6>, <I2C1_SCL_P7>;
|
||||||
|
input-enable;
|
||||||
|
input-schmitt-enable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c1 {
|
||||||
|
clock-frequency = <I2C_BITRATE_FAST>;
|
||||||
|
pinctrl-0 = <&i2c1_default>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
status = "okay";
|
||||||
|
};
|
|
@ -0,0 +1,8 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2025 TOKITA Hiroshi
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* rpi_pico2 can use with the rpi_pico configuration. */
|
||||||
|
#include "rpi_pico.overlay"
|
|
@ -0,0 +1,8 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2025 TOKITA Hiroshi
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* w5500_evb_pico2 can use with the rpi_pico configuration. */
|
||||||
|
#include "rpi_pico.overlay"
|
|
@ -0,0 +1,8 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2025 TOKITA Hiroshi
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* w5500_evb_pico2 can use with the rpi_pico configuration. */
|
||||||
|
#include "rpi_pico.overlay"
|
65
boards/shields/waveshare_pico_oled_1_3/doc/index.rst
Normal file
65
boards/shields/waveshare_pico_oled_1_3/doc/index.rst
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
.. _waveshare_pico_oled_1_3:
|
||||||
|
|
||||||
|
Waveshare 1.3inch OLED Display Module for Raspberry Pi Pico
|
||||||
|
###########################################################
|
||||||
|
|
||||||
|
Overview
|
||||||
|
********
|
||||||
|
|
||||||
|
The Waveshare 1.3inch OLED Display Module for Raspberry Pi Pico is
|
||||||
|
a 64x128 vertically long LCD module based on the SinoWealth SH1107 controller.
|
||||||
|
This module connects via I2C and optionally can use SPI(need soldering).
|
||||||
|
This display module has two buttons that the user program can use.
|
||||||
|
It is convenient for implementing user interfaces.
|
||||||
|
|
||||||
|
More information about the shield and Arduino adapter can be found at
|
||||||
|
the `Waveshare Pico OLED 1.3 Module website`_.
|
||||||
|
|
||||||
|
Pin Assignments
|
||||||
|
===============
|
||||||
|
|
||||||
|
+-------+-----------+-------------------------------------------+
|
||||||
|
| Name | Function | Usage |
|
||||||
|
+=======+===========+===========================================+
|
||||||
|
| GP6 | I2C_SDA | I2C Data input (I2C1_SDA) |
|
||||||
|
+-------+-----------+-------------------------------------------+
|
||||||
|
| GP7 | I2C_SCL | I2C Clock input (I2C1_SCL) |
|
||||||
|
+-------+-----------+-------------------------------------------+
|
||||||
|
| GP8 | OLED_DC | Data/Command control pin (optional) |
|
||||||
|
+-------+-----------+-------------------------------------------+
|
||||||
|
| GP9 | OLED_CS | SPI Chip Select (SPI1_CSN, optional) |
|
||||||
|
+-------+-----------+-------------------------------------------+
|
||||||
|
| GP10 | OLED_CLK | SPI Clock input (SPI1_SCK, optional) |
|
||||||
|
+-------+-----------+-------------------------------------------+
|
||||||
|
| GP11 | OLED_DIN | SPI Data input (SPI1_TX, optional) |
|
||||||
|
+-------+-----------+-------------------------------------------+
|
||||||
|
| GP12 | OLED_RST | Reset |
|
||||||
|
+-------+-----------+-------------------------------------------+
|
||||||
|
| GP15 | GPIO | User Key 0 |
|
||||||
|
+-------+-----------+-------------------------------------------+
|
||||||
|
| GP17 | GPIO | User Key 1 |
|
||||||
|
+-------+-----------+-------------------------------------------+
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
The SPI interface is not available by default.
|
||||||
|
Switch the J1, J2, and J3 jumper by moving 0-ohm registers
|
||||||
|
to the SPI side to enable SPI.
|
||||||
|
|
||||||
|
Programming
|
||||||
|
***********
|
||||||
|
|
||||||
|
Set ``-DSHIELD=waveshare_pico_oled_1_3`` when you invoke ``west build``. For example:
|
||||||
|
|
||||||
|
.. zephyr-app-commands::
|
||||||
|
:zephyr-app: samples/subsys/display/lvgl
|
||||||
|
:board: rpi_pico
|
||||||
|
:shield: waveshare_pico_oled_1_3
|
||||||
|
:goals: build
|
||||||
|
|
||||||
|
References
|
||||||
|
**********
|
||||||
|
|
||||||
|
.. target-notes::
|
||||||
|
|
||||||
|
.. _Waveshare Pico OLED 1.3 Module website:
|
||||||
|
https://www.waveshare.com/wiki/Pico-OLED-1.3
|
|
@ -0,0 +1,8 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2025 TOKITA Hiroshi
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "waveshare_pico_oled_1_3_display.overlay"
|
||||||
|
#include "waveshare_pico_oled_1_3_buttons.overlay"
|
|
@ -0,0 +1,31 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2025 TOKITA Hiroshi
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <zephyr/dt-bindings/gpio/gpio.h>
|
||||||
|
#include <zephyr/dt-bindings/input/input-event-codes.h>
|
||||||
|
#include <zephyr/dt-bindings/lvgl/lvgl.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
buttons {
|
||||||
|
compatible = "gpio-keys";
|
||||||
|
|
||||||
|
key0: key0 {
|
||||||
|
label = "User Key 0";
|
||||||
|
gpios = <&pico_header 15 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
|
||||||
|
zephyr,code = <INPUT_KEY_0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
key1: key1 {
|
||||||
|
label = "User Key 1";
|
||||||
|
gpios = <&pico_header 17 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
|
||||||
|
zephyr,code = <INPUT_KEY_1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
sw0 = &key0;
|
||||||
|
};
|
||||||
|
};
|
|
@ -0,0 +1,33 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2025 TOKITA Hiroshi
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <zephyr/dt-bindings/input/input-event-codes.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
chosen {
|
||||||
|
zephyr,display = &sh1107_waveshare_pico_oled_1_3;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c1 {
|
||||||
|
sh1107_waveshare_pico_oled_1_3: sh1107@3c {
|
||||||
|
compatible = "sinowealth,sh1106";
|
||||||
|
reg = <0x3c>;
|
||||||
|
|
||||||
|
width = <64>;
|
||||||
|
height = <128>;
|
||||||
|
segment-offset = <0>;
|
||||||
|
page-offset = <0>;
|
||||||
|
display-offset = <0x20>;
|
||||||
|
multiplex-ratio = <63>;
|
||||||
|
prechargep = <0x22>;
|
||||||
|
segment-remap;
|
||||||
|
com-invdir;
|
||||||
|
reset-gpios = <&pico_header 12 GPIO_ACTIVE_LOW>;
|
||||||
|
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
};
|
Loading…
Add table
Add a link
Reference in a new issue