2018年02月17日

700円ロジアナでUSBパケットを観測してみた

usbsignal.jpg

昨日使ってみたロジアナですが、Salae Logicのプロトコル解析機能にはUSBもあることに気付きました。これはAnalog Discoveryには無い機能です。

この機能を使えば、先日Raspberry Piのベアメタルプログラミングでぶつかった、USBハブを通さないとキーボードが認識できない問題の解析に役立つかも?と思い、上の写真のようなD+とD-を外部から観測する冶具を作って試しに使ってみました。

右向きについているのがUSBオス、上向きについているのがUSBメスのコネクタです。
どちらもaitendoで購入した「基板with USBコネクタ」シリーズで、2P-UAF-S092P-UAM19です。同様の製品は各種あるのですが、こういう目的には基板に信号名がシルク印刷してあるものが良いと思います。

キャプチャしたUSB信号はこんな感じで表示されます。
salae2.png

解析できる信号はUSB FS(12Mbps)とLS(1.5Mbps)です。サンプリングレートが24Mspsなので当然ですが、480MbpsのHSは計測できません。
また、解析結果も、バイト列、パケット、コントロール転送までで、デバイスに特化したプロトコルの解析はできません。
とはいえ、USBプロトコルスタックのデバッグにはとても役立ちそうな気がします。
posted by boochow at 14:33| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

意外と使える?700円ロジアナ

salaelogic.jpg

下記の記事を見て、以前購入したロジアナがあったことを思い出し、使ってみました。

sigrokをUSB接続ロジアナで使う - 記憶は人なり

このロジアナですが、Aliexpressで2年半ほど前に購入したものの、封も切らずに放置していました(当時の価格$5.8)が、その後購入したAnalog Discoveryにもロジアナ機能があるため、ますます放置してしまっていました。

上記の記事のものと違って、LEDが一応あり、GNDが2つではなくCLKとGNDになっていますが、価格からして中身には大した違いは無いものと思われます。
上の写真はRaspberry Pi Zero Wと一緒に写しています。消しゴムサイズという感じの小ささです。
8ch、24MHzで測定が可能です。

Salae Logicというラベルが付いていますが、たぶんパクリ品だと思われます。
が、Salae Logic用のソフトウェアでも一応動作しました。
salae.jpg


上記の記事で紹介されているsigrok pulseviewというソフトでも動作しましたが、デバイスドライバがなぜか安定しない感じでした。
機能的にはどちらのソフトでも、ちょっとI2CやSPIの信号をデコードしてみたいという用途には十分そうな感じがします。
pulseview.png

上の2つのソフトは、どちらもRaspberry PiのI2C信号をデコードしているところです。
小さくて取り回しが良いので、Analog Discoveryを持っていても、これはこれで便利かなと思いました。
posted by boochow at 01:21| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2018年02月12日

無線で調光できるLED電球の中身

led-light1.jpg

以前購入した、カラーをリモコンで変更できるLED電球「Mi.Light RGBW」の中身です。
RGBのLEDが4つと、白色LEDが15個搭載されています。

この手の製品ではPhilipsのhueが有名ですが、MiLightはhueよりかなり安価に入手できます。
しかし、私が入手したものはなぜか動作せず、放置していました。
3年ぶりくらいに引っ張り出してきて調べてみたら、口金が海外仕様のE27でした。
それが原因で接触不良だったのだと思われます。

それで、どうせ捨てるなら、とカバーを開けてみました。
カバーはホットボンドのようなもので固定されているだけですので、力を入れれば外れます。

led-light2.jpg


中央に2.4GHzのアンテナがあり、それ以外にチップが2つ載っています。
1つはSTMicroのロゴが見えます。パッケージはTSSOP-20です。
型番が隠されてしまっていますが、8S00という字が見えますので、8bitコントローラのSTM8S00シリーズかと思われます。調べてみたらTSSOP20の製品ラインがあるのはSTM8S003シリーズでしたので、おそらくそのあたりでしょう。
もう1つはPL1167と書かれており、こちらはSPI接続の2.4GHz無線モジュールで、割とメジャーなチップのようです。
PL1167で検索してみたら、MiLightをArduinoから制御している方もいました。

pmoscetta/authometion-milight: Arduino library for MiLight and Limitless led bulbs control using a LYT/WiFi shield or a PL1167 pcb module

Milight PL1167 control - Arduino Projects4u

PL1167でなく、nRF24シリーズやnRF51シリーズで制御している方もいるようでした。

Controlling the Mi Light from Arduino or NodeMCU

henryk/openmili: Open implementation of the Mi-Light 2.4GHz LED light control protocol

MiLightの通信プロトコルのバージョンアップ版を解析している方もいます。

Reverse engineering the new Milight/LimitlessLED 2.4 GHz Protocol | Chris Mullins

電子工作の例題として、面白いかもしれませんね。
posted by boochow at 18:12| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2017年11月23日

シリアルポート接続のJPEGカメラを買ってみた

jpeg-camera.jpg

Aliexpressの11月11日のセールのときに、いくつか買い物をしたのですが、そのうちの一つであるJPEGカメラが届きました。
撮影した画像をシリアルポート経由で取り出せるカメラで、同様の製品はスイッチサイエンスや秋月電子でも販売されています。
今回買ったのは以下の製品で、セールだったので$15.2でした。
発送も比較的迅速で良かったと思います。(同時に4つの店舗で購入しましたが、残り3つの荷物はまだ日本行きの飛行機に乗るか乗らないかといったところです。)

New Color JPEG Color UART TTL Serial Port Digtial Camera Module with OV528 communicaiton protocol-in Surveillance Cameras from Security & Protection on Aliexpress.com | Alibaba Group

上記のページからもリンクされていますが、Windows用のテストプログラムが配布されていますので、とりあえず動かしてみました。
接続する端子はVCC、GND、RX、TXの4本です。
夜間監視用らしく、赤外線LEDも搭載されており、そちらを光らせる場合は別途接続が必要です。

5V動作なので、USBシリアルアダプタのジャンパを5V側に設定して接続しました。
テスト用のアプリケーションは下のように延々とカメラ画像を表示するだけのものです。
ad-7732.png

通信速度は最高で115.2Kbps、解像度は最高640x480ピクセルで、1フレーム送るのに3秒くらいかかっている計算です。QVGAにすれば1秒を切るかもしれません。

NUCLEO-F401REは5Vトレラントなので、そのうち繋いで監視カメラもどき?でも作ってみようかと思います。
posted by boochow at 15:14| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2017年11月18日

書籍「Programming with MicroPython」を購入

mp-book.jpg

オライリーから、「Programming with MicroPython」という本が出ましたので読んでいます。
ざっと内容を紹介すると、以下のような感じです。

1章:MicroPythonの歴史。なかなか興味深いです。Damien George(MicroPythonの作者)はPyBoardとESP8266+MicroPythonと、KickStarterを2回成功させているんですね。
他にも、micro:bitにMicroPythonが載ったのは、Damien Georgeの職場の隣の部屋にmicro:bitのボードを設計したARMのエンジニアがいて、頼まれたGeorgeが一週間でMicroPythonを動作するようにした、なんて話が載っています。
また、micro:bitの派生プロジェクトでドイツではCALLIOPEというプロジェクトが動いているそうです。
日本ではスイッチサイエンスさんのグループ会社のスイッチエデュケーションの活躍に期待したいところですね。

2章〜5章:ハードウェアの解説。PyBoard、micro:bit、Adafruit Circuit Playground Express、ESP8266/ESP32が取り上げられています。

6章:組み込みプログラミング概論。

7章〜12章:分野別、MicroPythonプログラミング。内訳はディスプレイ(LCDやNeoPixel等)、入力デバイス(ボタン、タッチセンサ、モーションセンサ、温度センサ等)、インタフェース(SPI、I2C、UART、I/Oピン)、ネットワーク(赤外線通信、micro:bitの無線送受信、WiFi、HTTP、MQTT)、サウンド、モーター制御です。

13章:MicroPythonで省メモリ、高パフォーマンスのプログラムを作成するためのノウハウ。MicroPythonにはconstという、Cでいう#defineみたいなものがあるのですが(この記事で使いました)、これは整数しか使えないしモジュール外からは参照できない、なんていう話も書かれていて参考になります。

14章:より詳しく知りたい人のためのガイド。

ということで、組み込みは初めてという場合にはどの章も参考になると思います。1章と13章はMicroPython特有の話なので、初心者でなくても楽しめると思います。
ラベル:MicroPython
posted by boochow at 13:11| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする
人気記事