「micro:bit」タグアーカイブ

chibi:bit (micro:bit 互換) テスト版 Bボタン不具合の修理

mbed祭り 2016@初夏の札幌 で実物を見てからずっと気になっていた micro:bit の国内向け互換機 chibi:bit 。
基本的なアーキテクチャはそのままに、日本で技適取得済みの bluetooth モジュールを採用し、日本国内での利用を可能にしたデバイスです。

教育用マイコンというと Arduino や raspberry Pi が既に先行していますが、micro:bit は押しボタンや LED マトリクス、加速度センサ、地磁気センサといった子供でもお手軽に使える入出力装置が組み込まれているのが特徴です。特に LED マトリクスは 5×5 の LCD ディスプレイの代わりとして利用することが可能で、標準のライブラリを使えばメッセージをスクロール表示(場末のスナックとかで見かける「い..ら..っ..し..ゃ..い..ま..せ..!」と文字が流れるアレ)させることもできます。あとは外付けセンサー等との接続にワニ口クリップが使えるよう、コネクタの幅が大きめにとってあったりとか、電池をつけるためのコネクタが標準で付いていたりとか、後発ゆえに色々考えられているなあという作りになってます。

スイッチサイエンスさんでは今回の製品化に先駆け、製品化前モニターテストというものを募集していましたが、張り切って応募したものの、残念ながら落選。

そうなると余計欲しくなるのが人情。
さすがスイッチサイエンスさん、良く分かってます(笑)

畳みかけるように Maker Faire Tokyo 2016 のタイミングで chibi:bit テスト版の限定販売を行うと聞き、早速注文。テスト版といっても製品版と機能は同じで、しかし価格は製品版よりも抑えての販売のことで、このあたりにスイッチサイエンスさんの良心を垣間見たような気がしました。

しかし・・・

注文商品発送のお知らせを受領し、到着を今か今かと待っていたまさにその日、一通のメールがスイッチサイエンスさんから届きました。
なんとテスト版の基盤パターンに不具合が見つかり、実装されている B ボタンが動作しないとのこと。

chibi:bitテスト版、返品返金もしくは返品交換をいたします。

何でも B ボタンのパッドが地磁気センサのパターンと被ってしまっているのが原因とのことで「はんだ付けに自信のある方は」という前提で修正方法も公開されていいます。

この問題に対し、スイッチサイエンスさんでは「返品交換」もしくは「返品返金」で対応するとのこと。
それについては素晴らしい対応だと思うのですが、販売価格を抑えた利益の薄いテスト版なのに、返品→修理→交換とかしてたら完全に赤字なんじゃないかと。

さらに言えば今回のは「テスト」と謳った版なわけで、これを理解した上で購入した側としては一定の責任を追う必要があるべきではないかと思うわけですよ。更に踏み込むなら「テスト版デバイスの購入者ならばこの程度の困難は何とかしてくれるはず」というスイッチサイエンス担当者の心の叫びが聞き取れるというか、いやひょっとしてこれはもはやスイッチサイエンスからの挑戦状なのでは・・・!と妄想に妄想を重ねた作者は「返金」でも「交換」でもなく「自分で修理」の道を選択したのでした。
(前置き長くてすみません)

現状確認

基本的には前述の修正方法に乗っ取れば OK な訳ですが、百聞は一見にしかず、ということで自分の基盤をチェック。
おお、確かにパターン被ってる。

chibi_bit_001

作業開始

パターンをカットした上で、接触箇所を避ける形でジャンパーを飛ばせばいいわけですね。
・・・と書いたものの、このパターン、相当細いですよ。0.3mm くらい?
スルーホール部分でようやく 0.7 mm 位でしょうか。
(まだ)老眼とかじゃなくてよかった・・・

chibi_bit_002

スルーホール周辺のレジストをカッターの背で削って銅箔を露出させ、接触箇所のパターンを切ったところです。
レジスト削りよりも、パターンカットの方が怖かったです。隣のパターンを切ってしまいそうで・・・
カット後に導通をチェックして、ボタンのパッド部分との導通がないことを確認しました。

chibi_bit_003

最終的にこんな感じになりました。
手持ちのリード線で一番細いやつ使ったんですが、それでもパターンより太くて難儀しました・・・

先ほど露出させた銅箔にほんの少しだけフラックスをつけ、軽くハンダを乗せた上で、同じく事前にハンダを乗せたリード線を固定して、ハンダごての先で素早く融着させる感じで固定しました。
リードを固定する時に使ったクリップが強力すぎて、被覆が少し潰れているのはご愛敬。(^^;

動作確認

ボタン動作を試す簡単なプログラムを書いて chibi:bit に流し込み、実際に B ボタンが動作することを確認しました。
A/B ボタンいずれかを押すと 5×5 LED マトリクスに「A」または「B」と表示されます。

テストに使ったコードは https://developer.mbed.org/users/iwaita2ya/code/microbit_button_test/ でもシェアしていますが、念のためこちらにも全文貼り付けておきます。

/******************************************************************************
main.cpp

Tatsuya Iwai @ greysound.com
Original Creation Date: Aug 12, 2016
https://github.com/sparkfun/LSM9DS1_Breakout

This simple program tests built-in "A" and "B" button on micro:bit or any
compatible devices (such as "chibi:bit") shows button label on LED matrix
when either button is pressed.

Distributed as-is; no warranty is given.
******************************************************************************/

#include "MicroBit.h"

// Objects --------------------------------------------------------------------
MicroBitMessageBus bus;
MicroBitButton buttonA(MICROBIT_PIN_BUTTON_A, MICROBIT_ID_BUTTON_A);
MicroBitButton buttonB(MICROBIT_PIN_BUTTON_B, MICROBIT_ID_BUTTON_B);
MicroBitDisplay display;

// Function prototypes --------------------------------------------------------
void onPressed(MicroBitEvent e);

// Main  ----------------------------------------------------------------------
int main()
{
    scheduler_init(bus);

    bus.listen(MICROBIT_ID_BUTTON_A, MICROBIT_BUTTON_EVT_CLICK, onPressed);
    bus.listen(MICROBIT_ID_BUTTON_B, MICROBIT_BUTTON_EVT_CLICK, onPressed);

    while(1)
        fiber_sleep(1000);
}

// Functions ------------------------------------------------------------------
void onPressed(MicroBitEvent e)
{
    if (e.source == MICROBIT_ID_BUTTON_A)
        display.scroll("A");

    if (e.source == MICROBIT_ID_BUTTON_B)
        display.scroll("B");
}

あと余談になりますが、chibi:bit を USB 接続した際にフォルダに含まれている MBED.HTM を開くと、mbed コンパイラに mbed HRM1017 として登録されてしまいました。
micro:bit のライブラリを利用する場合、このままビルドすると以下のようなエラーとなってしまいます。

Error: Cannot open source input file "device.h": No such file or directory in "microbit/microbit-dal/mbed-dev-bin/platform.h", Line: 21, Col: 21

これを回避するには https://developer.mbed.org/platforms/Microbit/ から画面右側にある「Add to your mbed Compiler」というオレンジ色のボタンをクリックして、micro:bit をデバイス一覧に追加した上で、ターゲットを micro:bit に変更して下さい。