Live data from Hacker News

So you want to build an embedded Linux system?

jaycarlson.net

21–30 of 42 posts

Re: So you want to build an embedded Linux system?

#21
post #20

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?

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?

#22
post #3

Since 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 recently got an Nvidia Orin Nano to play with and found Nvidia’s BSP to be very well documented and easy to use… but I haven’t looked into using Buildroot or Yocto directly. https://docs.nvidia.com/jetson/archives/r36.3/DeveloperGuide...

Re: So you want to build an embedded Linux system?

#23
post #20

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?

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?

#24
post #3

Since 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…

Disclosure: Raspberry Pi employee, focussed on better tooling for people building products with Raspberry Pi devices.

--

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?

#25
post #15

Embedded 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…

Can you check if there is another USB port exposed via a pin header? That is probably the easiest way if it is available. Otherwise, I think your best best is to solder wires onto the same pads used by the existing USB port. I wouldn’t try to desolder the port that is there, that could cause more problems. But if you can find a location on the board to tap into that USB port’s signals, you could solder wires to run another usb port using the same connections.

Re: So you want to build an embedded Linux system?

#26
post #3

Since 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 (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?

#27
post #23

Earlier 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

KiCad is the good stuff. Having your design rendered in the 3D Viewer is a fun experience.

Re: So you want to build an embedded Linux system?

#29
post #20

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?

This 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

--------

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?

#30
post #3

Since 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 (…

FWIW, some of the Allwinner stuff has fairly robust support in mainline Linux, and there are ongoing efforts to upstream missing bits: https://linux-sunxi.org/Linux_mainlining_effort

No vendor support is probably accurate, though.

Post reply on HN