spark-nas
NAS made from rk3568 with 4 GB LPDDR4X RAM, 16 GB eMMC 5.1, MicroSD slot, 2 USB 2.0 ports, HDMI port, GbE RJ45 port and USB-C PD 3.0 65W power port.
Created by
emb3rcia
1 view
0 followers
emb3rcia
added to the journal ago
Changed parts, changed layout
Hello! I did few things:
Changed parts to available ones on JLCPCB
Changed SATA connection topology
Changed board layout accordingly
SATA now is right-side. Not vertical. Also i am using 7 pin connectors instead of 22 pin ones and power goes thru molex connectors. This allows me to lower board cost by having smaller board
I also changed few parts to the ones available at JLCPCB. Due to this, i changed layout a bit. Resigned from hard-cutoff part of buttons. Also temporairly removed bucks and ldos from layout as i will place them when doing PDN.
Images:












emb3rcia
added to the journal ago
Decoupled ram
I placed all the decoupling capacitors for ram! it was easy but counter intuitive. Cause yesterday i needed to place cap on every pin powering SoC but here for ram i dont need to and it would be even worse as it would block paths to route ddr and make swiss cheesee out of ground planes



emb3rcia
added to the journal ago
Made rk3568 decoupling
I did it. I finally did it! I placed all the decoupling capacitors on RK3568! 86 capacitors! only 22uFs are left, but that will be later placed. Currently all per pin 100uFs are placed! it took me 2 tries and few good hours. I needed to use 0201 caps so it will be probably full pcba (front and back).



emb3rcia
added to the journal ago
Connected LDOs and rest of Bucks
Hello! I connected rest of bucks and the LDO! I forgot to said in last journal: connecting everything except power pins and ldo specific pins (i am talking about eg enable or pgood) will be done later, at the last stage. Right now i am making "blocks" and then i will lay it out etc.
LDOs:

Bucks:

emb3rcia
added to the journal ago
Connected CPU, GPU and NPU bucks (and 20V -> 5V part)
Hello! I connected CPU, GPU and NPU bucks on PCB and their inductors!

It was WAY easier with seperate bucks due to not being space constrained like with rk809-5.
I also connected whole 20V->5V part of pcb before my last journal, i forgot to include it!

Nothing else! Now i am going to connect rest of bucks while listening to Ado. To next journal!
emb3rcia
added to the journal ago
Redid power. Made power diagram
Hello! I am tired of this project, but I am determined to finish it. I remade power part. RK809 was too space limited in this project. I also did power sequence properly this time. Now i just need to add reset ic (supervisory circuit) that will delay the start of rk3568 about 200-300ms after full stabilization of every voltage. Then reannotate schematic and start pcb again.









I also did power diagram! I spent waaay to much on it. I tried 4 tools: plantuml, d2lang, edvy or something like that and then draw.io/diagrams.com. The last one is the one that i used and is the best for me.

I spent like 5 hours on this project from last journal and i am exhausted. But i wont quit. I will finish.
emb3rcia
added to the journal ago
Connected RK3568 on schematic
I did it! i connected it!
It wasnt hard. It was tedious. You can see how it turned out below. Now i will take a break and then assign footprints and start PCB.

emb3rcia
added to the journal ago
Changed power and inductor schematics
I changed power and inductor schematics! I used rk908-5 for everything except 20V->5V and NPU power, sadly the last one i need to do using TPS6286810CRQYR as 908-5 doesnt have enough outputs :< but it is okay as i connected everything on schematic now! Well... except rk3568. I am sitting to this one. And i need to connect oscillator to rk908-5, will do it now!


emb3rcia
added to the journal ago
Modified RK3568 symbol
Hello! I modified rk3568 splitting it into multiple units in kicad, this allows me to connect it while not having a2 height symbol! It took me good 3-4 hours as i needed to split BGA~670 symbol, which is a lot of pins. Now i will reconnect 0v9 bucks for rk809-5 pmic instead as i found it on lcsc and jlcpcb, and then i will connect rk3568. After this is pcb!
here is png of block A cuz svg's dont count towards min images :<

emb3rcia
added to the journal ago
Made skeleton of readme, docs and connected lpddr4x on schem
I connected lpddr4x on schematic! it was easier than i thought. I edited the symbol to be multi-unit so it is less cluttered.

I also made skeleton of readme and docs that i will fill in during breaks from schematic and pcb.
emb3rcia
added to the journal ago
Connected bucks and inductors, power switch, and filters
Hello, it is again me! I connected bucks. There are 7 total: 20V->5V main buck, then the rest are powered from it, there is 3.3V buck, 1.8V buck and 1.1V buck. From 1.1V i also power on 0.6V LDO to simplify the design. Theres also 3 0.9V bucks. Sadly, i cant use only one as it is one per processing unit (rk3568 have cpu, gpu and npu). They are also 0.9V base, then they are controlled by I2C. RK3568 uses something with different voltage depending on usage, and it adjust voltage per PU, that is why i need to use 3 of them.




I also connected power switches, there are 3 switches total. One is for reset, it pulls down reset pin to gnd for a second which hard-resets NAS. Second one is soft power off, and is handled by GPIO port. Normally, it is pulled up to 3.3V thru resistor, when clicked it is pulled down to gnd, linux reads low state of pin and initiates shutdown script. Then we have hard power off. Normally, EN pin of main 5V buck is pulled up to 20V via 100kOhm resistor, but when you turn off the switch (it is spst-nc just like the soft power off one) it pulls it down to gnd without resistor and turns off every buck so theres no power to anything. Also, rk3568 can only power on when every PGOOD pin states ready


Then we have the filters using ferrite beads for everything except VBUS line, which uses inductor as filter. I also added PTC for usb 2.0 ports


then we have the last thing i did which are inductors, they were easy, but there are many capacitors. E.g. there are 8 on 5V inductor: 100nf for high frequencies, 1uf and 10uf for standard filter and 4x 100uf for bulk capacitance

emb3rcia
added to the journal ago
Connected few connectors and 5V buck
I connected few things. Didnt journal everything seperatedly as it was somewhat easy. I connected 5V buck:

It is 24V max input synchronous buck, that will give max 13A of power, even though it is rated for 24A max. I found it searching for cheapest ones, it costs 3 bucks (pun intended) on mouser and is powerful for my needs. PGOOD_V5 will be used to cascade the powering of bucks as i want it so every next buck will be turned on only after first one is fully operational. I will also only turn on the RK3568 when all of them are operational.
About connectors, i connected: 2 usb 2.0 ports (for keyboard and mouse dedicated for initial config), hdmi port (for initial config, it was many components, i always thought it was hdmi port and maybe esd protection in 2 parts but no, there is level shifter involved, ptc fuse for protection etc, insane), 3 sata ports (easy, i connected one and then it was copy paste), type c connector (also easy as i dont use many pins from it, only vbus and cc and gnd, added tvs diode on cc pins as it was in one of the datasheets i used and added tvs for vbus) and rj45 connector (easy, i learned from my switch project that it needs chassis gnd and how to connect it so i now know and just connected everything) and also microsd connector, that was more advanced imo as i needed to add some mosfet circuit to only give voltage when there is card inside (slot dedicated for initial config so to copy system on there and then from this to emmc and also if someone wants to run system from it or have it as config space, they can and they can plop there any capacity without resoldering emmc chip). Image below

emb3rcia
added to the journal ago
Connected emmc 5.1
I connected the emmc 5.1 chip! Hardest part of it was finding the symbol as i forgot to search for only the ones with symbol available, but good news! Whole series of chips that include bigger storages have the same pinout. So i just used symbol of 64GB one iirc that i found on snapeda.
It was also easy! i mean routing it will be harder soooo... But schematic was easy!

emb3rcia
added to the journal ago
Connected Ethernet PHY
I connected Ethernet PHY! Like in all my designs, I've chosen oscillator instead of crystal to simplify design (no additional capacitors etc). I also opted to use the internal LDO that uses simple P-MOSFET circuit to generate 1.2V. I don't understand how it works, i don't need to.

emb3rcia
added to the journal ago
Started over in kicad. Connected usb-pd controller
I started over in KiCad instead of easyeda pro. I also changed distributor of parts to mouser as it will 99% be over the free delivery threshold. I also connected USB-PD controller on schematic, image below.

emb3rcia
added to the journal ago
Added components and routed Bucks
Hello! This is my next project as i finished the others!!! Well, except for software for my switch. But this one is ambitious as i am making NAS from basically zero, wiring the RAM etc myself! This is the current schematic of power delivery, i will do the USB-PD controller and then go do something else
emb3rcia
started spark-nas ago
2/23/2026 - Added components and routed Bucks
Hello! This is my next project as i finished the others!!! Well, except for software for my switch. But this one is ambitious as i am making NAS from basically zero, wiring the RAM etc myself! This is the current schematic of power delivery, i will do the USB-PD controller and then go do something else
3/1/2026 5 PM - Started over in kicad. Connected usb-pd controller
I started over in KiCad instead of easyeda pro. I also changed distributor of parts to mouser as it will 99% be over the free delivery threshold. I also connected USB-PD controller on schematic, image below.

3/1/2026 7 PM - Connected Ethernet PHY
I connected Ethernet PHY! Like in all my designs, I've chosen oscillator instead of crystal to simplify design (no additional capacitors etc). I also opted to use the internal LDO that uses simple P-MOSFET circuit to generate 1.2V. I don't understand how it works, i don't need to.

3/1/2026 8 PM - Connected emmc 5.1
I connected the emmc 5.1 chip! Hardest part of it was finding the symbol as i forgot to search for only the ones with symbol available, but good news! Whole series of chips that include bigger storages have the same pinout. So i just used symbol of 64GB one iirc that i found on snapeda.
It was also easy! i mean routing it will be harder soooo... But schematic was easy!

3/3/2026 3 PM - Connected few connectors and 5V buck
I connected few things. Didnt journal everything seperatedly as it was somewhat easy. I connected 5V buck:

It is 24V max input synchronous buck, that will give max 13A of power, even though it is rated for 24A max. I found it searching for cheapest ones, it costs 3 bucks (pun intended) on mouser and is powerful for my needs. PGOOD_V5 will be used to cascade the powering of bucks as i want it so every next buck will be turned on only after first one is fully operational. I will also only turn on the RK3568 when all of them are operational.
About connectors, i connected: 2 usb 2.0 ports (for keyboard and mouse dedicated for initial config), hdmi port (for initial config, it was many components, i always thought it was hdmi port and maybe esd protection in 2 parts but no, there is level shifter involved, ptc fuse for protection etc, insane), 3 sata ports (easy, i connected one and then it was copy paste), type c connector (also easy as i dont use many pins from it, only vbus and cc and gnd, added tvs diode on cc pins as it was in one of the datasheets i used and added tvs for vbus) and rj45 connector (easy, i learned from my switch project that it needs chassis gnd and how to connect it so i now know and just connected everything) and also microsd connector, that was more advanced imo as i needed to add some mosfet circuit to only give voltage when there is card inside (slot dedicated for initial config so to copy system on there and then from this to emmc and also if someone wants to run system from it or have it as config space, they can and they can plop there any capacity without resoldering emmc chip). Image below

3/3/2026 9 PM - Connected bucks and inductors, power switch, and filters
Hello, it is again me! I connected bucks. There are 7 total: 20V->5V main buck, then the rest are powered from it, there is 3.3V buck, 1.8V buck and 1.1V buck. From 1.1V i also power on 0.6V LDO to simplify the design. Theres also 3 0.9V bucks. Sadly, i cant use only one as it is one per processing unit (rk3568 have cpu, gpu and npu). They are also 0.9V base, then they are controlled by I2C. RK3568 uses something with different voltage depending on usage, and it adjust voltage per PU, that is why i need to use 3 of them.




I also connected power switches, there are 3 switches total. One is for reset, it pulls down reset pin to gnd for a second which hard-resets NAS. Second one is soft power off, and is handled by GPIO port. Normally, it is pulled up to 3.3V thru resistor, when clicked it is pulled down to gnd, linux reads low state of pin and initiates shutdown script. Then we have hard power off. Normally, EN pin of main 5V buck is pulled up to 20V via 100kOhm resistor, but when you turn off the switch (it is spst-nc just like the soft power off one) it pulls it down to gnd without resistor and turns off every buck so theres no power to anything. Also, rk3568 can only power on when every PGOOD pin states ready


Then we have the filters using ferrite beads for everything except VBUS line, which uses inductor as filter. I also added PTC for usb 2.0 ports


then we have the last thing i did which are inductors, they were easy, but there are many capacitors. E.g. there are 8 on 5V inductor: 100nf for high frequencies, 1uf and 10uf for standard filter and 4x 100uf for bulk capacitance

3/4/2026 - Made skeleton of readme, docs and connected lpddr4x on schem
I connected lpddr4x on schematic! it was easier than i thought. I edited the symbol to be multi-unit so it is less cluttered.

I also made skeleton of readme and docs that i will fill in during breaks from schematic and pcb.
3/5/2026 5 PM - Modified RK3568 symbol
Hello! I modified rk3568 splitting it into multiple units in kicad, this allows me to connect it while not having a2 height symbol! It took me good 3-4 hours as i needed to split BGA~670 symbol, which is a lot of pins. Now i will reconnect 0v9 bucks for rk809-5 pmic instead as i found it on lcsc and jlcpcb, and then i will connect rk3568. After this is pcb!
here is png of block A cuz svg's dont count towards min images :<

3/5/2026 8 PM - Changed power and inductor schematics
I changed power and inductor schematics! I used rk908-5 for everything except 20V->5V and NPU power, sadly the last one i need to do using TPS6286810CRQYR as 908-5 doesnt have enough outputs :< but it is okay as i connected everything on schematic now! Well... except rk3568. I am sitting to this one. And i need to connect oscillator to rk908-5, will do it now!


3/5/2026 10 PM - Connected RK3568 on schematic
I did it! i connected it!
It wasnt hard. It was tedious. You can see how it turned out below. Now i will take a break and then assign footprints and start PCB.

3/7/2026 - Redid power. Made power diagram
Hello! I am tired of this project, but I am determined to finish it. I remade power part. RK809 was too space limited in this project. I also did power sequence properly this time. Now i just need to add reset ic (supervisory circuit) that will delay the start of rk3568 about 200-300ms after full stabilization of every voltage. Then reannotate schematic and start pcb again.









I also did power diagram! I spent waaay to much on it. I tried 4 tools: plantuml, d2lang, edvy or something like that and then draw.io/diagrams.com. The last one is the one that i used and is the best for me.

I spent like 5 hours on this project from last journal and i am exhausted. But i wont quit. I will finish.
3/8/2026 4 PM - Connected CPU, GPU and NPU bucks (and 20V -> 5V part)
Hello! I connected CPU, GPU and NPU bucks on PCB and their inductors!

It was WAY easier with seperate bucks due to not being space constrained like with rk809-5.
I also connected whole 20V->5V part of pcb before my last journal, i forgot to include it!

Nothing else! Now i am going to connect rest of bucks while listening to Ado. To next journal!
3/8/2026 6 PM - Connected LDOs and rest of Bucks
Hello! I connected rest of bucks and the LDO! I forgot to said in last journal: connecting everything except power pins and ldo specific pins (i am talking about eg enable or pgood) will be done later, at the last stage. Right now i am making "blocks" and then i will lay it out etc.
LDOs:

Bucks:

3/10/2026 1 AM - Made rk3568 decoupling
I did it. I finally did it! I placed all the decoupling capacitors on RK3568! 86 capacitors! only 22uFs are left, but that will be later placed. Currently all per pin 100uFs are placed! it took me 2 tries and few good hours. I needed to use 0201 caps so it will be probably full pcba (front and back).



3/10/2026 6 AM - Decoupled ram
I placed all the decoupling capacitors for ram! it was easy but counter intuitive. Cause yesterday i needed to place cap on every pin powering SoC but here for ram i dont need to and it would be even worse as it would block paths to route ddr and make swiss cheesee out of ground planes



3/12/2026 - Changed parts, changed layout
Hello! I did few things:
Changed parts to available ones on JLCPCB
Changed SATA connection topology
Changed board layout accordingly
SATA now is right-side. Not vertical. Also i am using 7 pin connectors instead of 22 pin ones and power goes thru molex connectors. This allows me to lower board cost by having smaller board
I also changed few parts to the ones available at JLCPCB. Due to this, i changed layout a bit. Resigned from hard-cutoff part of buttons. Also temporairly removed bucks and ldos from layout as i will place them when doing PDN.
Images:











