Special developer offer: ESP32 (WIFI +BLE) wireless board

As sort of a reward and thank you for all you developers active on (or at least reading) our forum, we wanted to make a handful of our ESP32-based WIFI/BLE modules available to you first! We have around 25 of these little ESP32 based boards ready to send out and plug into your M2. This would be the 2nd revision we’ve built with the help of Espressif, who helped us tune the trace antenna.

We’ve done a bit of testing with these and they work quite well. The Espressif repo is very active with many new features/examples added all the time. You can even use the Arduino IDE to program these.

For more advanced functionality, you can use the “Espressif IoT Development Framework”

How do you get one?

Stop over to our store, place an order and we’ll send you one of these for free within the US. We need to charge $15 shipping for international orders.


So, why are we charging you $14 for these beta boards? We think this is a small barrier to entry to ensure that they end up in the hands of the most motivated developers. Plus, just like our M2 Developer Edition program, if you post up a cool project, share some sweet code or otherwise contribute to the open source community, we’ll send you a “release” version of this board later.

Project ideas:

  • Make M2 work with ELM-based apps (like Torque)
  • Wireless bootloading of both ESP32 and M2
  • more to follow…

Looking forward to your feedback and seeing some cool projects!

1 Like

A post was merged into an existing topic: Account/Ordering issues

A post was split to a new topic: Account/Ordering issues

Got notification that was shipped out today! Look forward to hooking it up and seeing how it goes.

WOW! That was fast, we’ve pretty much shipped out all of these beta boards. While the hardware is headed your way, let’s continue the development conversation.

We’ve posted the schematic here and the component locator PDF here.

Programming the “ESP32 Board” is pretty straightforward. To put it into Bootload/Flash mode, you hold GPIO0 (Pin 7 of JM1) LOW and then RESET via CHIP_PU (Pin 5 of JM1). From there you simply upload via Arduino IDE with these settings:

We’ll also need to program M2 to act as a “passthrough” and toggle GPIO0 and RESET as needed. A couple known other items:

  • Currently only UART is broken out to XBEE pins. We’ll probably want to break out more pins (SPI, etc) to the XBEE headers on a later revision. We’ve got some test points broken out in the meantime.

  • We have a 32Mbit FLASH installed on these boards, but we can go up to 128Mbit I believe.

  • As you’ve probably noticed, developement on that ESP32 is moving quickly! Every other day it seems that there are some additional examples posted to these repos.

How can you help?

Let’s start with simply programming the ESP32 module through M2. We’ve pre-programmed the included example “WiFiScan” using a breakout board and an FTDI cable, but need to work out some bugs to flash through M2 still.

Thankfully, one of our friends and early developers has done some work on this and shared his code here:

This is a great start!

Hey Everybody! I’m super excited to have some more eyeballs on the work I’ve done so far. I’m super happy and answer any questions and help out in any way I can!

Got mine on Tuesday the 28th. Just got online so I can see how it is intended to be oriented on my board.

Been real busy with some vehicular repairs but hopefully will be able to jump on building stuff for this stuff shortly!

I am assuming once this devices firmware is loaded we should be able to just write to it from the due the same as a serial port? Or will we have to do some control and processing from the due board?


The Captain is IN! Thanks so much for your help with this project, Morgan.

I might need some guidance getting things set up to use the Arduino IDE to program the ESP32 through M2. I’m able to program ESP32 “manually” using a breakout board, a couple switches and a FTDI cable, but not by using M2 to toggle the Flash/Reset pins and pipe data between the Native USB port and UART. I am probably forgetting something simple.

I modified your code to only act as a flashing tool. Here is that code.

After I send the ‘b’ command in the terminal like this,


Reseting ESP32
Delay: 500.
> ets Jun  8 2016 00:22:57

waiting for download

I switch the board in the IDE over to “ESP Dev Module” and try to flash one of the example sketches for the ESP32 and get this error:

A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header

So, I think we’re close: “waiting for download” is a good sign. I think?

I believe the issue here is by default esptool is waiting for that response you got got default. The only way I have tested is by using the ESP32 IDK. Have a look at this config.

These lines are telling esptool to just go ahead and start programming without waiting for a response. I’m not setup to use ESP32 Arduino at the moment so I cannot test anything.

Digging a bit into ESP32 boards.txt

Not sure if that line is exposed to the menu but changing that to false might do the trick.

The Due runs a basic control system. So far the functionality available is…

  • Set GPIO0 (in prep for boot mode)
  • Set RST (resets ESP32)
  • Enable pass-through

Using a combo of these things you can flash the ESP32 over the Due USB cable.

Presently it uses a timeout to establish the flash is complete, if no data has been sent for 3 seconds it resets the ESP32. This is pretty delicate but needed due to the lack of encoding for the pass-through. I’m working on a command-line tool that can handle these extra parts but not yet sure if it’s the right approach.

Hey All! I wanted to give a quick update on getting this to work. I’ve been working with @josh over the last week to debug the issues and think I have it worked out to the ESP32 can be flashed from Windows.

The ESP32 board description needs modification. Where you installed that you’ll find a file called platform.txt It contains instruction on how the program is compiled and uploaded. On the second to last line 2 things need to be changed. hard_reset and soft_reset both need to be changed to no_reset. Then after restarting you should be able to flash at 115200 baud. To get into flash mode open the serial monitor and send b with no line ending.

The output will be…

Reseting ESP32
Delay: 500.
> ets Jun  8 2016 00:22:57

waiting for download

From there you can close the monitor and flash the ESP32. I will reset after the flash completes.

Found this while trying to figure out whether I should get a WiFi or a Bluetooth module for ELM327 emulation. I am not part of the developer program, but I am definitely queued to get one of these when you have them ready :thumbsup:.

This is interesting. ESP32 is nice. Would it be possible to use MicroPython for ESP32 with the Macchina? https://github.com/micropython/micropython-esp32

I don’t see why not. But I’m not sure it supports OTA (Over The Air) updates yet so some sort of gateway in the Due will still be required to flash.

Anyone do anything cool with these boards yet? We’re super curious to hear what everyone is up to.

We’ve been getting some feedback on the design here and there, so we’ll keep track of suggestions in this thread. Feel free to contribute!

  1. Connect LED to a GPIO on the ESP32 instead of just constant +3.3V.
  2. Connect more of the pins from the two 10 pin headers to pins on the ESP32. (need to decide which ones next. There are more open ESP32 pins than pins on the 10 pin headers.

That first one is the most notable think I can think of off hand. Not having any feedback when first getting started slowed progress.

Ive been focused on getting my truck back on the road and just was involved with a big event so I haven’t even tried doing anything with this yet. It does light up when I install it but have not tried to program it or anything yet.

Guess I am waiting to see what you guys come up with since someone is already working on this and I need to get my butt in gear on the J1850 stuff.


A post was split to a new topic: Finding projects that need help

are any more of these boards available? Or is there some other ESP32 the could be used?

When will this be available?