PCB design for a ESP32 coffee Roaster board

One other tip of advise… If you find your soldering iron is a little shaky, find something to rest your wrist on.

I’m right handed and hold the soldering iron with my right hand. I find if I point my pinky finger out, then I can rest my pinky on the board or something close by and it will act as a support for my hand. Then I can rotate the soldering iron in/out by pivoting my whole hand on my pinky.

(I know. I’m weird)

…

I had forgotten the Newark company. Is this the solder you recommended. This will probably last me for years. 309 60EN 5C 0.5MM R 250G MULTICORE / LOCTITE, Solder Wire, 0.02" Diameter, 190°C | Newark Electronics

I might also order the capacitors from here since they are probably better quality than the AliExpress one’s I ordered.

I would just try with what you’ve got and see how you get on.

If you struggle or want to do more in the future, then I’d start buying from Digikey, Element14, Mouser, Newark, RS, whatever.

For now, I’m confident you’ll be able to get it together with the stuff you’ve got. The solder difference is a maybe 80/20 differences, not a ‘night and day’ type difference. The caps will make zero difference whatsoever.

It was interesting to see all the steps they do in making these boards. Looks like it shipped today.

I was referring to me just using my pinky as being weird, or at least, that’s what my friend in college said when he saw me doing it.

:slight_smile:

My point, admittedly poorly made, was that that isn’t weird at all, really! Sounds quite practical.

Since this design is still clear in my head, thought I would create a new design with this as a starting point and blend in the previous design that had the 12v input with 2 steppers and buck converter directly on the board. I am using a through hole TSR1-2450E buck converter which has all the support components already on it, so I only need to hook 12v, GND and 5v out. It has 1amp output current which should be sufficient since it is only powering the TFT touch screen. With my roaster running with no beans, the display shows less than 0.4 amps total. I don’t plan to have this board made anytime soon but wanted to see what it would look like. Reading the begining of this thread again, I see @jono035 recommended the XP Power RBT05W25S05. I should have looked at that closer back then. Looking at the specs on the screen again, I probably only need the 0.5amps or less for that screen. I don’t see a KiCad model for the XP Power one, so a little more trouble to add to the design.

I had to make it 10mm wider and then recentered the ESP32 which gave better direct traces for the TFT pins. I only ran the 5v from the buck converter to the TFT and the external pins. Since I am powering the ESP32 from the USB connection, I did not want to connect it there. I had to move the EC11 to the other side because it was too close to the USB plug. It is only wires coming to that plug so not a problem moving it. The only SMD parts are the 6 - 0.1uf Caps, and 1 - 22uf Cap. I added 3 - 5v headers with 3 - GND headers beside them and 3 - 3.3v headers with 3 - GND headers beside them in case they were useful for something. I initially put SMD caps for the 2 - 220uF, but they were about the same size, so I went back to the through hole. I have 12v traces at 2mm width and 1mm width where it goes to the 0.1uf Caps. The 5v and 3.3v are the same as I used before at 0.5mm and the other traces are 0.25mm.

That’s just one I’ve used before for personal stuff. I tend to source from Digikey, not Aliexpress/JLC so that’s a pretty explainable difference. I’d stick with the one you’ve identified, they’re not super complex parts, although they can be quite prone to spec inflation etc.

Comparing the datasheets on the XP Power RBT05W25S05 and TSR1-2450E looks like their dimensions are almost identical and the XP Power is only 0.1mm wider at 7.6mm versus 7.5mm. It is also more efficient at 96% versus 92% according to datasheets. The pinout is the same as well as the spacing, so I would probably switch it to that since it seems more available. I did a test to show how much power the 5v is pulling. The accuracy of the 5v meter is supposed to be +/-1%. The PS is supplying both 12v to the stepper board and 5v to the ESP32. This display is with motor on at 120rpm, timer running. This is with the USB supplying both the 5v for the screen and the power for ESP32. With the custom board, the 5V would only be supplying the power to the screen which is rated at 100ma. So, the 500ma XP Power module should be more than enough power.

I did an interesting test to show the difference in power when motor RPM changed. It continued to go up, and the sound pitch went up until the 240rpm, when it went down and the pitch went down. This was just a visual observation.

Sounds like a plan. The efficiency is really no big deal and the module size is pretty standard so there are lots of options. Just be careful with pinout, some of them put the body of the module on one side, some on the other. Some use +Vin/0V/+Vout, others use +Vout/0V/+Vin. This all results in it being easy to install one backwards if you’re not careful when switching, something I’ve done many times… I’ve got a bag of 50 of the bloody things with a red permanent marker warnings scribbled all over that they’re the ‘wrong’ pinout.

Another thing with the power supply, it’s never a bad idea to have overhead. I would usually size power supplies based on a calculated worst-case current load, not measurement. Often measurement is an average… If you’ve got 1A being drawn for 100ms once a second and then 0.2A being drawn for the rest of the time, that’s going to look like 0.3A on a tester like that. Obviously you can just put more big capacitors on to smooth that out, but having power supply overhead is usually easier.

The boards showed up today. Tracking never showed up for them. I got the 3 capacitors soldered on and didn’t even need magnification. The rest of the soldering should be easy. It was a little tight soldering with the 2 that are close together.

I was pleasantly surprised that it worked 1st time and do not have to reboot each time when it is cold like the Chinese Clone. I was not really happy with soldering the 1st time, so I changed the tip and went back over all the joints again. That new tip made the world of difference. I probably should have made the buzzer and EC11 wires a little longer especially the buzzer. The buzzer wire came lose the 1st time I put the case back together. Looking at it now, I probably could just put the buzzer on the board or close to it.

Nice, looks super clean.

Now that this 1st board is working, I revised the other board that has the X & Y drivers on it getting rid of the extra daughter board or 2 if I used both x & y on the previous board. I moved 12v input to the other side to match where the power will come into the board and moved the buzzer and EC11 to the same corner as 1st board. I had to make the board 5mm larger on each side for it to fit and recentered the ESP32. I made a 3-pin connection for the buzzer since I will probably put a buzzer module right on the board. I could still use a 2-pin buzzer since the IO pin is in the middle. I also moved the 22uf capacitor 2mm to the right as it was a tight fit soldering those 2 caps. The only snaking between pins I have are the MS1 pins. I was trying to find another simple PCB to have made at the same time as this one since the shipping would probably not be much different but have not come across anything yet. Any suggestions?

Looks good. If you want a few extra suggestions for further improvements:

The SMT caps on the ‘north’ side of the board have their connections coming out in line with the caps. It’s better to have them coming out to the side like you have down at the south side of the board. Lower overall loop area that way. Minor but worthwhile habit to get into.

For the layout, I’d have moved the 5V reg up closer to the 12V input. Not that it matters, but things like that can simplify your layout later by having fewer traces run around the place.

I’d add decoupling capacitors to every 3.3V connection as well, personally.

An interesting approach that you can consider is doing something to get the web of copper on the bottom side under the ESP32 header to spread between the pads. As it stands the return path for those signals has to go quite a way away. Given the somewhat crappy layout of the ESP32 dev board pinouts this isn’t an issue at all, it has to run ages to get to the GND or Vcc signals anyway, but it’s another good habit to get into and a good example of how you can play with some stuff on the layout to change those copper shapes. If it were me, I’d be shrinking the drill size on those holes as much as possible. From memory most of those pin headers are 0.63mm squares so a 0.8mm hole usually works. Then make the pad the correct size such that it works with your clearance rules and copper sliver settings to allow copper between. If you’re using 0.25mm clearances and want 0.2mm of copper there, you need 0.7mm of space between the pads. With 2.54mm clearance that’s 1.84mm so I’d round that to 1.8mm and be done with it. That’s a 0.5mm annular ring around the hole which isn’t too bad.

Another alternative there can also be to make the pads oval which can make them a little easier to solder while still keeping the relatively open web between them for copper to get between. Something like a 1.8mm x 2.2mm pad gives heaps of space to stab a soldering iron into.

Other than that, all looks good. I also usually sprinkle a ton of test points around, although you’ve kinda got that already with the GPIO headers.

You could also consider adding a SMC TVS after the fuse, just so if you end up hooking it up to 16V or higher accidentally it might clear the fuse.

As for other boards, that really comes down to if there are any other little things you can think of that might help. In the past I’ve made all sorts of little adapters that can be useful, although plenty of those are just available straight from aliexpress now. Things like breakout boards from USB connectors to pin headers, an adapter for a chip I want to play with, things that can replace wiring harnesses, etc. Or even just drilling templates, amusingly.

Thanks for the feedback. I rotated the 2 large caps 90 degrees as you suggested. I can’t really move the buck converter close to the fuse unless I make the board wider or run some more traces to the back of the board. The decoupling caps we talked about before, but since the components that are connected there have their own protection it seemed like it really was not necessary.

I made several pads oval like you mentioned and used 0.9mm holes. 0.8mm might be tight getting the pins in. They were 1.0mm before. The ovals are in this screen shot are 2.286x1.7mm. I just did a few to see how it looked. See if this is what you had in mind.

The SMC TVS looks simple to add and not much money, so I will look into that.

That’s heading in the right direction. What are your clearance rules there? I’d basically be trying to modify them until you’ve got the copper on the bottom side joining and creating a full web between the pads.

The default was 0.25mm, but the back GND plane was 0.5mm. I changed that to 0.25mm, and this looks like what you meant. The 3.3v lines have a clearance of 0.5mm so did not get as much copper between them but interesting it did get copper between J1_2 and J1_3 and not between 2 and 3. The ESP32 pin header footprint has an extra 0.102 solder mask margin override which is that extra blue line around the pad.

Since XP Power RBT05W24S05 buck converter handles 6.5v - 36v input voltage range, looks like I could allow this to use 12v/24v. The Caps on the 12v line are rated to 35v. I do have one 22uF Cap on the 5v line near the TFT that is 16v, but that should be ok there.

That’s more like what I was expecting. I wouldn’t add the extra clearance for the 3.3V lines, it doesn’t do anything for you.

0.1mm solder mask opening is pretty normal.

Yeah, those voltages are fine. Something like an SMCJ24A TVS is what I usually use on 24V inputs.