I have a Duinopeak shield that lets you plug on an ESP-01 and provides a 5V-3.3V regulator and level shifting for the Tx and Rx pins. I cannot get it to work with a setup that has worked with every ESP-01 or Wifi Shield I have used before.

Between the Arduino and the shield I connect Tx/Tx and Rx/Rx. I either load a blank sketch or jumper RST to ground on the Arduino. I use pins 0 and 1 through the shield. When I plug in the USB cable and type AT and "send". Nothing. No light blinks on the ESP sitting on the board. This is the board:


I know the ESP and the board works, because if I connect it to a Mega and use Seria1 instead of the main serial(0), rewire Tx/Rx and Rx/Tx, and upload a sketch to echo the USB Serial to Serial1 and back, using Serial Monitor, I can send AT commands and see responses. But when connected to pins 0 and 1, it acts like it isn't connected.

What I have tried:

  • Tried an Uno and Mega
  • Tried removing the plastic jumpers and running wires from the rows of Rx and Tx pins to the header directly
  • Tried different pins on the row (there are 8 Tx pins and 8 Rx pins so you can jumper to D0-D7)
  • Tested the continuity of each pin with a meter

I thought it must be the level shifter, but then why would it work when using Serial1? I thought the pins might have a cold solder joint, but then I used jumper wires from the pins in both tests and the same pins work (in reverse) when I connect them to Serial1 on the Mega. I thought it might be because of the 2 resistors on the USB path to pins 0 and 1 on an Arduino, but they prefer the pins over the USB. And why would another very similar board work? Tracing and finding an identical looking board shows this schematic. Odd thing is this is identical to a different board that works :

enter image description here

  • and you power it from 5 V pin of Uno? on other pins you used SoftwareSerial with the SerialPassthrough sketch?
    – Juraj
    Sep 8 '20 at 9:24
  • I have the shield on the Uno or Mega and which takes the 5V from the Arduino and regulates it to 3.3V. I can't use software serial because my sketch will need critical interrupt timing and the softwareSerial library will destroy that. tried to use pins 0/1 with the Uno and Mega for passthrough with no sketch and Tx/Tx, Rx/Rx. I used the "reflector" sketch on a mega to use serial1 or serial3 for the ESP and USB for the serial monitor and that works (Tx/Rx, Rx/Tx). Passthrough works with a bare ESP or a Makerfabs board with identical FETs and resistors for the level shifter circuit.
    – Fred
    Sep 8 '20 at 16:17
  • More info. I put a scope on the signal. My IOREF (that the schematic says it uses is 5.3V. When I jumper to Serial1 on a Mega, I see the Tx and Rx signals at around 4V. When I try to use Serial(0) The Tx to the ESP is only 3V. I suspect something in the Arduino circuit is not allowing enough voltage or current to drive. I'll try writing a sketch to continually send and see if I see 3V pulses that the Arduino can't read.
    – Fred
    Sep 8 '20 at 17:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.