趣味の電子工作などの記録。時にLinuxへ行ったり、ガジェットに浮気したりするので、なかなかまとまらない。
RSS icon
  • NanoPi NEO2のUbuntu CoreでWiFi有効化

    投稿日 2017年 11月 29日 コメントはありません

    NanoPi NEO2 の Ubuntu Core で WiFi を有効化したので、その際のメモです。

    使用可能なUSBアダプタは

    • RTL8188CUS 802.11n WLAN Adapter
    • RT2070 Wireless Adapter
    • RT2870/RT3070 Wireless Adapter
    • RTL8192CU Wireless Adapter
    • NetGear, Inc. WG111v3 54 Mbps Wireless [realtek RTL8187B]

    ということらしいですが、きっと Raspberry Pi で動作可能なものは動くのでしょう^^;

    USBコネクタにWiFiアダプタは挿しておきます。

     

    1.使用可能なデバイスのリストアップ

    $ sudo nmcli dev
    DEVICE           TYPE      STATE          CONNECTION 
    eth0             ethernet  connected      Wired connection 1 
    wlx106f3fxxxxxx  wifi      disconnected   -- 
    lo               loopback  unmanaged      --

    という感じで、wlxに続いてMACアドレスという形でデバイスが表示されました。

    2.WiFi起動

    $ sudo nmcli r wifi on

    3.アクセスポイントのスキャン

    $ sudo nmcli dev wifi
    *   SSID             MODE   CHAN  RATE       SIGNAL  BARS    SECURITY 
        xxxxxxxxxxxxxxx  Infra  2     54 Mbit/s  100     ▂▄▆█  WPA1 WPA2 
        Mxxxxxxxx        Infra  11    54 Mbit/s  100     ▂▄▆█  WPA1 WPA2 
        axxxxxxxxxxx     Infra  11    54 Mbit/s  100     ▂▄▆█  WPA1 WPA2 
        Gxxxxxxxx        Infra  5     54 Mbit/s  82      ▂▄▆█  WPA1 WPA2 
        Nxxxxxxxx        Infra  5     54 Mbit/s  82      ▂▄▆█  WPA1 WPA2 
        sxxxxxxxxxxx     Infra  8     54 Mbit/s  52      ▂▄__   WPA1 WPA2 
        Bxxxxxxxxxxxxx   Infra  1     54 Mbit/s  42      ▂▄__   WPA2 
        axxxxxxxxxxxxxx  Infra  8     54 Mbit/s  22      ▂___    WEP 
        axxxxxxxxxxxxx   Infra  11    54 Mbit/s  22      ▂___    WPA1 WPA2

    という感じでグラフィカルに表示されます。

    4.アクセスポイントに接続

    $ sudo nmcli dev wifi connect " (SSID) " password "パスワード" 
    Device 'wlx106f3fxxxxxx' successfully activated with 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'.

    5.接続されているか確認

    $ ifconfig
    wlx106f3fxxxxxx Link encap:Ethernet HWaddr 10:6f:3f:xx:xx:xx 
     inet addr:xxx.xxx.xxx.xxx Bcast:xxx.xxx.xxx.255 Mask:255.255.252.0
     inet6 addr: fe80::xxxx:xxxx:xxxx:xxxx/64 Scope:Link
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
     RX packets:595 errors:0 dropped:0 overruns:0 frame:0
     TX packets:372 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:1000 
     RX bytes:86952 (86.9 KB) TX bytes:82940 (82.9 KB)

    という感じで無事に接続。再起動しても大丈夫です。


  • NanoPi NEO2のNASキットを動かしてみました

    投稿日 2017年 11月 28日 5個のコメント

    秋月で NanoPi NEO/NEO2 用のNASキットが売っていたので、買ってみました。

    秋月の説明書きにはヒートシンクが同梱されているとは書いてない(写真には写っていますが・・・)ので、思わずヒートシンクも余計に買ってしまいましたが、これから買う方はキットにヒートシンクが同梱されているので気をつけて下さい。

    このNASキット以外に、

    • NanoPi-NEO2 (または NanoPi-NEO)
    • 2.5インチのHDDまたはSDD(まずは余り物の160GBをつけてみました)
    • CR2032コイン型リチウム電池
    • 起動用のMicroSDカード(手持ちの16GBを使いました)
    • 12VのACアダプタ(秋月で標準的なDCプラグがついているもの)

    の準備が必要です。

    組み立てにあたっては、

    • ハンダゴテ一式(NanoPi-NEO2の端子はハンダ付けが必要)
    • プラスドライバ(たぶん+1のもの)

    も必要です。

    とりあえず、端子をハンダ付けしました。ランド径が小さいので、ハンダ付けしにくいです。

    この状態で、別のNanoPi-NEO2 から持ってきた MicroSD カードを挿して Ubuntu-Core で起動して ssh でログイン、適当に /dev/sda1 を mount してやると、中身を見ることができましたので、動作は問題ないようです。

    ヒートシンクを付けてみました。

    この後、Official ROMのイメージを

    https://www.mediafire.com/folder/ah4i6w029912b/NanoPi-NEO2

    の下の Official ROMs から nanopi-neo2_debian-nas-jessie_4.11.2_20171103.img.zip をダウンロードして、これを展開、USBイメージライタでMicroSDに書き込んで電源投入します。

    ブラウザで、 http://friendlyelec.local/ にアクセスすると、

    として画面が出ました。

    ユーザー名: admin
    パスワード: openmediavault

    でログインすることができました。

    とりあえず、

    • Web管理者パスワードの設定
    • タイムゾーンの設定、NTPの有効化
    • ホスト名を NanoPi-NAS に変更
    • アップデートの確認&インストール
    • ディスクのワイプ、ファイルシステム作成
    • ユーザーの作成

    をしてみました。

    この後、プラグインを見てみると、「openmediavault-flashmemory」というのがあり、これを使うと MicroSD への書き込みを減らせるようです。・・・が、インストールを試みたところエラーになりました・・・。

    あと、デフォルトで root での ssh ログインが有効になっています

    $ ssh root@nanopi-nas.local (変更していない場合はfriendlyelec.local)
    root@nanopi-nas.local’s password: (デフォルトパスワードは fa )
    root@nanopi-nas:~# passwd
    Enter new UNIX password:
    Retype new UNIX password:
    passwd: password updated successfully
    root@nanopi-nas:~# passwd pi
    Enter new UNIX password:
    Retype new UNIX password:
    passwd: password updated successfully
    root@nanopi-nas:~# passwd fa
    Enter new UNIX password:
    Retype new UNIX password:
    passwd: password updated successfully
    root@nanopi-nas:~#

    として、ログインパスワードは変更しておく必要があります。(もしくは、SSHを無効化したほうがよいかも)

    ・・・と思ったのですが、/etc/ssh/sshd_config の AllowGroups の項目には root と ssh しかいないので、実際にログインできるのは root だけのようです。


  • NanoPi NEO2のデバッグシリアルに苦労した話

    投稿日 2017年 11月 8日 コメントはありません

    Gigabit Ethernet環境でtcpdumpをひたすら放置で動かしておきたくて、NanoPi NEO2に手を出してました。

    ファイルシステムのイメージファイルは違いますが、NanoPi NEOと同じ手順で環境構築できて、一度はシリアルコンソールが動いているUART0(デバッグシリアル)も動いていたのですが、しばらくシリアルコンソール無しで運用した後、再びシリアルコンソール経由で操作をしたくなった時に苦労しました。

    公式サイトにある端子説明がこちらで、実物を半田面から写真を取ったのが以下です。

    わかりますでしょうか??

    実は写真に写っているNanoPi-NEO2の実物のデバッグシリアルの端子表記は間違っているので、シルク印刷の端子表記を信用すると動かない、という罠に陥ります。本当は、写真の上から、GND、5V、TX、RXの順で逆順になっています。

    ・・・ということで、最初に動かした時は公式サイトの端子説明をみて配線したので無事動いたのですが、今日改めて動かそうとした時には基板のシルク印刷をみて動かそうとしたので、動かなかった、というオチでした。悩んだ数時間を返してくれ、という感じです。


  • ROCK64/4GBを買ってみた

    投稿日 2017年 10月 9日 2個のコメント

    秋月にROCK64が売られていたので買ってみました。ROCK64はRaspberry Piと似たような形状のボードコンピュータですが、ギガビットイーサネットとUSB3.0を搭載し、搭載RAM容量別に3モデルあって、この手のボードとしては大容量の4GBのRAMが搭載されているモデルがあるので手を出してみました。秋月のページでは電源供給には何やら工作しないと電源供給できないような面倒くさいことが書いてありますが、秋月で売っている内径2.1mmの5V3A出力のACアダプタと、2.1mmメス⇔1.3mmオスの変換プラグ(たぶんこれ)で基板上のDCジャックから電源供給できました。

    次に、ソフトウェアというか、Linuxのイメージですが、こちらに掲載されているものをいくつか試してみましたが、まだどれも今ひとつな感じです。UARTコンソール経由で制御したかったのですが、シリアルコンソールは通信パラメータがわかりません。速度をいろいろ変えても、ubootも正しく表示できないです。(オシロスコープで直接見れば良いのですが・・・)
    また、USB HUBを噛ませているからかもしれないですが、USBキーボードとUSBマウスで入力しようとすると、時々キーイベント(キー押下、キー放す)を取りこぼすようです。

    もうしばらくいろいろいじってみる必要がありそうです。


  • Pine A64+ 2GBにarmbianをインストール

    投稿日 2017年 7月 26日 2個のコメント

    Pine A64+ であるが公式サイトのUbuntu Mateはアップデートを行っていくと /boot パーティションの容量不足でアップデートができなくなってしまいました。これを機会に、armbianを試してみました。(ちなみに、以前の記事では1GB版でしたが、その後、秋月で2GB版が出ていたので買ってしまいました・・・)

    1.イメージを書き込み

    Ubuntu Desktopをこちらから bit torrent 経由でダウンロードして、ファイル展開、Linux Mint のUSBイメージライタで16GBのMicroSDカードに書き込みます。

    2.起動

    HDMIで液晶モニタに接続、USBでキーボードとマウスを接続してMicroUSB経由で電源供給してしばらくすると、CLIのログイン画面が表示されます。ここで、ユーザー名:root、パスワード:1234でログインすると、rootのパスワード変更が求められますので、パスワード設定を行います。引き続き、一般ユーザーの作成が求められますので、ユーザー名とパスワードとその他のログイン情報(空欄のままで大丈夫)を設定していきます。設定が終わると、GUIが起動します。

    3.アップデートの適用

    DHCPサーバーのある環境なので、何もしなくてもネットワークに接続できるようになっています。termnialを開いて、

    $ sudo apt-get update
    $ sudo apt-get install

    でアップデートをすべて適用します。

    4.日本語サポートの追加

    左上の「Application」から「Setting」を選択、その下の「Language Support」を選択すると、「The language support is not installed competely」と表示されるので「Install」をクリックして不足部分のインストールを行います。この処理はかなり時間がかかります。途中、パスワード入力を求められるので、適宜入力してやります。
    インストール直後だとサポート言語はEnglishのみなので、下の方の「Install/Remove Languages…」をクリックして、Japaneseにチェックを入れて「Apply」をクリック。
    再起動してログオンし直すと、メニューなどが日本語化されます。

    5.時計表示の修正

    時計表示を右クリックしてプロパティを選択、タイムゾーンが空白になっているので、Japanに修正すると時刻表示が正しくなります。

    6.ArmbianのConfig

    デスクトップ上のConfigのアイコンをダブルクリックすると、uxtermが開いてその中でUbuntu16.04のconfiguration utilityが起動します。とりあえず必要な設定項目はないようですが、ここに設定があることを忘れないために備忘録としてメモしておきます。

    7.ToDo

    残っていること

    • 解像度が1280×720になっているので、1920×1080に変更したい。
    • 日本語入力の設定

  • NanoPi NEOを動かしてみた

    投稿日 2017年 7月 23日 コメントはありません

    秋月にまた安価なLinux板が出ていたので、つい買ってしまいました。

    今回買ったのは、Nano Pi NEO 512MB で、価格は1,680円。本家本元?のFRIENDLY ELECでは512MB版は$9.99のようなのですが、思い立ったら買えるということを考えると、高くはないかと思います。併せて、専用のヒートシンクも買ってきました。こちらは400円ですが、本家本元では$2.97。本家では、その他のオプションとして3Dプリントされたハウジングがあるようなのですが、こちらは残念ながら秋月にはありません。

    とりあえず、秋月の商品のところにあるリンクを辿って、official-ROMsからUbuntu-Core 4.11 をダウンロード、Linux Mint 16のUSBイメージライタで8GBのMicroSDに書き込みます。シリアルコンソールとして、手持ちのUSBシリアル変換ケーブルをNano Pi NEOの基板上のシリアル端子に接続してGtkTermで115200bpsのN81で接続、Ethernetは適当にDHCP環境のルータに接続して、MicroUSBにて電源供給すると、U-BOOTのメッセージに続いてLinuxの起動メッセージがつらつらと出てきて、そのうち勝手にログインしてくれます。シリアルコンソールの場合には自動的にログイン状態になるようです。初めから DHCPクライアントも動いているので、シリアルコンソールにIPアドレスも表示されます。

    コンソールのみですが、基本はUbuntuなので難しいことはありません。秋月からもリンクされているサポートページの「6 Work with Ubuntu-Core with Qt-Embedded」あたりに従っていけばOKです。とりあえず、お約束?の、

    $ sudo apt-get update
    $ sudo apt-get upgrade

    あたりと、

    $ sudo npi-config

    でパスワードの変更あたりを実施。

    $ sudo apt-get install avahi-daemon

    とやると、別の linux マシンから

    $ ssh pi@NanoPi-NEO.local

    とやってログインできるようになります。(NanoPi-NEOはデフォルトのホスト名。npi-config で設定変更できます)

    初めから avahi-daemon が入っていれば、イメージをMicroSDに書き込んで、とにかく起動して、しばらく待ってから

    $ ssh pi@NanoPi-NEO.local

    でログインできそうなのがちょっと残念かも。まあ、IPアドレス調べればいいだけなんですけどね。


  • 秋月のLPC11U35マイコンボードを動かしてみた

    投稿日 2017年 7月 10日 コメントはありません

    久しぶりに秋月へ行ったら、「USBメモリにファイルを書き込むのとほぼ同様の手軽さでプログラムを書き込むことができます」という触れ込みのマイコンボードが安く売っていたので、買ってみました。

    で、動かしてみるべく、Linuxマシン(環境はいつものLinux Mintです)へ接続すると、確かにマスストレージデバイスとして認識します。で、秋月のWebサイトにある動作確認用ファームウェアを書き込んで、リセットしてみても、再びマスストレージデバイスとして認識されて、LEDが点滅する気配がありません。

    mbedとしても動作する、というのでサンプルプログラムを作って同様に書き込んでみてもサッパリです。linuxではドラッグアンドドロップでの書き込みはうまく行かないのかと思って、コマンドラインで cp コマンドでコピーしてみてもダメです。

    で、ぐぐってみたら、どうやら linux ではそもそもファイル書き込みではうまくいかないようで、こちらの情報によると先頭の4ブロック(2キロバイト?)を削ってddで書き込むとうまく行くようです。

    ただ、デバイスファイルなんていろんな要因で変わってしまうので、毎回やるのは面倒ですし、事故のもとなので、pythonのスクリプト化しました。

    lsblkコマンドで見た時に、転送方法が usb で、モデルが’LPC1XXX IFLASH  ‘となっているデバイスファイルを探して、そのデバイスファイルをアンマウントして、ddコマンドで書き込むだけです。スクリプトファイル⇒mbedにlinuxから書き込むためのスクリプト

    ルート権限が必要なのは変わらないので、sudo 付きで python スクリプトを実行します。

    $ sudo python ./write_mbed.py firmware.bin 
    mbed device is /dev/sdc
    umount /dev/sdc
    dd if=firmware.bin of=/dev/sdc seek=4
    16+1 レコード入力
    16+1 レコード出力
    8456 bytes (8.5 kB, 8.3 KiB) copied, 0.387457 s, 21.8 kB/s

    みたいな感じで使います。(途中の umount とか dd コマンドの行はこのスクリプトの処理内容を表示しているだけで、書き込みに必要な操作は最初の1行目だけです)

     


  • Pine64を買ってみた

    投稿日 2017年 5月 21日 コメントはありません

    秋月に Pine64 A+ 1GB が入っていたので、買ってみました。価格はRaspberry Pi 3よりも安い2,980円。といっても、Pine64 A+はBluetoohもWiFiもないのでちょっと価格差的には微妙かもしれない。一緒に長さ15cmのmicroUSBケーブルとHDMIケーブルを購入。

    早速、秋月のページにある公式サイトへのリンクからUbuntu Mateのイメージをダウンロードして、ddコマンドで適当な8GBのMicroUSBに書き込んでMicroUSBコネクタに挿入、HDMIケーブルでディスプレイに接続、マウスとキーボードを接続、イーサケーブルをルータに接続して、MicroUSBコネクタを挿して電源投入。・・・が、電源LEDは点くものの、うんともすんとも言わない。
    MicroUSBケーブルを1.5mの長いものから購入した15cmの短いものに変更したら起動した。結構電流を食うので電圧降下しているのかもしれない。

    起動すると、グラフィカルログイン画面になるので、ユーザー名: ubuntu 、パスワード: ubuntu でログインする。当然かもしれないけど、英語モードで起動。ターミナルを開いたりしてみたが結構軽快に動くようである・・・が、やっぱりストレージがMicroSDなのでストレージアクセスを伴うものはちょっともたつく。

    とりあえず、アップデートをかけてみる。

    $ sudo apt-get update
    $ sudo apt-get upgrade

    を試してみるが、何かパッケージの不整合を起こしているみたいで、追加でコマンドが要る模様。指示に従って、以下の通り試してみた。

    $ sudo dpkg --configure -a
    $ sudo apt-get install -f
    $ sudo apt-get upgrade

    でとりあえず一通りはアップデートができた模様。

    System ⇒ Preferences ⇒ Hardware ⇒ Keyboard ⇒ Layout で Add を押して、キーボードレイアウトで Country で Japan を選んで Add を押す。レイアウトの順位を Japanese を一番上にして Close を押したら、キーボードレイアウトが日本語になった。

    System ⇒ Preferences ⇒ Personal ⇒ Language Support を選択すると、The language support is not installed completely と出るので、Install を押す。パスワードが聞かれるので入力すると、language support をインストールし始めた。しばらく待つと、インストール完了。
    この状態だと英語のみなので、 Install/Remove Languages … を押して、Japaneseにチェックを入れてApplyを押すと、フォントやfcitx、libreofficeのモジュールなどをダウンロード&インストールし始めた。
    完了したら、Language for menus and windows のリストの一番下にある日本語を一番上にドラッグ&ドロップ、Keyboard input method system を fcitx に設定して、Apply System-Wide をクリック、再度パスワードを聞かれるので入力。
    次に Regional Formats タブを選んでこちらも日本語を選択して Apply System-Wide をクリック。完了したら Close を押して、一旦ログアウトしてログインし直すと、日本語化が完了している。

    これだけだと、日本語入力で漢字キーが使えなかった。キーボードの選択で言語別で日本語を選択しておく必要があったようで、設定を修正。右上のキーボードのアイコンを右クリックして「設定」を選択すると、キーボードが英語になっているので、「+」を押して日本語キーボードを追加、順番を一番上に持ってくる・・・が、日本語入力はできない。

    とりあえず、

    $ sudo apt-get install synaptic

    で手慣れた Synaptic をインストール。

    Synaptic パッケージマネージャから ibus-anthy をインストールして、システム⇒設定⇒ユーザ向け⇒言語サポートで、キーボード入力に使うシステムとして IBus を選択して再起動後、右上のキーボードアイコンから日本語−Anthyを選択したところ、日本語入力ができるようになった。

    とりあえず、使えるようになった。


  • ESP32でNTP Clientを動かしてみた

    投稿日 2017年 2月 8日 コメントはありません

    一昨日のESP-WROOM-32(ESP32)をArduino IDEで動かしてみた続きです。

    Arduino IDEにはWiFi関連のサンプルプログラムがあるので、動かしてみました。

    「ファイル」⇒「スケッチ例」⇒「あらゆるボードのスケッチ例」⇒「WiFi」の下にいくつかサンプルが有りますが、こちらはESP32環境ではビルドできませんでした。Espressif社提供のライブラリとArduino IDEに初めから付いているWiFiライブラリでは完全に互換ではないようです。(確か、バージョン情報を取得するようなライブラリでコケてたような気がします)

    「ファイル」⇒「スケッチ例」⇒「ESP32 Dev Module用のスケッチ例」⇒「WiFi」の下の「WiFiIPv6」というのを開いてみると、NTPクライアントプログラムのように見えますので、これを動かしてみることにします。
    スケッチ例を開いて、冒頭にある

    #define STA_SSID "xxxxxxxxxxxxxxxxx"
    #define STA_PASS "xxxxxxxxx"

    の部分にSSIDとパスワードをセットして名前を付けて保存、シリアルポートを /dev/ttyUSB* に設定した後、シリアルモニタを起動して、次に基板上のタクトスイッチを押しながら、「マイコンボードに書き込む」としてやると、ビルドと書き込みが行われます。タクトスイッチは「Writing at 0x00010000… (5 %) 」という表示が出たところで離してもOK。

    書き込みが終わると、ESP-WROOM-32モジュールは勝手にリブートして起動します。

     

    シリアルモニタ側には IPv6 でのステーションとしての動作、アクセスポイントとしての動作状況の表示、IPv4のステーションとしての動作状況が表示され、IPv4のIPアドレス取得ができると、その後NTPクライアントが動作している状況が表示されました。

    また、同時にアクセスポイントとしても動作しているので、スマートフォンのWiFiアナライザなどのツールでみると「esp32-v6」というSSIDでのアクセスポイント動作が確認できました。


  • ESP32を動かしてみた

    投稿日 2017年 2月 6日 1つのコメント

    ふと秋月のWebサイトをみていたら、ESP-WROOM-32が発売になっていました。早速、秋月へ行ってゲットしてきました。

    で、とにかく動かしてみます。すでに先達もいるようなので、参考にさせてもらいながら、なるべく手抜きして動かします。開発環境はESP-WROOM-02の時と同様にArduinoで動かします。

    使用した部品

    使用した部品は以下の通りです。

    • ESP-WROOM-32
      まずこれがないと、ですね。
    • FT-232RQ USBシリアル変換キット
      最近のお気に入りのUSBシリアル変換基板です。Linuxでも安定して動作するのでGoodです。
    • NJU7223DL1
      3.3Vのレギュレータです。データシートの回路図だと入出力のコンデンサが小さくて済みそうなので、選びました。
    • 0.1uF 1608 チップコンデンサ✕3
      三端子レギュレータの入出力に各1個、USBシリアルのRTS端子とEN端子の間に1個
    • 22uF 1608 チップコンデンサ✕1
      ESP-WROOM-32の資料では電源入力に10uFが付いているので、手持ちの22uFのチップコンを使用
    • 10kΩ 1608 チップ抵抗✕2
      1個はEN端子のプルアップ、もう1個はIO0端子のプルアップ
    • 0.022uF 1608 チップコンデンサ✕1
      EN端子の入力とGND間に接続
    • 適当なタクトSW✕1
      IO0端子をGNDに落としてダウンロードモードに移行させるのに使います
    • ユニバーサルプリント基板
      これを使いました。最近は軽量化を目指して薄めの基板を使ってます。この基板は両面なのですが、内面がスルーホール処理されていないので表裏の接続ができていない箇所があってハマリました。
    • その他
      適当なピンヘッダ・ピンソケット、ポリウレタン被覆線、スズメッキ線

    ハードウェアの組み立て

    こちらの回路を参考に手抜きして作りました。

    • GND端子はUSBシリアル基板のGNDに接続
    • 3V3端子は三端子レギュレータの出力端子に接続
    • EN端子は10kΩでプルアップ、GNDとの間に0.022uF、USBシリアル基板のRTS端子との間に0.1uFを接続。この0.1uFによりPC側でRTSを制御するとESP-WROOM-32側にリセットがかかります。
    • IO0端子はプルアップ、および、タクトスイッチを接続して、ボタン押下でGNDに落ちるようにします。ボタンを押しながらArduino IDEで書き込み操作をすることで、書き込みモードへ移行できます。
      (注:IO0のプルアップは不要らしい。タクトスイッチによるIO0のコントロールがうまく行かなかった際につけたが、外してOKかは試していない。ちなみに、タクトスイッチでIO0がコントロールできなかった原因はノンスルーホール基板を使ったので基板の表裏で接続ができてなかったため。)
    • TXD0端子はUSBシリアル基板のRXDへ接続
    • RXD0端子はUSBシリアル基板のTXDへ接続

    回路図はこんな感じです。15ピンのGNDは手抜きで接続していませんが、動いています。

     

    こんな感じになりました。

    ESP-WROOM-32は裏返しに両面テープで基板に貼り付けてあります。基板を作りなおす時も多分無事に剥がせると思います。

    無計画に作ったので、裏側は汚いですw。左上のレギュレータ周りがどうしようもないですね。

    まずはハードウェアの動作確認

    Arduinoで書き込みをする前に、ハードウェアの動作確認をしておきます。
    といっても、よくよく結線を確認した後、電源を投入(USBケーブルで接続)するだけです。
    電源を投入したら、スマートフォンのWiFiアナライザなどアプリケーションで、「ESP-xxxxxx」というSSIDが見えることを確認しておきます。SSIDが見えればとりあえずESP-WROOM-32はアクセスポイントとして動作しているはずです。(注:Arduino環境の構築ができていれば、Arduinoのシリアルモニタで /dev/ttyUSB* を115200bpsでモニタすればブートローダなどの表示も確認できます)

    Arduino開発環境の構築

    PCはLinux Mint 18の64bit版です。

    まず、arduino IDE をインストールします。その前に、古いバージョンをアンインストール。

    $ cd arduino-1.6.12
    $ ./uninstall.sh 
    Removing desktop shortcut and menu item for Arduino IDE... done!

    arduino.cc から最新版の arduino-IDE をダウンロード。今回ダウンロードしたファイルは arduino-1.8.1-linux64.tar.xz です。

    $ cd ~
    $  xzcat ダウンロード/arduino-1.8.1-linux64.tar.xz | tar xvf -
    $ cd arduino-1.8.1/
    $ ./install.sh
    Adding desktop shortcut, menu item and file associations for Arduino IDE... done!

    次に、arduino-esp32 をインストール。このページのコマンドをコピペ。

    $ sudo usermod -a -G dialout $USER && \
    > sudo apt-get install git && \
    > mkdir -p ~/Arduino/hardware/espressif && \
    > cd ~/Arduino/hardware/espressif && \
    > git clone https://github.com/espressif/arduino-esp32.git esp32 && \
    > cd esp32/tools/ && \
    > python get.py
    [sudo] xxx のパスワード: 
    パッケージリストを読み込んでいます... 完了
    依存関係ツリーを作成しています 
    状態情報を読み取っています... 完了
    git はすでに最新バージョン (1:2.7.4-0ubuntu1) です。
    アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 39 個。
    Cloning into 'esp32'...
    remote: Counting objects: 2799, done.
    remote: Compressing objects: 100% (10/10), done.
    remote: Total 2799 (delta 1), reused 0 (delta 0), pack-reused 2785
    Receiving objects: 100% (2799/2799), 54.67 MiB | 3.44 MiB/s, done.
    Resolving deltas: 100% (1152/1152), done.
    Checking connectivity... done.
    Checking out files: 100% (903/903), done.
    System: Linux, Info: Linux-4.4.0-45-generic-x86_64-with-LinuxMint-18-sarah
    Platform: x86_64-pc-linux-gnu
    Downloading xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
    Done
    Extracting xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
    Downloading esptool-fe69994-linux64.tar.gz
    Done
    Extracting esptool-fe69994-linux64.tar.gz
    Done
    ~/Arduino/hardware/espressif/esp32/tools $

    いよいよ起動します。デスクトップ上のArduino IDEのアイコンをダブルクリックして、Arduino IDEを起動。
    起動したら、「ツール」→「ボード:xxx」→「ESP32 Dev Module」を選択でESP32モジュールを選択します。

    サンプルを動かしてみる

    次にサンプルを動かしてみます。シリアルに結果が表示されるものが良いと思うので、WiFiScanを動かしてみます。
    「ファイル」→「スケッチ例」→ESP32 Dev Module用のスケッチ例の下の「WiFi」→「WiFiScan」選択すると、サンプルプログラムが表示されます。「ツール」⇒「シリアルポート」⇒「/dev/ttyUSB0(環境によって変わります)」でシリアルポートを選択した後、「ツール」⇒「シリアルモニタ」でシリアルモニタを起動しておきます。

    準備ができたら「⇒」ボタンをクリックして、書き込んでみます。「⇒」をクリックする際にはIO0に接続したタクトスイッチを押しながらクリックすることでダウンローダを起動します。「Wrting … 」という表示が出たら、タクトスイッチのボタンを離します。

    書き込み完了後はこんな感じ。

    書き込みが終わると、シリアルモニタの方に表示が始まります。

     

    こんな感じでSSIDのリストが表示されれば成功です。