• ESP32-PICO-D4 is on my board now!

    kodera2t09/10/2017 at 00:41 0 comments

    Very recently, Espressif introduced a very useful chip, which fully integrates all required component for WiFi/Bluetooth application. This time I quickly made a board using it.

    At this moment, I could not receive ESP32-PICO-D4 (will be delivered soon to me) and I removed chip from a developing board released by Espressif . Actual operation can be found in the following movie... Have fun!

  • New "grande" ESP32 Monster board is born..

    kodera2t07/16/2017 at 12:56 0 comments

    My original ESP32 Monster board has both positive and negative comment. Mostly the negative comment related to the part arrangement issue, especially backside mounting of ESP32 module. This time I completely fixed the issues by new "GRANDE ESP32 MONSTER"

    YES, everything is mounted on the surface and also hole to fix the board is prepared. Compared to the original one, the size is almost doubled but it looks much more smarter?

    Basically the circuit is same as the original one, except for Lipo charger circuit enable/disable jumper. Some user of the original board had a comment wanting to use USB-bus power (or 5V) so the additional jumper is arrange at the corner. Except for that, the circuit is same.

    The actual shape and operation (sample code, just taking IP address from DHCP server and reacting ping). Have fun!

  • Wonderful implementation by n24bass of web interface!!

    kodera2t06/18/2017 at 11:05 0 comments

    Everything is explained in the following movie...!!!

  • Wonderful implementation by n24bass for station SW in web radio

    kodera2t05/20/2017 at 09:54 0 comments

    Now web radio station switch is implemented by n24bass. The code is available at

    https://github.com/n24bass/ESP32_OLED_webradio

    This improved code is merged to my GitHub

    https://github.com/kodera2t/ESP32_OLED_webradio

    and its operation can be found in the following movie... have fun!

  • How to start Bluetooth I2S audio?

    kodera2t05/15/2017 at 06:22 1 comment

    As mentioned before, a great programmer "MrBuddyCasino" succeeded to make "practical" ESP32 web radio by I2S and just last week, he again added Bluetooth Audio support in the same source. As same, I quickly added OLED display driver to this wonderful source, which is uploaded to

    https://github.com/kodera2t/ESP32_OLED_webradio

    For compiling this source, please note to use latest ESP-IDF otherwise you will see lots of errors.

    Now I would like to introduce "how to activate bluetooth audio by ESP32"!!

    As the first step, you need to enter Component config and

    Check (activate) bluetooth and entering it....

    Activate "Classic Bluetooth", then go up again to top level...

    and entering Web Radio / Bluetooth Speaker selection

    , and just select activate Bluetooth Speaker Mode will turn your ESP32 module into Bluetooth Audio Receiver!!!!

    In the https://github.com/kodera2t/ESP32_OLED_webradio , I slightly changed source to define bluetooth device name by include/bt_config.h, which default is "hogehoge_mont".

    Just after binary uploading, you will see your ESP32 device on iPhone or any bluetooth capable device and just connect to it, your ESP32 module become "audio receiver" !!! Of course, sound quality is perfect if ESP32 with proper I2S D/A converter, like this board!

  • How to develop program by esp-idf?

    kodera2t05/09/2017 at 05:36 0 comments

    ESP32 is quite powerful MCU but unfortunately at this moment Arduino environment cannot make it show ESP32's full ability. Very quick way to maximize ESP32 power is using ESP-IDF, the Official development framework for ESP32. It can work on Win, OSX, and Linux and here I would like to show the flow how to program ESP32 by esp-idf on OSX.

    Here I would specifically show the case of WiFi web-radio application with OLED display, which can be downloaded from GitHub. After finishing esp-idf environement arrangement, you can put the project folder within esp folder as show in the above picture...

    Inside project folder, you will see lots of files and here app_main.c is the main C source. If you installed Xcode, may be C is associated with Xcode and you can edit source (not compile) by Xcode comfortably.

    If you want just try web radio by my board, you can skip C-code editing but just type

    make menuconfig

    will show...

    the blue-backed menu in console. Yeah you can remember linux kernel compiling in tens years ago! If this menu does not appear in console, your esp-idf environment is incomplete. Please re-check Espressif web site procedure.

    You also can change it through source code editing but it is quite handy to change SSID and password for WiFi connection by this menu.

    Please change SSID and password matching to your environment.

    If your application does not need WiFi connection, you don't need to touch the previous procedure of SSID/password, but this "Default serial port" should be matched to your ESP32 board. Every time changing board, please check serial device by just "ls /dev/" and find serial device recognized by OS. (In Windows, it may be /dev/COM4 or something.)

    After editing/saving everything you need, exit menuconfig and just type

    make -j5 clean; make -j5; make flash

    "-j5" is suitable if your computer has quad core or more, and it will boost-up compile.

    After minutes, you will be backed to command prompt after binary uploading. If no error and seeing "Hard resetting..." then new binary is uploaded to ESP32 successfully!! Have fun1

  • by-product: Funny web radio!

    kodera2t05/04/2017 at 11:41 0 comments

    Also this is just a by-product, but the wonderful code in
    https://github.com/MrBuddyCasino/ESP3...
    is modified to support OLED display to show receiving station information! Fun to see, have fun!

  • Ether/OLED sample code is done.

    kodera2t05/04/2017 at 06:07 1 comment

    The ESP Monster board (which is available at https://www.tindie.com/products/microwavemont/esp32-monster-board-ether-can-oled-all-in-one/ ) has Ether/OLED/Can-bus/Lipo charger/FTDI, all in one board.

    This time I made a sample code of Ether and OLED, which is uploaded to my GitHub account at

    https://github.com/kodera2t/ESP32_OLED_LAN8720_sample

    Actual operation can be found in the following movie.. Have fun!

  • Quick note: how to re-arrange I2C?

    kodera2t05/01/2017 at 06:32 0 comments

    Not limited to I2C, most of function of ESP32 can be re-arrangeable in Arduino IDE. It is quite easy just by editing "pins_arduino.h" in your ESP32 compiler environment. For the case of Monster board, I2C should be changed from GPIO21/22 to GPIO13/14 as follows

    YES, this is all you need to re-arrange. please note some of special pins (GPIO 12, 0, 1, 3, ....) are not accessible because each of them has some function during booting.

  • Details about board

    kodera2t04/30/2017 at 00:38 0 comments

    This is the pinout of the monster board. It is a composite board with three big function

    • Ethernet (100BASE-TX) by LAN8720A
    • CAN-bus by SN65HVD232DR
    • 1.3 inch OLED display

    RMII consumes lots of GPIO as written in the attached above picture. At this moment, Ether and CAN-bus programming requires Espressif's environment, esp-idf

    This is the schematic of main part. Nothing special except for re-arrangement of I2C connection to GPIO13/14, because original GPIO21/22 are occupied by LAN8720 connection, which is not re-arrangable. (LAN8720 connection is dominant..)

    And this is the sub part of schematic. LAN8720 part needs several attention for 50MHz clock generation. Clock signal should be connected to GPIO0, but if it is connected for booting time, ESP32 does not boot-up and will wait for new binary upload. Very short instance just after power on, 50MHz clock should be turned-off (or clock part should be disconnected). Inserting very simple R-C delay in clock EN terminal of oscillator can avoid this problem (R30 and C2 in the schematic). By this completed circuit, every function works without any problem and ESP32 boot up correctly.