#Macropad Schematic Review

1 messages Β· Page 1 of 1 (latest)

grim widget
#

Here's the pdf if you prefer it

peak shell
#

Looks like altium

#

But I'll take a look at it

rugged canyon
#

sliders pin3 go where?

grim widget
# peak shell Looks like altium

yeah sorry everyone, I just have it installed and forced to use it at school. Rn I prefer working on it just because I'm used to and I want to do my personal projects in the little spare time I have

grim widget
grim widget
peak shell
#

Are you using the internal pullups? otherwise you need to add pullup resistors

#

you might want to add a decoupling cap to the usb switch thing

grim widget
grim widget
peak shell
#

if you end up needing them you can solder them in afterwards

grim widget
peak shell
#

are the adc pins of the esp 5v compatible?

grim widget
#

totally not, I checked the Absolute Maximum Rating rn

#

I think I should check it for the RP too

peak shell
#

this is one of my designs using adc pins. You could add a 1nF and 100ohm resistor close to the adc pins to provide some extra filtering. You probably wont need it but its very nice to have if you do. Set the 100 ohm resistor to 0ohm in the variant

peak shell
grim widget
grim widget
peak shell
peak shell
#

but other than that you're correct

grim widget
peak shell
#

I dont have a lot of experience with keyboards and led matrixes but it looks good

peak shell
grim widget
grim widget
peak shell
#

awesome! other than that I was not able to find other mistakes

#

oh and another tip: it looks like you're using a custom drawing template

#

but the information tabs are empty

#

I would fill them with project info

grim widget
#

I was thinking of filling them before making my repository visible

peak shell
#

In altium you can make globaly modifieable info by going to project > project options > parameters

grim widget
#

that's really nice to know, for my other projects they were already made for the team

peak shell
#

I dont know how you can add them to your template though. probably placeholder text with the same name or something

grim widget
#

I'll just create a template, atm I'm using the standard one

#

before I'll route and order the pcb, I have another pcb to route too that is massive SADFACE

peak shell
#

how did you add your picture into it though?

#

is that the template or did you just place a picture

grim widget
#

placed it, I tried in the train to create a template but I didn't have enough time and now I prefer working on the rest

peak shell
#

fair enough

grim widget
#

in all my designs I place a photo just because usually at school we're required to put it

peak shell
#

thats strange

#

my school just wants my name and student number

grim widget
peak shell
#

ah i see

grim widget
#

like now I've it already inside my latex template just in case

peak shell
#

I need to start working with latex. word is driving me nuts

grim widget
grim widget
#

Checking the thardware design of the RP2040 I found out an error in my schematics. The two capacitors next to the the oscillator weren't 15pF

peak shell
grim widget
#

We’ll assume a value of
3pF for this, and as this capacitance is in parallel to C2 and C3, we simply add this to give us a total load capacitance of
10.5pF, which is close enough to the target of 10pF. As you can see, the parasitic capacitance of the PCB traces are a
factor, and we therefore need to keep them small so we don’t upset the crystal and stop it oscillating as intended. Try
and keep the layout as short as possible.

peak shell
#

Yeah but the load capacitor value depends on the stray capacitance and the load capacitance of your crystal

grim widget
#

also I found out something else, somehow I forgot the esp crystal xD

peak shell
#

What crystal are you using?

#

This datasheet says it's 18pf

#

I get a load capacitance of 30pF

grim widget
#

where?

peak shell
#

Yeah

grim widget
#

opened str8 from mouser

peak shell
#

10pf

#

That's cl

#

Oh huh

#

Wait

#

I'm not stupid πŸ˜‚

#

Weird

peak shell
grim widget
#

digikey and mouser have different datasheets?

peak shell
#

Maybe?

grim widget
#

even says "Crystal approved for use with Raspberry Pi β€˜s
RP2040 and RP235x range of microcontroller
products" lmao

peak shell
#

But even then

#

The load capacitors should be 14pF with that formula

#

10pF=((X*X)/(X+X)+3pF

grim widget
#

mine's

peak shell
#

(i ve got a fancy calculator that does the math rewriting for me)

peak shell
#

According to that formula at least

#

But 14pF is a lot closer to 10.5 then 30 at least πŸ˜…

grim widget
grim widget
peak shell
#

That's ok

peak shell
#

Or 27 or something

#

(I usually put my stray capacitance at 5pf)

grim widget
peak shell
#

But crystals are annoying

#

They usually don't work in my designs πŸ˜‚ (take that how you want)

#

The datasheets are also pretty confusing usually, where pin 1 is for example

grim widget
peak shell
#

I'm not entirely sure

#

I believe your microcontroller has to support it? But I'm not sure

grim widget
#

the rp does

peak shell
#

I haven't used one

peak shell
#

It uses a bit more power though

grim widget
#

should I put test pads then to plot the frequency with the oscilloscope? so I can always desolder the capacitors

peak shell
#

I mean I just put my probes on the pads of the crystal. There's usually more than enough room for them

grim widget
peak shell
#

Let me see if I have a picture somewhere

#

It's hard to see but you get the idea

#

This is better. There are two of them next to eachother

#

Oh the capacitor placement isn't optimal I think

#

But it gives you a good sense of the footprints

#

Those capacitors are 0603 btw

grim widget
#

all my cap are 1206

grim widget
peak shell
grim widget
#

true I should check that

grim widget
peak shell
#

Looks good. Can you also get them in 14pf?

#

That's what came out of the Formula

grim widget
#

13 or 15 for both of them

#

I think it isn't a standard value

#

same on digikey

#

even 28 isn't a standard value in case you wanted to put two in series

peak shell
#

You can get a lot of weird capacitor values is smaller packages sizes. I had to use some RF capacitors with a value of 3.3pF for example

#

Or 7.5

#

That was in a 0402 package though

grim widget
#

14pF is available at 0402

peak shell
#

I figured. How comfortable are you with soldering SMD stuff?

#

I'm not very good at it so I try to avoid anything smaller than 0603 when I can

grim widget
#

all my resistors are 0402, I'll use a hotplate

#

and I'll order a stencil

#

also my leds are 0402 πŸ™‚

#

I'll have tons of fun

#

I'll use the same formula for the ESP crystal

#

The esp32-s3-mini1 datasheet says that the module has an already built in 40MHz oscillator but in the typical application circuit another one is placed

grim widget
#

I also noticed that I'll have smd components on both sides of my pcb, that means that I'll either use sometape to hold one side or solder by hand x32 0402 LEDs :/

#

those ones

peak shell
peak shell
grim widget
grim widget
#

I've placed the components roughly keeping in mind to place the decoupling capacitors as close as possible to the pins. I'm wondering which components could I place far from the chip in order to also use the left space (where there are the 3 sliders) ?

#

I'm thinking of using a plane for some signals and VCC, the other one for ground

#
  • I have to route the differential pairs, any tips for that? should I place them in a different plane seen the small space that I have? I was thinking of routing them in the front face where I have space
grim widget
#

I was thinking of maybe placing the decoupling capacitors on the other layer and just route underneath with a via, the buttons I could place them far (maybe not the Bootsel)

grim widget
peak shell
peak shell
peak shell
peak shell
#

That's what I usually go with

#

Your resistors are absolutely tiny. make them bigger. You'll love yourself

peak shell
grim widget
grim widget
peak shell
# grim widget

Mmm looks a bit weird with that resistor but it should work I think

#

Those resistors and capacitors look very small as well

#

I would make them bigger

grim widget
#

they're 0402, im forced to for the capacitors but I'll use a reflow oven and a soldermask

grim widget
peak shell
peak shell
#

Oh yeah it does

grim widget
peak shell
#

Interesting

grim widget
#

it's in the hardware design

peak shell
#

I've never seen it before

#

Ok well sounds good then πŸ‘

#

Move the esp though

grim widget
#

did it

peak shell
#

Unless you're not going to use the WiFi/bt stuff

peak shell
grim widget
#

I'm wondering how I should divide in the plane the 3v3 and the 5V

peak shell
grim widget
peak shell
#

Red is esp outline. Blue is keep out.

grim widget
#

I could, so at the end of the day I've the same lenght

#

I could do the same for the usb c port

grim widget
peak shell
#

Just have one layer. Inner 2 for example empty and draw the power traces on that

grim widget
#

aight

grim widget
#

@peak shell should I impedance match the DP DN sorting from the usb and going to the IC1?

peak shell
#

In fact you probably don't even have to impedance match at all

#

I did for my last project though because I thought it would be fun

grim widget
#

Should I still treat them as differential pairs when they sort from the USB c and going to the ic1?

#

After ic1 for sure

grim widget
peak shell
# grim widget

Yeah yeah I know. But you can get away with it. But you can do it if you want

#

I did it for my internship PCB as well

peak shell
grim widget
peak shell
grim widget
#

got the bag and the experience tho πŸ™‚

peak shell
#

Awesome

grim widget
#

I'm still having problems to route the differential pairs of the usb-c

#

I'm forced to go to the other plane using vias but then how can I make sure that the lenght of the traces will be the same for both?

#

also for the 90ohm I'll need to sum the leghnt from A6 to 1 + B6 to 1 + lenght to the multiplexer + to the MCU?

#

and count for vias too

peak shell
#

I'm not an expert on this

#

I just kinda did whatever I felt looked good πŸ˜‚

grim widget
#

Lmao

#

I swapped to a usb2 connector

grim widget
#

I've been working on the routing lately, it's a 4 laer with the 2 inner layers being GND planes for EMI protection (overkill? probably but I want to have a GND plane under the differential pairs). Before continuing I've few questions: 1) to connect the 2 GND planes together do I scatter in a grid some vias? 2) in order to have less noise on the 3V3 should I use large copper pours? note that the testpads and the 2 connectors in the bottom right corner of the first image aren't routed yet. asking that before using vias to connect all the GND and the 3V3 πŸ™‚

#

in the pdf there's a high quality image of the routing in color, if there are any other problems / some suggestions / any other files needed lmk !

#

the usb connector is also giving me some problems with the distance between pins ig, ill recheck my rules

grim widget
grim widget
#

@peak shell what do you think?

peak shell
# grim widget I've been working on the routing lately, it's a 4 laer with the 2 inner layers b...

Layer stack up sounds good. 1) You can either place stitching vias yourself but altium and kicad have automatic stitching via scripts. The one in altium is a bit weird because there was something you needed to do in order to get it to work. 2 ) I don't know what you mean. Btw it looks like you only have fills in the inner layers. I would also put ground planes in the top and bottom layer

#

Did you connect everything to ground yourself?

#

You don't need to do that now that you have those two inner ground planes

#

Just have a short wire and a via going into the ground plane

grim widget
grim widget
#

So rows and columns shared

peak shell
#

I see

grim widget
peak shell
grim widget
#

Then I wouldn't have any GND underneath the differential pairs...

peak shell
#

You have 4 layers right?

grim widget
#

I do have 4

grim widget
#

I could have one layer dedicated to power routing and a fraction of it for the gnd (to stay underneath the diff pairs)

peak shell
#

Although the distance between the copper layer underneath that is probably already enough

grim widget
#

I'm following your suggestion and I'm using stitching vias to go from the layer 4 to the 3v3 layer

#

in the third imageI should have an error right? because the traces are going over the drill

#

right?

grim widget
peak shell
grim widget
#

Is there any equation to find a good number based on what you want to achieve? Or I just go by sense and put way less?

peak shell
#

Only if you're doing a coplanar wave guide or try shielding against a specific frequency

grim widget
#

I still didn't find in the altium doc a way to automatize creating vias to connect automatically the GND and 3v3 to its layer

grim widget
#

I thought that now I can connect all the 3v3 manually with vias and then pour GND to the outer layers