Live data from Hacker News

Show HN: I built an open-source Linux-capable single-board computer with DDR3

github.com

1–9 of 9 posts

Show HN: I built an open-source Linux-capable single-board computer with DDR3

#1
I've made an ARM based single-board computer that runs Android and Linux, and has the same size as the Raspberry Pi 3!

Why? I was bored during my 2-week high-school vacation and wanted to improve my skills, while adding a bit to the open-source community :P

These were the specs I ended up with: - H3 SoC - Quad-Core Cortex-A7 ARM CPU @ 1.3GHz - Mali400 MP2 GPU @ 600MHz - 512MiB of DDR3 RAM (Can be upgraded to 1GiB) - WiFi, Bluetooth & Ethernet PHY - HDMI display port - 1080p resolution - 5x USB Slots: 2x USB-A, 1x USB-C Host, 1x USB-C Host & OTG, 1x USB-C PD for power (Negotiating up to 25W. No power socket, yay!) - 32 GB of eMMC 5.1 storage (Optional) - 3.5mm audio jack - SD Card slot - Lots of GPIO

I've picked the H3 CPU mainly for its low cost yet powerful capabilities, and it's pretty well supported by the Linux kernel. Plus, I couldn't find any open-source designs with this chip, so I decided to contribute a bit and fill the gap.

A 4-layer PCB was used for its lower price and to make the project more challenging, but if these boards are to be mass-produced, I'd bump it up to 6 and use a solid ground plane as the bottom layer's reference plane. The DDR3 and CPU fanout was truly a challenge in a 4-layer board.

The PCB was designed in KiCAD and open-source on the Github repo with all the custom symbols and footprints (https://github.com/cheyao/icepi-sbc). You can also check it out online with kicanvas: https://kicanvas.org/?github=https%3A%2F%2Fgithub.com%2Fchey...

At large quantities, the price can probably reach less than 20$! (exc. taxes, tariffs and other costs)

It has been a wild journey, even making me learn how to use crypto as I needed to pay someone to download some "confidential" files from a baidu drive...

Read about more details on Github! Everything is open-source under the Solderpad license, aka do what you want: sell it, build it, modify it! :-)

Show HN: I built an open-source Linux-capable single-board computer with DDR3
github.com

Re: Show HN: I built an open-source Linux-capable single-board computer with DDR3

#3
Cool, i wish i had the skills. I'm planning to learn PCB design to build a low power low cost PCB based in the SG2002/LicheeRV Nano design with a MAX17043 battery gauge, gpio buttons and a battery controller like TP4057.

Let me know if you are interested ;-)

Re: Show HN: I built an open-source Linux-capable single-board computer with DDR3

#4

That's cool as a project, but I don't really see the point. Everything's hungry for memory these days. DDR3 is a relative bargain. Why not put a socket on there so you can add a cheap 8GiB laptop DIMM?

Hey! Not everything needs to have a point. (Or else why would there be 20 AI models competing) I did this mostly for the fun and challenges, because why not! :-P

Re: Show HN: I built an open-source Linux-capable single-board computer with DDR3

#5
It's quite an accomplishment for an individual. You might find the Pine A64 interesting. I got 6 of the 512MB models for $15 each. [1]

I plan on running Kubesolo on them since 1.0 was recently released.[2]

[1] https://pine64.org/devices/pine_a64/

[2] https://github.com/portainer/kubesolo

Re: Show HN: I built an open-source Linux-capable single-board computer with DDR3

#6
Very cool!

A few questions:

How was the 696 MHz DDR3 RAM speed determined?

Also, how is the system initialized at startup? Is there boot/startup code, does that exist in a flash chip (or some other ROM or EEPROM or flash type chip) on the system, and can the boot code be inspected/customized/overwritten by the end-user? How does the system boot?

Anyway, looks very cool!

Re: Show HN: I built an open-source Linux-capable single-board computer with DDR3

#7

Very cool! A few questions: How was the 696 MHz DDR3 RAM speed determined? Also, how is the system initialized at startup? Is there boot/startup code, does that exist in a flash chip (or some other ROM or EEPROM or flash type chip) on the system, and can the boot code be inspected/customized/overwritten by the end-user? How does the system boot? Anyway, looks very cool!

Thanks! I used the orange pi pc fel tester [1] and gradually lowered the clock speed until it became stable. When I got to 696 MHz the test ran for more than 3 hours without problems.

The H3 CPU has a small bootloader inside, that enumerated the SD card and eMMC to look for a user-made bootloader. IIRC it looks for some file inside of the file system, and loads it to 0x70000. Thus you can customize it if you have enough time :)

[1] https://github.com/ssvb/lima-memtester/releases/tag/20151207...

Re: Show HN: I built an open-source Linux-capable single-board computer with DDR3

#8
post #5

It's quite an accomplishment for an individual. You might find the Pine A64 interesting. I got 6 of the 512MB models for $15 each. [1] I plan on running Kubesolo on them since 1.0 was recently released.[2] [1] https://pine64.org/devices/pine_a64/ [2] https://github.com/portainer/kubesolo

Do note that you can't cluster those 6 A64's as kubesolo runs... solo. As in: No clustering capabilities.

If you do want a controller/node setup you're better off deploying something lightweight like k0s, k3s or sidero's talos (since the latter also works perfectly fine on clusters based on pi 4 and above)

Re: Show HN: I built an open-source Linux-capable single-board computer with DDR3

#9
post #7

Very cool! A few questions: How was the 696 MHz DDR3 RAM speed determined? Also, how is the system initialized at startup? Is there boot/startup code, does that exist in a flash chip (or some other ROM or EEPROM or flash type chip) on the system, and can the boot code be inspected/customized/overwritten by the end-user? How does the system boot? Anyway, looks very cool!

Thanks! I used the orange pi pc fel tester [1] and gradually lowered the clock speed until it became stable. When I got to 696 MHz the test ran for more than 3 hours without problems. The H3 CPU has a small bootloader inside, that enumerated the SD card and eMMC to look for a user-made bootloader. IIRC it looks for some file inside of the file system, and loads it to 0x70000. Thus you can customize it if you have eno…

Interesting, and very cool!