- Elecrow価格で 18ドル の18 Mspsオシロスコープ、ミックスドシグナル・ロジックアナライザ、内蔵波形発生器を1枚のボードにまとめ、低価格の実験・教育用計測機器として使える
- 別アプリなしで Chromium 系ブラウザから WebUSB/Web Serial で制御し、Windows、macOS、Linux、ChromeOS、Androidでテスト済み
- アナログ入力は 12-bit ADC により最大18 Mspsと約4 MHzの実用帯域幅を提供し、9個のデジタル入力はアナログ入力と同時サンプリングされる
- Web UIでトリガ、遅延キャプチャ、測定、補正を処理し、DACベースの波形は最大40 kHz、square waveは最大4 MHzまで出力する
- 低価格化のため非精密部品と補正に依存しているので、電圧精度、ノイズ、AC coupling、USB接地、一部モバイルブラウザ互換性には限界がある
18ドルUSB計測ボードの基本構成
- Flea-Scopeは USBオシロスコープ とミックスドシグナル・ロジックアナライザ、内蔵波形発生器を組み合わせた低価格ボード
- 価格はElecrow価格で 18ドル とされている
- 制御は別アプリのインストールではなくWebページ上で行う
- Chromium 系ブラウザで WebUSB API または Web Serial API を使用する
- コンピュータ、タブレット、携帯電話との接続をサポートする
- ユーザーは micro-USB データケーブルで装置を接続したあと
flea-scope.html を開き、Start Connect でUSBデバイスまたは serial port を選択する
- Ubuntu Linuxでは
sudo adduser user dialout, sudo adduser root dialout を実行後、ログアウトが必要
計測ハードウェア仕様
- アナログ入力は 1チャネル で、12-bit ADCにより最大 18 Msps サンプリングをサポートする
- 使用可能なアナログ帯域幅は約 4 MHz
- フルサイズBNCコネクタを備える
- 入力インピーダンスは 1 Mohm, 14 pF
- x1プローブでは -6V~+6V、10 mV分解能
- x10プローブでは -60V~+60V、100 mV分解能
- DC coupling または digital AC coupling をサポートする
- デジタル・ロジックアナライザ入力は 9個 で、アナログ入力と同時サンプリングされる
- 3.3V または 5V のロジックレベルと互換性がある
- トリガモードは auto, level, rise, fall をサポートする
- 遅延トリガ/キャプチャ範囲は 0us~1s
trigger out ピンで複数の Flea-Scope を一緒に動作させ、より多くのチャネルを扱える
- 目標精度は電圧とタイミングの両方で 2% レベル
- ボードサイズは 1" x 3" または 2.54cm x 7.62cm
波形発生とWeb UI測定
- テスト波形出力は2つの方式で動作する
- DACベースの arbitrary waveform は sine、triangle、ekg 波形を最大 40 kHz まで生成する
- square wave は最大 4 MHz まで生成する
- DACベースの波形は1周期あたり 100ポイント を繰り返す
- 40 kHz arbitrary waveform では DAC が 4 Msps でポイントを生成する
- 初期状態では
wave out ピンから 1 kHz sine wave を出力する
- Web UIはアナログ表示領域とデジタル表示領域を提供する
- 平均、peak-to-peak、RMS電圧を表示する
measure 機能で1点の時間・電圧、または2点間の時間差・電圧差・周波数を測定できる
pause, resume, single ボタンで繰り返しキャプチャを停止したり、単一トリガキャプチャを実行したりできる
トリガと時間・電圧スケール
- 水平スケールは 0.5us/div~100ms/div の範囲で設定される
- 表示領域全体は10個の division で構成される
- 画面左から右までおよそ1000個のサンプルをキャプチャし、右側の外に追加で約1000個のサンプルをさらにキャプチャしてスクロールで見られる
- 最速の水平スケール区間である 2.5us/div 以下 では、キャプチャサンプルを横方向に拡大して表示する
- このとき division あたりに見えるサンプル数は約100個ではなく、50個、20個、10個程度になることがある
- アナログトリガは指定電圧線と
auto, level, rise, fall モードの組み合わせで動作する
auto は100ms以内にトリガがなければ自動的にトリガして画面が空にならないようにする
rise と fall は3サンプルのデジタルフィルタリング後、電圧遷移を基準に動作する
- デジタルトリガは
b0~b8 ビットを 0, 1, don't care に設定して使う
clear ボタンはデジタルトリガビットをすべて don't care に戻し、アナログトリガに復帰させる
- 遅延キャプチャはトリガ後、指定時間だけ待ってからサンプルをキャプチャする
- 時間は
m 接尾辞でミリ秒、u 接尾辞でマイクロ秒を指定する
- 最大遅延は 1秒
補正と入力範囲
- 使用前に Flea-Scope とプローブを 補正 する必要がある
- x1 と x10 のプローブモードは別々の補正値を持つ
- 補正値は MCU flash に永続保存される
new または clear flash コマンドを使うと補正値が消去される
- 補正は 0V と 3.3V をそれぞれ接続したあと
cal_zero, cal_3v3 を押す方式
- x1 モードと x10 モードでそれぞれ繰り返す必要がある
- x10プローブ補償は Flea-Scope の 1 kHz square wave 出力を使って合わせられる
- 信号モードは unipolar、bipolar、digital AC coupling から選択する
- デフォルトは USB ground 基準の正電圧を表示する unipolar
ac はデジタル平均電圧を基準に信号を表示する
- 垂直スケールの初期値は 0V~3.3V で、UI から 0.5V~6.6V full scale 範囲を選べる
- 垂直表示範囲を狭めてもアナログキャプチャ分解能は増加しない
- 0.33V 以下 の表示範囲ではキャプチャサンプルを縦方向に拡大して表示する
低価格設計の限界と注意点
- Flea-Scope は安価で「十分に良い」装置を目指しており、非精密部品 と補正に依存している
- ADC は 12-bit モードで動作し、入力電圧範囲は1つだけ
- 理論上の垂直分解能は約 4 mV
- ノイズフロアは約 +/-10~15 mV
- 実際の AC coupling が必要、または DC offset が ADC 入力範囲を超える場合は、外部 0.1uF コンデンサ で実装できる
- トリガ遅延は 1us 未満
- 古い 3-prong plug PC を使う場合や ground loop が懸念される場合は、full-speed USB isolator を使ってオシロスコーププローブの ground wire を PC ground から分離する方法が推奨される
- DACベースの arbitrary waveform 発生器は 1 Msps の変換速度と double-buffer 不在のため、特に高周波でノイズが発生することがある
帯域幅とプラットフォーム互換性
- 1 MHz square wave テストでは、18 Msps サンプリングオシロスコープとして期待されるレベルの信号忠実度を示す
- 4 MHz テストでは、一般的なオシロスコープの -3 dB, 70.7% アナログ帯域幅カットオフより依然として高いが、Nyquist 限界が信号忠実度を制限する
- Windows、macOS、Linux、ChromeOS、Android でテスト済み
- ブラウザは Google Chrome と Microsoft Edge でテスト済み
- macOS では
manual Webページで WebUSB ではなく Web Serial を選ぶと性能がより良い場合がある
- WebUSB と Web Serial の情報は、それぞれ WebUSB と Web Serial を参照できる
- iPhone と iPad はブラウザ JavaScript から USB デバイスを WebUSB または Web Serial に公開しないため、まだ Flea-Scope と動作しない
- 一部の Samsung 携帯電話は USB デバイスを serial driver として占有するが、その後 Web Serial としてブラウザに公開しないため JavaScript からアクセスできない
- firmware v2.27j では、電源投入時に
a0 ピンを ground に接続して non-CDC/ACM USB endpoint を公開するよう強制できる
- その後
manual Webページで Comm ではなく USB をクリックする回避策を使える
Deep Dive Interactive Mode と再プログラミング
flea-scope.html の代わりに stickos-basic.html を開くと、MCU 上で動作する StickOS BASIC 環境にターミナルで直接接続する
- 同時に開ける Flea-Scope のWebページは1つだけなので、既存の
flea-scope.html ウィンドウを閉じる必要がある
- StickOS BASIC は MCU 内部の対話型プログラミング環境
- プログラムエディタ、line-by-line コンパイラ、対話型デバッガ、edit-and-continue、性能プロファイラ、flash ファイルシステムを含む
- MCU は 120 MHz PIC32MK0512GPK064
- BASIC の性能は毎秒 150,000 lines 程度
- deep-dive interactive mode では、18本の多機能 I/O ピンを対話的に設定できる
- digital input/output
- analog input/output PWM
- frequency output
- servo output PWM
- I2C master
- SPI master
- UART input/output
hostname hostname コマンドで、複数の Flea-Scope を USB と Web UI 上で区別する名前を設定できる
- hostname 変更後は MCLR ボタンでリセットする必要がある
- 6ピン ICSP コネクタを使えば、Microchip Pickit 3、Pickit 4、Snap programmer と MPLAB X でボードを C から直接再プログラムできる
hello GitHub repository から始められる
- 作業後は StickOS2 repository の
board/pic32.X.27*.production.hex で Flea-Scope ファームウェアに戻せる
1件のコメント
Hacker News の意見
価格を考えると、この小さなデバイスは本当にすばらしい。
投稿タイトルは単に「More」ではなく、関数/波形発生器機能まで分かるように直したほうがよさそう。
そのせいか、コメントの多くがオシロスコープ部分だけに集中しているように見える。
電子工学を少しでもやったことがある人なら、一般的な作業台がオシロスコープ、ロジックアナライザ、波形発生器、デジタルマルチメータ、たいていは12V DC電源で構成されることを知っているはず。
この18ドルのハイブリッド信号スコープ/発生器は、これらの機能の大半をこなせそうで、1台に統合されているため同期を別途合わせる必要がない点も大きな利点。
昔ながらの HP/Agilent/Keysight の電子工学用ベンチのように個別機器でそろえると、数万ドルはすぐにかかる。
現代的なものでは Digilent Discovery Pro 3000/4000/5000 シリーズがあり、「All-In-One High-Speed Mixed Signal Oscilloscope, Function Generator, Power Supply, and DMM」と説明され、価格は数千ドル台。
より安い Digilent Discovery 1/2/3 シリーズも約400ドルだが、帯域幅とリソースがかなり限られているので、Flea-Scope と比較するならこちらのほうが近い。
[1] Digilent Analog Discovery 3 vs. Digilent Pro ADP2230 [video]:
https://youtu.be/yr9SGxiBAnI
このデバイスには独特で興味深く有用な機能が多く、タイトルに入れたい要素が多すぎる。
追記: もう投稿タイトルを変更できなくなったようで残念。
初めて来ました。
下のコメントの1つは少し誤解を招く。100Msps ではなく 18Msps なので、適度な忠実度ではおおむね1MHz以下の信号向けと考えるとよい。
STM32 ではなく PIC32 を使っていて、ADC は12ビットだが、ノイズフロアのため実際には10〜11ビットに近い。
それでもデジタルキャプチャと波形生成を同時にできる点は見事だが、全体としてはかなりシンプルなデバイス。
目標は、すでにコンピュータやタブレット、Chromebook がある教室の各席にこれを置き、「そのまま動く」ようにすることだった。
一番気に入っているのは JavaScript でアクセスできる点。GUI はWebページ1つで足り、ソフトウェアのインストールもアプリストアも不要。
教室での実験をさらに深掘りしたければ、コマンドライン UI を備えた別の「deep dive」Webページを使って対話的にログインし、BASIC ですべてのピンをプログラムから制御できる。
電源投入時に BASIC プログラムが自動実行されるよう、ボードを設定することもできる。
スイッチ4個、LED 4個、ブザー、約100行のコードで「Simon」ゲームを作れるし、熱電対とオペアンプ、ソリッドステートリレーを使えば、リフローはんだ付け用トースターオーブンの温度コントローラも作れる。実際にプロトタイプもそうやって作った。
良い点は、ホスト側の JavaScript アクセスが引き続き無料で付いてきて、BASIC がホストコンピュータと直接通信できること。たとえば Python や PowerShell を実行できる。
例はこちら: https://rtestardi.github.io/pages/
自動車向けの応用も面白かった。Flea-Scope は、スマートフォンやタブレットを取り出すだけでクランクシャフトセンサーを測定しやすい。これがないと、診断フローチャートだけを見て推測で部品を交換することになる。
ライセンスはすべてオープンソースで、誰でも作り直せるし販売もできる。
内部の BASIC には特許があるが、私が作成・テストしてリリースしたソフトウェアビルドには永久ライセンスがある。
理論上は BASIC なしでスコープを作ることもできる。BASIC プログラミング用の「deep dive」モードでボードを使う場合を除けば必要ない。
興味があるなら Mosquito-Scope も構想したことがある。まだ非常に新しい dsPIC33A ベースで、2チャンネルと選択可能な入力増幅を備え、サブミリボルト信号を扱うデバイスだが、dsPIC33A は PIC32MK より実際に安くて速い。
-- Rich
ただし、インターフェースが複数のスコープを同時に扱えるよう少し改善されることが前提。
そうすれば小さなフォームファクタを維持しつつ、設計上の妥協も避けられる。
成功に必要な要素をよく考え抜いたのは明らか。
学生一人ひとりが自分の実験環境を持つことに勝る代替手段はない。
初めてオシロスコープに触れたとき、クラス全体で当時の最高級だった巨大な Tek 7k シリーズのスコープ1台を共有していた。基本は学べたが、実際に役立つ形で身についたのは、機能はずっと少ない自分のスコープを持ってからだった。
ちなみに、ここが初めてなら伝えておくと、ここでは誰かが「自分が作った」と投稿すると、些細な問題を大きな欠陥のように指摘したり、自分ならもっとずっとうまくやれたと言ったり、Alibaba でもっと安いものを買ったからなぜ作ったのかと言ったりするコメントが付くのが普通。
もちろん Rust で書くべきだったという話も出る。そういうものは無視すればいい。
同じくらいの価格、13ドルほどでAmazonで買ったこのロジックアナライザには満足している
アナライザ本体よりプローブのほうに多く払った。プローブは24ドルだった ;-)
動作にはSigRock/PulseViewを使っていて、互換クローンとして認識される
こんなに安く数十ナノ秒幅の信号を見られるのは驚き
[1] https://www.amazon.com/dp/B077LSG5P2
[2] https://www.amazon.com/dp/B0CLB63GL3
[3] https://sigrok.org/wiki/PulseView
しょっちゅう途切れるし、デバイスの列挙にも問題が起きる。sigrokはまだ試していない
コードの重要な区間の前後で複数のGPIOピンを上げ下げすれば、SigRockで結果を見られる
USBオシロスコープを使うときはグラウンドループに注意が必要
低価格USBスコープの多くはUSBポート経由でPCとグラウンドを共有している
高電圧回路、たとえば商用電源やスイッチング電源を測定すると、危険な電位差が生じてコンピュータの損傷や、さらに深刻な危険につながる可能性がある
一部のスコープは絶縁入力を備えているが、そうでない場合は差動プローブや絶縁トランスを使うべき
そうしないと、回路ではなくノートPCの焼けたUSBコントローラをデバッグする羽目になるかもしれない
通気口の1つから煙まで見えたが、コンピュータの残りは生き残った
魔法のように感じる
比較用に、2ドルのUSBスコープはこんな見た目。800kspsで電圧レンジは2つ: https://files.catbox.moe/0t0dq3.jpg
こういうプロジェクトは20〜30年前、基本的なオシロスコープでさえ中古車並みに高かった時代なら救世主のようなものだったはず
今では200MHz帯域幅、優れたユーザーインターフェイス、応答性の良いディスプレイを備えたかなり良いオシロスコープが300ドルで売られている。Siglent、Rigol、UNI-Tのような製品のことだ
なので、はるかに劣るものを自作する利点は昔ほど大きくない
オシロスコープは他の設計すべての問題解決に使う機器なので、信頼できて使いやすく正確なものが望ましい
もちろん、面白くてギークっぽいプロジェクトとして作って公開する価値はある。ただし、本物のオシロスコープをすでに持った後なら、という話
これから機材をそろえる段階なら、自分のためにもう少しお金を出したほうがいい。ほかの機材はそれほど致命的ではない
300ドルは世界の最低賃金基準で見るとかなり高い位置にあり[1]、私の国のような場所では価格が2倍になる可能性も大きい
そのうえ、この装置を本当にうまく活用できる人たち、たとえば高校生は、たいてい使えるお金がずっと少ない
自分で作って動作原理を学ぶ副次的効果まで考えればなおさらだ
[1] https://en.wikipedia.org/wiki/List_of_countries_by_minimum_wage
何に使うか正確に分からなければ300ドルは払わないだろうが、20ドルなら簡単で、2ドルなら衝動買いになる
12ビットADCフロントエンド、実際に使い物になるタッチスクリーン入力、ネットワーク接続による非常に簡単なリモート制御を備えている。ただしタッチスクリーンだけでIPアドレスを確認するのは少し面倒
USB-C電源入力なので、望めばモバイルバッテリーでも駆動できる
I2C、SPI、UARTのような必須デコーダがすべて無料で内蔵されている
VESAマウント対応なのでモニターアームに取り付けて机のスペースを取り戻せたし、この機能は本当に良い
低価格モデルを1台ハックして250MHzモデルにアップグレードするのも非常に簡単 :D
ほぼあらゆる方向で、低い参入障壁はその目標の中核要素だと思う
[0]: https://www.youtube.com/watch?v=sbRXDkHS_V0
米国のホワイトカラー専門職ならそうかもしれない
しかし世界人口の大半にとって、300ドルと18ドルの差は非常に大きい
修正: ライセンスは ARR、パブリックドメイン、MIT で構成されている
https://github.com/rtestardi/StickOS2/blob/main/license.txt
https://github.com/rtestardi/usbte/blob/master/LICENSE
これを FOSS と呼ぶのは完全に不正確
一部は All Rights Reserved で、一部はパブリックドメイン、一部は非商用利用のみ可能
パブリックドメインはオープンソースではなく、特に自由という意味での free でもない
商用利用の制限も自由ソフトウェアではない
せいぜいこのプロジェクトは部分的にソース公開(source-available)と言える程度
電子工学を学び始めたばかりの人には、このデバイスを勧められる
Hackerbox 102[1] で1つ入手したが、帯域幅に対する価格という点では価値があると思った
エンジニアの友人たちと話すと、予想どおり「ただのおもちゃじゃないか」といった反応が返ってきたし、確かに制約も多い
だが、その制約の中でも、信号を直接見ながら学ぶのが最も良い アナログ電子工学 のようなテーマを教える機会は多い
始めたばかりの人は、そもそもオシロスコープがなぜ必要なのかも分からないことが多いので、学習の最初の1年では使わない機能のために大きな学習曲線を経験せずに、ツールを紹介するにはかなり良い方法だ :-)
後で優れたベンチ機器の中から1つを選ぶときにも、オシロスコープの機能が何をするものなのかをまったく知らない状態ではないはず
だから20ドルなら良い価値があると思うし、こういうことを学び始めた人たちに勧めてきた
[1] https://hackerboxes.com/collections/past-hackerboxes/products/hackerbox-0102-flea-scope および実験ガイド https://www.instructables.com/HackerBox-0102-Flea-Scope/
似た価格帯の EspoTek Labrador を思い出す
https://espotek.com/labrador/
Flea-Scope の USB ストリーミング向けハイブリッド FPGA/MCU 構造は賢い。FPGA のパイプライン処理で 100MS/s のキャプチャを処理し、STM32 でプロトコル変換を担当する方式は、コスト面で良さそうに見える
しかし、8ビット ADC 分解能と入力保護ネットワークの不在は、Rigol の 1MΩ//20pF フロントエンドと過電圧クランプに比べると、減衰されていない信号では危険だ
FFT に内蔵 DSP ではなく NumPy/SciPy を使う Python 解析ツールは、リソースの分担が見事で、近いうちに Jupyter も見られそうだ
また 100Msps 近辺でもなく、わずか 18Msps で、仕様は12ビットだ
AI の助けでコメントを書いたのか、それとも別のデバイスの話をしているのか気になる