4 ms·
Question for anyone who has done something similar : how feasible would the hardware part be for someone who has some basic electronic / breadboarding knowledge
by ab71e5 2y ago
Question for anyone who has done something similar : how feasible would the hardware part be for someone who has some basic electronic / breadboarding knowledge but no pcb design experience? Besides this excellent article what would be a good resource to learn to do something like this myself?
- beryilma 2y agoIf you want to learn about the mechanics of designing PCBs, install KiCad (https://www.kicad.org/ https://www.kicad.org/) and go through these tutorials: https://docs.kicad.org/ https://docs.kicad.org/
- dragontamer 2y agoThis is advanced level PCB design. You need to know proper grounding and differential pairs and length matching to accomplish what is listed in this article. These are very difficult topics, but this 2 hour video should give you an idea of what's going on here: https://www.youtube.com/live/ySuUZEjARPY?si=xfpg8XdjtXa1Uixn https://www.youtube.com/live/ySuUZEjARPY?si=xfpg8XdjtXa1Uixn -------- If this is too much for you, then instead stick to microcontrollers and other sub-100Mhz or sub-20Mhz projects. But 500MHz and above that requires length matching with controlled impedances is waaaayyyyy outside the scope for a beginner designer. --------- Beginner design is easier at 20MHz or so. The faster your signals, the more susceptible to noise they are. Those 500MHz+ Linux MPUs may fail to boot or fail spuriously if you make grounding / noise / EMC errors. And it's pretty difficult to explain to a beginner what is going on physically. The PCB board itself needs to be seen as parasitic capacitors, inductors and resistors (especially around Vias, between layers and other elements). But these 500Mhz or so processors here in this blogpost are still easier than Ghz+ chips. ------ The example I always like to point out: 2.4GHz wavelength is just a couple of cm long. That means any trace of ~centimeters can accidentally turn into a Bluetooth / WiFi antenna, which would inject a ton of noise into your circuit (or conversely: 'Throw' your electrons out like a Bluetooth / WiFi antenna). That's why faster speeds are harder. 900Mhz and slower needs an antenna over 30cm long, so staying below this means every PCB trace is too short to be an effective antenna. Going even slower at 20Mhz means many meters before you accidentally make an antenna. ------- I'd summarize that high speed circuit design is 60%+ just making sure you didn't accidentally make antennas in the frequencies you're working with. And the other 40% is decoupling / turning the PCB into a distributed physical capacitor.
- dragontamer 2y ago> That's why faster speeds are harder. 900Mhz and slower needs an antenna over 30cm long, so staying below this means every PCB trace is too short to be an effective antenna. Oh I forgot to mention, the issue is the 5th or 7th harmonic of your digital signals. So... a 20Mhz digital circuit will realistically have 10ns rise/fall times or aka have ACTUALLY 100Mhz information in your electricity. Similarly, a 100MHz clock digital circuit will need rise/fall times of 2ns. That's 500Mhz information inside of your signals (2ns == 500MHz). Following the pattern: 500Mhz digital clock will easily have 2.5Ghz+ information in them to keep those digital signals square. Aka rise / fall times of 0.4ns. ----------- If you've accidentally built a 2.5 Ghz antenna twice in your circuit, guess what? That 0.4ns rise time square wave is going to start teleporting between your PCB antennas. Electricity at high frequencies moves in very complex fashions. In ways that beginners cannot comprehend. We call it crosstalk, EMC and other ways they move around. But it's all antenna theory, EMI fields and the like. I can't say I'm a high wizard of this magic but... Hopefully I've got it close enough for you to understand the issues at play here. It's best to just slow down to 20MHz where electricity still makes sense.
- ab71e5 2y agoThis is amazing, thanks for the breakdown. I guess this article makes it seem easier than it is. I will stick to SoM for linux for my projects for now but definitely going to try some stm32g0 and the like custom boards
- dragontamer 2y agoYou can and should be practicing good 4 layer (or even 6 layer) boards even with 'easy low frequency' STM32G0 chips. That way, you build up your habits but in a non-punishing manner. ----------- STM32G0 will work on a breadboard, let alone a properly designed well grounded PCB. But... You can still see the EMI through the use of a loop antenna-oscilloscope. Simply attach the ground-alligator clip to the probe top while setting your oscilloscope to AC coupling mode. Zoom in as much as you can on your oscilloscope. Now wave this 'loop' around various circuits and traces. You'll see the EMI noise coming off of bad circuits... But only within 5cm or less. (loop antennas can pickup the so called near fields very well). Alas: proper EMI testing is about far fields, not near fields. Still, it's good to have a methodology to actually see, feel and touch EMI in your projects. -------- Getting a physical feel of electricity for real (and not the fake electricity we pretend happens in resistor/capacitor/inductor lumped element models) is the important leap you need to start learning. Making consistent PCB designs and measuring EMI off of them is a great way to learn and improve. You probably only need to make 4 or 5 designs while thinking about these issues to really understand. There is enough study material to give you the gist of theory... And the EMI loop antenna oscilloscope gives you a good enough measure (albeit flawed but still a real live measurement).
- davidhyde 2y agoI found this to be a great resource when I was learning PCB design: https://www.youtube.com/@PhilsLab https://www.youtube.com/@PhilsLab I watched all his KiCad videos and tried to build them as I went along. Then you can use a cheap PCB manufacturer like JLCPCB to get them made. It's a lot cheaper than you think (tens of dollars delivered in two weeks for simple stuff). There is a lot of know-how to learn in this field but I found it to be very accessible as a SWE and it all made sense. It just took a long time to pick it all up.
- phlipski 2y agoIf you're looking to build a product using an embedded linux system you're better off just using an off the shelf SOM from an embedded board vendor like Toradex or Phytec (to name 2 - there are dozens out there). There are some quasi standards around compute modules now like SMARC and SODIMM where the vendors build little pcb's that contain the SOC, DRAM, PMIC and optional EMMC and WIFI. Then you just built a carrier board to breakout the IO like USB, UART, HDMI, MIPI DSI/CSI-2, etc.... The design/layout/validation of the SOC/PMIC/DRAM is the hardest part and unless you're shipping in volumes > 100ku annually you're probably better off outsourcing the SOM. If you're just looking to learn then by all means give it a shot! Jay's article is a great primer in the basics but just know that all of those parts are pretty slow/old by today's standards. That article is 4 years old and even 4 years ago those parts were fairly slow/cheap/low-power/low-pincount relative to the SOT at the time.