Use this forum to chat about hardware specific topics for the ESP8266 (peripherals, memory, clocks, JTAG, programming)

User avatar
By GeorgeIoak
#18215 Today I wired up some ESP-7 modules that I have and these seem to be very reliable running down to 2.8V. I decided to go ahead and remove the RF shield from one of the ESP-12 modules that I have. I've taken a couple of board pictures (top and bottom views) and they aren't the best but were enough to see some items of concern.

  • There is no 0.1uF bypass cap for pins 29 and 30 (Vdd, Vdda), only 10uF which means no high frequency filter
  • There are no caps on pins 3 and 4 (Vdd3p3)
  • There is no bypass cap on the flash chip Vcc (yes I also removed the W25Q32FV)
  • There is no series resistor on the clock pin going to the flash chip
  • They take a trace directly from the Vcc pad of the flash chip, route it past the crystal, and power the LED.
  • I would have rotated the ESP8266 so the crystal placement was closer to pins 27, 28 but that's not major
  • The loading caps on the crystal share a ground but really should have their own vias going directly to a ground plane
  • The drill hits are barely passable, they are not in the center of the pads. Take a look at the bottom view at the via right next to "ADC". That via feeds Vcc to pin 1 (Vdda). That's not a lot of copper for an important pin.
  • Not as crtical, especially in low cost designs, but the reference design was 4 layers and this is only 2. 4 layers would have given a good solid ground plane as well as another layer dedicated to Vcc. Sure this adds cost and with a good PCB layout can be avoided but with a small sized board like this the cost adder is not much.
  • You can't see from my pictures but there is excessive solder used. So much so that I think there were minor bridges on the 10uF cap next pins 29 and 30 which could explain the problems I was having.

Tomorrow I may remove all the passives and replace them so I can clean the board and verify there aren't any bridges. There is absolutely no filtering of the incoming Vcc and missing bypass caps which explains why so many people report issues with power supply problems. On a module that is generating 2.4GHz signals I would expect much more filtering, a 10nF and 100nF parallel to the 10uF but you can see that items like these are the first to get dropped when fractions of pennies matter and the benefit is hard to see during quick factory testing.

I'm not saying that this is the worst design I've looked at but with some minor changes and very small additional BOM cost the modules for everyone would be more reliable. I wonder how many different designs are out on the market as I don't believe these are all produced from 1 supplier. Maybe I was unlucky and got a bad design and there are other good designs out there?

Reading the hardware manual they state that pins 11 and 17 are the digital power supply pins (VDDPST) and the acceptable range is 1.8V-3.3V. Pins 1,3,4 are for the PA and LNA, while pins 28 and 29 are for the PLL. All of these pins are specified to be between 3.0 and 3.6V. Yet in the schematic they tie all of these together and feed 3.3V . There's also this statement:
(Notes: There is no need to add magnetic beads in the design of analog power-supply circuit, for
ESP8266EX’s EMC is in conformity with FCC and CE requirements, and has been approved. )

Typically you have 1 power rail but then you create different power rails for each of these functions and filter them with ferrite beads. This isn't so much for EMC/FCC but to keep noise from 1 circuit away from the others. Since the PLL is critical for feeding all of the internal clocks, you want that supply to be very clean. Analog and digital circuits are also very different and you typical don't want digital noise getting into your analog circuits.

Yes, I'm standing on my soapbox (sorry for the English slang) but with such a strong chip and low cost I would have hoped that the initial designs would be very robust so as many potential issues could be eliminated and only good experiences were had by the customers. Well, enough for now. I hope that I've at least helped some people out there and maybe even someone can learn something from my ramblings.
You do not have the required permissions to view the files attached to this post.
User avatar
By cal
#18246 Very cool and impressive analysis!

Many thanks for sharing!

Cal

P.S. In addition to the hardware I level I get the feeling that we have low voltage issues
on the software level, too. Different SDK versions / firmware seem to make a difference.
It may be due to different timing and/or interrupt events depending on the voltage level
that are handled differently by sdks and may trigger other control flows that lead to faults.
My current pet project is improving debug support on the esp8266.
You did a broad scope test on the firmware stability level and a deep one on the hardware level here.
What is your the stable firmware?
I happen to do my cpu/debug experiments in the nodemcu context so if thats a nodemcu one that would be best.
Then we can give it a try to do a depth analysis debugging the issues.
The firmware does offer some information but that often hidden under strange baud rates and messages.
It is possible to get more information like I did with my cal_dex module.
User avatar
By GeorgeIoak
#18256 Yes, I agree, I think there is definitely some firmware issues here as well. The ESP-07 module that I tested yesterday was from my original purchase a while ago and is running NodeMCU, not the modified one. I still need to do more testing and I probably have to look under the RF shield of the ESP-07 to compare the design to see if thee is anything different going on there.

The changing baud rates is frustrating and makes debugging more difficult. I'm not sure if I posted but one of the last fimwares I tried on the ESP-12 was through the Arduino IDE. That seemed to fail more gracefully and perhaps people may not even notice the problem. What happens is the WDT gets reset and the module reboots but it came back to life. Sometimes it would reboot just once or twice (I was running the WebServer demo) but I never had it go into Zombie state like with some of the NodeMCU tests.

One thing I should mention about my analysis. This is kind of like driving a car with bald tires. Sure the car works fine and you may not even notice but what happens when the road gets wet? Sometimes you can recover if you start to slide but sometimes the car will get out of control. A good hardware design is like a new set of tires in this analogy. They will give you the best traction while also giving you the best gas mileage. It may not seem like much but if something happens you'll be glad you had good tires.
User avatar
By john
#18274 There are a couple of points that you have to note if you wish to use ESP8266 under low supply voltage.
1. you cannot use the ADC, because the ADC is used internally to measure the power supply. (Do not put caps on the ADC pin.)
2. Choose a flash that also runs at 2.3V.
3. Match the antenna properly. Under such operating conditions, we do not have as much margin as we did!
Have fun!