やりたい事

  • シリアル防壁基板を作る。

やった事

  • UIAPduinoを動かす
  • micro-keyboardを組み立てた
  • シリアル防壁基板を組み立てた

学んだ事

  • CH32V003のPD1はSWDIOとピンを共有していて、デフォルトでは使えない。

記録

  • 20250210
    • UIAPduino
      • Arduino環境だとHIDデバイス(というか全てのUSBデバイス)になれないみたい。
      • https://github.com/cnlohr/rv003usbを使えばよさそう。
      • ↑は、https://github.com/cnlohr/ch32v003funをベースに作られてるっぽい。
        • こっちのexampleを動かしてみよう。
      • 書き込めない。
        • ch32v003funに付属のminichlinkではError: Could not initialize any supported programmersというエラーがでる。
          • たぶん、UIAPduinoが使ってるブートローダをサポートしてないんじゃないか?
        • Arduino環境用のminichlinkで"/home/ikeji/.arduino15/packages/UIAP/tools/minichlink-2982dfd/1.0.0/minichlink" -w blink.bin flushとすると、Error: Invalid offset (flush)というエラーがでる。
      • これはお手上げだな。
    • micro-keyboard
      • ダイオードをはんだ付け。
      • 0805より大きいダイオードが混じってた。
        • はんだ不良になってないといいけど。
  • 20250211
    • UIAPduino
      • 昨日の、minichlinkは単純にコマンド間違いだった。flushじゃなくてflashね。
        • "/home/ikeji/.arduino15/packages/UIAP/tools/minichlink-2982dfd/1.0.0/minichlink" -w file.bin flash
        • 書き込み手順が多い。(RSTを押しながら、電源を切り入れ、コンパイル、この書き込み。)
      • 簡単なキーボードファームウエアを作ろうと思う。
        • PD1(ピン11)だけ書き込みができない。
        • 読み込みはできる。
        • わからなくて聞いたら、PD1はインサーキットデバッガとピンを共用しているので、そっちを切らないと使えないらしい。
          • 次のコードをmainに足して解決。
            // Enable GPIOs
            RCC->APB2PCENR |= RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOC | RCC_AFIOEN;
            // Convert PD1 from SWIO to GPIO
            AFIO->PCFR1 &= ~(AFIO_PCFR1_SWJ_CFG);
            AFIO->PCFR1 |= AFIO_PCFR1_SWJ_CFG_DISABLE;
            
      • printfデバッグしたい。これは、USBシリアルを用意しないといけないらしい。
    • micro-keyboard
      • スイッチのフットプリントがまた間違ってた。
        • このスイッチは足にコブがあって、丸い穴ではささらない。
        • 今回は縦方向に楕円にしたが、必要なのは横楕円だった。
        • とりあえずは足をネジって組み立てるか。
    • Dactyl Cygnus
      • 組み立てようかと思ったら、右手が2つで左手がなかった。
      • 足りない左手を印刷。
      • 作った無限の可能性風基板で箱におさまるか試したい。
      • Xiao BLEも届いたのでこれを使ってみたい。
  • 20250212
    • ○○ハック
      • USBシリアルを安全にしたい
        • 放置してた切削済み基板を組み立てた。
        • パッドが小さくて半田付けが困難な所があった。
        • バッファの電源をターゲット電源スイッチの外側につけたが、常にオンにしておくべきだったかもしれない。
        • あと入力部分が浮いてしまわないようにプルダウンかプルアップすべきだったかも。
        • シリアルとしての動作は確認したが、電源がショート時に切断されるかどうかは確認してない。
    • micro-keyboard
      • ファームウエアをいじってる。
      • キーマップをいじりたいが、机上でデバッグできないと難しそう。
  • 20250213
    • micro-keyboard
      • メインのキーマッピング部分をくくり出し、cunitでテストしてみた。
        • これだと開発が楽だな。
      • スキャンと割り込みの挙動がおかしい。こっちはテストないからな。
        • とりあえず、デバウンスを外して、かわりにスキャンレートを下げておこう。
      • CtrlとESCを1キーに割りあてる機能ができてない。
    • CNCミル講座
      • CNCで木材を削ってみる。
  • 20250214
    • micro-keyboard
      • キースイッチを半田付け
        • 治具を作った方がよかったな。
      • ケースとキーキャップを設計、印刷
        • 基板ギリギリにしたらはまらなかった。
          • 1mm余白をつけて印刷しておこう。
  • 20250215
    • micro-keyboard
      • 2世代目ではおさまった。
      • 隣のキーが押されてしまう問題にあたったので、キーキャップの隣との接続をかえた。
      • スマホに固定するケースを設計してみた。
        • レールの機構がキモかも。
        • とりあえず、ガタが酷い。
        • 電源スイッチが押されてスマホが再起動する。
  • 20250216
    • Nucbox G9
      • 届いた。
      • Octane benchmark2: 54341
      • Sysbench: 1579.4 4572.3
      • fio(emmc): 246.000
    • 100マス計算
      • https://test.ikeji.ma/calc-benchmark/?seed=2903917772
      • 9分22秒
      • 遅くなった?
    • micro-keyboard
      • とりあえず写真が撮れるぐらいには組めた。
      • SNSに放流
        • https://x.com/ikeji/status/1890985901687267431
        • https://www.youtube.com/watch?v=HNY8QUBB8Q4
        • https://www.reddit.com/r/MechanicalKeyboards/comments/1iqvvx6/keyboard_for_smartphone/