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?
So you want to build an embedded Linux system?
21–30 of 42 posts
Re: So you want to build an embedded Linux system?
#22Since an embedded Linux system will likely require use of either Buildroot or Yocto, I'd like to ask the following slightly off-topic question: Which SoM product line would you say has the best vendor support? I'm talking about quality of the BSP (board support package). (A meta-layer, in Yocto terms.) Raspberry Pi has quite a community behind it, so meta-raspberrypi has a number of contributors. (None of which payed…
Re: So you want to build an embedded Linux system?
#23Question 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?
If you want to learn about the mechanics of designing PCBs, install KiCad ( https://www.kicad.org/ ) and go through these tutorials: https://docs.kicad.org/
Re: So you want to build an embedded Linux system?
#24Since an embedded Linux system will likely require use of either Buildroot or Yocto, I'd like to ask the following slightly off-topic question: Which SoM product line would you say has the best vendor support? I'm talking about quality of the BSP (board support package). (A meta-layer, in Yocto terms.) Raspberry Pi has quite a community behind it, so meta-raspberrypi has a number of contributors. (None of which payed…
--
Raspberry Pi provide pi-gen (https://github.com/RPi-Distro/pi-gen), which allows you to build a customised Debian-based OS that uses our package list to get updates as we release them, with a low impedance mismatch between developing your software on Raspberry Pi OS and your deployment platform. Since it's debian based, your resultant system winds up being _very_ familiar.
We also provide tooling that compliments pi-gen. For example, rpi-sb-provisioner (https://github.com/raspberrypi/rpi-sb-provisioner), which will happily ingest an OS image created by pi-gen and automate the configuration of signed boot with an encrypted rootfs on CM4 devices. I've used it to flash half a dozen Raspberry Pi devices in rapid form as part of testing, and it runs on our own hardware.
I'd love to see what people make of these tools, and where we could expand support / docs / ascii-art. I don't check HN very often - but I'm pretty responsive to Github issues.
Re: So you want to build an embedded Linux system?
#25Embedded systems question. I have an nVidia Jetson, and I want to expose one of the USB3 ports to the user of the system (e.g. so they can attach a USB drive). However ... the USB3 port of the Jetson is not near the enclosure of the box. Now I'm thinking of using a USB3 cable, but I know from experience that this is not going to give a reliable connection. Any suggestions on how to properly do this? I don't want to m…
Re: So you want to build an embedded Linux system?
#26Since an embedded Linux system will likely require use of either Buildroot or Yocto, I'd like to ask the following slightly off-topic question: Which SoM product line would you say has the best vendor support? I'm talking about quality of the BSP (board support package). (A meta-layer, in Yocto terms.) Raspberry Pi has quite a community behind it, so meta-raspberrypi has a number of contributors. (None of which payed…
Their BSPs all suck to different degrees, but you can work around the issue with enough effort. If I had to choose ignoring cost, I'd pick an i.MX part, but they're priced for the industrial consumer where price isn't a big concern.
Stay away from any asian parts (Allwinner) or phone parts since they seem to have no vendor or community support.
Like others have said, some of the SoM vendors do a pretty decent job of hiding the evil, but that often comes with very opinionated BSP layers which limit your product design. We've had to ignore/replace all of our SoM vendor's layers, borrowing the few useful parts as needed.
Re: So you want to build an embedded Linux system?
#27Earlier quoted context omitted.
If you want to learn about the mechanics of designing PCBs, install KiCad ( https://www.kicad.org/ ) and go through these tutorials: https://docs.kicad.org/
Thanks! Yes I should probably start with something simpler, I have a tendency to want to skip ahead to the good stuff
Re: So you want to build an embedded Linux system?
#28Excellent blog! Love the fact that a great amount of background information is added to the article. Can be read as an "introduction to embedded programming" chapter but not as boring as you find in textbooks.
Re: So you want to build an embedded Linux system?
#29Question 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?
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
--------
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.
Re: So you want to build an embedded Linux system?
#30Since an embedded Linux system will likely require use of either Buildroot or Yocto, I'd like to ask the following slightly off-topic question: Which SoM product line would you say has the best vendor support? I'm talking about quality of the BSP (board support package). (A meta-layer, in Yocto terms.) Raspberry Pi has quite a community behind it, so meta-raspberrypi has a number of contributors. (None of which payed…
I have current products using raspberrypi and i.MX parts, and have worked with teams using TI and Renesas parts. Some fully custom boards, some SoM based. Their BSPs all suck to different degrees, but you can work around the issue with enough effort. If I had to choose ignoring cost, I'd pick an i.MX part, but they're priced for the industrial consumer where price isn't a big concern. Stay away from any asian parts (…
No vendor support is probably accurate, though.