ESP32搭載可能なFPGAボード

Hack a dayを見ていたら、新しいFPGAボードの記事が出ていました。搭載しているFPGAがLatticeというのがちょっと好みがわかれそうな気がしないでもないです。このボードの仕様一覧をみていて気づいたのですが、仕様をざっと並べると

  • FPGAは Lattice ECP5 LFE5U-85F-6BG381Cで、84KのLUTと3.7Mbitのメモリを内蔵
  • JTAG I/F用のFT231XSを搭載
  • 32MBのSDRAMを搭載(DDR2とかじゃないので、設計が楽なはず^^;)
  • コンフィグ用を兼ねた4-16MBのフラッシュ(まだ容量確定してないのかな?)
  • MicroSDスロット搭載
  • LED11個、ボタン7個、4極3.5mmジャック
  • 0.96インチのカラーOLEDディスプレイが取付可能
  • ESP-32取付可能(WiFi越しに独立してJTAGをWebで操作可能っぽい!)
  • 無線用アンテナ(27,88−108,144,433MHz)搭載
    (88-108MHzはFMラジオ受信用、他は無線リモコンの受信用ですかね。後者は日本では使えないと思いますが)
  • ADC搭載

ということで、ケーブルレスでFPGAのコンフィグができそうです。JTAGつなぐのめんどくさいのでケーブルレスで行けるのなら面白そうです。ただ、価格帯は$60〜$200ということみたいなので、具体的に何かネタ(と時間と気力)がないとちょっと手が出ないかも。

Ender-3ってオープンソースハードウェアになってた

自分が使っている3DプリンタのEnder-3ですが、Amazonとかを見てもなんかクローンっぽいのがたくさんあるなぁ、と思っていたのですが、やっとその謎が解けました。

Ender-3はオープンソースハードウェア化されていました。購入の決め手(こちらの記事参照)の一つになったレビューを書いていたNaomi WuさんがメーカーであるCrealityに働きかけてオープンソースハードウェア化させたようです。こちらのCertificationページでCOUNTRYにCHINAと入れると、3件出てくるのですが、そのうちのUID=CN000003がENDER 3です。道理でちょっと違う(構造材のアルミチャンネルに色が入っているとか)物がたくさんあるわけです。

ちなみに、Naomi Wuさんは中国でオープンソース活動に力を入れているようです。現時点で中国から登録されている3件ともNaomi Wuさん絡みだそうで、中国でのOpen-Source Conferenceでも登壇したようです。(日本語字幕も表示できますが、直訳の機械翻訳っぽいので言葉通りに捉えるとわけわからないかも)

この公演の中でも触れられていますが、micro:bitの中国向け(というか、マルチバイト文字圏向けという方がいいかも)のsino:bitというのも仕掛けたようです。本人も言ってる通り、変わった方ですが、とにかく行動力が凄いですね。

Jumper用ACアダプタのコード巻き取りホルダーを作りました

Jumper Ezbook Pro 3のACアダプタは軽いのですが、ACプラグのブレードが折りたためない上に、ブレード部分が出っ張っていて邪魔です。持ち運ぶ際にはどこかにあたって傷を付けたり色々起きそうな感じです。

そこで、持ち運びの際に使うコード巻き取りホルダーを設計してみました。何度かの試作を経て最終的に設計したのはこんな感じです。ちょっとわかりにくいですが、ACプラグのブレード部分の出っ張りを含めてぴったり嵌まるように設計してみました。

完成した状態はこんな感じで、ダイソーで買った面ファスナー付きのベルトを巻いて、持ち運びの際もスッキリしました。

Rock64をWiFi-APとしてもセットアップしてみました

hostapdを使って、WiFi-APとしてセットアップしました。

・・・が、なんのことはない、armbian-configの中に hotspot のメニューがあるので、それに従って設定するだけです。SSIDとパスワードはセットアップ後に /etc/hostapd.conf にて設定すれば完了です。
デフォルトでは AP としてのIPアドレスは172.24.1.1、DHCPで振られるIPは172.24.1.0/24のようです。

ROCK64用ケースを作ってみました

なんかケースばっかり作っている感じですが、先日Armbian Ubuntu 18.04を入れたROCK64 4GBにケースを作ってみました。もともと、Thinkiverseで見つけたケースを出力して入れていたのですが、HDMIに接続してXFCEデスクトップ環境のChrome上でYoutubeで動画を再生すると、小さなヒートシンクは付けてあるのですが70℃を超えていました。
これではいかん、ということでFANが付けられるケースを設計してみました。

FANは5Vのもので安いものがないか、ということで、秋月で100円で25mm角の5V動作のものを買ってきました。これに合わせて設計して出力したものが以下です。

右側が底板側で、穴の部分にはamazonで購入したインサートナットを圧入して使うように設計してみました。使用したインサートナットは下のような単純な形状のものです。

右下の2つが圧入前のもので、左が圧入後です。M2.5用のもので、ギザギザのある部分の外形ちょうどくらいの穴を開けておいて、長めのキャップスクリューの先に嵌めた状態でプラハンマーで叩いて挿入しました。

FANの取り付けはスナップフィットにして、下記のように追加の部品無しで取り付けられるようにしました。

上記の状態からROCK64のコネクタから5Vを取り出すようにコネクタをFANに付けて、完成としました。

写真ではLANケーブルは外した状態です。また、写っていないですが、反対側のUSBコネクタにはUSB3.0のUSBメモリと、キーボード/マウスのレシーバが刺さっています。その状態で同様にYoutubeを視聴してみたところ57℃くらいまで、XFCEデスクトップ環境で何もしない状態では45℃くらいまで下がりましたので、結構効果はあるものと思います。
電源は直結なので5Vが供給されている限り回りっぱなしです。25mmのFANということでかなりの高回転のようですが、径が小さいこともあり極端にうるさくはないようです。

3Dプリンタだと、このような適当なありものの部品に合わせてケースを作ってまとめられるので便利です。

NanoPi NEO用ケースを設計してみました(3)

前回もう少しのところまで来て、修正したものを夜間に出力していたのですが、やはりPRILINEの黒のPLAだとダメダメでした。試しに同じデータでPRILINEのグレーのPLAで出力してみたところ・・・・

という感じでほぼ完璧に出力できました。やはり3Dプリンタのフィラメントは同じベンダーの同じブランドでも色によってかなり特性が違うようです。

NanoPi NEO用ケースを設計してみました(2)

引き続きNanoPi NEO用ケースの続きです。

昨日のデータを0.1mmピッチで夜間に出力してみると・・・・

という衝撃的な結果になっていました。やはり、PRILINEの黒のPLAフィラメントは脆いようで、造形中にあちこち折れてしまったようです。で、放熱用のスリットの部分の柱などを太くして再度出力していたのですが・・・・

・・・・よく見ると、フィラメントが送られていない時があります。さらによく観察すると、フィラメントを巻いてあるスプールの回転がかなり渋いのと、フィラメント自体の表面に光沢があって滑りやすいようです。そのため、フィラメントが送られておらず、結果として樹脂の供給不良で層間で割れやすく(脆く)なっているのかもしれません。
スプールをよく見ると、成形品質が今ひとつのような感じで、ヒケによる歪みがあります。そのため、Ender 3のような簡易なスプールのホルダーではスプールの回転の抵抗になっているように思えます。とりあえず、スプールのホルダーを移設して様子を見ながら出力しました。

で、今度は修正したものを0.2mmで出力してみましたが、

というような感じでした。だいぶいい感じにはなってきたのですが、LANとUSBの間の柱が太ってしまって、かなりきついことになってしまい、無理に挿入するとまたスナップフィットが写真の通り、折れてしまいました。

再度修正して、以下のようにして改めて0.1mmピッチで夜間に出力してみます。

ROCK64リモートデスクトップ環境

1年位前に買ったROCK64 4GBにArmbian Ubuntu18.04を入れてみました。別の端末からリモートデスクトップで接続できる環境が容易に構築できました。RAMが4GBあるので、目的によっては非常に便利に使えそうです。

1.Armbian Bionic for ROCK64のダウンロードとMicroSDへの書き込み

Armbianからダウンロードします。MicroSDへの書き込みはいつものようにディスクイメージライタで行いました。

2.初回電源投入

MicroSDを取り付け、LANに接続します。
接続先のIPアドレス確認のため電源投入の前に、fping でセグメント内で現在使われているIPアドレスを確認します。

ROCK64の電源を投入し、しばらく待って、再度fpingコマンドを実行、差分のところがROCK64のIPアドレスなので、そのアドレスに対して

としてログインします。初期パスワードは 1234 です。

※どうも、avahi-daemonが初めから動いているっぽいので、

で行けそうな気がします。

ログインに成功すると、現在のパスワード、新しいパスワードを確認してくるので入力します。
さらに、通常ユーザーの作成に移るので、適当に通常ユーザーを作成します。

一旦ログアウトして、再度作成したユーザーでログインし直します。

3.初期設定

で適当に初期設定を行います。

Systemの項目から以下のソフトウェアをインストールします。

  • Minimal Desktop
  • Default(ブラウザその他のインストール)
  • Lightdm(ログインマネージャ)

引き続きPersonalの項目から以下の項目を設定します。

  • TimezoneをAsia/Tokyoに設定
  • Languageはja_JP(UTF-8)

さらに、Softwareの項目からRDPを設定します。

4.リモートデスクトップクライアントから接続する

設定が終わると、別のマシンから Remmina(RDPクライアント)で接続するとリモートアクセスが可能となっています。すでに部分的ですが日本語化もされています。

「アプリケーション」⇒「Settings」⇒「言語サポート」で言語の設定を行いますが、この状態では英語のみインストールされていますので、「言語のインストールと削除」から日本語にチェックを入れて適用、キーボード入力に使うIMシステムにfcitxを選択します。その後、メニューとウインドウの言語で日本語を一番上に持ってきてから、「システム全体に適用」をクリックします。

地域フォーマットも同様に日本語を選択し、システム全体に適用します。

一旦ログアウトして、再度ログインして概ね完了です。
初めから Chromium ブラウザも入っているので、

5.ルートファイルシステムをUSBメモリに移動する

USBメモリを挿入した状態でarmbian-configを起動して、System settings で Install(Install on SATA, eMMC, NAND or USB)を選択、Boot from SDを実行すると、USBメモリにルートファイルシステムを移動してくれます。(実行する際にUSBメモリのパーティションを削除しておくと、自動でパーティション作成ツールが起動します)

USBメモリはこの記事で使ったSandisk UltraFit 3.1を使いましたが、システム移動後に

として1GBのファイルを作成してみたところ、所要時間は約10秒、107MB/sの速度が出ました。
まだ挙動がよくわからないところもありますが、速度面でも優位なのではないかと思います。

※Boot from SPIを実行するとSPIフラッシュにブートローダを書き込んで、SDカード無しで起動できるようになるのだと思いますが、戻し方を確認していないのでとりあえずbootはSDカードのままとしました。また、この作業は今回は最後にやりましたが、本来は最初にやっておいたほうがトータルの構築時間は短くて済むような気がします。

Raspberry Piにつないでドップラーセンサーをテスト

LinuxMintにつないで(たぶんFT234Xのせいで)うまくいかなかった秋月のドップラーセンサーキット。こんどはRaspberry Piにつないでテストしてみました。

Raspberry Piにつないで電源投入後、SSHで接続。dialoutグループにユーザー pi がいるのを確認して、screenをインストール。おもむろに、

としてみた。
センサーに手を近づけると反応するので、何か送ってきているのだけど、附属のマニュアルとは異なり、文字化けしているように見える。うーむ。

・・・・まじめにシリアルの波形見るか・・・。

秋月ドップラーセンサーキットをテストしました

3Dプリンタでケースを作った秋月ドップラーキットですが、テストしてみました。

環境はLinuxMint19です。

1.準備

  • システム管理の「ユーザーとグループ」でdialoutグループに自分のユーザーを追加
  • synapticでmoserialをインストール
  • 一旦再起動(実際にはログアウト/再ログインでいいはず)

2.通信ソフトのセットアップ

  • アクセサリの下のmoserialを起動
  • 「ポートの設定」で、デバイスを/dev/ttyUSB0(環境による)、ボーレートを9600、データのビットを8、ストップビットを1、パリティをodd、ハンドシェイクは両方共チェックなし、アクセスモードはRead and Write、ローカルエコーはチェックありに設定

3.接続

で、「接続」を押して接続・・・・すると、そこは USB-UARTチップがFT234Xなので、見事にデスクトップがハングアップしました。正確には、moserialは動いていて、@ERと@EOが繰り返し送られてきて表示されるのですが、何も操作できません。で、一旦、USBケーブルを抜いて、再度刺したらデスクトップが復活しました。

うーむ、相変わらずですね、FT234X。どうにかならないんですかねー??
でも、ぐぐっても、FT234XとLinuxの組み合わせでダメという情報は少ない。うまくいったという情報も少ないのだけど。(もっと正確に書くと、うまくいったという情報はポツポツあるのだけど、本当にFT234Xのままでうまく行っているのか、他のFT232R系のものに変えてうまく行っているのか曖昧なものが多いような気がする)

うまく行かないのは自分だけなんだろうか??