I think I probably have a board identical to yours. I bought four of them on Ebay, from different suppliers. The one I am using right now has device code "ESP32-WROOM-32" on the square Espressif part.
There was a lot of mucking around to get it going. When I connect the device to my laptop via a micro-usb cable, it shows up in Device Manager as COM11
so that might be the first thing to check. Then, the B4R board settings that work here are:
I think the differences between the various ESP32 Board Types are mostly to do with memory layout/partitioning; currently I am probably getting away with using the first selection that worked, because my programs are small enough to fit anywhere.
The UploadSpeed 921600 seems to be fixed in the ESP32 module. The Baud Rate setting is the speed used by B4R to receive logging information, and 115200 seems to be what the device defaults to during reboot (after uploading/programming). You can change Baud Rate in your program to be some other speed, but then you miss ~ten lines of bootloader information which is still at the default speed before your program gets to change it.
The key thing that I missed is that when the compiling/uploading status gets to "Serial port COM11", then you need to put the ESP32 into upload mode. If you orient the module so that the writing on the Espressif part is right-way-up and the USB cable is at the bottom, then what I do is:
- press-and-hold the left (reset) button,
- press-and-hold the right (upload/programming) button
- wait two seconds
- release the left button
- wait one second
- release the right button.
I think the critical bit is that the right button has to be down when you reset the device by releasing the left button.
While I'm here, the program that is right now blinking the blue LED (on right, cf red power LED on left) is:
#Region Project Attributes
#AutoFlushLogs: True
#CheckArrayBounds: True
#StackBufferSize: 300
#End Region
Sub Process_Globals
'These global variables will be declared once when the application starts.
'Public variables can be accessed from all modules.
Private Serial1 As Serial
Private LEDPin As Pin
End Sub
Private Sub AppStart
Serial1.Initialize(115200)
Log("AppStart")
LEDPin.Initialize(2, LEDPin.MODE_OUTPUT)
Do While True
LEDPin.DigitalWrite(True)
Delay(500)
LEDPin.DigitalWrite(False)
Delay(1000)
Log("LED Blinked!")
Loop
End Sub
and you can see the "LED Blinked!" messages at the bottom of the Log tab (plus also the programming and reset/bootloader messages):