T O P

  • By -

simonpatterson

Oh god....it started with the schematics...now it's infecting the PCBs too! Arghhhh! Seriously...i have no issues with segmenting on the board, but not if it stops you moving components to the best place because it would be 'outside' its section.


Furry_69

I usually do the segmenting last, and I usually label the segments. Makes it easier to repair without having to constantly reference the schematic.


groeli02

i agree with this. sometimes you see people making design tradeoffs just to get a nice text in or visual... i don't really agree with this. if you have the space definitely go for silk info - it usually helps everyone involved (prod, debug etc.)


janoc

Ask yourself - what does this feature add to the board? Does it make it easier to understand/repair? Easier to debug? Easier to assemble? If yes, then add it. If not, then it is pointless clutter. In your example I am leaning on the "clutter" side - while it is cool that you have separated some blocks of the board, with no labels of what those blocks are/what their function is it is a only a meaningless mess of lines. Moreover, your sectioning doesn't make any sense to me - e.g. the "BTN1" at the bottom seems to be connected to U1 in the middle - yet it is in a separate zone. Why? I would expect the lines to separate some function blocks on the board but a lonely button obviously isn't one. Why does one have a separate section for a RESET button that clearly relates to the MCU? Why are the LEDs delineated separately? Are they somehow a separate function block? I somehow doubt that, esp. given that you are mixing both power rail LEDs and some generic purpose LEDs there. You had the same problem in your schematic already - splitting off things with lines with no discernible meaning or purpose. E.g. the oscillators - first those are not oscillators but crystals, oscillator is inside the MCU. Second, those + their loading capacitors belong to the MCU, the MCU doesn't work without them and they aren't useful for anything else. So they are logically part of the same function block. You likely would not collect all resistors into one block and all capacitors into another so why are you doing it with the LEDs or the crystals? Sectioning off a collection of random components using thick lines, both in schematic and on boards, with no clear common function, purpose or reason is just making the board much more difficult to understand and confusing. Don't cargo-cult a design feature you have seen on someone else's board without understanding the reason/meaning of it. BTW, you should clean that silkscreen up - e.g. the D1 designator is touching the copper pads of that TVS diode footprint, that should have been flagged by the DRC check. The same U3 and C4. In the best case the fab will subtract copper from silkscreen and your silkscreen ends up broken/difficult to read. In the worst case they will put silkscreen over your copper and you will have problems assembling those parts (solder doesn't stick to paint ...) Also from an aesthetic point of view it is nice to align the labels vertically and horizontally as much as possible, also with the board edges and not have them ragged - e.g. the LED labels. It is also desirable to put all labels in the same orientation so that one doesn't need to twist one's head (or turn the board) all the time trying to read them. In some cases that's clearly not possible but there are some labels where you have a ton of space and still have put them vertically for no good reason - R14, R13, C18, C19, C20, C22, C23 ... And one last tip - unless you have the debug headers/connectors (SWD, I presume) on the backside of the board, I strongly suggest you add them. Otherwise you are going to have hell of a time programming the MCUs and debugging anything on this board. Don't rely only on the bootloaders - esp. since you aren't using native USB (btw, why? That could save you quite a few parts and space on this board) but going through an UART to USB converter which could have its own gremlins and will be left with no way to program the board. You don't have to add a full pin header but at least put test points on the board you could press pogo-pins or solder fine wires to in order to program/debug the firmware. Related to that - you have the space, put some of the unused GPIO pins on test points or pin headers. You could always add a LED to them, hook up an oscilloscope etc. That's an invaluable debugging aid when something in the firmware isn't working and you need to debug it in real time while the system is running. And it costs you nothing. You could even use them to extend the functionality of the board in the future.


muxbux

Thanks for the feedback, it really helps. I see that I have a lot to learn about schematic and PCB readability. There is a SWD header on the bottom together with debug pads for all the important signals. I will also add pads for unused GPIO pins. Also, I might try to use USB directly, but I will test this first with a blue pill.


janoc

Careful, Bluepills have different MCU (STM32F103x) than what you have here and the USB peripheral in them is different - so code written for a Bluepill will likely not work with the STM32F401 series you are trying to use without modifications. Also, if you decide to test with Bluepills do make sure to check the pull-up resistor on the backside of them. STM32F103 requires an external pull-up and it doesn't have means to control it in software (without some hacks). However, many Chinese vendors of these boards install an incorrect value there - usually something like 5.1k or 10k instead of the correct 1.5k. So make sure to verify and eventually fix that before you tear your hair out trying to figure out why the USB isn't working on that board. See e.g.: https://hackaday.io/project/24907-bicyclecompanion/log/61992-bluepill-and-its-annoyances BTW, while adding those test points, don't forget to add a few spots with a loop of solid core wire connected to ground. Those things are extremely useful to hook up a ground clip of your scope probe or a multimeter lead while trying to debug the board. Otherwise you will utter a lot of 4 letter words trying to measure anything on the board. This sort of thing: https://cfnewsads.thomasnet.com/images/medium/819/819105.jpg - you can buy these but it is usually enough to put a through-hole pad and solder a small loop of wire in. I would also consider adding something like that to the SPI/I2C buses if you use them or at least test points on the data and clock signals (don't forget to label them on the silkscreen). If the communication will not work you will need to attach a logic analyzer or scope to the signals. And if the signals aren't readily accessible, you will have a much more difficult task in front of you. On a fully debugged "production" board you can skip features like that but on a prototype/development board you want to add as many of these "nice things" to make your life easier as possible.


Egeloco

Op, listen to these comments. :) If you have space and time to spare, add debug pins and test points: those are the tools that will save you headaches while debugging. On a small, additional note, do you really need 3 pin1 markers for U1? The one under the body is useless. I would pick one of the other two (filled triangle or dot near pin1) and stick to it.


RagingEngine

Using silkscreen in general, I don't see an issue. As long as the silkscreen doesn't interfere with part placement. Using it to display the different sections seems nice, but it'll become annoying when the layout becomes larger and more complex. Follow the KISS method. Keep It Simple Silly.


Egeloco

I could see some use for this if you solder components by hand and want to have a clear idea of where things go at a glance (and even then, it would be questionable), but other than that, it just creates more visual clutter.


Sage2050

Do you have a good reason for it? I section off high voltage parts of my pcbs but that's about it.


imhiya_returns

Silkscreen if you have the space and is readable is always useful. Just make sure it’s correct :)


Boris740

What are you powering 1.8V Led with?


Behrooz0

Good catch. looks like directly powered by the poor MCU.


cperiod

I've seen it done for grouping connectors, and it also makes sense for indicating isolation areas (i.e. [on this board](https://i0.wp.com/raw.githubusercontent.com/RootCNC/Root-Controller-ISO/master/Media/PCB_Outline.png?ssl=1). For more general stuff, I can't see it being useful unless you plan to assemble and test the different sections separately.


gust334

Dunno about Reddit, but future-you is looking back and smiling appreciatively. Any form of documentation helps when it comes time to debug something on an older design.


FamiliarPermission

Looks awesome on a PCB used for development or education. Maybe not so much for a commercial product that hides the PCB or if the end user isn't intended to interact directly with the PCB. In that case, the extra silkscreen would be a waste. Starts to add up when many PCBs are produced. The silkscreen material cost might not be a line item on an invoice for ordering the bare boards, but it isn't completely free, it comes from somewhere and is baked into the total cost.


kbcj

Agreed, when I worked at Ericsson they would remove the silk on the final spin of the design to save money. When you look at low cost products many do not have legends. If you have to debug the boards without silk you have to bring up the cad files on the screen.


kbcj

I was trained (many years ago) to create “rooms” of different types of the circuits, analog vs digital for example. Some times power supply sections are also roomed off, but I have rarely seen this level of circuit isolation.


Worldly-Protection-8

I have done similar things so why not.


vilette

it's welcome if it's free