What firmware do I use for DIY?

I’ve been experimenting with ESP32 boards with LoRa boards. I would like to load Meshtastic and test a few things out. What firmware do I use? Here is my hardware setup:

RFM95 to ESP-WROOM-32
MISO to GPIO 19
MOSI to GPIO 27
SCK to GPIO 5
NSS to GPIO 18
RESET to GPIO 14
DIO0 to GPIO 26
DIO1 to GPIO 33
DIO2 to GPIO 32

GPS to ESP-WROOM-32
TX/RX to GPIO 16/17

OLED to ESP-WROOM-32
SDA/SCL to GPIO 21/22

Your setup looks almost identical to the “DIY V1” variant.

DIY V1 has RESET connected to GPIO 23 (it uses GPIO 14 for something else).
If you make that wiring change, you might be able to use the “DIY V1” variant at https://flasher.meshtastic.org/, without needed to modify the firmware code.

Nope. I switched to GPIO 23 and still get massive core dump. It did the same thing when RESET was on GPIO 14.

Could it be that DIY V1 doesn’t like the RFM95? I’ll try a SX1262 sometime this weekend and retest.

Oh hey, actually, one idea. I did set up a device which used RFM95 the other day, and I think the pin mapping was a bit funny…

Have a go with DIY V1 and:

  • NSS to GPIO18
  • DIO0 to GPIO 26
  • RESET to GPIO 23
  • BUSY to GPIO 33

(DIO2 and DIO3 unconnected)

I tried my SX1262. Same results.

I tried disconnecting the DIO2 as Todd suggested for my RFM95. Same results.

Here is what my serial output is. Rapid:

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
ets Jul 29 2019 12:21:46

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
ets Jul 29 2019 12:21:46

Did you try swapping the other pins to the new wiring too? Or just disconnect DIO2?

Actually something here is going wrong at a way lower level than just a misconfiguration maybe. Can you walk us through exactly how you’re flashing the device?

If everything’s going right with the flashing, I’d be tempted to even start disconnect hardware, piece by piece, and see which component is causing this.

Yes. I wired/connected as Todd suggested.

This go round I disconnected my OLED and GPS. The only think I had connected was the RFM95.

When I flash the ESP. I use the Web Flasher. I have to hold the ‘boot’ button down to begin flashing. But other than that. Everything flashes the same as a TBeam.

When it goes into core dump. I have to use VS Code/Platformio to erase the ESP32.

I just tried to load a few images with only my OLED display attached. No LoRa module. No GPS.

I still get core dump. Are any of these images made to work with a generic ESP32?

They certainly should. Do you have a link to where you got your ESP32 from? Is there any chance that it’s an ESP32-S2 instead of ESP-WROOM-32 or something?

I got them from Amazon. Here are a couple pictures.


Just wondering if you have tried it without the expansion board connected? Also wondering if maybe the ESP32 module itself has a hardware fault? Have you ever used it with, say, the Arduino IDE to confirm that it does work? I’m definitely just guessing things here at this point, sorry.

I have 4 ESP32’s. They’re all the same. The development board is pretty passive. It just breaks out the GPIO pins and power via its USB port(s). When I flash firmware, I have to use the ESP32’s USB port.

I’ve tried loading firmware ‘old school’ way with ESP Home Flasher and already built firmware files. Same results. Core dump.

I’ve tried building my own firmware in Platformio. I get an error early in compiling. It’s wanting me to load some ESP8266 SSD1306 driver/module. It has a long API key with it. I didn’t do that. I don’t want my Platformio associated with ESP8266’s.

I have noticed all the source files ‘platformio.ini’ file have nothing close to ‘esp32dev’. This is how I usually start my projects:

[env:esp32dev]
platform = espressif32 @ 6.7.0
board = esp32dev

All the other files in source have various other boards with unique configurations. I think these complexities are contributing to my error.

I don’t think there is a possible build for a generic out-of-the-box ESP32.

I do have some old ESP32 modules lying around at home, I’ll see if they put up a similar fight with the DIY V1 build later today. If you do set up a hardware variant that’s working on your device, it’d be great to hear what the config is, in case anyone else comes through here later on looking for a solution to the same issue :+1:

For what it’s worth, I just pulled a fresh ESP-WROOM-32 module out of the bag and flashed it with DIY V1 from the web flasher, and it has booted right up with no hardware connected:

ets Jul 29 2019 12:21:46

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:1184
load:0x40078000,len:13192
load:0x40080400,len:3028
entry 0x400805e4
E (832) esp_core_dump_flash: No core dumÀ[06]‚…Éѥѥ½¹found!
E (833) esp_core_dump_flash: No core dump partition found!
[    12][D][esp32-hal-cpu.c:244] setCpuFrequencyMhz(): PLL: 480 / 2 = 240 Mhz, APB: 80000000 Hz
”Ã[00][02]@[01]INFO  | ??:??:?? 0 

//\ E S H T /\ S T / C

INFO  | ??:??:?? 0 Booted, wake cause 0 (boot count 1), reset_reason=reset
DEBUG | ??:??:?? 0 Filesystem files (491520/1048576 Bytes):
DEBUG | ??:??:?? 0  /prefs/channels.proto (57 Bytes)
DEBUG | ??:??:?? 0  /prefs/db.proto (325 Bytes)
DEBUG | ??:??:?? 0  /static/.gitkeep (0 Bytes)
DEBUG | ??:??:?? 0  /static/Logo_Black.svg.gz (602 Bytes)

It’s worth noting that the flasher reports this devices chip as ESP32-D0WD-V3, rather than the ESP32-DOWDQ6-V3 which is claimed on the Amazon page for your boards. Maybe this is responsible for the differences we’re seeing?


Just at a glance, I can’t see any real differences between the board definition for esp32dev and esp32doit-devkit-v1, so I’m not sure using board = esp32dev would help, but it’s always worth a try.

It might be worth trying to change some of the ESP32 base flags, or, ideally, overriding them in platformio.ini for a new custom variant.

Have you tried using the “erase flash” option in the web-flasher, rather than PlatformIO? I’m not sure it makes a difference, just trying to think of any possible things to prod at, just in case.

Sorry, I missed this part initially. I’m not sure why you’re seeing an error like that. There’s actually an excellent doc page on building the firmware, which hopefully can get you started with that process.

I give up. I think the fault is in the brand/manufactor. All my other coding projects work except for this one.

I tried to compile my own firmware using Ubuntu and Platformio. I even got down to basics with command-line. Same results.

I did find this out:

My chip is the same. Just different version, manufactor and branding.

Unless I buy a totall difference ESP32… We’ll never know.

Thanks for all your assistance with this troubleshooting.

1 Like

It’s got me stumped too. Sorry we couldn’t figure anything. Let me know if you do solve it, I’m interested now!

If you do want to dig into this at some point, happy to try figure this out too.

I figured it out!! Needles to say… It was a Layer-8 problem. Being new to coding the ESP32. I didn’t fully understand the partitions. When I flashed a blank ESP32 with the Meshtastic web-flasher. It was only flashing the ‘app’ partition. Leaving the other partitions blank.

I discovered this when I was flashing with VS Code and going back through the logs.


1 Like