Feedback on PCB Design

There is a lot of free space on your board, so you could easily arrange the traces more freely. In general, it seems to me that you were just too lazy to make the board carefully. The fact that it doesn't work is the expected result.

Sorry for the miscommunication. This is not a fake diagram. It is what the final PCB looks except these 90 routings. I am sorry for it. I literally am struggling with this PCB now.

@kapple1736 ,

Please start again, by which I mean continue with this topic but post everything again in some replies after this. Please post:

  • A PCB layout that is clear and shows your actual board as manufactured. Make sure every track is clearly and accurately shown and pads that are not joined don't appear to be joined.
  • A schematic as an image, not something I have to download, so probably a jpeg image and certainly not a pdf file.

Your schematic is really just a long list of connections, it has no wires shown so is extremely difficult to follow. Please draw it with connections shown as actual connections. KiCAD has an option to route multiple wires that belong together as a bus, you probably should use it.

It would also be useful to see your board, please post clear photos, it might be the case that there is nothing wrong with the PCB design but something wrong with the assembly.

I’d be happier to see a downloadable or other “browsable” kicad file(s), so that we can zoom in and out as needed.

I have nothing against "zoomable" PDF files, but only if they reflect the actual board, and not some earlier version that OP changed a long time ago :slight_smile:

There are of course some possible optimisations for the board layout as already pointed out. I've found one here where there appears to be a long, meandering track:

image

But, anyway, now you've got the board you have to try to make the best of it using it as a test bed for the next version.
What can you test? For example, can you load the blink sketch on the MCU and get a response from it ? Have you any ideas on how to test the interworking of the other chips with the MCU to get some sort of recognisable response from them ?

Early edition boards are often best designed with testing and possible hacking in mind. Say, by avoiding tracks under soldered components so you can cut if necessary, having solder jumpers to isolate parts, spreading the design out a bit to allow added components (glued on bits), breaking out currently unused pins to something solderable (pad etc.).

Edit

Which example, if any, of an ATmega328pb schematic did you follow for the MCU part ? Here is one from Pololu and there are substantial differences to your design https://www.pololu.com/file/0J1463/a-star-328pb-micro-schematic.pdf so probably it is good to verify your design first.

You should start by doing the schematic properly. Those blocks with lists of net labels is NOT a proper schematic.
You have to draw all the wires (not net labels) connecting all the components and pins. If there are several parallel wires going to consecutive pins, group them in a bus line. But draw all the wires, or almost all.
Otherwise to find where something is connected is very hard or impossible.

For the PCB, activate all the constraints regarding clearances, sizes of wires, etc. And run the tests of the software (button for Electronic Rules Check, or similar) and solve all errors and warnings, both in the schematic and the PCB.

You shouldn't send the order to produce the PCB without checking A LOT BETTER your design.
You can also use the 3D view of your board to find possible problems and errors, and even print the PCB in paper and review it.

I don't want to derail the thread by turning it into a discussion about whether a bare schematic with net names is worse than one which shows wires to every possible connection but neither do I want that the OP spends a lot of time in adding wires to the existing schematic which bring little to the understanding. Especially when the design is quite symmetric as this is.

Just to say this: The bare version is good enough for Pololu: https://www.pololu.com/file/0J1463/a-star-328pb-micro-schematic.pdf
For those who want to see wires all over the place, there is this example: Help with Four nano ch340g on one board - #5 by TomGeorge . For me, it is clear which one is more useful.

I guess there's no right answer to this, some people can read a list of net names okay, some need lines showing the connection, I need the lines, others might not.

I agree that you don't need to bring the rules to the extreme, but in most of the cases it helps.
For example in this case, to find where D1R or S1R are connected means to search all over the document. And when you find the label in another component, keep searching until the last corner because you can't tell if it's connected to more places. With wires it's fast and safe.

And buses solves the mess of the many parallels wires, and additionally helps a lot to see/understand quickly how components are connected to each other. It will help with the PCB design a lot.

Even if you create the schematic only for you, it helps, in my opinion. If it has to be read in the future by others, then it's more important.

Thank you for the response. I am not able to bootload the chip through this board. I bootloader the chip outside and loaded the program for LED blink. It did work. But when I connect it through USB, it doesn't accept code, although it recognizes the port.

You are right here. I will start doing it.

When I take the image (PCB Editor), it is never clear as the board size is bigger. It doesn't fit into the screen. Tried so many options now. The same goes for the schematic.

Thanks for the suggestion. I will draw all the wires and get back to you.

What did you use as your source for the ATmega328pb design. Did you find a ready made design somewhere which you copied or did you design it directly from the data sheet ?
If you substantially copied a design, please provide a link to it.

Just to the boot loader, if you use the ICSP pins to load a program directly onto the chip, that process overwrites the bootloader so you may have to re-install it.

I used the datasheet for the Atmega design.

ICSP I am just using for bootloading the chip through using minicore. I have a USB serial converter chip, ft2332rl which is coupled with USB-C for programing. (unfortunately, it too, isn't working.)

You've spoken about the boot loader but have not shown on your schematic the standard "FTDI" (six inline pins) header for it which break out RX, TX, power and DTR. The DTR line has a series capacitor to the MCU reset pin and this is also not on the schematic. So it is not clear how you have connected your USB/serial converter.

Also, on the ICSP header you have labels MISO, MOSI and SCK which is normal but odd is the SCK is connected to MCU port C (PC5) whereas MISO and MOSI are connected to port B; (PB3 and PB4 respectively). Have you confirmed that this works ? The data sheet for the ATmega328PB (ch32.9) seems to imply that these SPI pins are all on port B.

If you can see the schematic, it is placed in


the left corner.
For your reference, I am uploading a sketch of that part.

Yes, sorry, I thought you were talking about an external device.
Anyway, it appears here that you have interchanged the TX and RX pins:

image

and you still have to explain the SPI pin SCK on a different port to the MOSI and MISO pins:

MOSI-PB3
MISO-PB4
SCK-PB5
I realized my mistake about connecting sck to the wrong pin.
I broke the trace of it and externally connected PB5 to SCK.