2010年07月08日

wii 用 bluetooth モジュール



Wii 用の bluetooth モジュール J27H002 が、dealextreme で 7.75 ドルで買えることを知った。

ちゃんと認可を受けているようだし、インターフェイスは たぶん UART だし 電子工作で使えると嬉しい。ちなみにサイズは、2.6cm x 1.8 cm だそうだ。

    focalprice のほうは、6.47 ドルだった。 3 つ買えば単価が 5.57 ドルまで下がるし。



ちょっと調べてみると、Wii のモジュールは もともとは ミツミの WML-C43 だったらしい。それの後継品か互換品か知らないが 信号やプロトコルは互換性があるのだろう。

WML-C43 の場合 テスト用のパッド が 8 つだから 信号線は全部で 8 つなのだろう。J27H002 もシールをめくれば テスト用のパッドが見えてきそうな感じがある。

    -- 入手した。シールの下には 予想どおり に 8 つのパッド。ただし、パターンが若干小さい。

    VCC(3.3V),GND , TXD/RXD/CTS/RTS と RESET で 7本かなぁと想像しているが、全然違うかも。

    プロトコルは、HCI-UART のはず。


wii 本体と ロジアナがあれば ピンアサインは 調べられそうだが、残念ながら両方とも持っていない。自分では調べられないので調べた方がいたら教えて頂けると非常に嬉しい。

あと対応コネクタは、Molex 54722-0168-Cだと思うが確信しているわけではない。

追記: Wii は USB だった。

「ぷちのいず」さんのところで、実際に Wii に接続して調べたところ、USB だったとのこと。

接続は、上の WML-C43 の写真の向きで、見て左から

    (1) ? H レベル
    (2) ? H レベル
    (3) D-
    (4) D+

    (5) ? L レベル
    (6) ? H レベル
    (7) ? H レベル
    (8) GND

(ただし、(1)-(7) が逆かも)。

まだピンが余っているから そこに シリアルが仕込まれている可能性はある。

    それは望み薄という気もしてきた。テスト用パッドまで互換にするとすれば、理由があるはず。-- 検査に必要だからとか? ファームウェア書き込み用の SPI とかかも。

USB only だとしても 3.3V なら ちょっと嬉しい。前記事:格安 Bluetooth ドングルで書いたように、PIC24FJ64GB002/PIC24FJ32GB002 を使えば 3.3V only ので コンバーターが作れる。

    その前に 電源ピンを確定して、PC への接続テストをしないと ... 3.3V というのも違うかも知れないし。

それに私が欲しいのは、I2C へのコンバータなので、どうせコントローラは必要なのだ。(PIC必須か AVR で済むかの違い)

ちなみに、シリアルの HCI プロトコルには、BCSP (Blue Core Serial Protocol) と H4 がある。
H4 は、CTS/RTS のハードフローコントロールが必須で 8bit/Parity None 。
BCSP は、ハードフローコントロール なし(TX/RX のみ), 8bit/Parity Even 。
ボーレートは、4800 - 921.6K bps の範囲。

    "Three-wire protocol" というのもあるそうだ。これは、BCSP をベースにしてて H5 とも言うらしい。信号線は Tx/Rx の 2本 (GND 入れて3?) 。フローコントロールは Xon/Xoff 。

    公式のドキュメントは、ここ


追記: 2010/11/11

少々知識が増えたところで、改めて ググってみたところ、WML-C43 も J27H002 も BCM2045 だという情報が得られた。ここに、BCM2045 と I2C rom (M24C32) が載っている写真がある。
M2432 は、32kbit (4KB) しかないから、設定が格納されているだけなんだろう。

Product Brief だけ見つけられたのだが、Supperts UART, USB, SDI, SPI HCI transport って書いてある。
SDIO を持っているから SDI って SDIO のこと? ... それはともかく、残りの 4pin が信号線なら USB 以外で接続できるのかも知れない。.. データシートがないとどうにもならなそうだが、とりあえず。

Broadcom は、SDK なんかを配布しているようなのだが... 詳細はよくわからない。


追記: 2010/11/6



Serial Bluetooth RF Transceiver Module RS232 (goodluckbuy.com , $6.35) なんてものを見つけてしまった。

やりたいのは、I2C 変換して、PMP につなぐことなのだが、USB だと PIC24F 使わないと無理そうで面倒に思っていた。最初からシリアルだと手馴れた AVR で作れそうだし嬉しい。

AVR つなげるなら mega88系? それはともかく、ちょっと買ってみよう。

    下記にわかったことをまとめておいたが、goodluckbuy.com のは、たぶん、old version のファームウェアで slave にしかなれないように思う 。new version が明らかなのは eBay E'go china のやつで 2 個 $20 。あと、CuteDigi BMX の $15.99 。
    いずれにしても 対応しているのは SPP。

    AVR とかで デバイスを作るには良いと思うが、ちょっと Host 向きではないようだ。

    チップは、CSR BC417143 (BlueCore4-External)で、Flash が載っている。firmware がダウンロードできたりすると面白いのだが...

    Radio Datacom というところの KC21 は、ボードの形状は違うが、同じチップセットで HCI も対応している。値段は $23.21(サンプル)。これが良いのだが..
    ちなみに、RDC4202 $17.50 は、goodluckey.com のと 外観がそっくり。だが、チップが、BlueCore4-AudioROM でちょっと違う。 機能が KC21 と同じならこっちのほうが良さそう。

追加情報:

これは、eBay でも売っている。ちょっとメモ。


    Technical Specification:
  • Item Name: Bluetooth UART RS232 serial converter Module
  • Default Baud Rate: 9600,8,1,n.
    (1200,2400,4800,19200,38400,57600,1152000)
  • Operating Frequency Band:2.4GHz unlicensed ISM band
  • Bluetooth Specification:.V2.0+EDR
  • Output Power Class:Class2
  • Operating Voltage:3.3V
  • Host Interface: USB/UART
  • Audio Interface: PCM and Analog interface
  • Flash Memory Size: 8Mbit
  • Dimensions:27.2mm x 12.8mm x 2.5mm
  • Net Weight:9.6 g
    ※ USB とか PCM とか書いてあるが、物理的にインターフェイスがあるだけ? 使えるという意味ではなさそう。
    ※ serial converter って書いてあるし、ボーレートが低いから SPP ?

    ピンアサイン 回路例


    こっちにもっと詳しい情報があった。マニュアルとかもダウンロードできる。

    内容が違ったり、書いてなかった情報

  • Modify master & slave mode at any time, master and slave mode is the same as the hardware to support the AT command set to support the baud rate 2400 to 1382400.
  • The current firmware has been modified for the new version: The default setting for serial port 【9600, N, 8,1】, password: 1234.
  • Support the AT command to modify the baud rate, device name, passkey, master or slave mode
  • Build-in CSR company Bluetooth chip BC417143
  • Paired with various Bluetooth adapter, Bluetooth phone use, master-slave can also be used in double
  • The maximum serial baud rate: 1382400bps, support for hardware flow control transfer
  • Size: 26.9mm x 13mm x 2.2 mm
  • Power Supply      +3.3VDC 50mA

    同じものにしか見えないのにサイズまで違うし。そもそも外見は同じでも ファームウェアによって機能が変わるようだ。



    ダウンロードした 資料を見てみた。

      外観はちょっと違うが、CuteDigi BMX と同じもののようだ。
      CuteDigi BMX には、old firmware 版と new firmware 版があって、どちらのマニュアルもダウンロードできる。

      で、この資料のマニュアルは、new firmware 版 と同じ。そういえば 商品ページにも new firmware と書いてある。

      ひょっとしたら goodluckbuy.com のは、old firmware かも。デフォルト 9600 bps というのが同じだし。

      以下は、new firmware 版の内容。

    Manual(EN).pdf を読むと AT コマンドの説明が載っている。
    PORT まで AT コマンドで制御できるようだ。

    まず上記と違う点や補足:
  • Default Baud Rate: 38400,8,1,n
  • CSR BC417143 (BlueCore4-External)
     - 確かに写真には、csr / BC417 / 143xxx / xxxxxx と印字されている。
  • port を(H/L に)操作できるのは、PIO2-7 と PIO10 。
  • PIO8 は、working status で PIO9 は、link status。極性は設定できる。
  • 全部の port は読み込むことができる。
  • アドレスは、初期値 all 0 で、自分で設定しないとダメかも。

    あと、transparrent data mode の記載があった。
  • PIO11 を Floating or L レベルにする。
  • リンクが確立すると 自動的に transparrent data mode になる。
    ※ AT command mode にするには、PIO11 を pull-up しないといけないらしい。
     - あるいは BREAK 送出? よくわからない。

    上記の回路例では、Floating になっている。LED の割り当ても違うし、KEY (リンク確立のリクエスト)もある。
     - ファームウェアが違うのかも?

    • ただし、回路例が自分でポートを制御するのを意図しているなら LED や KEY は関係ない。
    • transparrent data mode だけは、ファームウェアが関係ある。
      .. といっても pull-up されていたりするだけかも知れない。
      .. あるいは、記載のほうが間違っている可能性まである。
      .. あるいは、BREAK 送出とか別の手段があるのかも。
      いずれにしても、PIO11 は要チェック。

    添付されていた回路例:


    old firmware 版について。

    old/new 両方に AT+VERSION? コマンド がある。だが、それを見てもどちらなのか判断できる情報がない。

    old firmware は、AT+UARTMODE? があるが、new firmware は、AT+UART? で機能も違う。まずは、これで判断して、どちらか見極められそう。

    もし、old firmware だとすると PORT 操作などはできないようだ。コマンド体系も結構違う。

    どうも old firmware は、master になれないような... inquiry のコマンドがないし接続先を指定するコマンドもない。

    最初の eBay の Q and A に書いてあった。slave にしかなれないそうだ。ようするに 2 つ買っても お互いに接続できない。

    new firmware だと master mode があって、相手を選んで接続できる。ただし、リンクは 1:1 -- 複数の slave とは接続できない。

    さらにさらに。第三の資料が見つかった。

    E'go china に slave onlyのモジュール があって、pdf がダウンロードできた。それを見ると回路図とかが買ったモジュールと合致する。

    で、説明にある AT コマンド の種類は少ない。CLASS も設定できないようだ。

CSR BC417143 (BlueCore4-External) について

    Programming CSR Bluecore chip に面白いことが書いてある。どうも、パラレルポートのライタで、SPI を通して BlueCore4-External の firmware を セーブしたり書き戻したりできるようだ。ただし、それをするのに BlueLab というソフトが必要らしい。

    で、BlueLab は、csr の開発環境で $3000 もするものだった。
    単に 読み書きするようなものなら、他にあるんじゃないかと思うのだが..

    De-bricking your Bluetooth Dongle というところを見たのだが、そういうものはないらしい。

    BlueCore4 External の データシート を探したら 見つかった。

    SPI の仕様は書いてあった。16bit アドレスに対して 16bit 単位で 読み書きできる。... だが 書いてあるのはそれだけ。

    FLASH は、8Mbit で 16bit データ幅なら アドレスは 18bit 必要。... どうも何か情報が足りないのだ。
    多分 FLASH を制御する レジスタがあって、そこに対して READ/WRITE しないといけないんじゃないだろうか?

    お手軽に Firmware を書き込むというわけにはいかないようだ。残念。

    さらに探したら、Radio Datacom というところがヒットした。Firmware の書き換えの方法を説明した pdf が置いてあって、Radio Datacom のモジュール用だがファームウェアも置いてある。このファームウェアは上記のものとは全然違う AT コマンド体系だが、HCI モードも持っている。

    Firmware の書き換えの説明では、SPI を推奨していた。(このファームウェアの)Serial にも Dfu があるが、失敗しやすいとのこと。それはともかく、書き換えのツールには、Bluelab に含まれているらしき BlueFlash を使う説明になっていた。だが、kcToolKitV4.1 というのもダウンロード出来る。なにやら書き換えのツールも含まれているかんじ。

    241664 Dec 11 2008 bc5fm.dll
    77824 Jan 6 2006 cclspi.dll
    114688 Dec 11 2008 flash.dll
    28672 Jan 6 2006 spi.dll
    13824 Dec 11 2008 spilpt.dll
    28672 Dec 11 2008 usbspi.dll

    dll を見るとこのあたりが、それっぽい。届いたら書き換えを試してみたい。

    同じチップセットで 同じ Class 2 なら、回路は恐らく同じ。PIO/AIO は、名前が変わっているものの数は同じで、内部で使用していない。書き込めば動きそう。
      ちょっと説明 -- KC21 で PIO は 0-10,13-15 があるが チップセットの PIO は 0-10 (と AIO 0-2)
      で兼用機能は、番号が決まっている。

      PIO_0 Connection
      PIO_1 Power
      PIO_2 RXD passthrough (PIO7)
      PIO_3 -
      PIO_4 Activity
      PIO_5 CTS passthrough (PIO6)
      PIO_6 RTS passthrough (PIO5)
      PIO_7 ADC,DAC (AIO 0 or 1 ?)
      PIO_8 -
      PIO_9 Class 1 RX Enable (PIO0)
      PIO_10 Class 1 TX Enable (PIO1)
      PIO_13 -
      PIO_14 ADC,DAC (AIO 0 or 1 ?)
      PIO_15 TXD pass (PIO4)

      分かっているのをマッピングしてみるとこんな風になる。ちなみに AIO は、8bit の DAC / ADC の機能がある。
      ちなみに、書き込むには ライタが必要だが、Programming CSR Bluecore chip に パラレルポート用の回路図がある。
      パラレルポートがあるPC じゃないと出来ないのは面倒だが、調べれば、どういう風に SPI の制御をしているか分かるかも。

      (載っていた回路図)
      プリンタポート の信号
      2 OUT D0
      8 OUT D6
      9 OUT D7
      10 IN #ACK
      16 OUT #INIT (不要?)
      18-25 GND


    追記 2010/11/11

    「ぷちのいず」さんのコメントより。

    SzParts.com の Bluetooth BC417143 SPIライタ (2250円) は、上記 パラレルポート用ライタとピン割り当てが同じっぽく 純正のツールが使える。

    買うと、PSTool という設定ソフトが ゲットできるらしい。

      BlueZ に bccom という同じようなツールがあるが、設定できる項目の数が全然違う。あと、当然ながら SPI に対応している (bccom は未対応)。

    で、思ったのだが firmware(プログラム)だけ書き換えられても、設定をどうにかしないと動かないのでは?
    なら、PSTool は是非にでも入手しておかないといけないのかも知れない。

    実をいうと goodluckbuy.com のに加えて E'go china のも入手中。firmware 入れ替えたりしようと目論んだわけだ。そのうえこれも買うことになりそう。なんだか 散財しまくりだが .. まぁいいのだ。なんか面白そうだし。

    追記:モジュール入手
    goodluckbuy.com は、11/6(土) に発注し、11/8 発送 11/13 受け取り(発送元: 中国/SHENZHEN)。 E'go china のは、11/8 発注 11/8 発送 11/16 受け取り(発送元: シンガポール)

      ちなみに、(firmware 以外) パターンすら同じもの 。 E'go china の 写真が一番近い。E'go china の水晶は黒で / goodluckbuy.com は銀 -- これだけが違う。

    早く着いたのは良いのだが、準備ができていない。... ケーブルを直ハンダするのは、パターンが剥がれるのが怖いし。しっかり基板に固定すると 実際に使うときに困りそう。

    なにか治具が作れないか検討中。

      Fusion PCB で、プリント基板を作ってみることにした。
    • bc04extmod-01.zip -- 全部入り
    • bc04extmod-01-out.zip -- 提出ファイル
      でっち上げに近く、いろいろダメなところがありそうだが、安いから出してみることにした。

      bc04extmod ボード(サイズ 43.8 x 26.7)

    • 出来上がったのは、こんなやつ。使いたい端子を 2.54mm ピッチに変換。
    • ランドは大きめにして、(なにか端子を付けることで)治具になるように考慮した。
    • あと、最終的に I2C で制御したいので、ATmega88 (TQFP) を載せられるようにした。
      (あんまり推敲していないので)ATmega88周りはバグがあると思うが、とにかく作ってみたかったのでとりあえず形にした。
    • 余白がある変な形状だが、これは ターゲットの中華PMP のバッテリーのサイズに合わせたため。縦横は余裕があるが、厚みが厳しい。基板を 0.8mm 厚 にしてもらおうとは思っているが、裏に部品を付けたら収まらなさそう。

        CN1/CN2/CN3 は、単にピッチ変換
        CN4 は、ATmega88 用インターフェイス ISP と I2C 。
        ATmega88 の SPI を モジュールのSPI に接続(SPI + SS) 、シリアル(TX/RX) も 接続。CTS/RTS/RESET も一応接続している。(PD3/PD2/PC2)
        水晶は、FA238 。-- 付けるつもりはないが、内蔵RC で同期が取れなかったときの対策。
        LED は付けられるようにしたが、どこと接続するか決められなかったので、CN2 に接続。パーツは、SEC2764C1608タイプ x2 。
        治具にするときは、LEDやダイオードの足を付けるとか ...

    • bc04extmod-03.zip
    • bc04extmod-03-out.zip

      もう出してしまったので手遅れなんだが、あまりにひどいので修正版を作った。コネクタの位置を修正したり、5V 入力できるようにしたり .. (でも回路図自体はチェックしてない)

      • シリアルには、AE-UM232Rを使う予定なのだが、3.3V の供給能力は弱い(30mA)。別に レギュレータが必要だろうということで付けることにした。
      • 5V → 3.3V の レギュレータは、TAR5SB33 にした。
      • 移動したコネクタ(1) CN1 -- 下に 0.1 inch ずらして、NC を移動し 5V 入力に割り当て。
      • 移動したコネクタ(2) CN3/CN4 -- 0.05 inch 下にずらしてアライメントを合わせた。

      -- 実は手違いで最初のやつは送れてなかった。メールが来たので、すかさず 03版を送付。
      -- 03 版はそのまま受け取ってもらえた。既に製造中らしい。


        追記: Fusion PCB を扱っている www.seeedstudio.com で Bluetooth Beeというのを扱っている。あきらかに同じモジュール。(ファームウェアは違うかも知れない) これも ピッチ変換ではある。こういう風にする手もあったのか。まぁ 2mm ピッチにする理由がないから こうはしないけど。

      2010/11/30 到着:


      変換基板なので、ランドが正しく配置されていないと無意味になってしまう。少々不安だったのだが安心した。

      写真は両面テープで貼って合わせただけのもの。モジュールは直接ハンダ付けしないで、うまく付けられるようにしようと思う。『治具(ジグ)の考察』の記事に顛末を載せるつもり。ちなみに Atmega88 という MCU を載せられるよにはしているが、まずは 治具 のための変換基板として使う。秋月 C 基板(片面)に、これと シリアル変換と パラレルポートを載せられるとよいなぁと思っている。
posted by すz at 00:23| Comment(1) | TrackBack(0) | 日記
この記事へのコメント
うちのページにもたくさんコメント頂きありがとうございました。

私もいろいろ調べてみたところ、ファームウェア次第で機能が変えられるようなので、買ったものがどういうファームか次第で使える使えないが分かれそうですね。

BC417 のファームの設定? を変えるツールが存在するようです。

http://szparts.com/?pid=20389865
このページの下に BlueCore Persistent Tool という CSR 純正?のツールの
スクリーンショットがあり、この製品を買うとダウンロードできるようです。

設定項目が大量にあるようなので、もしかしたら Master/Slave の切り替えも
できたりして・・。
Posted by bucchi at 2010年11月10日 12:58
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/39493974
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック