Making an ESP32-S3 dev board is way easier than it looks. I simplify the datasheet reference: skip the external crystal, wire native USB D+/D− (pins 19/20) straight to a USB-C with 5.1k CC pulldowns, add a BOOT switch and an EN RC reset, and power it with an LD117 LDO that’s happy with ceramic caps. In KiCad I build the schematic with Espressif libraries, add LEDs for 5V, 3V3, and a blink GPIO, set up net classes, route a clean USB differential pair, stitch a solid ground plane, and label everything. It’s a bit wide—just gang breadboards together—and you end up with a neat, professional S3 dev board you can flash and debug over USB.
Making your own ESP32S3 devboard sounds
pretty complicated, but it’s actually
surprisingly easy. In this video, I’ll
show you step by step how to build one
from scratch with just a handful of
components. And by the end, you’ll see
that you can really make your own
professionallook development board.
Now, our first port of call is obviously
the data sheet. Page 42 of this document
gives us exactly what we need. It tells
you how to wire up the ESP32 S3 module.
Now, we can actually simplify this quite
a bit. Firstly, unless you need very
accurate timing during deep sloop, you
don’t need the external crystal. So,
that’s already simplified the schematic
quite a bit. Now, for a dev board will
generally be connecting directly to USB.
Now, the really nice thing about the S3
is it has native USB support. You can
upload firmware over USB. You can run
serial over USB. You can even debug
every USB. So, we just need to connect
pins 19 and 20 straight to the USB data
lines. This also means we don’t have to
have these additional connectors. We are
going to break these pins out anyway
because we are making a dev board, but
you don’t need extra connectors.
Finally, since we are making a devboard,
and we do probably want to upload
firmware quite often, we’ll replace this
jumper on IO Z, which is the boot pin,
with a switch. This will let us easily
get into firmware upload mode if our
board is misbehaving. So, our only
remaining question is how to get 3.3
volts to power the module. If you look
on a lot of other dev boards, you’ll see
the venerable AMS 1117 voltage
regulator. The downside of this
component choice is that it should
really use tantelum capacitors. There
are many, many other options, but the
LD117 is a drop-in replacement and is
more than happy with ceramic capacitors.
So, let’s jump over to KeyCad and get
the schematic going and then we’ll lay
out the PCB.
Okay, so we’re over in Keycad. I’ve
brought in all the components and I’ve
um saved you to the trouble of watching
me wire them all up. I’ve done all the
wiring already. So, we have our ESP32S3
room module here. Um here we have the
LD117
voltage regulator. So we’ve got a
decoupling capacitor coming in for the 5
volts and we have the decoupling
capacitors on the output. So one for the
voltage regulator and the two capacitors
as requested in the data sheet for the
ESP32S3.
Um down here we have our USB connector.
So we have the data lines connected up.
So there’s two of those positive one and
two and a negative one and two as well.
And the CC lines. So CC1 and CC2 are
both pulled down using a 5.1k resistor
to ground. So that tells whatever we’re
plugged into that we’d like to receive
some power. I’ve added on some um LED
indicators. You can’t have too many LEDs
on any project. So we have one connected
directly to 5 volts to tell us that we
actually have 5 volts coming in. One
connected to 3V3 so we know that the
voltage regulator is actually working.
and another one connected to a GPIO pin
so we can do a blink sketch to make make
sure our board is actually working. We
have our two switches here. So we have
one for the boot pin. So this switch
will pull boot down to ground and we
have another one here for the EN pin. So
we have the RC circuit for the EN pin.
So the purpose of this is um when power
is applied you want some time for the
voltage to stabilize. So this is an RC
circuit connected to the EM pin. This
will rise slightly more slowly than the
three 3.3 volt line and the chip will
boot up once the voltage is stabilized.
And there’s a switch here that pulls
this capacitor down to ground and that
causes the IC to reboot. Uh we also have
our connectors here. This is a dev
board. So we do want to break out all of
the pins. So I’ve got a 20 pin connector
here and another 20 pin connector here.
And what I’ve done is I’ve used my nice
um guide to which pins you can use to
work out where to actually place the
pins. So hopefully when we come to lay
out the PCB, I’ve lined these up so that
we have the left and the right easily
rootable. Now you may not want to route
all of these pins out. Some of them you
really shouldn’t use on your dev board
on your on your breadboard. So things
like D minus and D+ perhaps if you’re
using USB, you don’t want to actually
use those for anything. And there’s
other pins where you want to be careful
about using them, but I’ve just decided
to break everything out. Um, so that’s
it for this schematic really. Uh, you
can get the symbols and the footprints
and nice 3D models from the expressive
Keycad library. So, I’ll put a link to
this down in the description. It’s got
all the instructions for installation.
It’s pretty straightforward, but it’s
got all of the modules you can possibly
think of and the nice PCAD symbols, all
from the official Expressive people. Um,
the other thing I’ve done for a few
symbols is use this easy ediator keypad.
It’s a really nice tool that you can
point at LCSC and it will pull down the
symbol and the footprint and the 3D
model. So, I’ve done a video on that
previously. Have a look at that. It’s
quite a cool um application. Definitely
worth supporting. So, that’s our
schematic.
If we jump over to the PCB, then I’ve
done a bit of organization already. So,
here’s our here’s what our dev board
will look like. Um, I’ve arranged things
um in a fairly logical way. So, here’s
all of our um LEDs that will light up
and show us stuff. I might reorganize
these so the LEDs are all lined up
nicely. So, D1 is uh next to D2. We got
the EN LRC circuit. Got our decoupling
capacitors for the 3.3 volt line and a
decoupling capacitor for the 5V line.
Here’s our two switches. And here’s the
5.1k resistors that will connect to the
USB. I’ve tried to leave a reasonable
amount of space here for the USB
connector because we really want to in
be able to inspect this and get in with
our soldering iron. And this is
components are in the way here. That can
be quite difficult. So our next job is
to wire all of this up. I have set up
some net classes. So if you look over
here I have a power net class and I’ve
made that slightly thicker than the
default width. So looking here I’ve done
for power I’ve done a track width of 04
mm and the default is 2 mm and I’ve just
assigned um 3 V3 and 5 volts to that net
class. Um what I’ll do is I’ll wire up
the USB connectors first. So D minus and
D plus get them connected. I’ll then do
the um power line. So, I’ll do the 3V
line and the 5V line. And then I’ll
probably do the EN um pin because that
needs to come down here. And then it’s
just a case of routing all of these pins
out to these pin headers. We can have a
quick look at what this might look like
when it’s finished. So, the 3D viewer.
So, here we go. This is what we should
end up with once it’s been manufactured
and we’ve soldered everything on. Now,
there is one thing to remember. So, this
does look quite wide. Lots of people get
a dev module and then they say, “Oh, it
doesn’t fit on my breadboard.” But what
you can do is plug breadboards together.
So, you can get very wide breadboards,
which then fit these very wide
components. So, I’ve not tried to make
this really, really thin. I’ve not kind
of crammed these pins right up against
here. We probably could make it a bit
thinner if we wanted to, but it’s a bit
too much work. So, I’m going to crack on
and root all of this and I’ll see you
when it’s finished.
[Music]
Tracks go zipping left and right. Copper
veins in a dance so tight. Solar
whispers in the moonlight night.
Root it. Zap it. Solder it down. PC
magic all over town. Root it. Zap it.
Solder it down. Pow zap. Don’t let it
frown.
H secret tune. Resistors join the PCB
spoon. Capacitors charge under the moon.
[Music]
Through the traces
the signal flow
Batman’s theme
where the current go
solder it down
magic all over town
it solder it down pals zap don’t let it
frown
[Music]
So that’s everything rooted up. That was
actually kind of fun. Um quite uh quite
relaxing doing PCB layout, I find. So we
have a ground plane. So if I turn on
this, we can see our nice ground plane
that hooks up all of the ground. We’ve
got lots of Vers to stitch that
together. Uh we got quite a nice routing
for the USB signal. That’s this nice
pair of cables going here. And we have
reasonably thick traces for all the
power. So that’s pretty good. Does some
silk screen. So we got all the pins
labeled and the buttons labeled as well.
Let’s have a quick look at the 3D view
and see what it’s going to look like. So
that’s not bad at all. I think I quite
like that. That’s that’s pretty good. So
let’s get this um packaged up and sent
off to PCB way for assembly. So we just
go file fabrication outputs generate our
Gerber files. So let’s put it in a
folder. So I’ll stick it in this Gerbers
folder. Uh yes, we want to do that. So
plot all the Gerbers, generate the drill
file. So it’s the same directory. So
generate that. That’s our work done. So
I just need to zip that folder up and
we’re good. Okay, that’s our folder
nicely zipped up. And then we just pop
over to PCB way and we can upload that
Gerber file. Okay, so we select our zip
file, open it up. That will upload.
Should read all the parameters for us.
Um, we’ll do a single piece. We need
five boards. We’ll just do five. Don’t
need more than that. Uh, we’ll keep the
thickness at default. Um, let’s do it in
black. That’ll look quite nice, I think.
So, it’s still $5 even if we ask for
black. Silc screen is going to be white.
Not doing UV color printing. Uh,
everything else we can leave as is. And
we’re going to specify our product
location. So, for that we just do way
way. And you’ll see on the PCB then I’ve
done that just underneath the the IC.
So let’s um let’s send that off. Save it
to cart and we’re shipping to the United
Kingdom and I’ve already got some stuff
in my basket. So let’s agree to that.
So we got two items in our basket. $5
each. And we’ll do the shipping then we
actually check out. So should be good.
We’ll see you in the next video if I’ve
actually done it right.
[Applause]
[Music]