macsbug

Just another WordPress.com site

Archive for the ‘ESP32’ Category

Easter Egg of ESP32

leave a comment »

ESP32 イースター・エッグ:ESP32 TinyBasic Plus            2017.01.04
ESP32のROMにベーシックインタープリターが隠されています。

CoolTerm での表示ですが Arduino IDE シリアルモニターでも可能です。
PEEK, POKE命令も使用できます。

TinyBasic の件は espressif/esp-idf/ROM Source Code Copyrights/ に書かれています。

詳細は BleuLlama/TinyBasicPlus にあり命令とサンプルが記載されています。
_ 追加機能:
_ fileio(SDライブラリ)。SDカードからのプログラムの自動実行。
_ smaller footprint (PROGMEM)。pin data IO 。on-chip EEProm storage
_ のサポートが含まれます。


.
手順:ESP32 は NANO32を使用。 ESP32 の GPIO 12 を HIGH にします。
1. ESP32 GPIO 12:HIGH ( Resistor で Pull_up) 。
2. シリアルモニター:Baudrate=115200, Enter Key Emulation=CR 。
3. ESP32:電源オン, EN Switch Push 。
4. Key Board:Enter Key 連打。
5. >:コマンドプロンプトがでたら BASIC が起動した事を示します。感動!

詳細:HACKAYDAY:BASIC INTERPRETER HIDDEN IN ESP32 SILICON
Elliot Williams氏に感謝!
ここでの内容とハイレベルの方のコメント欄は非常に参考になります。

メモ:ESP32のGPIO 12 をプルアップして起動すると Arduino IDE での書き込みは
_  出来ません。 理由は ESP32 のシリアル出力から メッセージが連続して流れ
_  続ける為です。回避する為には プルアップ抵抗を取り除きます。

参考:TinyBasic Plus


.
BASIC MODE:

GPIO 12 を HIGH にすると Arduino IDE シリアルからは以下のメッセージがでます。
ESP32 の状況と 「Falling back to built-in command interpreter.」のメッセージ。
これから キーボードの Enter key(CR) で BASICモードに入る事ができます。

>ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3bd80000,len:4
load:0x3ffc000c,len:1452
load:0x40078000,len:2908
ho 0 tail 12 room 4
load:0x40080000,len:256
csum err:0xa1!=0xb2
Falling back to built-in command interpreter.

.
>about と入力すると 以下のメッセージが出ます。
ESP32 ROM Basic (c) 2016 Espressif Shanghai Derived from TinyBasic Plus by Mike Field and Scott Lawrence

>help と入力すると 使用できるコマンドの一覧が出てきます。
_ LIST, NEW, RUN, NEXT, LET, IF, GOTO, GOSUB, RETURN ,REM,
_ FOR, INPUT, PRINT, PHEX, POKE, STOP, BYE, MEM, ? , ‘ ,
_ DELAY, END, RSEED, HELP, ABOUT, IOSET, IODIR, PEEK,
_ ABS, RND, IOGET, USR

この TinyBasic Plus を作られたのはEspressif Systems の
_ Mike Field 氏と Scott Lawrence 氏です。共に感謝致します。
_ BleuLlama/TinyBasicPlus:他の命令も記載されています。

BASIC in ESP32 で 操作を見る事ができます。


.
Lチカ を実行:ボード上の LED ( GPIO 16 ) が点滅します。

10 POKE &H60004570, 16  // LED ON
20 DELAY 25
30 POKE &H60004570, 0   // LED OFF
40 DELAY 1000
50 GOTO 10

POKE &H60004570, 16:GPIO 16 から “0” を出力し LED を点灯する。
POKE &H60004570, 00:GPIO 16 から “1” を出力し LED を消灯する。
GPIO_FUNC0_OUT_SEL_CFG_REG_16:0x60004570

同様に以下の記述でも点滅します。

10 IODIR 16,1
20 IOSET 16,0    // LED ON
30 DELAY 25
40 IOSET 16,1    // LED OFF
50 DELAY 1000
60 GOTO 20

.
Lチカ と ダイレクトアクセス:Arduino IDE スケッチでの表記:
1. GPIO 16 の LED を点灯させる。以下のいずれかで可能。
_  digitalWrite(16,0);
_  GPIO.enable_w1ts = ((uint32_t)1 << 16);
_  ESP_REG(GPIO_ENABLE_W1TS_REG) = ((uint32_t)1 << 16);
_  GPIO_OUTPUT_SET(16, 0);

2. GPIO 16 の LED を消灯させる。以下のいずれかで可能。
_  digitalWrite(16,1);
_  GPIO.enable_w1tc = ((uint32_t)1 << 16);
_  ESP_REG(GPIO_ENABLE_W1TC_REG) = ((uint32_t)1 << 16);
_  GPIO_OUTPUT_SET(16, 1);

3. ありがちなハマりどころ:
_  POKE &H60004570, 16 :アドレス に “1” を与え GPIO 16 は “0” となる。
_  POKE &H60004570, 00 :アドレス に “0” を与え GPIO 16 は “1” となる。
_  IOSET 16,0 :GPIO 16 に “0” を与え GPIO 16 は “0” となる。
_  IOSET 16,1 :GPIO 16 に “1” を与え GPIO 16 は “1” となる。
_  GPIO.enable_w1ts = (1 << 16);:enable_w1ts へ”1″ を与え GPIO 16 は “0” 。
_  GPIO.enable_w1tc = (1 << 16);:enable_w1tc へ”1″ を与え GPIO 16 は “1” 。
_  ポイント:delay を 異なる値にして LED の ON/OFF 状態を区別します。


.
ESP32 REGISTOR:
_ POKE文で操作する時は Resistor Address の把握が必要です。
_ ESP32 の Resistor Mapは「esp32_technical_reference_manual_en
_ に記載されています。ただし アドレスに誤記があり 当然ながら その
_ アドレスでは動きません。
_ それに対し「eco_and_workarounds_for_bugs_in_esp32_en」に
_ アドレスの修正が記載されており記載されたアドレスで動く事を確認
_ しました。


.
感想:
BASIC MODE:まさかの感動もの!
_ Espressif Systems は なかなか洒落た事をやりますね。素晴らしいです!
_ こういう 隠し技が好き なもので PEEK, POKE文にハマりそうです。
_ ESP32 のシリアル出力から
_ 「rst:0x10(RTCWDT_RTC_RESET),boot:0x33(SPI_FAST_FLASH_BOOT) 」
_ から始まり「ESP32の状態を示す」メッセージがでて 最下部には
_ 「Falling back to built-in command interpreter.」とでます。
_ それを Enter key(CR) で BASICモードに入るとは実に味な事をしますね。

PEEK, POKE:Apple II の時に PEEK, POKE 文で 周辺回路にアクセスしたのを
_ 懐かしく思い出しました。ROMにアクセスして内容を読むとか出来る訳です。

HACKAYDAY:BASIC INTERPRETER HIDDEN IN ESP32 SILICON
_ ここでのコメント欄では 私からすると神の様なハイレベル同士の話は
_ 凄く試になる事と 面白い内容で何回も読んでしまいました。

ESP32 mask ROM hardware includes:ROMに含まれているのは以下、
_ Newlib, XtentaLibhal, TinyBasic, miniz, wpa_supplicant, TjpgDec との


 

Written by macsbug

1月 4, 2017 at 12:22 pm

カテゴリー: ESP32

Raytracing with ESP32

with 2 comments

ESP32 で レイトレーシング を試しました。         2016.12.27
ESP32 の 速度は どの位でしょうか?
ESP32 DEVKIT V1 と 2.4 inch 320×240 TFT SPI Display を使用しました。

結論:速度は ESP8266 160MHz の 2.5倍です。価格は ESP8266 の6倍です。
条件:「SPI接続」と「Adafruit_ILI9341.h」(速度が遅い) を使用。



.
抽画速度の比較。ESP32 は 14sec。ESP8266 160MHz は 33secです。


.
準備:
1. ESP32 DEVKIT V1:1720円 。 その後2800円台と非常に高いです。
_  メモ:ESP32 DEVKIT と NANO32 の 購入時は 電波が出ない状態になっています。
2. 2.4 inch 320×240 TFT Display:1125円 。
3. スケッチ: TFT22_raytracecbm80amiga氏に感謝。
_  スケッチの変更:GPIOの端子番号を接続したTFT の端子と合わせます。
_          #ifdef ESP8266 , #endif は不要ですので削除してください。

// CS,DC,SDI,SCK,RESET,SDO  // ESP32 Dev Module
Adafruit_ILI9341 display = Adafruit_ILI9341(13,14,27,26,12,25);

.
参考:YouTube
Raytracing on ESP8266 and ILI9341 LCD display ESP8266:今回の参考場所
Arduino raytracer rendering on 8 bit micro : Arduino 10min
Raytracing on Arduino and STM32 – speed comparison:Arduino vs STM32
Generic STM32 vs Arduino Pro Mini/Nano speed :STM32 vs Arduino


.
測定結果の数値:
条件:「SPI接続」と「Adafruit_ILI9341.h」(速度が遅い) を使用。
_   Raytracing は 1 Passを使用。

Type    sec
    ESP32      @ 160MHz  13
    ESP8266  @ 160MHz  33
    ESP8266  @  80MHz  65
    STM32     @  72MHz  52
    ATMEGA328         @ 16MHz  293
    Arduino Pro Mini  @ 16MHz  293

追記:2016.12.30 Arduino IDE ESP32 を Update 。
_  14sec が 13sec にアップ。ESP8266 160MHz との対比は 2.3 から 2.5倍
_  boards.txt に記載されている nano32.build.f_cpu=160000000L は
_  nano32.build.f_cpu=240000000L に変更されました。
.


表示を変える方法:球の個数や位置、素材等を変えられます。追記:2016.12.30
raytracer.h

 
#define NUM_SPHERES 4    // 球の個数
static const float spheres[] PROGMEM = {
// center, radius, material // center : 球の位置
  5,15,8,  5,  0,
 -6,12,4,  3,  0,
  1,10,2,  2,  1,
  0, 9,5,  1,  2
};

.
追記:2017.1.4: STM32F7 Raytracing が 0.62sec を達成し世界一最速です。
このサイトへの訪問者 clemente氏は、このRayTracing を STM32F7 を使用し
_ C++ と C に置き換えたとの事。そしてその速度は 320×240 で 0.62sec と
_ いう驚異的な結果が出ています。素晴らしいですね。是非 以下のサイト
_ をご覧ください。clementeさん ありがとうございました。
The Embedded Notes Blog:RayTracing per ESP32 e STM32F7!

YouTube:STM32F7 RayTracing:この速度を是非ご覧ください。
_ 一瞬で終わります。素晴らしいです。


.
感想:
ESP8266 を始めた理由:Arduino は速度遅くメモリーが少ない為 始めました。
_ Arduino Pro mini に対し 21倍、ESP8266 160MHz に対し 2.4倍でした。
_ この点では ESP8266 を選択した意味がありました。
_ ESP8266 に対し ESP32 は 少し 速くなり少々満足。でも160MHzしかない。
_ そして ESP32 の価格は ESP8266 の6倍で使用する価値は無くなりますね。
.
費用対効果:ESP32 は 2016年12月現在 2800円台です。 ESP8266は $5
_  という触れ込みから始まりましたが ESP32 は非常に高い価格です。
_  ebayやAliexpress を見ると一時的に安くなる業者もありますが
_  その後 並べた様に 高い価格になっています。これは価格を操作している
_  様にも見えます。
.
ラズパイと2.2 inch 320×240 TFT Display:ラズパイではSPI接続でビデオを
_ 表示する事が出来ています。
_ Learn on the fly:Quickly test an IL9341 2.2 inch 2.2″ SPI TFT display
.
条件:今回のスケッチは cbm80amiga氏の記事を使用した物です。これは
_ Arduino や STM32 でも比較できるハードとライブラリーという条件です。
_ 方法は「SPI接続」で ライブラリーは「Adafruit_ILI9341.h」を使用して
_ います。SPI接続である事と 速度がかなり遅いAdafruitのライブラリーを
_ 使用しています。 ESP32は SPI以外に HSPI、VSPI端子がある事や
_ DMA parallel 方式があり速度の向上が期待されます。
_ Espressifのアナウンスに「C.3D Game on ESP32」と言う項目があり
_ 「DMA via the parallel mode of the I2S controller」を使用するとの事。


Written by macsbug

12月 27, 2016 at 2:30 am

カテゴリー: ESP32, ESP8266

2.4 Inch TFT Display For ESP32

leave a comment »

ESP32 で TFT Display を使用する方法。              2016.12.17
ディスプレー は 2.4 inch 240×320 SPI TFT LCD ILI9341 を使用し
ESP32DEVKIT V1NANO32 を使用しました。

費用は 3337円です。( ESP32ボードD1 mini  の約5倍です )

2016.04.16 に ESP8266 + 2.4 inch TFT Display の記事を記載しました。
ESP8266と同じ内容ですが ESP32とライブラリーの動作を試しました。
ライブラリーとスケッチは Adafruit ILI9341 graphicstest です。


.
DEVKIT V1 ( with TELEC ):ESP32 Development Board。

NANO32 ( without TELEC )
Font Converter (squix : Daniel Eichhor) による文字は奇麗です。

Adafruit の フォント表示。”Group” の文字は 5倍してギザギザです。


ESP32の速度:ESP8266 の 2.2 倍高速です。
_ 条件は 同じ回路 及び 同じスケッチ(Adafruit ILI9341 graphicstest
_ で速度を比較。ただし ESP8266 は 周波数は160MHz にする事と
_ Wdt Error を出す為に 多数の yield(); を入れています。
_ ESP32=37.8sec, ESP8266=84.2msec。


.
準備:
費用=3337円 ( without Touch Panel ):
費用=4497円 ( with      Touch Panel ): 価格は円レートで変動します。
販売業者によっては価格を上げる所があり都度 最低価格を探します。

No.  Nomen  Link  Price  Memo
1  ESP32: DEVKIT V1  ebay 1742円  1個
 2a  2.4 inch TFT Display  ebay   811円  1個
 2b  2.4 inch TFT Display + Touch  ebay  1125円  タッチ機能あり
3  Breadboard  ebay   483円  10個 483円
4  Breadboard Jumpre Cable  ebay   301円  1箱 140 pcs
 ———- ライブラリ———-
5  Adafruit_GFX  GFX  microbuilder氏に感謝
6  Adafruit_ILI9341  ILI9341  ladyada氏に感謝
———-   フォント ———-
7  Font Converter  squix  Daniel Eichhor氏に感謝
—– ESP32 開 発 環 境 —–
8  espressif/arduino-esp32  esp32  espressif TEAMに感謝
9  Setting Up ESP-IDF  Toolchain   Mac OS用

02a:Touch Panel 無し:タッチパネル不要の場合。
02b:Touch Panel 有り:タッチパネル必要の場合。

ライブラリーと ESP32 対応:defined(ESP32) の記述。
Adafruit_ILI9341 は「defined(ESP32)」が追加され ESP32 で動作します。
ESP8266 の SPIの記述 は ESP32では使用出来ない様です。


.
配線:TFT基板の画像は裏側で 「配線表」は表側からの並びです。
_  TFTの端子と ESP32のGPIO端子が 最短で直結できる配置にしました。

TFT Display 裏側 端子名。

  TFT    基板表側 配線表
SDO LED SCK SDI DC RESET CS GND VCC

メモ:RESET は 3V3 へ接続でも可能です。


.
DEVKIT V1 配線:ミニブレッドボードを4連結。配線8本。

  DEVKIT  GPIO   ,    TFT    基板表側 配線表
GPIO D26 D27 D14 D12 D13 GND  VIN 3V3  3V3
TFT SCK SDI DC RESET CS GND LED  VCC



メモ:GPIO端子は D25表示(例) ですが スケッチでは  25 を記載します。


.
NANO32 配線:ミニブレッドボードを3連結。配線8本。

  NANO32  GPIO   ,    TFT    基板表側 配線表
GPIO 12 13 00 9 10 11  GND 3V3  3V3
TFT SCK SDI DC RESET CS GND LED  VCC



メモ:GPIO : 9=SD2, 10=SD3, 11=CMD(SCS). RESET=3V3 でも可能。


スケッチ:
Adafruit の Graphics Test の GPIOは 以下の様に設定します。
GPIO 端子は 全ての端子を設定します。CS, DC のみの設定は動きません。

DEVKIT V1

//                                      CS,DC,SDI,SCK,RESET,SDO);
Adafruit_ILI9341 tft = Adafruit_ILI9341(13,14, 27, 26,   12, 25);

NANO32

//                                      CS,DC,SDI,SCK,RESET,SDO);
Adafruit_ILI9341 tft = Adafruit_ILI9341(10, 0, 13, 12,    9, 14);

部品:ディスプレーは ebayで購入します。
_ 以下の条件にあったディスプレーは国内には無く 又 類似品の価格は約4倍
_ 程高い為に ebayで購入します。
_ 条件:240×320、3.3V、2.4″、SPI、TFT、ILI9341、Touch Panel、SD Slot。
_ 他の部品も国内は高いです。 例:ミニブレッドボードは 国内で 1個130円 や
_  216円(送料を含まない価格)ですが ebayは 1個49円です。

フォント:Adafruit_ILI9341 + Adafruit_GFX ではフォントを拡大するとギザ
_ ギザになります。奇麗なフォントを使用する方法は  Font Converter
_  ( Daniel Eichhor氏 ) を使用しフォントを作成します。
_  例:Library version は Adafruit GFX Font を選択し Roboto_plain_18.h を
_    作成します。それを自分のスケッチフォルダーの中に入れます。
_    スケッチでは #include “Roboto_plain_18.h” と宣言し
_    tft.setFont(&Roboto_18); tft.println(“Hello World,”); で表示します。

メモ:
_ DEVKIT  :購入時は電波は出力しない設定になっています。
_ NANO32:購入時は電波は出力しない設定になっています。
_      このままの状態で使用すると TELEC は不要になります。


.
参考:
Watch the ESP32 board:Arduino IDE へ ESP32 の開発環境を再構築する。
ESP32 with TELEC will be released.:初めての ESP32。


.
感想:
1. 費用:ESP32 の価格が高い為に 高額です。WeMos D1 mini の約5倍です。
_  今回の表示程度ならば WeMos D1 mini  (365円)で充分です。
_  さらに安価な ESP32 や TFT を探すのもポイントと思います。Daniel Eichhor
_  氏は この辺を丁寧に探しています。

2. TFT ライブラリー:squix : Daniel Eichhor のライブラリーは 高速性と表示の
_  奇麗さで最高峰ですが SSD1306 用である事と ESP8266 内部を使用している
_  為 現時点では ESP32 ではエラーがでて使用できません。
_  Adafruitのライブラリーは かなり遅いです。3D Cube のスケッチは 遅くて
_  使い物になりません。速度に見合った使い方になり ライブラリー次第で
_  高速抽画ができると思っています。
_  ESP8266 は 周波数を160MHzにしないと Wdt Reset の発生は大きくなります。
_  さらに Wdt Reset を軽減する為に yield(); を入れますが これは なんだと
_  思うくらいの妙な記述で ESP8266のバグではないかと 思うくらいです。
_  ESP32 では この yield(); の記述は不要になり 使用するとエラーがでます。

3. ESPRESSIFの戦略:ESP32 の1つに GAME を目標に DMA +パラレル方式を
_  掲げています。現在  ESP-WROVER-KIT 開発ボードを製作し SPI 方式で
_   安価な TFT を動かしています。ただし SPI方式では これ以上のピクセル数
_   は難しく パラレル方式が期待されます。Arduinoでは既に完成されています。

4. 大きさ:DEVKIT と NANO32 は大きく ブレッドボードを使用する時に少々
_  勝手が違います。ブレッドボードは試験用で使用時はケースに入れますので
_  取り付け基板が必要になるかと思います。それにしても WeMos D1 mini より
_  も かなり大きなケースになりそうです。

5. TFT 接続基板:2.4 inch TFT 基板と D1 mini を接続する基板があると 容易
_  に作る事ができます。そこで Daniel Eichhor氏は TFTと D1 mini pro の
_  接続基板を作られました。TFT + 接続基板+ D1 mini proをハンダ付けし
_  て直ぐ出来る素晴らしい方法です。
_  これを基に私は 接続基板を使用せず  VCC=3V3, GND=GND, CS=D7,
_  RESET=D6, DC=D5, SDI=D0 を直付けし GND=D8, SCK=D2 を2本の
_  ワイヤ−配線で作りました。これで基板を作る手間が不要な事や厚さを
_  薄くする事が出来ます。ただし少し上側にスペースが必要になる事と
_  タッチセンスの配線は省略しています。
_          
_  


 

Written by macsbug

12月 16, 2016 at 10:46 pm

カテゴリー: ESP32, ESP8266

ESP32 Development Board with TELEC Memorial photograph

leave a comment »

ESP32 Development Board 到着記念写真。             2016.12.12

ESP-WROOM-32 ,  211-161007

DOIT/SmartArduino 「ESP32 Development Board with TELEC」
注文先:AliExpress の Store:iHardware $21.05
輸送機間:12月3日に注文し12日に届く速さ。

DEVKIT V1 と書かれています。


ESP32 Development Board :ブレッドボードは 2つ必要。I2C は離れている(黄と緑)。
NANO32:3V3 以外は I2C OLED を直付けできる。
nodeMCU ESP8266:I2C OLED を直付けできる。

.
USB 5V の消費電流:
ESP32 Development Board with TELEC:80mA
NANO32:70mA
.
3D Cube Demo Report :2016.12.13 版 arduino-esp32 開発環境。
_ ESP32 Development Board:時間を於くと停止する。
_ NANO32:時間を於くと停止する。初回の開発環境は正常に動作し続ける。
_ nodeMCU ESP8266:正常に動作し続ける。
2016.12.14 に I2C の Rev があり UPDATE 後6時間モニターしOK。2016.12.14

その後 15日の朝も動作中を確認。arduino-esp32 ではこの間に3回の Rev あり。
開発メンバーの方々 ご苦労様でした。
その後 継続して I2C の Revision が続けられています。
.
いわゆるTELECとは:高速無線LAN情報局より抜粋。
特定無線設備(無線LANや携帯電話などの電波通信機器)の基準認証制度のことを、
俗にTELECといいます。昔、登録証明機関が財団法人テレコムエンジニアリング
センター(TELEC)のみであったことからそう呼ばれています。認証番号
(証明番号)はTELEC番号などと呼ばれます。
.
TELEC 211-161007:211 は 登録番号で登録証明機関の
Bay Area Compliance Laboratories Corp です。登録外国適合性評価機関
最新のリストは平成28年08月31日で12月現在まだ リストには掲載されていません。


 

Written by macsbug

12月 12, 2016 at 2:59 pm

カテゴリー: ESP32, ESP8266

Watch the ESP32 board

leave a comment »

2016年12月現在の ESP32 Development Boards の一覧表です。     2016.12.09

最新情報:2016.12.22
質問:技適対応の ESP-WROOM-32 with TELEC(モジュール) は 販売されているか?
答え:この記事投稿前から現在まで何処にも販売されていません。

質問:最低価格の技適対応 ESP32は?
答え:2016.12.22:
_ ebay:最低価格 $11.39 は Contact付きです。他 21日は販売業者無し。
_ ebay:3つの業者が出てきました。価格が変動しています。
_ ebay:EUR 14.59, USD 18.99, USD 23.99。
_ Aliexpress:販売されています。価格は $24.85 〜28.99 です。

この経緯から何かが操作されているように見えます。


12月現在の espressif / arduino-esp32 によると ESP32 開発環境 の Arduino IDE には
7つのボードが設定されています。
boards.txt の build.f_cpu は 160MHz から 240000000L (240MHz) になりました。
WeMos の ESP32 版 LoLin32 が期待される中で 設定にはあるものの まだ未販売です。

WeMos LoLin32:
_ Blink Community の hutje氏が 11月5日 に
_ WeMos is currently working on the WeMos LoLin32! と答えています。
_ 16日 github.com/espressif/arduino-esp32 に “WEMOS LoLin32” が追加されました。


.

 

 

Nomen Shop Cost $ Picture
WeMos LoLin32 WeMos ? .
Widora-Air Taobao 7
ESP32
Development Board
with TELEC
ebay
with contact
11.39
ESP32-Bit Taobao 11.6  
AnalogLamb
ESP32
Development
Board
AnalogLamb 12.50  
Noduino
Quantum
Taobao 13.25
ESP32
Development Board
with TELEC
ebay EUR
14.59
Widora-Air AliExpress 15
Espressif
ESP32-DevKitC
(“Core Board”)
Adafruit 15
Espressif
ESP32
Core Board
Olimex 17
Watterott
ESP-WROOM32
-Breakout
Watterott Electronics 17.95
Ai-Thinker
NodeMCU-32S
Banggood 18
ESP32
Development Board
with TELEC
ebay 18.99
PyCom
WiPy 2.0
pycom 19.95  
AnalogLamb
Maple ESP32
AnalogLamb 20
SparkFun
ESP32 Thing
SparkFun 20
Gravitech/
MakerAsia
Nano32
Gravitech US 20
ESP32
Development Board
with TELEC
Banggood 21.12
SparkFun
ESP32 Thing
Digi-Key 21.25
ESP32-Bit ebay 21.42
Ai-Thinker
NodeMCU-32S
AliExpress 22  
DOIT/
SmartArduino
ESP32 DevKit
with TELEC
SmartArduino 22.87
DOIT/
SmartArduino
ESP32 DevKit
with TELEC
AliExpress 23.36
ESP32
Development Board
with TELEC
ebay 23.99
Official DOIT
ESP32
Development Board
AliExpress 24.00
Ayarafun/
LamLoei
Node32S
Gravitech Thai 24.75
Gravitech/
MakerAsia
Nano32
Gytron 24.75
Gravitech/
MakerAsia
Nano32
Gravitech Thai 24.75
ESP32
DEvelopment
Board
tindle 24.95
PyCom  LoPy pycom 29.95
PyCom  SiPy pycom 35.95

メモ:
1. ESP32 (ESP-32S, ESP-WROOM-32) の チップのピン数は 38 pin。
2. ESP32-Bit で使用されている ESP32 の チップのピン数は 30 pin。
3. ボードのピン数は 38 か40 pin。最小ピン数は 28 pin。
4. ESP-WROOM-32 with TELEC チップの単体販売はされていません。


余談:
以下は WeMos の LoLin ですが ESP8266 版で ESP32版 ではありません。
WeMos LoLin V3 NodeMcu Lua WIFI Development Board


ESP32-DevKitC:espressif 公開の ESP32 ピン配置。 espressif / arduino-esp32  doc


.
Nano32 ピン配置(自作)。

ESP32 SoC Packegae Identifier Explained

ESP32 Demo Board V2

ESP-WROVER-KIT
ESP-WROOM-32 with TELEC + 3.2″ 320×240 TFT SPI ILI9341 (Z320IT010)


開発環境の構築:arduino-esp32 の更新による再構築。
新しい arduino-esp32 の Installation : Instructions for Mac の指示通りに
_ ターミナルで実施しましたが arduino-esp32.git でエラーがでました。
_ この辺のレベルになると 私は どうしたらいいか解りません。
.
_ 以下の手順で使用できる様にしました。
_ 1. ダウンロードZIP をダウンロードし フォルダー名を esp32 に変更。
_ 2. 新しいフォルダー hardware と espressif を作り フォルダーは
_    hardware / espressif / esp32 という階層にします。
_ 3. esp32 の中の tools には xtensa-esp32-elf (マック用) を入れます。
_    ESP-IDF Getting Started Guide:2Page:2. Getting Started
_     2.2.1. Downloading the Toolchain:MacOS です。
_    又は「ESP32 Beginning」を参照してください。
_ 4. hardware フォルダーを user / document / Arduino の中に入れます。
_ これで 新しい開発環境でボードが表示され実施できます。

2016.12.25 追記:ターミナルで arduino-esp32 の Installation ができました。
出来なかった理由は git や他のものがインストールされていない為です。
手順は省きますが 幾つかの入っていない物をインストールしました。
結果 arduino-esp32 の Installation の指示通りにインストールできました。


追加された機能:analogRead が増えました。これは嬉しいです。
_ これまで ESP8266は 1個のアナログ入力しかありませんでしたが 16個
_ にもなりました。A0〜A19 までの動作を試して動きました。
_ これでアナログ分野も自由に複数使用できる事になり ホットしました。
_  DAC1, DAC2 ( variants / nano32 / pins_arduino.h に記載) も使用できる
_ ようで 興味津々です。

Things that work:

  • pinMode
  • digitalRead/digitalWrite
  • attachInterrupt/detachInterrupt
  • analogRead/touchRead/touchAttachInterrupt
  • ledcWrite/sdWrite/dacWrite
  • Serial (global Serial is attached to pins 1 and 3 by default,
    there are another 2 serials that you can attach to any pin)
  • SPI (global SPI is attached to VSPI pins by default and
    HSPI can be attached to any pins)
  • Wire (global Wire is attached to pins 21 and 22 by default and
    there is another I2C bus that you can attach to any pins)
  • WiFi (about 99% the same as ESP8266)

状況把握:
espressif / arduino-esp32 の Commits に現状の問題点と対応が
書かれています。


I2Cライブラリが動作しない:解決方法。
_ 常に最新版を使用する事で解決できます。この記事の記載時には動きませんでしたが
_ その後 再度ダウンロードし動く様になりました。


感想:
新しい開発環境の設定がいまいち解らない。何故 arduino-esp32.git でエラーがでるのだろうか。
今回の方法で Lチカは動くが OLED 接続での動作はしない。、、これは後に解決する。
.
espressif / arduino-esp32 於ける comment は 12月12現在で 108 の comment がある。
まだ開発途上なので 動かない物が多いようで 1つ1つ動作を確認し動かない物は保留した方が
いいようだ。ESP8266 で優秀なライブラリーはESP8266 の内部を熟知して高速化した物もあり
ESP32 ではエラーがでて使用できない。


 

Written by macsbug

12月 9, 2016 at 10:48 am

カテゴリー: ESP32, ESP8266

ESP32 Beginning

leave a comment »

Nano32 を試してみました。                   2016.11.03

OLEDのVCCは Nano32のV3(3.3v) から配線しGND,SCL,SDAは直挿ししました。
ピン数は40ピン。ピンの縦幅は ブレッドボード上下に1ピン空くサイズです。
スケッチで WiFi を停止し without TELEC にします。
2016.11現在の Arduino IDE ESP32 は BLE, Analog入出力, RTC 等は未実装です。
基板中央下に NANO32 と書かれた左に LED があり IO16 と書かれています。
この LEDは GPIO 16 で pinMode(16, OUTPUT); で「Lチカ」ができます。

Nano32 Front

Nano32 Rear

Nano32 (40pin)

NodeMCU-32S Front (38pin)

NodeMCU-32S Rear (38pin)


 

準備その1:ハード編
1. Nano32(ESP32) ボードの入手:
Cytron:NANO32 IoT Development Board:今回の注文先です。
_ FedExを使用し $39.55($24.75+14.80(送料):4237円 と高い商品です。
_ マレーシアのCytronに10月20日に注文し25日に到着。書類は丁寧。
_ ピン数は40。基板裏には作られた GRAVITECHとmakerasia の文字。
GRAVITECH:NANO32 IoT Development Board – 4MB
ESPert:Get your Nano32
Aliexpres:NodeMCU-32S  が一斉に発売しました。最安は$23.20です。
_ ピン縦幅は ブレッドボード上下に1ピン空くサイズです。
_ ピン番号は ボードの裏に印刷 されています。これは非常に見づらい。
_ ピン数は 38。FTDIはCP2102。LDOはAMS1117-33(ノイズ大)。
ebay:NodeMCU-32S が一斉に登場してきました。
_ NodeMCU-32S:2718円($25.99)。Aliexpressより少し高い。


 

準備その2:ソフト編。 条件は マック( macOS )です。
ESP32用フォルダーを用意しArduino IDE へインストールする。
1. espressif から「arduino-esp32」をダウンロードする:
_  「arduino-esp32-master 」フォルダーが出来る。
_  「arduino-esp32-master 」フォルダーの名前を「esp32」に変更。
_  「esperssif」という名前の新規フォルダーを作る:
_  「esperssif」フォルダーの中に「esp32」フォルダーを入れる。

2. macOS用の 「xtensa-esp32-elf」をダウンロードする:
_   詳細:espressif / esp-idf:Set up of Toolchain for Mac OS
_  「xtensa-esp32-elf」ファイルが入手できました。
_  「xtensa-esp32-elf」フォルダーを「esperssif」フォルダーの中
_   esperssif / esp32 / Contents / hardware / tools に入れます。
_  これで ESP32用フォルダーの準備ができました。
_  

3. Arduino IDE 本体に 「esperssif」フォルダーをインストールする:
_  Arduino IDE アプリへ マウスを当てて右クリックします。
_ 「パッケージの内容を表示」され 選択すると中が開きます。
_ 
_ 「Contents」フォルダーの中の「Java」を開きます。
_ 「hardware」フォルダーの中に「esperssif」フォルダーを入れる。
_  Arduino IDE を閉じて終了です。

_  他の方法としてターミナル操作でインストールする方法もあります。

2016.12.25 追記:ターミナルで arduino-esp32 の Installation ができました。
これまでエラーで出来ませんでしたが git や他の物がインストールされて
いない為にエラーが起きました。
手順は省きますが 幾つかの入っていない物をインストールしました。
結果 arduino-esp32 の Installation の指示通りにインストールできました。

4. Arduino IDE を起動。ボードマネージャ…に ESP32 が3つ表示される。

_ Flash Frequency は 80MHz と 40MHz。CPU Frequency の表示は無し。


 

ESP32 ( Nano32 ) 初めのメモ:
1. スケッチの起動:スケッチを書込みした後は そのままでは動きません。
_  書込み後に 基板の EN ( Reset ) スイッチを押します
_  注:ESP8266 とは異なり書込み後に自動的に起動しない為 慌てない事。

2. 命令の違い:ESP8266 での エラー や GPIOを高速操作時の不具合である
_   Wdt Error は発生しない為 以下の3つの命令は不要です。
_   ESP32 では以下の命令はエラーが出ます。
_   -1:extern “C” { #include “user_interface.h” }
_   -2:ESP.wdtDisable();
_   -3:yield()
_  これはどういう事を示すか。つまり ESP8266 はハードに問題があった
_   のではないか?と想像してしまいます。
_  ESP8266 は Wdtエラーの為にスケッチやライブラリーに yield() を入れ
_   て解決していますが ESP32 では エラーが出る為に 削除が必要です。
_  これまでの スケッチは おおよそ直ぐは動きません。

3. LED:LED は GPIO 16 に接続されており 16 でLチカができます。
_     NodeMCU-32S は GPIO 2 , Sparkfun ESP32 は GPIO 5 です。

4. ピン配置:Nano32のピン配置は都合良く 左上は I2Cの GND,SCL,SDA
_  と並び I2C OLED を直付可能。ただし VCC 3V は線を引く必要がある
_  のでもう一工夫欲しかったと思う。配線が少ない事は楽になります。
_  NodeMCU-32S, Sparkfun ESP32 のそれぞれのピン配置は異なります。

5.  速度:3D Cube の回転速度は ESP8266 とほぼ同じでした。
6.  I/Oの数:ピン数が多いので気が楽になります。
7.  Arduino IDE での書込み速度:速いです。
8.  消費電流:この回路のUSB 5V の消費電流は 61mAでした。
9.  書込み後に ENスイッチを押す件は 別な方法がある事を期待します。

10. ESP32の現状:
_  sparkfun esp32-thing-hockup-guide の説明によると 未実装が有ると
_  の事。Bluetooth, Analog Input (analogRead([pin])),Analog Ouptut
_  (analogWrite([pin], [value])), WiFi Server and WiFI UDP,Real-Time
_  Clock, Touch-controller interface で 確かにエラーがでます。

11. Nano32のCPU Crystal Frequency:40MHzです。(Nano32の説明書)。
_  
_  Sparkfun の CPU Crystal Frequency は 26MHzです。
_  CNXSoft – EMBEDDED SYSTEMS NEWS には 160MHz と記載あり。
_  Nano32 の board.txt は「nano32.build.f_cpu=160000000L」と書かれている。
_     ESP32 Technical Reference Manual の 3.2.3 CPU Clock に最高160MHz とある。
_  Espressif :ESP32 hardware Design Guideline に 40MHz+-10ppm とある。
_  page 3:40MHz, 26MHz, 24MHz サポートと書かれています。
_  Crystal は 40MHz で 内部はPLL回路で 160MHz動作していると判断します。
_  Espressif ESP32 Core Board:40MHz です。
_  

12. AUTO PROGRAM CIRCUIT (書込み自動化) が組み込まれています。

13. ESP32の資料Espressif Systems:ESP32 Documentation
_  ESP-WROOM-S2 DatasheetESP32 Technical Reference Manual がある。

14. HACKADY:HOW TO GET STARTED WITH THE ESP32:開始の手順。


 

ESP8266とNano32の I2C OLED表示速度比較:
_ 結論:たいして速度は変わりませんでした。
_ 条件:LibraryはAdafruitのESP Adafruit SSD1306とAdafruit GFX。
_  ESP8266のCPU Frequency選択は 160MHz。ESP32(nano32)は
_  表示が無く Flash Frequency 80MHz を選択。
_  ESP8266(160MHz)(左) と Nano32(Flash 80MHz)(右)


ピンアサイン:nano32


 

感想:
1. Nano32 は価格が高いですが調査の為に購入しました。NodeMCU-32S も高い
_  ですが調査の為に注文しておきました。
2. Lチカは 基板にある LED が GPIO 16 ですので 16 を指定し動きました。
_  ESP8266 で動いていたスケッチは おおよそエラーがでて動きません。
_  OLED の 3D Cube は 動きました。理由は Adafurit の Library の為で ESP8266
_  への対応が低い為と思われます。
3. ESP32 は開発中ですので espressif の「arduino-esp32」は変わります。
_  初期のボードは「ESP Dev Module」しかありませんでした。
_  そして 各PC用の 「xtensa-esp32-elf」が必要です。
4. 疑問点:
_  速度は現Arduino IDE ESP32環境での結果ですので疑問を持っています。
_  1. Nano32 や NodeMCU-32S のCPUクロック周波数は幾つなのか?
_    EspressifSystem の John Lee氏が 160MHz と述べている。2016.11.11 追記
_   ともの技術メモ:ESP32のβ版がもうすぐリリース!?
_  2. Arduino IDE ESP32 のボードに CPU Frequency の表示が無いのは何故か?

5. 解らない事や不明な点 記載ミスもあるかと思いますがご了承ください。


Written by macsbug

10月 31, 2016 at 5:47 am

カテゴリー: ESP32, ESP8266