{"id":18650237,"url":"https://github.com/zuki/ssd1331_piko","last_synced_at":"2025-11-05T11:30:26.737Z","repository":{"id":222926320,"uuid":"758756585","full_name":"zuki/ssd1331_piko","owner":"zuki","description":"pico-sdkでOLED (SSD1331) を使用する","archived":false,"fork":false,"pushed_at":"2024-02-17T02:24:24.000Z","size":511,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-27T13:10:10.208Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zuki.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-02-17T02:06:43.000Z","updated_at":"2024-02-17T02:07:26.000Z","dependencies_parsed_at":"2024-02-17T03:23:35.542Z","dependency_job_id":"e0bbed8f-c10b-4280-8673-6a4f183b85ab","html_url":"https://github.com/zuki/ssd1331_piko","commit_stats":null,"previous_names":["zuki/ssd1331_piko"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zuki%2Fssd1331_piko","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zuki%2Fssd1331_piko/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zuki%2Fssd1331_piko/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zuki%2Fssd1331_piko/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zuki","download_url":"https://codeload.github.com/zuki/ssd1331_piko/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239457660,"owners_count":19642092,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T06:43:02.816Z","updated_at":"2025-11-05T11:30:26.695Z","avatar_url":"https://github.com/zuki.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"= カラーOLEDディスプレイ（SSD1331）をSPI経由で接続する\n\nssD1331のデータシートは file:///Users/dspace/Documents/Datasheets/SSD1331_1.2.pdf[ここ] にある。\n\n\n== 配線情報\n\n   * GPIO 17 (pin 22) Chip select -\u003e SSD1331ボードのCS (Chip Select)\n   * GPIO 18 (pin 24) SCK/spi0_sclk -\u003e SSD1331ボードのSCL\n   * GPIO 19 (pin 25) MOSI/spi0_tx -\u003e SSD1331ボードのSDA (MOSI)\n   * GPIO 22 (pin 26) -\u003e SSD1331ボードのDC (Data/Command)\n   * 3.3V OUT (pin 36) -\u003e SSD1331ボードのVCC\n   * GND (pin 38)  -\u003e SSD1331ボードのGND\n\nSPI port 0を使用する。電源は3.3V OUTピンから供給する。\n\n== 実行結果\n\n=== 1. 画像表示OK\n\n* 24bit BMPから16bit RGB565に変換してヘッダーファイルとして作成するプログラムを作成\n* SSD1331_REMAP_COLOR_DEPTH: 0x72 では上下逆さま\n* SSD1331_REMAP_COLOR_DEPTH: 0x40 では横半分に圧縮\n* SSD1331_REMAP_COLOR_DEPTH: 0x60 で正常\n   ** [7:6]=01: 65K color format\n   ** [5]=1: Enable COM Spilit Odd Even\n   ** [4]=0: Scan from COM0 tom COM[N-1]\n   ** [3]=0: Disable left-right swapping on COM\n   ** [2]=0: RGB\n   ** [1]=0: RAM Column 0 to 95 to Pin Seg(SA,SB,SC) 0 to 95\n   ** [0]=0: Horizontal address increment\n* 文字出力が反転するようになった\n   ** 元画像のbmp形式は画像データが上下反転で格納される仕様であった\n   ** `convert -flip` で元画像を上限反転\n   ** SSD1331_REMAP_COLOR_DEPTHを0x72に戻すと画像も文字出力も正常になった\n\nimage::image_ok.jpeg[画像表示]\n\n=== 2. フォント表示OK\n\n* フォントは `src-examples/i2c/ssd1306_i2c/ssd1306_font.h`を流用\n* このフォントはSSD1306のバッファの持ち方により左に90度釜向いているので右に90度回転するプログラムを作成\n* できたフォントを少しだけ修正\n\nlink:refs/ssd1306_font.adoc[フォントについて]\n\nimage::font_ok.jpeg[フォント表示]\n\n=== 3. スクロールOK\n\n=== 4. 変転表示OK\n\n=== 5. ライン描画OK\n\n== データ送信に `spi_write16_blocking` を使用\n\nunit16_t[]を書き出すための関数があることを発見してデータバッファをuint16_t[]として書き直した。\n修正点は次の5点。\n\n* 画像データをuint16_tの配列で書き出すようimage_to_hex.cを変更\n* バッファサイズをuint16_tの個数に変更\n* colorのuint8_t[2]への分解をやめる\n* send_data()でspi_write_blocking()の代わりにspi_write16_blocking()を使用\n* send_cmd(), send_data()の冒頭でspi_set_format()で送信データのビット数を変更\n\nなお、この変更で文字色の白が黄色になる問題が解決した。\n\nimage::image_16.jpeg[16ビットバッファ]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzuki%2Fssd1331_piko","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzuki%2Fssd1331_piko","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzuki%2Fssd1331_piko/lists"}