SparkFun Forums 

Where electronics enthusiasts find answers.

Have questions about a SparkFun product or board? This is the place to be.
By n0f8r
#193248
So I've been tearing my hair out trying to get logic level converters to work with my ESP32 thing, I've tried the sparkfun bi-directional and most recently 8-channel bidirectional breakout modules based on the TI TXS0108E.

Being an electronics noob, I've made a few pratfalls along the way - like not realising that the sparkfun converter has pin levels default to high - anyway - after a whole week of banging my head bloody, it looks like my issue is Pin 12 on the sparkfun board.

If I connect pin 12 to a logic level converter channel - the ESP32 goes haywire and wont boot, it's only just now that I thought to check using different pins on the sparkfun ESP32 board - and apart from pin 12, all the other pins seem to work ok - at a very basic level at least; the board boots and I can check the logic level conversion with a multimeter and a simple loop that swaps low and high every ten seconds.

Looking at the beautiful pinout diagram Sparkfun provides, I obviously avoided pins 39,38,37,36,35, and 34 - but I just assumed I could use Pin 12 as an output. Is that wrong? is there something special about "HSPI_Q" that disqualifies it from being used as output?

thanks,
Kevin.
By rmetzner49
#194616
I, too have found that if I attempt to use PIN 12 things get weird. The symptom is, instead of running the Arduino Code, it reverts to the Command Interpreter.

I have been trying to get this THING to talk to a DS1390 in the SPI mode with little success. Also I have found out that I CANNOT use the SS pin 2 as a Chip Select for my Display. If I do, it refuses to upload sketches. If I use any other pin, it's fine.

I would think that a robust product would ignore things connected to EXTERNAL pins. I've looked at the PC Board routing and it seems the External Pins do not share anything with the ONBOARD flash. I can only suspect that somehow when external pins are utilized, the Bootloader doesn't disregard them and takes strange actions.
By rmetzner49
#194646
This is interesting: By examining the ESP_32_hardware_design_guidelines, it appears there are MANY pins the THING cares about during power-up.

The text below copied from Page 13 explains the pin 12 anomalies:

Each strapping pin is connected with its internal pull-up/pull-down during the chip reset. Consequently, if a strapping
pin is unconnected or the connected external circuit is high-impendence, the internal weak pull-up/pull-down
will determine the default input level of the strapping pins.
To change the strapping bit values, users can apply the external pull-down/pull-up resistances, or apply the host
MCU’s GPIOs to control the voltage level of these pins when powering on ESP32.
After reset, the strapping pins work as the normal functions pins.
Refer to Table 2 for detailed boot modes configuration by strapping pins.
Table 2: Strapping Pins
Voltage of Internal LDO (VDD_SDIO)

Pin Default 3.3V 1.8V
MTDI Pull-down 0 1

Therefore, if one connects an external PULLUP to pin 12, it sets the Chip Voltage to 1.8V. This perfectly explains why FLASH errors occur, since the FLASH is looking for 3.3V and the CPU is producing 1.8V. Giant OOOPS.

Users of the ESP32-THING are strongly encouraged to study this Guide, since it's not like SparkFun produced any other documentation for it.