見出し画像

19mmトラボ変換キット|商品紹介&説明書

はじめに


このたびmoNa2のトラックボールを、よりコンパクトな19mmへと変更できる変換キットを販売しました。
本記事では「19mmトラックボール変換キット」の内容説明と、組み立て手順などを解説します。

👇「19mmトラックボール変換キット (moNa2用)」の商品ページはこちら

需要確認にも活用していますので、気になる方はぜひお気に入りにしてもらえるとありがたいです🙏

基本情報


本キットは、moNa2に搭載されている25mmトラックボールを19mmサイズへ小型化するためのものになります。
トラックボールケースはベアリング仕様になっており、滑らかな操作感を実現します。

※交換には、はんだ付けや部品の取り外しが必要です。

セット内容


🔹19mmトラックボールケース(ベアリング仕様)
🔹トラボ基板接続用 FPC

別途ご用意いただくもの


🔹14mmマウスセンサ
 - せきごんさんが製作・販売しているモジュールになります。
 ( https://nogikes.booth.pm/items/6520217
🔹19mm トラックボール
 -オプションで、動作確認済みの白色球を購入いただけます。
   また、shakupanさんのboothにて染め球の販売も予定されています。

トラックボールオプションについて


19mmトラックボールは、現在市販品の入手が極めて困難なため、
追加オプションとしてPTFE球をご用意しています。

PTFE球はPOM球と比べ質量があり、より安定した操作感が望めます。
素材の特性上、染色が難しいなため白色のみの販売になります。

別で用意していただいても問題ありませんが、
製品によってはセンサが反応しない場合もありますのでご了承ください。

組み立て方法


以下4つのステップごとに解説していきます。

1️⃣ L字コンスルーの取り外し
2️⃣ FPCの取り付け
3️⃣ センサ・トラボケースの取り付け
4️⃣ ファームウェアの変更

※はんだごて等を使用する際は、moNa2の外装、キースイッチ、バッテリーなどを必ず取り外してください。

Step1. L字コンスルーの取り外し


トラックボールを取り外すと、メイン基板にL字コンスルーがはんだ付けされています。
はんだごて等を使用して取り外してください。

外す際ははんだを多めに盛り、ピン全体を同時に加熱すると取り外しやすいです。

Step2. FPCの取り付け


14mmマウスセンサとメイン基板を接続するため、FPCをはんだ付けします。

上の写真のような向きではんだ付けしてください。
※メイン基板とFPCの四角いパッドの位置が一致しているか、必ず確認してください。

表面実装方式でFPCとメイン基板を重ね、上からはんだを流し込むように固定します。(テープ等で固定するとはんだ付けしやすいです。)

Step3. センサ・トラボケースの取り付け


14mmマウスセンサとトラボケースを本体に取り付けます。

先に、FPCと14mmマウスセンサを取り付けてください。
(補強板が上に来るように接続)

トラボケース底面のねじ穴は小さめに設計されています。
本体に固定する前に、何度かねじを出し入れして穴を馴染ませてください。

※ねじ穴が固いまま固定すると、再度取り外す際にねじ山が崩れる可能性があります。

上記のようにFPCを曲げながら14mmマウスセンサをケース内に収めます。

トラボケースを固定する前に、側面からマウスセンサーを差し込んでください。(角度を変えながら入りやすい向きを探してください。)

パッド上部に白いマスキングテープを貼っています。

最後に、本体へトラボケースをねじ固定すれば完成です🎉

Step4. ファームウェアの変更


※事前にフォルダ構成を最新状態にしておく必要があります。
フォルダ構成を新しくする手順は以下の記事を参考にしてください。

マウスセンサを変更したため、ファームウェアの書き換えが必要です。
以下のファイルをダウンロードし、各ファイルをを置き換えてください。

以下のコードをコピーして対象のファイルを書き換えても大丈夫です。

west.yml

manifest:
  remotes:
    - name: zmkfirmware
      url-base: https://github.com/zmkfirmware
    - name: sayu-hub
      url-base: https://github.com/sayu-hub
    # - name: badjeff    # <-- PMW3610
    #   url-base: https://github.com/badjeff
    - name: sekigon-gonnoc  # <-- PAW3222
      url-base: https://github.com/sekigon-gonnoc
    - name: caksoylar  # <-- RGB LED
      url-base: https://github.com/caksoylar  
    - name: zettaface  # <-- Input Processor Keybind
      url-base: https://github.com/zettaface
  projects:
    - name: zmk
      remote: zmkfirmware
      revision: v0.2.1
      import: app/west.yml
    # - name: zmk-pmw3610-driver
    #   remote: badjeff
    #   revision: main
    - name: zmk-driver-paw3222
      remote: sekigon-gonnoc
      revision: main
    - name: zmk-rgbled-widget
      remote: caksoylar
      revision: main
    - name: zmk-input-processor-keybind
      remote: zettaface
      revision: main
  self:
    path: config

Kconfig.defconfig

if SHIELD_MONA2_R

config ZMK_KEYBOARD_NAME
    default "mona2"

config ZMK_BLE
    default y

config ZMK_SPLIT_ROLE_CENTRAL
    default y

endif

if SHIELD_MONA2_R || SHIELD_MONA2_L

config NFCT_PINS_AS_GPIOS
    default y

config ZMK_SPLIT
    default y

config INPUT
    default y

config ZMK_POINTING
    default y

config SPI
    default y

config PAW3222
    default y

config RGBLED_WIDGET_BATTERY_LEVEL_HIGH
    default 30

config RGBLED_WIDGET_BATTERY_LEVEL_CRITICAL
    default 10

endif

mona2_r.overlay

#include "mona2.dtsi"
#include <input/processors.dtsi>
#include <zephyr/dt-bindings/input/input-event-codes.h>


&default_transform {
    col-offset = <6>;
};

&kscan0 {
        col-gpios
            = <&xiao_d 10 GPIO_ACTIVE_HIGH>
            , <&xiao_d 9 GPIO_ACTIVE_HIGH> 
            , <&xiao_d 8 GPIO_ACTIVE_HIGH> 
            , <&xiao_d 7 GPIO_ACTIVE_HIGH> 
            , <&gpio0 10 GPIO_ACTIVE_HIGH>
            ;
};


&pinctrl {
    spi0_default: spi0_default {    //通常時(SPI通信中)のピン構成
        group1 {
            psels = <NRF_PSEL(SPIM_SCK, 0, 5)>, //P0.05を指定(SCLK)
                <NRF_PSEL(SPIM_MOSI, 0, 4)>,    //P0.04を指定(SDIOだからMOSI,MISO両方の役割を担う)
                <NRF_PSEL(SPIM_MISO, 0, 4)>;
        };
    };

    spi0_sleep: spi0_sleep {    //スリープ時のピン構成(省電力)
        group1 {
            psels = <NRF_PSEL(SPIM_SCK, 0, 5)>,
                <NRF_PSEL(SPIM_MOSI, 0, 4)>,
                <NRF_PSEL(SPIM_MISO, 0, 4)>;
            low-power-enable;
        };
    };
};


&spi0 {
    status = "okay";
    compatible = "nordic,nrf-spim"; //マイコンがnRFシリーズ
    pinctrl-0 = <&spi0_default>;
    pinctrl-1 = <&spi0_sleep>;
    pinctrl-names = "default", "sleep";
    cs-gpios = <&gpio0 9 GPIO_ACTIVE_LOW>;  //P0.09を指定(CS)

    trackball_central: trackball_central@0 {
        status = "okay";
        compatible = "pixart,paw3222";  //トラボセンサ用のドライバとバインド
        reg = <0>;
        spi-max-frequency = <2000000>;
        irq-gpios = <&gpio0 2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; //P0.02を指定(MOTION)

    };
};


// Overrides for the input listener node
&trackball_central_listener {
    status = "okay";
    device = <&trackball_central>;

    scroller {
        layers = <2>;
        input-processors = <&zip_xy_transform INPUT_TRANSFORM_XY_SWAP>,        //X軸とY軸の入れ替え
                           <&zip_xy_transform INPUT_TRANSFORM_X_INVERT>,       //X軸反転
                           <&zip_xy_to_scroll_mapper>,                         //スクロールモードに変更
                           <&zip_scroll_transform INPUT_TRANSFORM_X_INVERT>,   //スクロールのX軸反転
                           <&zip_scroll_scaler 1 5>;                           //スクロール量を1/4倍
    };

};


各ファイルを置き換えることができたら、ファームウェアをビルドしmoNa2に書き込んでください。

PCと接続し、正常に動作するか確認してください。

注意事項


🔸本キットは、はんだ付けなどの作業が必要な上級者向けの商品です。
🔸本キットによる破損や不具合はすべて自己責任となります。
  あらかじめご了承ください。
🔸トラボケースは3Dプリンタ製のため、積層痕やわずかな糸引きが見られる場合があります。神経質な方はご購入をお控えください。
🔸内容物に不足や誤りがあった場合は、商品到着から2週間以内に当ストアまでご連絡ください。


いいなと思ったら応援しよう!