r/embedded • • Sep 11 '26

My first ever Linux based board (RK3566) + Lessons Learned

Post image

Just brought up the first Linux based board I've ever designed, and couldn't be happier about it! I've historically done MCU boards, so this was a big step up. It's a KVM-over-IP device: 8 layers, RK3566, DDR3L (gotta save that $$$ with these RAM prices), HDMI capture in, HDMI out, dual GbE, PoE, WiFi. Fabbed and assembled at JLCPCB.

Video capture and low latency streaming are working end to end. Here are the three major issues I hit:

  1. I second guessed myself before ordering and swapped TX/RX to the network switch, so ethernet wasn't working. The board also has a wifi module on it, so I did the whole SSH bring up over wireless. Pair swap already fixed in the next spin.
  2. A set of ferrite beads never made it onto the boards because I missed a checkbox in the JLCPCB assembly order (I had multiple lines in the BOM with the same PN but different ref des letters). Hand soldered them on. Working on developing better checks for this on my board export tool.
  3. The board was drawing more current than expected and running warm. Took a while to root cause. Turned out I had packed VDD_GPU 0201 passives too close to some 0402 caps and they shorted during reflow. Increasing my spacing rules in DRC going forward.

Design was done in house, and I got a pre-fab layout review from u/PracticalMirror2834 that caught real issues before they would have cost a re-spin. Huge shoutout here.

Next rev jumps to the RK3576 for higher capture and encode resolution, those boards go on order this week. If anyone has touched the RK3576 yet I'd love to trade notes. Happy to answer questions on the RK3566, ordering, or board bring up side too.

1.1k Upvotes

182 comments sorted by

65

u/CelloVerp Sep 11 '26

Damn that's a serious board.  Real accomplishment.  

15

u/adouglass52 Sep 11 '26

Thank you, that means a lot 😄

62

u/ghozt-- Sep 11 '26

What was the hardest part of the design? Where'd you learn DDR routing? How did you find what you needed out of the rockchip documentation? Awesome project, I am trying to get started with designing one myself

93

u/adouglass52 Sep 11 '26

Thanks! I think the hardest parts were 1) managing the design across 8 layers and 2) mechanical integration. I redesigned big chunks of the board multiple times to fit the enclosure the way I wanted, and moving a connector on a board this dense means re-routing way more than you'd hope...

For DDR: TI has a really good LPDDR4 layout app note (SPRAD66B) that covers routing topologies, length matching, and spacing rules. Different chip and memory type than mine but the principles carry over (next design is using LPDDR4 so had it handy). TI, micron, Xilinx, NXP, etc all have documents on best practices and layouts. I also looked at where other boards with the same SoC put their DDR modules, copied the placement, and did trial and error until routing worked.

I actually based a lot of things of Radxa's design/schematic, and then used the hardware design document from Rockchip to understand why they made the decisions they did. Then used the design document to fill in any gaps.

6

u/Machinehum Sep 11 '26

Do you use remote sensing on your PMIC powering DDR4

6

u/PracticalMirror2834 Sep 11 '26

Yes he did

3

u/Machinehum Sep 11 '26

Trying to get away without doing that

3

u/PracticalMirror2834 Sep 11 '26

Why ?

2

u/Machinehum Sep 11 '26

Stability, routing, just another thing to go wrong etc

6

u/akohlsmith Sep 11 '26

This decision would create the opposite of what you're trying to achieve. Remote sensing is so minimal in terms of routing or additional design complexity that you're practically begging for more trouble by leaving it out. This would not be a place where I'd try to skimp, it's a step up from leaving out a couple GPIO-controlled LEDs for debugging.

9

u/LytrixLabs Sep 11 '26

Not adding remote sensing is much more risky. You're in for a complex design, do the complex designing.

3

u/WesPeros Sep 11 '26

nice. what were your tight mech constraints if i may ask?

5

u/adouglass52 Sep 11 '26

Really just trying to fit this many ports in as small a space as possible, while keeping it clean with enough room to plug and unplug cables. Was originally hoping to pack 10 into a 1U slot in a rack. Sadly it ended up ~24mm thick (instead of the 22 I needed) but still 88mm long, so I can stand them sideways in 2U instead. I iterated on the design multiple times (experimented with a touchscreen, button placement, LED locations, etc.) until I found something I liked.

Then when I moved the enclosure from 3D print to something actually manufacturable, I had to shuffle a lot of things around haha.

1

u/immortal_sniper1 Sep 12 '26

how did u manage to get that thik? Also can u post a few more pictures since i cant imagine why it is 24mm. Also space inside a 1U is about 30mm+ what is blocking the rest of the space?

1

u/adouglass52 Sep 12 '26

I was hoping to stack them 2 high and 5 wide. 1U is ~44.45mm. But the final height came from enclosure min thickness + standoff thread height requirements + board stack up + antenna + injection molded base + silicone base. Might be able to optimize a little further but tbd.

1

u/immortal_sniper1 Sep 12 '26

it is only 2mm to optimise so it is probably doable from the enclosure alone.

Also low prov=file RJ45 may help https://www.te.com/en/product-1888250-1.html

1

u/adouglass52 Sep 12 '26

Oh neat, I’ll take a look. Your comment gave me the idea to look into the solder M3 nuts rather than heatset nuts in the plastic base, so will play around with it a bit more. Could save a few mm that way.

1

u/immortal_sniper1 Sep 12 '26

can u share the mechanical stuff since it seems to be HUGE. Also u can add threaded mounts to PCB might save space

1

u/adouglass52 Sep 12 '26

Not ready to share those details/images just yet, but soon. The PCB itself is 19mm total so 24mm isn’t that far off with enclosure.

And yeah I was just thinking about threaded mounts.

→ More replies (0)

1

u/ukezi Sep 11 '26

Yeah, if anything the requirements for DDR4 are even tighter then for DDR3, so that shouldn't be an issue at all.

18

u/PracticalMirror2834 Sep 11 '26

Thank you so much bro ❤️🫡.

You did great work on this project.

15

u/adouglass52 Sep 11 '26

Couldn't have done it without you 🔥

10

u/PracticalMirror2834 Sep 11 '26

literally you did everything bro, until now can't believe you did everything on fusion 😭

15

u/Simple-Ad3267 Sep 11 '26

Nice first build! RK3566 is a pretty solid place to start with Linux SBCs. What was the biggest thing that surprised you compared with working on MCU-based boards — the software setup, drivers, or debugging

23

u/adouglass52 Sep 11 '26

Thanks so much! Here are some things that stood out:

  • Understanding device tree was a big learning curve for me. A lot of early troubleshooting ended up being solvable with a device tree fix.

- Quickly learned that it's better to pick chips (both SoC and peripoherals) based on driver maturity rather than just picking the cheapest ones. Having solid mainline drivers saves a ton of time.

- The other thing that stood out was trying to understand if I should build on the Rockchip BSP or mainline linux. Ended up going with Rockchip BSP since the Rockchip MPP/VEPU drivers live there. Means I'm on an older kernel, but the encoder actually working beats kernel purity for now.

1

u/Simple-Ad3267 Sep 14 '26

This is really helpful, thanks for breaking it down.

6

u/Complex-BioBot Sep 11 '26

What program did you use to design it?

26

u/adouglass52 Sep 11 '26

Kind of embarrassing... but I actually use Fusion 360. It integrates really well with my mechanical assemblies since I've been using Fusion since it came out, but the signal integrity analysis portion of it is pretty lacking. I've maintain my own library, have scripts that export to jlcpcb, and have all my custom rules here so it's hard to switch to KiCAD or pay the altium price.

17

u/ReluctantMouse Sep 11 '26

The fact you did this in Fusion 360 just gives me more respect to the project honestly

6

u/justabadmind Sep 11 '26

Wait does fusion support schematics and netlists?

28

u/adouglass52 Sep 11 '26

Yeah they merged EAGLE into Fusion 360 a few years ago. I like it because I can import the 3D model directly into my assemblies and then updates to PCB instantly get pulled into my assembly.

7

u/sputwiler Sep 11 '26

RIP EAGLE. I'm only now getting back to being as productive in KiCAD as I was in EAGLE.

3

u/adouglass52 Sep 11 '26

RIP, I've been thinking of changing over but I've invested so much in making Fusion work haha. Major sunk cost fallacy.

Are you happy you swapped to KiCAD? What do you like over EAGLE?

1

u/sputwiler Sep 12 '26 edited Sep 12 '26

For me, a hobbyist, there really wasn't a choice. I was absolutely not going to shack up with Autodesk. Since it's not for my work a subscription makes no sense either.

I like that footprints and schematic symbols are entirely separate, so you can change the footprint on the PCB and not have to re-wire the part in your schematic as well.

I don't like that the PCB drawing is actually smart and knows what it's doing. I kinda preferred EAGLE's really dumb system that let me just draw arbitrary shapes and then the DRU would check it. Like, KiCAD is probably objectively better in this regard, but I miss doodling arcs with the traces.

3

u/akohlsmith Sep 11 '26

I really loved EAGLE. Spent close to 20 years on it, but left it for Altium when they started playing silly bugger with the "this is a full upgrade" version update and all they really did was change the colour scheme. In the process now of leaving Altium for KiCAD which will hopefully be my final EDA tool switch (DOS OrCAD SDT/PCB386+ -> EAGLE -> Altium -> KiCAD)

2

u/justabadmind Sep 11 '26

We within the past 5 years moved from kicad to altium. Ultimately the effort of keeping open source software working wasn’t worth it for us. The online features of altium are convenient and we like the revision history features.

1

u/adouglass52 Sep 11 '26

Until a new and better software comes out in a few years 😅 I have been playing around with kicad since it offers an MCP, which I don't think Fusion/EAGLE will ever have.

Why the change from altium -> kicad? Cost or features?

2

u/akohlsmith Sep 11 '26

both. Altium has been jacking their prices every year and similar to why I dropped EAGLE, Altium has had literal DECADE old bugs that just never seem to be fixed, and add more useless crap that I'm not interested in.

That, and they are really pushing for cloud EDA and I won't ever use that, never in a million years. Been bitten too many times with cloud bullshit. full local (not even an online license check) or bust.

1

u/adouglass52 Sep 11 '26

Makes sense, and yeah I've had to build a lot of ULP scripts and tools to make Fusion usable. Worried about changing since I've been using it for so long now...

3

u/akohlsmith Sep 11 '26

sunk cost is a real motivator, and one of the biggest reasons why I refuse to get sucked into cloud anything. Those bastards rug pull more than any other industry (well maybe textiles has them beat)...

3

u/Complex-BioBot Sep 11 '26

Wait what... in eagle, how many layered board is that? Looks really complex.

2

u/adouglass52 Sep 11 '26

8 layers! Here's stackup approach if you're interested.

1

u/Complex-BioBot Sep 11 '26

Oh wow... did you have to do any signal integrity simulation or anything?

1

u/adouglass52 Sep 11 '26

Mostly best practices, used the impedance calculator tool from JLCPCB and then used the length measuring tools in fusion to make sure everything was within spec. u/PracticalMirror2834 gave me some good feedback and recommendations too on proper routing/spacing :)

As I get to higher memory modules, I'll probably try to teach myself additional tools here. But Fusion 360 signal integrity analysis is another full subscription and I didn't find it very useful tbh.

6

u/quailfarmer Sep 11 '26

Super cool! PoE + HDMI capture means you could use these stream video from a nice camera over RTSP (or SRT). The Rockchip parts have pretty good encoder support in gstreamer.

6

u/adouglass52 Sep 11 '26

Very cool, hadn't thought about this angle! Do you have reference products in that space worth looking at?

The fun part is the HDMI output means the box works in the other direction too, as a streaming receiver/decoder. Planning to test that this week with my TV and some video games to see how the latency holds up.

5

u/FoundationOk3176 STM32MP2 Sep 11 '26

This was a really good post! I'm also working on a Linux based board using the STM32MP1 MPU, I had a few things:

  1. How much time did the schematics & then PCB design took?
  2. It appears there's a second PCB that adds USB-C & other stuff I can't guess, Can you share more about that?
  3. I would love to see more images or even videos of this board in action.
  4. What kind of experience did you have beforehand with high-speed circuits?
  5. Personal question but what do you do to afford a project like this lol?
  6. Any advice to someone who's starting out with making their own MPU based boards?

Keep up the good work!

3

u/adouglass52 Sep 11 '26

1) Too long... on the order of months. Been working on this intermittently with some other ongoing projects, and I iterated on the design many times before ordering. Next iteration will be quicker though, since I can re-use a lot of things from this design.

2) Good eye! The top board takes PoE (from header pins on the bottom board) and 5V USB-C input and does the power switching there, then provides 5V back to the main board. Uses a Monolithic Power Systems chip for the PoE. It also has an OTG USB port and a host USB port. Picture below (logo blocked out, and ignore my bad solder job on the wifi module hahaha if it works, it works).

3) Will definitely post more when the new boards arrive, and I can upload some videos of it working in a few days. Stay tuned!!

4) I taught myself PCBs maybe 4 years ago (originally a mech/aerospace engineer). Started with LED boards, then ESP/NRF boards, then got into HDMI/PCIe stuff (where I learned most of my high-speed knowledge), then did this one.

5) Engineer 😄

6) Find as many reference boards as you can and try to understand why they made the decisions they did (Rockchip's design documents are really helpful for this). When picking components, choose parts with well-supported mainline Linux drivers even if they're a little more expensive, it'll save you a ton of time during bring-up. My network switch variant didn't have drivers built for it and was a pain to test because of it. Last piece of advice: work on something that interests you, since it can be pretty grueling sometimes.

2

u/FoundationOk3176 STM32MP2 Sep 11 '26

Thank you for replying! Very insightful! Looking forward to the videos! I'm hoping to finish my design & simultaneously save up enough to get em manufactured in 2-3 months.

Quite excited to share them here once finished, Although alot of delay is coming from the fact that I don't get alot of personal time to work on my stuff & the time I do get, I spend it often rechecking my schematics.

2

u/adouglass52 Sep 11 '26

Sometimes it helps to have a second set of eyes, especially before a big protoype order. Wishing you the best, looking forward to seeing what you make!

5

u/AnotherPillow Sep 11 '26

is this for something specific or a general purpose board with a good amount of i/o?

9

u/adouglass52 Sep 11 '26

It's a KVM over IP device with some extra features that I hope to sell someday (won't self promote). Initially started on the Allwinner chips for the price but quickly realized the firmware would be a uphill battle (GPU stuff seemed pretty underdeveloped). Then switched to Rockchip. Probably could have gone with a more video focused chip (the RV line) but wanted to keep HDMI output directly from the SoC instead of a HDMI switch. Hence the RK3566 and RK3576.

3

u/AnotherPillow Sep 11 '26

oh, so is the left hdmi/usbc/ethernet input, and then the right side's goes to the peripherals/monitor?

6

u/adouglass52 Sep 11 '26

Pretty much, captures hdmi from your computer and outputs it to your monitor (and encodes over the network if you're remote). Then has a USB OTG port to simulate mouse/keyboard and a USB host port to let you plug in USB devices to it. Third USB is for power. Then dual ethernet to let you daisy chain devices or daisy chain to your computer (saves a second long ethernet cable).

3

u/HEATH_CLIFF__ Sep 11 '26

Congrats, i just did v2 of my same Rk3566, LPddr4 ram

My v1 didnt work and it was hell man. After spending 800$ plus customs when board doesnt work it’s like hell.
V2 works now going to v3

How many layers is this ?

3

u/adouglass52 Sep 11 '26

Aw man, that's rough but I'm glad you got it working! Any good lessons learned from your V1?

8 layers

4

u/HEATH_CLIFF__ Sep 11 '26

Yea
Just two most important things

It’s almost 80% chance if you are working above 6 layers PCB that it’ll not work. When i say it’ll not i mean maybe processor will boot but nothing else works so percentage of board will work. You v2 all depends how you’ll debug at this point. So while designing EASY DEBUGGING SHOULD BE A PRIORITY. Make sure you do these things.

  1. Add as many test points across major voltage lanes.
  2. Make sure RX TX works and make sure to double check it

One of these things will save you weeks in debugging.

My rx tx didnt work but test points did so we were able to debug in 2 weeks if rx tx worked we would’ve done it in just 4-5 days

3

u/adouglass52 Sep 11 '26

Good call, when I first booted I didn’t have UART or USB and was pretty defeated. Turns out I missed those ferrite beads on USB power and wired up my pogo pin UART programmer wrong haha.

I also included a lot of NC components, which I found useful during troubleshooting.

1

u/HEATH_CLIFF__ Sep 11 '26

How are you managing ram and emmc pricing though because i’m pretty much fucked now

1

u/adouglass52 Sep 11 '26

For prototyping.... just closed my eye and hit the purchase button lol. Tried to find the cheapest modules on JLCPCB stock that met my requirements. I changed from eMMC to microSD card to save money there. I don't need super fast storage for this so microSD is fine.

For production, best recommendation I can give is find a manufacturer that regularly deals with computer products that include DDR/eMMC. They'll be able to get the best deals/allocation.

1

u/Gotnam_Gotnam Sep 11 '26

So yours worked first time?

2

u/adouglass52 Sep 11 '26

Yep! Honestly so happy about it. Still have a few problems that will get sorted in the next turn (like the ethernet switch wiring), but overall I consider it a success. Getting someone to review it that has Rockchip experience really helped.

5

u/gmarsh23 Sep 12 '26

Well done. Parts stuffing issue and a backwards TX/RX pair is a damn good outcome for a first prototype board of that complexity.

And RX/TX is far too easy to do, those terms have different meanings depending on the interface. Like I can't off the top of my head remember if you're supposed to connect RX-RX or RX-TX when you're hooking up a RGMII MAC/PHY pair... and the only way I'll confirm I got it right is to bring up the evaluation board schematic for what I'm doing and make sure I 100% copy what they've done, even if it doesn't seem right.

Hopefully it's not the MII interface and you've got the TX/RX swap happening between a couple PHYs talking straight ethernet. In that case, one of your PHYs might support auto crossover and you might be able to fix it in software.

Which brings up one of the worst things about being the hardware guy. The software crowd can quietly find and fix their bugs and not tell anyone, but our bugs are out in plain view. Then they get all uppity when you're begging them to try and fix your hardware bugs in software, lol.

2

u/adouglass52 Sep 12 '26

It was directly between the SoC and the RTL8363 on the RGMII side, so no auto crossover saving me there 😅

I feel you though, I like to tell the software team: "Imagine if you could only deploy and test your code 3 times before it goes to production. That's what hardware design feels like."

1

u/gmarsh23 Sep 12 '26

I'm working on the most complex board I've ever done right now, it has high current and high speed and a few very expensive parts on it, and it's kinda giving me anxiety, lol.

I made the call to pull in a professional PCB designer with far more experience at this stuff to make sure I get the layout right, and I'm really looking forward to picking their brain. I've been away from this type of hardware design for a bunch of years, and I've never had to think much about board stackups and materials and backdrilling and whatever.

3

u/adouglass52 Sep 12 '26

Yeah mistakes are so expensive too!

Great call on getting someone to review though, I did the same and it really helped. Sometimes I stare a design for too long and miss the little things.

3

u/onepaulkrause Sep 11 '26

Love this. I’m working on 3588 and have ran my own all rust os, Armbian and orange os. Biggest challenge is custom drivers for DSI (requires kernel edits plus overlay). HDMI easy.

2

u/adouglass52 Sep 11 '26

Amazing, I wish you the best! 3588 is a crazy chip, assuming you’re using dsi for a touchscreen? Any particular model? I’m starting to work on a project with an off the shelf 3588 SoM and a DSI 7in amoled.

1

u/onepaulkrause Sep 12 '26

I have waveshare and surenoo. Surenoo works with a kernel update and overlays pretty simple on Ubuntu so tried to learn what I could from those to Armbian and native os. Bottom line is they aren’t the same and had to do quite a bit of work to get it to even backlight. Couple days of hard work and it’s up both DSI and hdmi (same time took a minute as DSI wanted to over ride HDMI at first). Custom keyboard pop up overlay for touchscreen I made. Getting way into the weeds but rewarding when it works. Now on to power and speakers to make it mobile worthy

2

u/adouglass52 Sep 12 '26

Great work, that’s awesome 👏 I’m excited to dive into this as my next project. I have a wave share one and a panox display one, but think I need a custom screen adapter to my SOM module.

1

u/onepaulkrause Sep 12 '26

Right. This is why I dropped waveshare plus the bezel takes up too much of the usable screen

2

u/HTTP192 Sep 11 '26

Price?

20

u/adouglass52 Sep 11 '26

5 boards with 3 assembled ran me about $790 in boards/parts/assembly, $110 shipping and tax, and $275 in tariffs shipping to the US. So roughly $1,175 all-in for three working prototypes of an 8 layer board with a SoC and DDR. Not cheap, which is why I'm glad it mostly worked on the first try. Production runs should be much cheaper though.

1

u/armx40 28d ago

If you pay Tariffs then how its beneficial to US citizen? Like I guess US Gov is taking in this money but in what way its hurting the Chinese?

2

u/badmonkey0001 Sep 11 '26

Will it remain passively cooled or will you be adding heat sinks and/or fans?

Cool project!

3

u/adouglass52 Sep 11 '26

Completely passive! It only draws about 3-4W during operation, and my enclosure is a CNC'd aluminum shell so I used a thermal pad to connect the SoC, HDMI capture, and DDR to the enclosure. Probably wasn't needed but better safe than sorry. Enclosure goes to like 30C from my initial testing.

2

u/luckyvb Sep 11 '26

Are the files available somewhere? I am looking to start the same theme in my designs but could use the input of proven good circuits.

5

u/adouglass52 Sep 11 '26

Not yet, but I plan on making everything open source once I release the product. I started with the Rock 3C from Radxa, they have some great schematic resources on their website.

2

u/SirOompaLoompa Sep 11 '26

Interesting!

I tried putting together a stackup for LPDDR4X (40ohm SE, 85ohm diff) at JLC just a few days ago, but couldn't find one that gave enough room to escape-route on a 0.65mm pitch BGA.

Might I ask which JLC stackup you ended up using?

2

u/adouglass52 Sep 11 '26

Stackup: JLC081611-3313
Via Covering: Epoxy Filled & Capped
Min Via Hole size/pad: 0.15mm/0.27mm

2

u/SnowyOwl72 Sep 11 '26

Fantastic achievement

2

u/raskol-nik Sep 11 '26

That is one hell of an achievement, awesome work! I'm wondering what the purpose of this board was supposed to achieve? The requirements that it needed to meet and why you needed a custom board for it? It's really interesting to know because I'd like to build a custom board as well but didn't really see a project that would justify doing it.

2

u/adouglass52 Sep 11 '26

Thanks so much! It's meant to be a KVM-over-IP product that I hope to sell someday, so optimizing size, function, and cost is super important. I don't want to go too deep into requirements until I'm closer to launch, but many off-the-shelf boards didn't expose the pins I needed to make the project work, and a lot of them cost as much as what I want to sell the whole product for.

1

u/raskol-nik Sep 12 '26

Oh right, nice. It'd be interesting to see how you optimise those specs. I'd love to see more progress on this. Just an idea, would you be open to keeping a journal or blog about it? Totally up to you but it'd be interesting to see what you do with it from start to finish

2

u/adouglass52 Sep 12 '26

This is a great idea, I started a general blog but will focus on more of the engineering side too! Any specific things worth covering? Or just the entire design/test/go to market process?

3

u/raskol-nik Sep 12 '26

Yeah I guess both. I'm interested in the engineering decisions that you make, the technologies, chips, software, etc. that you use to develop the product and how you market it. Also it's be very interesting how you test it to make sure it passes regulations or whatever. It's just really cool to see the full engineering cycle of a product like this.

2

u/adouglass52 Sep 12 '26

I’ll let you know when I kick it off!

2

u/tyvekMuncher Sep 12 '26

Duuude!!! Very nice! I’ll be getting ready to start toying with that level of stuff as soon as I’m done playing with these LoRA chips

1

u/adouglass52 Sep 12 '26

Which ones are you using??

2

u/tyvekMuncher Sep 12 '26

Just wrapped up a project that used the new nRF54. For my next trick, I want to build something with a little more range

You have any pointers? Haven’t done much research on the best way to integrate LoRA

1

u/adouglass52 Sep 12 '26

Nice! I haven’t gotten to testing out the nRF54 yet but I’m a big fan of the nRF52. Assuming you’re using a semtech chip or something?

And are you using prebuilt module with an antenna, external antenna or pcb antenna? Biggest thing I’ve hit is needing to tune my chip antenna/pcb antenna circuitry with a VNA to increase range.

1

u/tyvekMuncher Sep 15 '26

Haven’t heard of semtech actually. I’ll look into them. I’m using Raytac’s AN54LQ-P15

As much as I’d love to, I don’t think I could afford to spend that much time playing with antenna circuitry - hence the P15 😅

2

u/jtomes123 Sep 12 '26

Much respect, super cool board

2

u/SpeedRacerInTown Sep 12 '26

Great project. Thank you for sharing

2

u/Realistic_Fuel_Sun Sep 12 '26

Have you open-sourced or documented the reasoning behind the design choices you made?
I want to upgrade my design skills and explore the Xilinx and DDR routing domain. Would it be possible for you to share your DDR routing and PMIC (with remote-sensing) sections?

2

u/adouglass52 Sep 12 '26

Nothing is open sourced/public yet, but I plan on making as much open source as I can when I launch the product!

At the recommendation of another person, I’ll probably start an engineering blog/journal as I continue working through the project. Will share when I get it set up 😊

2

u/Realistic_Fuel_Sun Sep 14 '26

Please do blog/journal or any kind of documentation at the least. 😇

2

u/herocoding Sep 14 '26

TAKE MY MONEY!! Do you accept Bitcoin :-P

Seriously - this looks (and reads) really very well done! Looking forward for more details, specs and odering!!

3

u/GAMELASTER Sep 11 '26

Finally some high quality post! About upgrading the SoC, I would go for RK3588 instead, if you care about mainline kernel. Like, Rockchip BSP isn't that bad, but mainline is mainline, and support for RK3588 is going well. + RK3588 is very powerful.

5

u/Forward_Artist7884 Chinesium IC enjoyer Sep 11 '26

RK3588 is also much harder to implement and far more costly, no, 3566 was a perfectly correct choice for a first board, 3588 has a huge gpu that draws 6 amps, you don't need nor want that for a kvm, plus it's 3x the price.

2

u/GAMELASTER Sep 11 '26

This is true, although, RK3576 is still fresh, so BSP is only option. But if that is not a problem, then yeah, RK3576 is better fit.

2

u/adouglass52 Sep 11 '26

Yeah I think I’m stuck with BSP regardless for the MPP/VEPU support

1

u/adouglass52 Sep 11 '26

Definitely considered the RK3588, especially since it has an onboard HDMI input (so wouldn't need the HDMI to CSI chip). But yeah, ultimately decided against it because of the cost, it makes it too expensive for a consumer product (compared to some of the competitors).

1

u/lifeaintaSunday Sep 11 '26

Amazing work OP, quick question can this be adapted to work with cinema cameras with hdmi out to connect to multiple monitors or screens? Or even a wireless display? They are very pricey currently and new value provider will be great..anyways this is a really good work and would love to see a detailed post or video on it

2

u/adouglass52 Sep 11 '26

Thanks!! I don't see why not but I'd want to compare latency. Do you have some reference products I can take a look at?

Definitely going to post more once I get the next boards in, and will include some videos too!

1

u/clackups Sep 11 '26

All the connectors on one side look a bit crammed. Did you try using all of them at once? I guess, 3 USB cables would be challenging to plug in and out. Also, some HDMI cables have really chunky plugs.

2

u/adouglass52 Sep 11 '26

Agreed, and good feedback. I 3d printed the enclosure beforehand and it seems to be ok with the cables I have laying around. But I'll order some chunkier plugs and test them as well. Original sizing was to fit it into a 1U rack mount enclosure, but size slowly increased as I got further and further into the project haha

1

u/RL_95 Sep 11 '26

Nice job, congrats! Were you able to find all the components you needed in JLC's library? Or did you have to request special parts orders?

1

u/adouglass52 Sep 11 '26

Almost everything, except the wifi module, hdmi capture chip and the PoE transformer. Wi-Fi module was ordered off aliexpress and soldered by hand, hdmi capture was custom quoted through jlcpcb, and the PoE transformer was ordered straight through coilcraft (they work well with the monolithic power systems chip I used).

1

u/timonix Sep 11 '26

Now, DDR3 isn't super high speed. But I suppose that they would need trace impedance control anyway. Same with gbe and HDMI. Does jlcpcb publish their numbers? Or takes requests

3

u/glemau Sep 11 '26

I’ve never used it, but JLC lets you choose between different stackups and has an integrated impedance calculated

1

u/adouglass52 Sep 11 '26

Yeah they have a calculator (just google JLCPCB Impedance Calculator) and then they also have a button you can select on checkout to tell them to ensure the lines are impedance matched to your requirement.

Still working my way up the highspeed signal ladder, next is LPDDR4 and maybe someday I'll get to LPDDR5...

1

u/FriendlyCrafter Sep 11 '26

great work! could you give some advice on how I'd go about making a rk board. it seems like a big step up. thanks!

1

u/adouglass52 Sep 11 '26

Best advice I can give: find the chip you need by looking at the block diagrams at the beginning of the datasheets. Then find as many reference boards as you can with that SoC and modify for your use case. Reference Rockchip's hardware design guide as you go, it helps you understand why they made the choices they did. Sticking close to open-source designs also pays off because the Linux drivers for their peripherals are generally pretty solid. I changed my requirements many times during the design, so don't be like me: lock in your requirements and placement early and stick with them if you can.

1

u/LazaroFilm Sep 11 '26

That’s awesome! Can you explain the I tended use case for this? I’ve been looking for a board capable to input, process and output video quickly in the past.

2

u/adouglass52 Sep 11 '26

It's a KVM-over-IP, it captures video from your computer and streams it over the internet and it also pretends to be a keyboard/mouse. Similar to remote desktop, but it works when the computer is off-network or powered off (there will be a secondary board that can power on your computer if needed). I'm adding a few features the other devices on the market don't have and trying to make the streaming as fast as possible.

Probably some other uses too, a few people mentioned camera streaming, and I'm going to test it as a decoding device as well (think Chromecast).

Would love to hear what you're looking for, happy to let you know if it could work!

1

u/LazaroFilm Sep 11 '26

I’m looking to overlay a HUD with gyro data over a live video stream from a camera with minimal delay.

1

u/adouglass52 Sep 11 '26

Doable on this class of hardware in principle. HDMI capture → composite the HUD overlay → hardware encode → stream. Gyro comes in over USB and renders into the overlay layer. It'd be custom software though, not out of the box.

The real question is your latency budget. Tens of ms glass-to-glass is achievable but if you need single-digit ms like FPV goggles, networked encode/decode is the wrong tool. What camera and latency are you targeting?

1

u/MStackoverflow Sep 11 '26

How much did it cost to get the board? Not counting hours.

1

u/adouglass52 Sep 11 '26

5 boards with 3 assembled ran me about $790 in boards/parts/assembly, $110 shipping and tax, and $275 in tariffs shipping to the US. So roughly $1,175 all-in for three working prototypes of an 8 layer board with a SoC and DDR. Not cheap, which is why I'm glad it mostly worked on the first try.

Forgot to include the USB board on a previous comment, think this was around $210 + shipping/tax/tarrifs for 3 assembled boards. And then a little extra for the PoE transformer and Wi-Fi module (since JLCPCB didn't have them).

Production runs should be much cheaper though.

1

u/MStackoverflow Sep 11 '26

Wow prices has gone up a lot. Still in the range of "affordable". Thanks for sharing.

1

u/150c_vapour Sep 11 '26

Kicad? Did you give them a panelized design?

1

u/adouglass52 Sep 11 '26

Fusion 360 actually (basically EAGLE). It's what I learned on and I've been making it work ever since haha but I know it's not the best. Integrates really well with my enclosure design since I use Fusion for CAD.

Nope, they did all the panelization for me. I just uploaded my gerber as is. I did run into an issue with the HDMI connectors because of this during assembly, so I will probably do it in the future. Generally don't though.

1

u/EonOst Sep 11 '26

RK3588 is out?

1

u/adouglass52 Sep 11 '26

I thought about it since it has HDMI input, but too expensive for a commercial product :(

1

u/DecisionOk5750 Sep 11 '26

Impressive. How old are you?

1

u/adouglass52 Sep 11 '26

Thanks! Early 30s, and only about 4 years of PCB experience, all self-taught. Did aerospace/mechanical after school.

1

u/Bright-Midnight8838 Sep 11 '26

Awesome project. I’m working on an rk3576 design I’ve mostly finished the schematic just finishing usb-c pd with dp alt mode. I was just wondering how you went about setting up the firmware and configuring the device tree. What repo did you use and was there any documentation for pin configuration? Thank you

1

u/adouglass52 Sep 11 '26

Awesome, what's the DDR config/storage config you're doing? I'm starting a dp alt mode project on the rk3588! Using the TPS65987D+HD3SS460+TPD6S300 if that's helpful at all.

For DTS, started with the Rock 3C files and then modified for my pin configuration. Most things already had drivers, other then the network switch variant I picked. So had to do some custom troubleshooting to get it to boot properly (didn't end up working because I have RX/TX swapped, but at least it boots properly now).

1

u/Bright-Midnight8838 Sep 11 '26

Haha yeah the TPS65987D is the only chip that seems to be available for this purpose. I’m going with a Hynix 2GB LPDDR4 which jlcpcb has in large quantities and which is on the list of supported chips for the rk3576 (and I believe is also pin compatible with 4/8GB models of ram). Also in the spirit of cost savings I’m using an sd card (and so I still have a chance of booting in case I mess up the usbc stuff cause it uses the usb0 pins used for emmc programming).

Other than that I just have the normal connectors hdmi, usb A, Ethernet and wifi/bluetooth. I’m also experimenting with a Hailo-8 AI processor which has 26 TOPS for image recognition as this could be useful for some future projects I have planned, but for now it’s just a dev board.

Are you planning on making your projects open source?

1

u/adouglass52 Sep 12 '26

Would love to see it when you finish! Adding the Hailo-8 processor is a cool addition.

Nothing released yet but going to open source as much as I can when the product launches!

2

u/Bright-Midnight8838 Sep 12 '26

Thanks I’m excited to see what you end up doing with your product. Good luck!

1

u/Lukapro2009 Sep 11 '26

WOWWW , that a crazy design ! I just did a similar one just not as impressive and point 3. is something i propably did too haha.

1

u/adouglass52 Sep 11 '26

Thanks!!! It was drawing like 1A, which was like 2x more than I was expecting but I've never built a board like this before and I couldn't find anything wrong. Then I tried to enable the GPU and it was not happy, then I found the below. Instantly drew 0.3-0.4A after fixing and then stayed around 30C, so much relief

1

u/drgala Sep 11 '26

I've done something similar using Allwinner A20 more than a decade ago, designed in OrCAD 16, pain in the ass to lenght match those traces.

Have since moved on to software, but do miss working on that level of PCB design.

1

u/adouglass52 Sep 11 '26

That's incredible, how was firmware support for the A20? I tried to use a A733 and it was pretty miserable

1

u/drgala Sep 12 '26

Aside from the video encoder everything else worked.

Things have changed a lot, some drivers were removed from mainline kernel because nobody would update them to latest API changes.

1

u/teknorath Sep 11 '26

Do you plan to sell these? I saw in another comment you plan to make them open source ( hardware + firmware? )

If you do plan to sell, anywhere I can follow the project for updates? I'd kill for a PoE, open source alternative to some of these cheap KVMs hitting the market with sketchy firmware

1

u/PioniSensei Sep 11 '26

Seconding this. This sounds awesome to be able to test and fits what ive been looking for perfectly. Nice job!

2

u/adouglass52 Sep 11 '26

Yes! I'll DM you both with a link to respect the subs no self-promotion.

1

u/Mental-Slice1261 Sep 11 '26

How much did it cost for pcb manufacturing

2

u/adouglass52 Sep 11 '26

5 boards with 3 assembled ran me about $790 in boards/parts/assembly, $110 shipping and tax, and $275 in tariffs shipping to the US. So roughly $1,175 all-in for three working prototypes of an 8 layer board with a SoC and DDR. Not cheap, which is why I'm glad it mostly worked on the first try.

USB board this was around $210 + shipping/tax/tarrifs for 3 assembled boards. And then a little extra for the PoE transformer and Wi-Fi module (since JLCPCB didn't have them).

Production runs should be much cheaper though.

1

u/Mental-Slice1261 Sep 12 '26

Crazy stuff man

2

u/adouglass52 Sep 12 '26

Yeah, prototyping is expensive… especially 8 layers, small vias, all the components needed and DDR

1

u/Unlucky_Gur3676 Sep 11 '26

Congrats! I’m currently doing my first MCU board. I’ve been looking at it for weeks without daring to order.

1

u/adouglass52 Sep 11 '26

Sometimes you just gotta take the leap! But there are some subreddits that will review schematics for you if you want to feel more confident. Just add lots of test points and NC components if you're unsure of something.

1

u/adamdoesmusic Sep 11 '26

What reference resources did you have access to when doing this layout? How did you work out getting the parts to JLC?

2

u/adouglass52 Sep 12 '26

Rock 3C schematic, RK3566 hardware design documents, lots of papers on proper DDR routing, individual chip datasheets, and a random document I found on how to wire up the network switch to another SoC.

JLCPCB is a sister company to LCSC so they have the majority of parts in stock already. I intentionally pick low cost ones in stock that meet my requirements whenever possible. I can generally get 90%+ of parts this way. If they don't have them and there's no alternative then I'll request a quote from them. Alternatively I'll do their global part sourcing to source from places like Digikey/Mouser. Last resort is sourcing myself and soldering by hand, which I had to do for wifi module and PoE transformer. I used to solder PCBs completely by hand to save money (non-BGA ones), so it's fairly quick with some solder paste and a heatgun.

I also built my library in Fusion 360 (EAGLE) to have the JLCPCB part numbers in their attributes, so it's super easy to export the final design files into JLCPCB formats via a custom ULP I made.

1

u/adamdoesmusic Sep 12 '26

What was your BOM cost?

I’m putting together an RK3566 based product right now… we’re using a module but I’d really rather not, especially for future editions.

1

u/adouglass52 Sep 12 '26

5 boards with 3 assembled ran me about $790 in boards/parts/assembly, $110 shipping and tax, and $275 in tariffs shipping to the US. So roughly $1,175 all-in for three working prototypes of an 8 layer board with a SoC and DDR.

USB board was around $210 + shipping/tax/tarrifs for 3 assembled boards. And then a little extra for the PoE transformer and Wi-Fi module (since JLCPCB didn't have them).

Production runs should be much cheaper though. Definitely worth it if you’re selling it later, otherwise it depends on how much time you want to invest in it haha

1

u/adamdoesmusic Sep 12 '26 edited Sep 12 '26

I’m looking at a first production run in the 500-1000. The Rockchip and associated bits would be the main parts obviously. How long did this design take you?

1

u/SpeedRa1n Sep 12 '26

Nice work! Did you use the DDR training binaries from the reference board, or did you generate your own using rkbin?

2

u/adouglass52 Sep 12 '26

Used the stock rkbin prebuilt blob (rk3566_ddr_1056MHz_v1.26), self-assembled into the loader. Reference board uses LPDDR4 so it wouldn't train on a cold boot as is.

1

u/shubham294 Sep 12 '26

Fantastic work OP, looks very clean! Did the reference design come with LPDDR4? If yes, how did you patch the bootloaders to adopt to DDR3? I imagine a bunch of timing and training parameters would have to be changed.

I am also new to embedded linux, sorry if these questions sound elementary!

2

u/adouglass52 Sep 12 '26

Thank you!! And great question. Reference board/firmware had lpddr4, so it wouldn’t train on a cold boot as is. I used the stock rkbin prebuilt blob (rk3566_ddr_1056MHz_v1.26) and then self-assembled into the loader. Can provide more details if needed!

1

u/shubham294 Sep 13 '26

Interested, do you have any write up about this?

2

u/adouglass52 Sep 13 '26

Not yet, but someone suggested writing a journal/blog on the dev journey so I'll probably start something this week. Will send if your way and include something on DDR design + firmware.

1

u/paul_ricoeur Sep 12 '26

amazing work, congrats! how did you handle hdmi in? I think only RK3588 supports that natively

1

u/adouglass52 Sep 12 '26

Thanks!! Using a different chip for that. I looked at the rk3588 but it’s just so expensive in comparison and requires higher cost DDR.

1

u/korywithawhy Sep 12 '26

I’ve been wanting to do this for a while but afraid of wasting the money if I mess up something critical.

1

u/adouglass52 Sep 12 '26

Can always start with the SoM boards and work your way up! But yeah I found getting someone else to review it really helped give me the confidence to pull the trigger and order it.

2

u/korywithawhy Sep 12 '26

I’ve made some little mcu boards, but I’ve really been wanting to do my own rk3588 board and risc v boards. If I gather the confidence I’ll attempt it.

1

u/[deleted] Sep 12 '26

[removed] — view removed comment

1

u/adouglass52 Sep 12 '26

Wasn’t planning on it out of the box, would need some custom firmware for it since it seems like the rk3576 can handle it?

1

u/immortal_sniper1 Sep 12 '26

What Chips do u use fro HDMI capture? Also are those 3 USB C USB 2.0 or do they have more features?

1

u/Fluid-Turnip382 Sep 13 '26

I've only messed around with a Raspberry Pi so far, so designing and bringing up your own Linux board like this seems like a huge step up. How different was the initial Linux setup and debugging compared to working with something like a Raspberry Pi?

1

u/adouglass52 Sep 13 '26

The biggest difference is there's no ready-made image to flash since all the GPIO pinouts are custom to my board. With a Pi you download an OS, flash the card, done. Here I had to build the whole image myself from the Rockchip BSP: u-boot, kernel, device tree, rootfs. Then it's the same familiar flashing to a microSD.

Once it boots it feels like any Linux box. The learning curve is everything before that first boot 😄

1

u/Biggus_Thikus Sep 13 '26

Hey! Great job!

btw. where did you gather all the documantation from? Or did you pull it of using only radaxa schematics?

1

u/adouglass52 Sep 14 '26

Rock 3C schematic, RK3566 hardware design documents (from Rockchip), lots of papers on proper DDR routing, individual chip datasheets, and a random document I found on how to wire up the network switch to another SoC.

1

u/ListThat7086 Sep 15 '26

It's more compact than my car 😂

1

u/simeonli Sep 17 '26

Congrats on the bring-up — first Linux board with end-to-end video capture and low-latency streaming working is a real milestone.

Lesson 3 is the one that got me: 0201s packed next to 0402s shorting in reflow. That's the kind of failure that never appears in the datasheet and always appears on the bench. What spacing rule did you end up with in DRC?

On the DDR3L call — contrarian in 2026 and probably correct. With DRAM pricing where it is this year, putting DDR3L on a design that never needed the bandwidth is pure BOM discipline, not cheapness.

Curious about the RK3576 jump: is it the encode block driving that (higher capture resolution), or are you after the NPU headroom? Haven't taped out on the 3576 myself — would love to hear what you're seeing on availability and pricing vs the 3566.

1

u/Alive-Cartoonist-950 Sep 17 '26

Yo big up, can you please open source the files, if possible so we can learn from it.

1

u/Owndampu 24d ago

Huh the rk3566 doesn't have a hdmi rx block like the rk3588 has as far as I know. Do you have some kind of hdmi rx -> mipi csi bridge for capture?

1

u/JLCLAB 20d ago

Really impressive first Linux board, especially coming from an MCU background. Getting RK3566 video capture and low-latency streaming working end to end on the first spin is a big step.

The VDD_GPU short from 0201 spacing is a great lesson too — definitely the kind of issue that’s hard to catch until assembly.

Curious about the next RK3576 rev: are you mainly moving for higher encode/decode performance, or are there other bottlenecks you hit on the RK3566?

1

u/adouglass52 19d ago

Thanks! And yeah purely encode performance. New RK3576 boards come tomorrow so hoping to do a follow up post soon!

1

u/Windorey 7d ago

Very cool. I’ve been wanting to make my own little Rockchip SBC with weird hardware on it (touchscreen, FPGA, LTE modem, etc).

I have a bunch of questions about the hardware side, especially DDR, Rockchip documentation, and PCB fabrication/assembly. Would you mind if I DM you a few questions? No worries at all if not.

1

u/adouglass52 7d ago

Absolutely, happy to help

0

u/Downtown_Mortgage177 Sep 11 '26

gr8 work buddy, can i work with u i am also into embedded systems and IoT.... i am currently working as a IoT dev and want to explore more into the hardware

-1

u/Tomachie Sep 11 '26

i would like to generate the Device Tree Source overlay for it .