A few conversations in the Discord seem to suggest it should be fine with only the 4MB partition
Ouh ohâŚthat is not good. I must have messed something up.
Did you ask the Fluidnc guys? Maybe they have a work around.
Not normally. The chip doesnât actually âknowâ how much flash it has, it just starts at address 0 and executes various jump/branch codes from there. Unless thereâs something really funky with the way the chips lay out the flash space (which is somewhat of a throwback to older 8/16 bit designs, mostly), then the address block that the flash is at should just be one big chunk. Compiling for 4MB and flashing onto an 8MB will just mean that all the firmware will fit in the first half and be jumping back and forth. The other way round doesnât necessarily work because the flashing tool will try to flash and verify the extra 4MB, which wonât work because it doesnât exist.
Edit: Some workflows (the old Atmel micros, for instance) have checks where you have to specify the correct chip model and it will get verified before flashing, but I donât think thatâs the case here. I think the flash is external on these so is part of the assembled module, not part of the chip itself.
This seems to point to one of the several boot pins is floating somehow that should not be?
Maybe a poor choice of a component. That $ss thing is really sitting wrong with me. It seems odd. When the big batch of Genuine Espressif boards gets here we will really see if it doesnât happen with them.
Time to bust out the scope again when youâre back in on Friday.
Okay I am out of ideas.
The new boards $ss seems to be perfect, they flash perfect in the web installer, and work perfect.
The one issue I am worried about is that they do not boot right on USB only. I tested all the pins any that should be high are and any that should be low are.

I put it on the scope checked a bunch of pins and they seem identical to the Espressif ones other than they do not start spitting out data on pin4.
If I have it on USB no jackpot no SSID, Use the fluidterm (ctrl+r) to reset it and it boots fine. Put it on a jackpot and it is perfect with or without drivers. (something is just barely wrong???)
I checked all the pins for resistance to ground. On the V1 board the pins are ~11M, and on the Espressif board they are ~12M. That seems okay (but why is there a difference?). The Enable pin thoughâŚthat one is different. On the V1 board, it is 11k, the espressif is 80k and keeps counting up higher and higher.
Espressif - https://dl.espressif.com/dl/schematics/esp32_devkitc_v4-sch.pdf
The only thing we changed on the enable line is that one cap, so I soldered one onâŚno change.
So close I would have no issues using these with the JAckpots but I want to know what is going on before I do that.
Thatâs unlikely to mean anything. I wouldnât personally read much into using a resistance tester on a powered or un-powered board. Instead Iâd be looking at the voltages during operation. The âcounting upâ youâre seeing is probably a capacitor charging⌠Itâs a little strange that itâs that different given how similar the schematics are, but itâs also not really a âgoodâ way to test anything so I wouldnât read too much into it. Ultimately the strength of the pull-up doesnât matter unless itâs changing the voltage because the voltage is what the microcontroller will be making decisions based on. If the pull-up was too weak, youâd see it taking a long time to reach the correct voltage or youâd see âdipsâ in the voltage when the microcontroller changed state or similar. If the pull-up was too strong, youâd see things like the reset button or an external reset circuit being unable to pull the voltage low enough to reset the micro etc. The best way to look at it is to look at the behaviour.
Are you looking at those pin starts on boot and triggering the scope you can see if theyâre changing at all during startup? Sometimes it can be issues where a circuit isnât staying under control during the boot process. Iâm not sure why that would be happening here given that theyâre so similar, schematic wise, but thatâs kinda the thing with troubleshooting: If everything looks fine but doesnât work, either something isnât what it looks like or the evaluation that everything looks fine is incorrect. Either way, youâve gotta start poking around at things and just trying stuff until you find something. Ultimately just scowling at it and saying âWhy donât you work?!â doesnât do much.
It might be a real pain to do, but one thing would be swapping the modules between a V1 board and an Espressif board. If the issue chases the module, it may be something subtle with different versions of the module itself. If the issue stays with the board, itâs something on the board itself.
Yeah, as @jono035 says, youâre just charging up the cap with your DMM.
Are these the newest (V4?) release of the Espressif module? I know the latest versions have a bunch of minor erratta fixes.
Are these still using the AMS1117-3.3? Honestly, if so the first thing Iâd swap would be to put a better regulator on one of these and see if it then works correctly on USB.
Potentially, but ultimately Iâd probably investigate that further first rather than replacing it. A scope probe on the 3.3V rail on startup will show you if the regulator is having any issues. If itâs failing to hold regulation, itâll be pretty obvious by dips/overshoots on the 3.3V rail. If the 3.3V rail is solid, thereâs not really any way that the regulator is likely to be influencing anything else.
Why would the serial monitor trigger it to work right?
Trying the scope on en, 3v3, io0 and io4. zooming in to look closer.
If itâs startup regulation (when you first plug in the USB cable), that isnât the case when you restart with the serial monitor. You then reboot while power is steady, the system is happy.
Thatâs just a crappy theory, and the right thing to do is to put a scope on it as weâve described.
To add to that. Same thing happens when powering from the 5V pin.
Lemme grab a couple shots. 3v3 is super solid.
Well, thatâs the important part of troubleshooting: The âI wonderâŚâ or âmaybe itâs thisâŚâ part. 99% of the ideas will be wrong, but if you knew which ones without testing them, why wouldnât you just go straight to the right one!
Thereâs a lot of difference between a cold and warm boot. With a cold boot, the voltage rail might still be rising or might not be stable yet. In bigger designs there might be other timing things going on with loads appearing on the rail that coincide with startup. There might be registers in the ESP32 that have random content and are being initialized incorrectly.
With a warm boot, youâre really just taking a circuit thatâs at steady-state and resetting the program counter to the initialisation point. Itâs often no different to triggering an interrupt in the firmware etc.
âSame thingâ? Sorry, I struggle a little to follow comments like this where they rely super heavily on the context from other comments. Can you just summarize the issues youâre seeing and when they do/donât occur?
The way Iâm reading this is if you power up by connecting just USB, the module doesnât make it all the way up to presenting an SSID in AP mode.
You then tried just powering the board with a 5V and GND pin (Bench PS?), and the same thing happens?
But with all the boards, if you put them in the jackpot and power up, they boot just fine and happy?
My guess is the extra pullup on the Jackpot is needed and that if you were to jumper in the same pullup resistor in a breadboard setup they will boot fine and happy.
Definitely seems plausible.
Itâs also potentially worth trying plugging into the external 5V power supply with it already on if youâre turning it on and off at the supply currently. Some of them have a pretty slow turn-on ramp up.
Also might be worth trying to take a look at the values on the components, if theyâre visible. Itâs not unheard of for assembly problems to lead to the wrong passives being fitted, so all 10Ks being 10M or something weird like that, although Iâd have expected that to be visible in the Enable pin state.
Interesting. Top is V1 bottom is espressif.
Purple is 3.3V
Yellow is Enable
Blue is io0
What pin am I missing on boot?
3.3 is looking good to me, maybe even better on the V1?
Enable is identical
Maybe io4 is the one to watch edit- nope io4 is way later.
Whatâs the timing there? Is gpio0 being pulled high too slow compared to genuine?
Can you verify whether itâs in boot loader mode?



