If you’ve ever wanted to try your hand at creating a Raspberry Pi-like board for yourself, you should check out [Jay Carlson’s] review of 10 different Linux-capable SoCs. Back in the 1960s, a computer was multiple refrigerator-sized boxes with thousands of interconnections and building one from scratch was only a dream for most people. Then ICs came and put all the most important parts in a little relatively inexpensive IC package and homebrew computing became much more accessible. Systems on Chip (SoC) has carried that even further, making it easier than ever to create entire systems, like the Pi and its many competitors.
Only a few years ago, making an SoC was still a big project because the vendors often didn’t want to release documentation to the public. In addition, most of the parts use ball grid array (BGA) packaging. BGA parts can be hard to work with, and require a multilayer PC board. Sure, you can’t plug these into a typical solderless breadboard. But working with these relatively large BGAs isn’t that hard and multilayer boards are now comparatively cheap. [Jay] reports that he got cheap PCBs and used a hot plate to build each board, and has some sage advice on how to do it.
Although he’s looking at 10 different chips, he wound up making about 25 boards and he deliberately avoided using example PCB layouts. This let him optimize for hand assembly and try a few different strategies for things like memory layout. [Jay] points out the boards are more for evaluation than use. He didn’t put any peripherals onboard that you would probably want in a working system. He only included what was necessary to boot the chip into Linux.
There’s a long part of the post where [Jay] talks about why you might want to use Linux, why you might not want to use Linux, and why the Raspberry Pi 4 might not be your best choice, depending on your design goals. He also gives a tutorial on simplified single-chip DDR memory layout.
This has a reputation of being difficult to do, and the post acknowledges that for multip-chip designs, it is harder. However, at the speeds involved and the proposed topology, [Jay] was able to build several working designs and was even able to overclock the memory. The takeaway is that for all the panic over DRAM signal timing on a board, some of it may be unnecessarily strict and buying modules with RAM already in place might be unnecessarily expensive. Of course, some of that is because none of these processors are running at very high-speeds or with overly complex and fast RAM.
The first half of the post is full of information like that, but devoid of any testing of the actual parts. When you get to the bottom half, you’ll see, though, that he uses ten different chips from vendors like Microchip, ST, NXP, Ti, Allwinner, and others. We were impressed with how much work was done, including benchmarks. The actual write up is impressive, too Each part has its own quirks, like the Allwinner part that can only address the first 16MB of flash. He even threw in a video, you can see below.
Truthfully, most of us won’t do this. We’ll just continue to buy boards. We have, however, seen people steal the SoC off a Pi and put it on their own board. If ARM SoC’s aren’t your thing, there have been x86 boards, too.
The link leads to a Javascript-only black hole. Alas.
I have some really aggressive javascript controls – including a blacklist on anything outside the primary domain – and the site works fine. Better than most commercial sites, in fact.
It is 2020. Javascript is part of the web. You sound like someone on a teletype machine, complaining that a console program “assumes” you have more than one line.
Yes, I totally agree YOU should allow everyone to execute Javascript code on your computer, only a fool would not trust that totally strangers would never be malicious. What could possibly go wrong…
https://samy.pl/slipstream/
https://github.com/samyk/slipstream
Lynx browser awaits your usership.
:+1:
That sounds like the feature list for raspberry pi 4 with zero deviation.
Woosh?
Ah yes because this is the Buy a Day blog, not Hack a Day right? Never hack anything ever when you can buy!
A better way to contribute to the community would be… almost anything besides what you’ve written so far.
If you’re not enjoying an article scroll to the next one instead of making a Reddit level comment.
Well… at least one deviation.
“all connectors on one side of the board”
RPi 4 has USB and RJ45 on one edge, HDMI, audio and power on an adjacent edge.
Bill Gates! What a poor comment :-) Did you even read the article?
The author explains that it’s not as hard as it seems to do a basic Linux SBC. He gives a very useful overview of options, that might be useful for an enthousiast that wants to learn something new. Perfect for hackaday readers, no? The author never claimed he wanted to do “better” than the Pi Foundation, make thousands of units, all backed with a million dollar deal with Broadcom.
It’s a great article backed-up with comprehensive research. I really enjoyed it.
Same, guy! An excellent read, even for a hobbyist like me that hardly sees a personal use case. Then again, I thought the Pi Zero was a gimmick at beat until I shoved one into a game boy. Always exciting to see these kind of write ups if for no other reason than for it to become an archive for future use.
Looking forward to the Hackaday Hot Takes on this article (for better or worse). For myself, I might finally have the motivation and supplemental knowledge to design and build my own simple dev board.
You must have read a completely different article than I did. The one I read didn’t set out to compete with the Pi Foundation, let alone do better than them and was instead just a look at what a hobbyist who wants to make their own SBCs could look at.
The goal isn’t to make an SBC competing with the Pi. The goal is learning to design your own board including an SOC without having to stick a whole compute module on it.
That guy would not have write that if the click-bait misleading article was not stating about “creating a raspberry pi”
If the goal was to compete with the Pi, there are already numerous boards around doing that, often being also more open than the Raspberry Pi.
Lets be fair.
1. Jay is an actual engineer with some serious creds in the embedded device space.
2. He never claims to make a better raspberry pi. In fact, he compares the Pi to other available SBCs in the industrial market and is critical of them *compared* to the Pi.
Now don’t take what I’m about to say the wrong way– the RPi is a once in a generation, grand slam innovation, but from its inception and still now, it is tightly coupled to Broadcom, with no indication of that changing.
His ‘harshest’ criticism of the pie is that the BCM2711 is too purpose built for TV set top boxes and makes design choices that are not in line with all of the industrial applications that the RPi has helped realize.
Your requirements list assumes that the goal is a 1:1 replacement for the RPi– I think goal here is to expand the field and optimize for other workloads and applications than what the RPi is optimized for. Smaller, cheaper, lower power for example.
This article goes deep and wide into the building blocks of an SBC and is a fantastic resource for understanding the subsystems and how they work. As part of that, a big part, he does a really good analysis of some of the most widely used SoCs and how they might or might not be a good choice for a general purpose, linux compatible SBC.
I think this is fantastic– imagine if RPi is able to spawn a whole host of SBCs that are as cheap and diverse as what has grown from Arduino. Linux
From the linked article:
“For example, doing a multi-touch-capable finger-painting app in Qt 5 is actually much less of a resource hog than running a simple backend server for a web app written in a modern stack using a JIT-compiled language.”
I feel like most anyone who has installed a modern web stack should be able to intuit that they’re generally heavier than a simple loop that updates a framebuffer at the coordinates from a touch event. :P
Why would anyone want to *compete* with a Raspberry Pi? All you have to do is do something *different* than they do. Like 1) lower power, 2) wider temp range, or 3) better documentation.
“-I will need a price break for units > 10, and of course, a full software suite.”
Wait, are you claiming that the Raspberry Pi has a full software suite? That’s hilarious. They’ve got *a* software suite. I don’t think any SoC vendor out there has a *full* software suite. Even TI (who makes the SoC in a BeagleBone) which provides completely open documentation for the SoC doesn’t have software support for everything on the chip.
Your claim that TI provides “completely open documentation” for the SoC in the BeagleBone is wrong. The chips on the BeagleBone boards (at least the ones I see listed on the BeagleBone website) are all TI Sitara processors and they all have PowerVR SGX GPU cores in there which TI (and PowerVR) most definitely do NOT document at all (or provide anything beyond binary blob drivers for)
Wonder why Jay skipped past the SIP option for the AM3358 (the OSD3358)? Obviously there are downsides to going with a SIP (as he mentioned) but a lot of the concerns he had on the AM3358 go away with that route. Plus although it’s a BGA part it’s a *very* hobbyist-friendly BGA (super wide pitch). It is expensive, obviously.
Ooof, this write-up kind of misses the mark. My blog post isn’t about building Raspberry Pi-like single-board computers (which you plug a keyboard/mouse/monitor into and boot a LInux desktop). If that’s what you want, go buy a Pi. Seriously, they’re great, and that’s what they were designed for.
This post is about designing embedded systems that run Linux, focusing on both the hardware and software involved in getting Linux booting. Lots of engineers (and adventurous hobbyists) prototype embedded Linux systems using expensive SOMs and Raspberry Pi-like SBCs, and I wanted to show that it’s never been easier to design these systems from scratch.
I’ve occasionally seen posts on Hackaday about embedded Linux designs (most recently, George Hilliard’s Linux Business Card), so for the hacker community, I’d say the main take-aways are:
– SIPs from Microchip and Allwinner mean that you can make your own PCBs that boot into Linux without doing any DRAM layout.
– some of these parts, like the NUC980, F1C100s, and V3s, are available in packages you can even pencil-solder
– 4-layer PCBs are cheap enough these days that you can design and prototype this stuff from scratch without breaking the bank.
– If you want to do a design with a chip that uses external DDR memory, it’s really not that bad: you should just try it.
Thanks for replying, and clarifying,
but, I don’t think the write-up missed the mark as much as a certain comment did.
B^)
Thank you for the great article, and thanks for linking the NUC980 deal. 5 Linux capable chips, including shipping for USD$9.55 is pretty great.
If you don’t mind, could you answer a couple questions?
I’m 15, so a lack of experience and tools means I don’t think any BGA or fine pitch soldering is within my reach.
Is the NUC980’s 0.5mm pitch realistically hand solderable?
Which chip would you recommend to an absolute beginner in embedded systems?
What people can do soldering by hand is mind boggling (usually with microscope type help).
I would say 0.5 pitch is very doable – but if you are using a normal larger tip soldering iron to do so expect to break a few chips before you master the techniques. (Not just the heat to worry about – bridges that put Vin into a data line etc can let out the magic smoke when power is applied as well)
Biggest issue with hand soldering finer pitches is your eyesight – if you can see when you need to come back in and reflow to fix a bridge or make a good join you have a good chance of being able to do it with a little practice.
I know I did much the same sometimes even on finer pitch with a really naff budget iron when I was that age, and it usually worked.
Just blob the solder and wick it away… works on even very fine pitches, I’ve only done 0.5mm pitch, but a colleague does 0.25mm sometimes! As long as the solder mask is good and not just stripped back for the whole side of the chip this technique works well.
Oh and if you are making your own PCB to hand solder try to leave some space around the chips free from other components – so you don’t end up with the large tip soldering iron taking a small resistor or something with it when you work on the big chip.
As others have said, fine-pitch soldering is totally within your reach, with a couple of critical tools. You’ll really want a good microscope and a fine-tip soldering iron. Our hands are insane examples of what closed-loop feedback can do. It’s entirely within reason to manipulate things a few thousandths of an inch at a time *with* proper visual feedback. A stereoscopic microscope is, in my opinion, invaluable; I find working without depth perception to be really, really difficult. Amscope is a good resource, or eBay an old Nikon, Bausch and Lomb, or Zeiss. For a soldering iron, JBC, Metcal, and Weller all make quality products, but most are well outside the price range of what a hobbyist could justify. On a budget, probably Hakko. At first, working at micro scale will be really frustrating, but as with anything, give it time and you’ll be able to work wonders.
I think the NUC980 and F1C100s are your two best options for pencil-soldering, but the SAM9X60 is probably the easiest chip to get going that’s also relatively easy to design around (though it’s a BGA). If you can afford to spend $40 on an electric hot plate, I would recommend using that to do reflow soldering (where you apply solder paste with a stencil, place your parts, and then heat up the boards to melt the solder) versus soldering it with a soldering iron. Having said that, pencil-soldering a QFP really isn’t that bad.
I’m not sure why people are mentioning microscopes or fine-point tips — you need neither. In fact, I prefer nice, big tips that transfer heat better. Just put a bit of solder on your tip, line the chip up on the pads, and touch one corner of the chip to tack it down (don’t worry about shorts). Tack down the other corners of the chip. Then, with more solder on your tip, drag the tip across all the pins to solder them. Use flux + soldering wick to remove any shorts. There’s zillions of YouTube videos, with Dave Jones’ one being popular.
I’m @jaydcarlson on Twitter — DM me or start a thread to get the discussion going on next steps!
I find the small tip useful not so much for the ICs themselves but for small passives. When working with 0.8mm and particularly 0.5mm BGAs, or 0.5mm QFNs, most of my bypassing is 0402 or 0201. Fixing up a tombstoned cap with a fat tip can be painful. Also, especially on the TG140 boards that Chinese houses default to, pads lift if you look at them wrong, so the more localized the heat transfer the better. Tweezers are ideal, but out of the price range of most experimenters. As for a microscope, my days of bare-eye soldering 0402s and 0201s are long behind me. With a scope, I can still do a decent job on an 008004.
your post was awesome and I stayed up way too late reading it a few nights ago. Thank you Jay.
There’s a SIP version of the AM335x too, from Octavo Systems (OSD3358) as well. It’s a BGA package, but it’s a super-wide BGA spacing, so it’s trivial to route and easy to reflow solder even with a heat gun. Gets rid of a lot of the difficulty dealing with the AM335x with power regulation.
They are expensive, though, that’s the downside.
Hey Pat, any idea why the OSD3358 currently costs $10 to $15 more when sold bare as opposed to when it’s soldered on top of a PocketBeagle PCB? (Great little SBC BTW, but you probably already knew that) Some sort of weird supply chain issue or promo deal going on?
I would definitely classify the OSD3358 as a SOM, not a SIP. It’s a $45-70 PCB potted in epoxy. it’s completely different than the actual SIPs I reviewed — integrating all the power supplies, control signal pull-ups/pull-downs, and decoupling capacitors.
It’s true that you can solder it to a board and basically have an embedded Linux system, but that’s not the point of the article; the point is to show you that it’s really not that hard to design around these bare chips, using cheap 4-layer PCB technology. It should only add 4-8 hours of design time, tops, when compared to designing with a SOM. I’ll concede that SOMs make some sense when you have higher-end parts that have multi-chip DRAM layouts and more complex power supplies, but they really don’t seem to make sense for these parts.
Well, it’s not on a module, it’s in a package, so SOM seems wrong. Maybe CIP: computer in package?
The OSD3358s are roughly 1″ x 1″. It’d be *extremely* hard to compress any of these designs into that without going nuts on cost for the board. There are plenty of situations that are space constrained (including *board space* constrained).
I’ve also found the documentation significantly better than most other ARMs. 1100 pages of good reading…
thanks so much for the post. I am really looking forward to the day when there are Linux capable SBCs that are as cheap and diverse as the ‘arduino-compatible’ mcus. The pi z/zw were a really cool start ($5/$10) but they are slow, have been hard to get at times and haven’t been refreshed in years. It will be great to have friendly to use devices that we can throw lightweight Linux environments on. I think your rundown was a big step forward to that day. I love a good ESP-32 or STM8Blue but it’d be really nice to have the flexibility that a full OS affords– and it looks like we might be very close to achieving that.
I’d like to see you update your benchmarks to throw in some pi revisions and some of those overpriced SOMs. Please continue to tinker and experiment and share your findings. They are such a treasure to us arm-chair engineers.
I, for one, certainly found your post very interesting as I’ve been interested in trying my hand at making my own, custom SBCs running Linux for a long time now, just out of simple curiosity and as practice. I’ll have to go back to your post and start with the simplest chips first and then work my way through to the higher-end ones.
Anyways, thanks for the great post!
Just for the record, JLC does have some of the iMx processors available in their pick and place setup. If you’re fine with soldering some caps it should be quite possible to get Linux up and running even without the hassle of hand soldering BGA parts.
The “engineers” that design the hardware for the Pi have repeatedly demonstrated they do a pretty questionable job with minimal prototyping and design verification testing, it won’t take much to do better.
Meh, it *will* take a lot to make a better design for the same amount of time and money that the Pi foundation did. Because that’s what’s necessary to get the price down to theirs.
Hey Now! James is pretty cool!
When I’ve bumped into him in the pub he’s always been up for a quick natter about Pis and what we’ve done with them!
DO you mind expanding on that statement?
You can actually buy the chips he uses. Enough said.
Looks like you’re the armchair engineer here. There are many good reasons to choose some of the chips in the article beyond the consumer stuff you mention.
“review of 10 different Linux-capable SoCs” .. You’re missing the ESP32: ;-)
https://www.reddit.com/r/esp32/comments/dtlj7n/booting_linux_on_esp32_realtime_video/
They never posted exactly how they did it. I messaged them a while ago, and they never responded. The reddit account has no newer comments than that post.
If you want to help me recreate what they did, I’d gladly give it a go. In the comments of the post they mention they did it on a board with only 4MB of SPIRAM, so on a newer Wrover or even ESP32CAM with 8MB, it might actually be useable.
https://github.com/69K-ram/uARM-ESP32/blob/main/README.md here, if you want to help me try
When do we get a fully open source RISC-V chip?
After 3 seconds of Googling,
https://insights.sei.cmu.edu/sei_blog/2019/10/how-to-build-a-trustworthy-freelibre-linux-capable-64-bit-risc-v-computer.html
https://github.com/chipsalliance/rocket-chip
RISC-V, the Betamax of the computing world. Looks good on paper but it isn’t happening. ARM is everywhere and dirt cheap.
That’s entirely ignoring the industry, licensing, and geopolitical forces that are all driving RISC-V development.
I think if you read on those subjects in relation to ARM you’d see exactly why RISC-V may end up being incredibly important.
You could get a Sipeed Module from mouser/digikey which contains a Kendryte K210 dual core RiSC-V CPU.
Search for “Sipeed SOM” or “Sipeed SOC”, and let us know when you get it working with documentation provided.
Here is some documentation for the K210: https://github.com/kendryte/kendryte-doc-datasheet
And you will get a cheaper price on the K210 from the people who make and sell them: https://canaan-creative.com/product/kendryteai
But I’m guessing you would need to be ordering 10k+, but maybe not.
Woosh…!
thanks so much for the post. I am really looking forward to the day when there are Linux capable SBCs that are as cheap and diverse as the ‘arduino-compatible’ mcus. The pi z/zw were a really cool start ($5/$10) but they are slow, have been hard to get at times and haven’t been refreshed in years. It will be great to have friendly to use devices that we can throw lightweight Linux environments on. I think your rundown was a big step forward to that day. I love a good ESP-32 or STM8Blue but it’d be really nice to have the flexibility that a full OS affords– and it looks like we might be very close to achieving that.
I’d like to see you update your benchmarks to throw in some pi revisions and some of those overpriced SOMs. Please continue to tinker and experiment and share your findings. They are such a treasure to us arm-chair engineers.
What software package is that, when they show the BGA ( https://jaycarlson.net/wp-content/uploads/2020/10/BGA-compare-2048×1024.jpg ) , is it KiCad, or Altium Designer ? I do not think that it is Cadence Orcad Allegro, nor LibrePCB, nor Horizon EDA, nor Autodesk Eagle, but I’m not totally certain.
The netname font choice makes it look like altium to me.
I haven’t seen that purple fill with line-pattern on KiCad, so i would be inclined to say that’s Altium….but, i’m not an altium user.
That looks like CircuitMaker to me, which is a stripped down version of Altium available for free.
I used Altium Designer. I don’t use the default red/blue layer colors, though, since they’re really ugly. For these boards, Altium’s big advantage is just the overall productivity. Having said that, these boards could be designed in basically any software — use what you know!
To do that, you might have to find a manufacturer who’s willing to subsidize your SoC costs.
Indeed, the bigger tip, especially on a cheaper low power iron holds its heat and melts better. But there is a cross over point where the tip is too large that getting it where you need it is too problematic.
I haven’t needed magnification for anything yet, as my eyes are good and I’ve never gone into the extreme end of fine-pitch by hand – but many folks don’t have the eyesight so will need help even for relatively large pitches.
I do think you nailed it with the suggestion of hotplate, I’ve never actually had a proper thermal controlled variation. But have used an old heavy fryingpan to do the same, as long as you only need to use it on one side of a board its a great method. (And one I might have put more work into if a borked microwave/grill/oven combo thing hadn’t ended up in my possesion, it will become a proper reflow oven eventually – it actually goes hot enough to be used stock, but a proper thermal cycle will be fitted)
Outstanding. Brought clarity to me for a lot of things. Thank you.
wow Jay – what a thorough and well researched , beautifully written article! This will be a reference work and benchmark for any such articles :)
It should always be remembered that original Pi equipment supports a registered charity. Chinese, and other knock offs, are not charitable ventures.
No, it’s not. It’s an optional enhancement for some poorly coded web sites. For those who consider it manditory, those sites are simply broken. Expecting me to run untrusted code on my machine just to make you scrolling banner and persistent header work is asking too much. Design your site better or GTFO.
Ah yes the Buy a Day blog where we just buy a product and use it as intended. That’s exactly what people come here to read.
Hopefully the anti-garbage filter starts picking up on the low effort reddit comments people keep making and bans you.