・2021/11/07
QMK firmwareで OLED機能で SSD1306を試してみる (QMK firmware test OLED Driver with SSD1306)
Tags: [電子工作 ], [QMK ]
● QMK firmwareの関連記事
・2021/08/23
QMK firmwareの開発環境を ラズパイや Windows WSLにセットアップする方法 ラズパイや Windows WSL環境でカスタマイズ キーボードのファームウェア QMK firmwareの開発環境を構築
・2022/01/09
BUFFALOの USB テンキーを Pro Microと QMKを使って VIAカスタマイズ キーボードに改造する方法 BUFFALO USB 10-Key keyboard BSTK100 modification by Pro Micro and QMK firmware VIA
・2021/08/11
社畜のキーボード「新入社員の同期」を購入してみた!! VIA、QMK、Remapでのカスタマイズに対応 キー内容が Remap等でカスタマイズ可能な社畜のキーボード「新入社員の同期」を 3500円で購入
● QMK firmwareの Display機能を使って I2C OLEDを表示するテスト
QMK- OLED Driver
PSP-1000、PSP-2000、PSP-3000とで接続部分が異なります。
PSP-2000の物が一番簡単だと思います。
● QMK firmwareの Display機能を使って I2C OLEDを表示するテストの回路図
・QMK firmwareの Display機能を使って I2C OLEDを表示するテストの回路図
● 2021/11/02に oled_task_user関数の戻り値が voidから boolに変更になりました
[Core] Change OLED task function to be boolean #14864
drivers/oled/oled_driver.h
void oled_task_user(void);
↓
bool oled_task_user(void);
戻り値は
return false;
で大丈夫です。
Compiling: keyboards/handwired/freewing/test_qmk/keymaps/default/keymap.c
keyboards/handwired/freewing/test_qmk/keymaps/default/keymap.c:143:6: error: conflicting types for ‘oled_task_user’
void oled_task_user(void) {
^
In file included from quantum/quantum.h:180:0,
drivers/oled/oled_driver.h:290:6: note: previous declaration of ‘oled_task_user’ was here
bool oled_task_user(void);
^
[ERRORS]
● QMK firmwareの Display機能を使って I2C OLEDを表示するテストのソースリスト
handwired/freewing/test_qmk
rules.mk
OLED_ENABLE = yes # Display Feature
OLED_DRIVER = SSD1306 # OLED SSD1306 128x32
#ifeq ($(strip $(OLED_ENABLE)), yes)
# OLED_DRIVER_ENABLE = yes
#endif
config.h
/*
* Display OLED SSD1306 128x32
*/
#define OLED_DISPLAY_ADDRESS 0x3C
#define OLED_BRIGHTNESS 255
#define OLED_IC OLED_IC_SSD1306
#define OLED_DISPLAY_WIDTH 128
#define OLED_DISPLAY_HEIGHT 32
#define OLED_TIMEOUT 31000
test_qmk.c
#ifdef OLED_ENABLE
//# include "oled_display.h"
# include "oled_driver.h"
#endif
#ifdef OLED_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
}
#endif
#ifdef OLED_ENABLE
uint8_t oledState = 0;
static void render_logo(void) {
static const char PROGMEM qmk_logo[] = {
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4,
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00
};
oled_write_P(qmk_logo, false);
}
void oled_task_user(void) {
if (oledState == 0) {
if (timer_read() < 5000) {
// Display Logo 5 sec
render_logo();
} else {
oled_clear();
oledState = 1;
}
return;
}
// Host Keyboard Layer Status
oled_write_P(PSTR("Layer: "), false);
switch (get_highest_layer(layer_state)) {
case _BASE:
oled_write_P(PSTR("Default\n"), false);
break;
case _FN1:
oled_write_P(PSTR("FN1\n"), false);
break;
case _FN2:
oled_write_P(PSTR("FN2\n"), false);
break;
case _FN3:
oled_write_P(PSTR("FN3\n"), false);
break;
default:
// Or use the write_ln shortcut over adding '\n' to the end of your string
oled_write_ln_P(PSTR("Undefined"), false);
}
// Host Keyboard LED Status
led_t led_state = host_keyboard_led_state();
oled_write_P(led_state.num_lock ? PSTR("[NUM]") : PSTR("[ ]"), led_state.num_lock);
oled_write_P(led_state.caps_lock ? PSTR("[CAP]") : PSTR("[ ]"), led_state.caps_lock);
oled_write_P(led_state.scroll_lock ? PSTR("[SCR]") : PSTR("[ ]"), led_state.scroll_lock);
oled_write_P(PSTR("\n"), false);
char str[24] = "";
sprintf(str, "X:%5d/%5d", xPos, xOrigin);
oled_write(str, false);
oled_write_P(PSTR("\n"), false);
sprintf(str, "Y:%5d/%5d", yPos, yOrigin);
oled_write(str, false);
}
#endif
・QMK firmwareの Display機能を使って I2C OLEDを表示するテスト
●その他の QMK キーボードの試作品
Quantum Mechanical Keyboard
・Piezo Buzzer = Passive
他励振タイプ(パッシブ、受身)の圧電ブザーの Audio機能の確認
・Analog Joystick = PSP-2000 compatible
PSP-2000互換のアナログ ジョイスティックによるマウス操作、ゲームコントローラ操作
・OLED Display = I2C SSD1306 128x32
I2C接続の有機 LEDディスプレイ SSD1306 128x32の表示確認
Hand Wired QMK Firmware test with Pro Micro and Buzzer Analog Joystick OLED SSD1306
VIDEO
Tags: [電子工作 ], [QMK ]
●関連するコンテンツ (この記事を読んだ人は、次の記事も読んでいます)
【自由工作】市販のキーボードを無改造で VIA QMK化する Keyboard Quantizerを自作する【夏休み】 夏休みが明けたら 僕のキーボードが最強になって クラスのみんなから MMK 大作戦
BUFFALOの USB テンキーを Pro Microと QMKを使って VIAカスタマイズ キーボードに改造する方法 BUFFALO USB 10-Key keyboard BSTK100 modification by Pro Micro and QMK firmware VIA
QMK firmwareの開発環境を ラズパイや Windows WSLにセットアップする方法 ラズパイや Windows WSL環境でカスタマイズ キーボードのファームウェア QMK firmwareの開発環境を構築
QMK firmwareでプログラムのサイズを小さくするテクニック、ケチケチ プログラミングの方法 QMK firmware How to Reduce Program Size、Reducing QMK firmware size
QMK firmwareで I/Oピンが足りない場合にデコーダ、デマルチプレクサを使用して IOを拡張する解決方法 QMK firmware expand I/O for many matrix keyboard、How to use IO Expander Multiplexer / Demultiplexer / Decoder
QMK firmwareで I/Oピンが足りない場合に I2Cの GPIOエキスパンダを使用して IOを拡張する解決方法 QMK firmware expand I/O for many matrix keyboard、How to use I2C GPIO Expander PCF8574 and PCF8575
QMK firmwareで Audio機能を試してみる QMK firmware test Audio function with Piezo buzzer
QMK firmwareで Analog Stick機能で PSP2000用アナログ ジョイスティックを試してみる QMK firmware test Analog Joystick function with PSP2000 Analog Stick
最新の QMK firmwareで new_keyboard.shのコマンドが動かなくなったのを修正する方法 QMK Bugfix Create New Keyboard new_keyboard.sh command No such file or directory Error
QMK firmwareの Githubを forkした自分のリモートに pushすると怒られて pushできない場合の対応方法 refusing to allow an OAuth App to create or update workflow `.github/workflows/api.yml` without `workflow` scope
中華製の格安なプログラマブル USBキーボードを買ってみた QMK VIAとは別物 中華製のプログラマブル USBキーボード KeyboardSetter.exe
社畜のキーボード「新入社員の同期」を購入してみた!! VIA、QMK、Remapでのカスタマイズに対応 キー内容が Remap等でカスタマイズ可能な社畜のキーボード「新入社員の同期」を 3500円で購入
[HOME]
|
[BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c)
2021 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator
http://www.neko.ne.jp/~freewing/hardware/qmk_firmware_test_oled_function_ssd1306/