Finished my first PCB - looking for feedback!

If you hang out in the ‘build progress’ thread you’re probably aware that I’ve been working on this for… much longer than I should for such a simple module, but I’m extremely happy to say I think I have finished with my first PCB design!

For a quick recap for those who might not have seen or don’t remember, if I remember right, my first stripboard build was a slew limiter that I found here, and over the last bit I have been curious about making my own PCBs. This is an extremely simple build with very little going on so it seemed like a good one to test the waters with. I received my first batch of PCBs and everything worked as expected, with the exception of my front panel not lining up properly and my switch being reversed. I revised the board to fix the switch and change the layout a bit to make it slightly more user friendly, and am about 99% sure I have sorted out the front panel, so now I am just waiting on JLC to get them into my hands to verify, but I’d love some feedback from you guys on it.

At this point, I can’t say for sure how into this I’ll get - if this will be the only one I do, if I make a couple different PCBs, or if I get super into it, make a tonne and start doing my own designs. I had fun with it so I imagine I’ll keep going and I’d like to do things right from the start. When I share any boards I make, my main goal is going to be to make everything as user friendly as possible. Over the last year of getting into synth diy there are a couple things here and there that have made the journey just a little bit more difficult than it needs to be, and I’d like to remedy that a bit with my stuff. These are all little things that on their own aren’t a big deal but all add up. Off the top of my head the general focus is

  • Easy to navigate folders and files. This is simple and grossly overlooked when browsing github. Simply putting stuff in a place that makes sense, naming it properly, and keeping it consistent from one project to another
  • Board readability - taking a bit of extra time to make sure labels on the board are positioned in a way that makes sense and is easy to read, ordering the designators from top to bottom, etc. The designators might be a touchy subject as ordering them one way on the board makes the schematic harder to navigate, but I would way rather have a schematic open and hit CTRL+F to find what I’m looking for than spend forever hunting on a board for where the hell R43 is
  • Multiple files where useful. Some people like iboms, some people like photos, some people like CVS. It takes seconds to generate but can be frustrating when you’re just starting out, something is missing or doesn’t make sense to you, and you don’t know how to use the software. I want everything to be ready to go out of the box so you can just send the files to a PCB manufacturer and build without opening up KiCad for any reason.

There are some other things I’ve likely encountered and am trying to fix myself, but it’s early in the morning and I think you get my drift. Again, this particular build is so simple that none of this really matters and even the newest builder should be able to put it together without much thought, but I would rather get feedback now and hammer out details instead of several projects down the line then go back and change things to have a uniform feel.

With all that said, here is a link to the project. I would love to hear any feedback on it that you might have!

4 Likes

Looks pretty good!

Maybe it’s just personal preference, but I prefer the GND symbol from the power symbols lib instead of global labels:

image

Probably not a big deal functionality wise but I think it makes a design more readable.

Also - I know some people don’t consider it a big deal, but you might want to put some kind of license tag on your github - even if it is just WTFPL.

Cheers

I’ll look into symbols, thanks! Because I am just starting out here I have no preference at all and for the most part looking at other schematics to see what people do and laying out in a way that makes sense to me, so I have no preference. More than happy to conform to whatever makes the most sense from other peoples perspective.

As for licensing, this is tricky for me. I know what I want to do with anything that I design (should I get that far on), but lets say specifically for this example here. I drew this schematic based on a layout that was publicly posted on this forum. That layout was based off a YuSynth design with some little modifications. The YuSynth site says “The projects of this site may be build for personal, private usage or educative purpose. Commercial exploitation of the schematics, circuits, front panels and software shown on this site, is not permitted without a formal agreement with myself.” So I think what has been done here - somebody posting a layout for others to build, then me turning that in a PCB and making it available for others to build - is completely fine in terms of what is said, and probably within the realm of what Yves would like to see, people learning and building off his stuff. But if I slap a WTFPL license on there then somebody takes my board and sells it, is this now in violation of YuSynths licensing? Or is it far enough removed that it doesn’t matter? Obviously I’m not vain enough to think that my board design is so dope that this would happen, but I had mentally filed this all into pile of stuff to look at later, then forgot about it.

to keep your git repo more tidy, you can get rid of all *bak and cache files. Just put them in a .gitignore!

2 Likes

Not only does the GND power symbol look better but as a power symbol it’ll work better. If you have an IC that’s powered from VCC and ground, you’ll get rules checking errors if both aren’t connected to power symbols. And yes, you should be using the rules checking.

In that case, don’t make a single repo for all your module designs! It’s impossible to download just a single folder from GitHub — you can get one file or you can get the whole repo, that’s it. If you have 10 modules in one repo and I just want one of them I have to download the whole thing.

You’ll want to put “JLCJLCJLCJLC” on the back of the panel to tell JLCPCB where to put the ID number.

It’s curious that JLCPCB can’t detect the panel dimensions. I thought perhaps it was because you’re using Protel filename extensions, which I don’t, but with that unchecked the same thing happens.

As far as licensing (IANAL but) Yves can say what he likes, but circuit designs cannot be copyrighted: A circuit diagram can, but the circuit itself cannot. So a new drawing of the same circuit is fair use, and unless there’s a patent on the design it can legally be used by anyone.

That’s legally. Morally/ethically I always try to give credit where due, and not to stomp on a creator’s desires. Maybe quote what Yves has to say about use of his designs, and say anything not covered by that (e.g. your panel design) is covered by <your license choice here>.

Thanks TimMJN! I was wondering about this but wasn’t sure what is actually needed for KiCad. I assumed that backup files don’t need to be saved but hadn’t looked into the cache ones.

analogoutput for all your points:
I’ll do some digging again on the power symbols. I know we had talked about this in the build progress thread, but I thought I had changed it to match your suggestions already. I’ll go give a re-read.

The single repo - dammit! This actually is something that has annoyed me with grabbing peoples stuff off GitHub, but its been a long time since I’ve used GitHub and thought it was just a user error thing. I couldn’t find the button to download a folder but thought that it must be there and I couldn’t see it. So perfect - I’m making some changes with stuff anyway so I’ll leave it as is for right now, then once I’m done I’ll make a new repo and edit my link.

Good call on the ID number - I paid the extra buck or whatever to have it removed this time around, but putting it on the back would be a good failsafe.

Good to know about circuit designs. In that case I’ll give some thinking on it but not stress out too much. I’m a big FOSS guy, so anything that I come up with myself will be put out under some “do whatever you like with this but release the source code” license, but I’m with you on the ethical stuff which is why I froze up. I want to make sure I credit everything properly and don’t release “my” work under something that would go against the original creators intents - even the chances of that happening are exceptionally unlikely. With synth stuff it’s hard though. I base something off somebodies design, who made some modifications to someone elses design, who took elements from this and that… the more I dig into it the more it seems like you can just pull that thread forever. My gut instinct is always to give as much credit as possible but you have to cut it off somewhere and I think that’ll just end up needing to be a personal choice. Even though this is something that’ll probably be seen by a dozen people and maybe used by one or two at best :stuck_out_tongue:

Panel dimensions, I’m doing a bunch of trial and error here with JLC. The gerbers upload fine to some other manufacturers but panels give me a hard time with JLC. IIRC from testing and reading, if I pop a via in there somewhere it grabs the dimensions no problem and displays in the viewer as it should. As it is right now, theres no dimensions but it displays properly. On my last board I didn’t have a copper fill on the back side. This caused it to not get the dimensions, and it also didn’t display properly in the viewer, but it did with other manufacturers so I took a chance ordering and it all worked out fine. Ideally I’ll keep plugging away trying to find the combination that makes everything work as expected and not cause any second guessing when somebody tries to order, but I haven’t figured that out yet.

Thanks for the comments guys, this is all great.

1 Like

Usually in my .gitignore files:

*bak
*cache*
*.bck
*.zip
*.DS_Store
*~
*.dsn
*.kicad_prl
*.rules
*.ses
\#*
2 Likes

There’s an official template:

You can choose it from the list when creating a new repo.

3 Likes

I do ignore *cache.lib files, but I don’t know if it’s a good idea. I haven’t had reason to regret it yet, though.

1 Like

I think if you package your .lib custom libraries with the rest of the files it should be OK. From what I read it’s to help avoid the ?? when the libraries are missing.