4 ms·
Show HN: I built an open-source Linux-capable single-board computer with DDR3
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 https://github.com/cheyao/icepi-sbc). You can also check it out online with kicanvas: https://kicanvas.org/?github=https%3A%2F%2Fgithub.com%2Fcheyao%2Ficepi-sbc%2Ftree%2Fmain%2Fhardware 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! :-)
- caratamba 9mo agoThat'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?
- Cyao 9mo agoHey! 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
- sandreas 9mo agoCool, 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 ;-)
- ossm1db 9mo agoIt'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/ https://pine64.org/devices/pine_a64/ [2] https://github.com/portainer/kubesolo https://github.com/portainer/kubesolo
- mindcrash 9mo agoDo 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)
- peter_d_sherman 9mo agoVery 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!
- Cyao 9mo agoThanks! 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-orange-pi-pc-fel-test https://github.com/ssvb/lima-memtester/releases/tag/20151207...
- peter_d_sherman 9mo agoInteresting, and very cool!