A little update: I have just started working on another PCB render and KiCad exports a much better starting point now (or Blender's import has become better - no idea which it is). Use wrl format and you get materials already assigned as well as a solder screen, contacts and silk layer. You still should do the following: join all components, merge vertices by distance (like in the video) and then hit "P" and select "separate by loose parts" to get individual components. Also, adding textures like in the video goes a long way for more realistic looks.
I am considering this. I did the other 4 hour video because it was requested and it was an easy way to show how I do it, but there has been more interest than I expected and some things are easier now.
for automatically smooth a group of selected object, you have to press ALT + click auto smooth check box. in this way you apply the auto smooth to all the selected obbject. thanks a lot for this amazing video tutorial. i found it super useful
1:8:20 if you haven't a numpad, you can activate "emulate a numpad" in the settings and then using the normal number keys or you can press and hold the ALT key and move the mouse while holding the mouse wheel in one direction to switch the view
Reminds me that I still need to figure out how to disable the system wide meaning of ALT (dragging a window) only for Blender... Really annoying that I cannot properly use ALT here, but I would muss it in other applications.
I wrote a long ass comment before, but youtube seems to have """"forgotten"""" it , so ill go here again in short form: You can import kicad-exported wrl files in meshlab, export them again (as wrl or x3d), then import those exported files in blender. Then you can assign a single shader to the whole model, add a "Vertex Color" node, select the Color attribute ("Col") and use that as input for base color. That means you can skip the steps of selecting vertices -> assigning material color. Going through Meshlab also causes you to have just 1 File on import, instead of 100s of FaceSets. Kicad vrml export is broken, blender doesnt detect that it has vertex colors, Meshlab fixes that. There are probably other programs for that, but thats what works for me.
3:20 a little bit of advice in terms of your board routing: 1) See how the green trace from the second pin on J17 snakes around? Start it at the top copper layer (red) go directly towards the relay and right before the red trace that blocks it use a via to jump to bottom copper (green) and connect it to your relay. Why do i point this out? Often times i see people design two layer boards as if they're two single sided boards stuck back-to-back. Double sided boards bring so many advantages with them that it feels feels like i need to point them out. Vias are used to jump between layers and they're absolutely free so use them to their fullest. Edit: Also note that components that have through pins can be connected to from any layer because they go all the way through your board so you can use those pins to jump between layers. 2) Don't use the default 0.25mm trace width in KiCAD as 0.3mm is the lowest you should go really. Some PCB manufacturers even charge extra for traces below 0.3mm in width just because they're more difficult to manufacture reliably.
This is a really useful tutorial, thank you for posting it! I have been wanting to create rendered animations for my PCBs and learn Blender, but did not know where to start -- this is exactly what I was looking for. Subscribed! Geiles Video!
Glad it is still useful. Just watch out for a few changes in Blender and KiCad. The video is almost two years old and a few things can be done a bit easier or work slightly differently. Most ideas still apply, though.
51:12 instead of using huge sample values, simply activate denoising this saves a lot of rendering time and in Full HD 128 samples or 256 samples in 4k resolution will be enough, even for textures like glass
@ 3:35:58, over the top copper layer there is the solder mask layer, that is a protective non conducting layer that protect the copper layer from oxidation
1:34:00 There is better ways to add bevels to objects in blender for rendering . First is to use the bevel modifier and limit it by weight and just mark all the edges in edit mode. The second is to use the bevel node, it only works in cycles but is able to add a fake bevel using the normal.
Jepp, used the modifier later in the video when I remembered how tedious it is to do it manually. Did not know about the bevel node. Have to look into it, but it seems very logical to do this on a material level. Thanks!
Thank you for doing this. I had been wondering how the whole workflow works and being new to blender this was super helpful and helped me get started. Now, my board has a metric crap ton more components and I’ll be busy for a while. 😆
Yeah, the work really adds up. Check out the hints in the other comments about using "Separate" -> "By Loose Parts" and alternative beveling methods to save a few minutes.
@@imboredcantusee1394 Cycles (unless you are looking at the beginning before 0:40:00). At about 0:45:00 you can see the difference between CPU and GPU rendering. (Although this scene of course also benefits from the large empty area around the PCB.)
You only need to care about scale when you want physically accurate physics and depth of field from the camera. But you are a physicist, so you knew that already. Cool workflow a bit labour intensive but it is what it is for now. Time to get an OBJ export that also exports textures. But I doubt the KiCad community would go that far, as it’s really tertiary functionality.
@ 3:50:46 i need some help :/ i exported my pcb from altium, and from what i see altium exporter does a bettr job than kicad's one. I don't have to create the texture from the image: i already have in blender all my traces as objects. I would like to reach the same results as the one you show at 3:50:46 but i am not good enough with blender. I tried to apply some transparancy to the soldermask, but then i see the inner layer everywhere (i would prefer to see just the a glimpse of the traces.) I think i can work on the difference distances that exist between the soldermask and the inner layer, but i don't know how to apply a modifier based on that. (technically there is the soldermask layer, that is the top layer, then there is the top copper layer, where the traces and exist, and beneath this layer there is the PrePreg. Since there is a 6mil gap between the traces and other copper elements laying on the same plane, in these spots below the soldermask i can see the Prepreg layer.) i am thinking of using this techincal detail to someone highlight the traces on the surface on the pcb. Any idea on how to do it? Thanks (i hope i explained my self)
Edit: Absolutely correct, this would have saved me a few minutes of hitting Ctrl+L and P. (Original answer when I forgot that I linked the meshes by merging vertices by distance: Thanks, but unfortunately the parts are "too loose". At 19:00 you can see what I mean. The components are not exported as individual parts but consist of individual sides. I actually joined everything into a single object as I find it easier to select the parts that belong to a single component when they belong to the same object. With separate by loose parts I would only get back to the situation at 19:00 as each component gets separated into multiple objects because KiCad exports the sides of the component as unconnected meshes.)
@@ThereOughtaBe yes you are right but after you are joined all the meshes and merge all the double points you can perform a separate by loosing part command... I think it work... or not?
@@Marwatt Sorry, you are absolutely right. I forgot that this was the next step and otherwise my "select connected" method would not have worked either. So, thanks - next time this will save me a few minutes of hitting Ctrl+L and P :)
If you mean what I think you mean: It's a Z-diode and the Optocoupler is supposed to switch only above a specific voltage. This part is already working perfectly. The circuit in this video still had a big stupid mistake: no pull-ups / pull-downs to define the ESP's boot mode. *facepalm*
A little update:
I have just started working on another PCB render and KiCad exports a much better starting point now (or Blender's import has become better - no idea which it is). Use wrl format and you get materials already assigned as well as a solder screen, contacts and silk layer. You still should do the following: join all components, merge vertices by distance (like in the video) and then hit "P" and select "separate by loose parts" to get individual components. Also, adding textures like in the video goes a long way for more realistic looks.
Can u make new video with kicad 6 and blender
I am considering this. I did the other 4 hour video because it was requested and it was an easy way to show how I do it, but there has been more interest than I expected and some things are easier now.
@@ThereOughtaBe thank you
ok. thats awesome. somebody give him a raise.
for automatically smooth a group of selected object, you have to press ALT + click auto smooth check box. in this way you apply the auto smooth to all the selected obbject.
thanks a lot for this amazing video tutorial. i found it super useful
1:8:20 if you haven't a numpad, you can activate "emulate a numpad" in the settings and then using the normal number keys
or you can press and hold the ALT key and move the mouse while holding the mouse wheel in one direction to switch the view
Reminds me that I still need to figure out how to disable the system wide meaning of ALT (dragging a window) only for Blender... Really annoying that I cannot properly use ALT here, but I would muss it in other applications.
I wrote a long ass comment before, but youtube seems to have """"forgotten"""" it , so ill go here again in short form: You can import kicad-exported wrl files in meshlab, export them again (as wrl or x3d), then import those exported files in blender. Then you can assign a single shader to the whole model, add a "Vertex Color" node, select the Color attribute ("Col") and use that as input for base color. That means you can skip the steps of selecting vertices -> assigning material color. Going through Meshlab also causes you to have just 1 File on import, instead of 100s of FaceSets. Kicad vrml export is broken, blender doesnt detect that it has vertex colors, Meshlab fixes that. There are probably other programs for that, but thats what works for me.
Thanks! Sounds like something I definitely have to try next time I do something like this.
pin this comment, bro.
3:20 a little bit of advice in terms of your board routing:
1) See how the green trace from the second pin on J17 snakes around? Start it at the top copper layer (red) go directly towards the relay and right before the red trace that blocks it use a via to jump to bottom copper (green) and connect it to your relay.
Why do i point this out? Often times i see people design two layer boards as if they're two single sided boards stuck back-to-back. Double sided boards bring so many advantages with them that it feels feels like i need to point them out.
Vias are used to jump between layers and they're absolutely free so use them to their fullest.
Edit: Also note that components that have through pins can be connected to from any layer because they go all the way through your board so you can use those pins to jump between layers.
2) Don't use the default 0.25mm trace width in KiCAD as 0.3mm is the lowest you should go really. Some PCB manufacturers even charge extra for traces below 0.3mm in width just because they're more difficult to manufacture reliably.
This is a really useful tutorial, thank you for posting it! I have been wanting to create rendered animations for my PCBs and learn Blender, but did not know where to start -- this is exactly what I was looking for. Subscribed! Geiles Video!
Vielen dank Sebastian!
Ok did not expect a four hour video. Thank you very much, I was looking very much for this
Glad it is still useful. Just watch out for a few changes in Blender and KiCad. The video is almost two years old and a few things can be done a bit easier or work slightly differently. Most ideas still apply, though.
51:12 instead of using huge sample values, simply activate denoising
this saves a lot of rendering time and in Full HD 128 samples or 256 samples in 4k resolution will be enough, even for textures like glass
@ 3:35:58, over the top copper layer there is the solder mask layer, that is a protective non conducting layer that protect the copper layer from oxidation
Ah, thanks. Seems like I need to design a few more PCBs to really recognize the layers by their shape :)
I wanted to know this too, your 3D renders of your projects looks professional commercial demo advertisements.
Thank you for sharing! Fabulous work.
can I give more than a thumbs up?
1:34:00 There is better ways to add bevels to objects in blender for rendering . First is to use the bevel modifier and limit it by weight and just mark all the edges in edit mode. The second is to use the bevel node, it only works in cycles but is able to add a fake bevel using the normal.
My rule of thumb is to try to avoid making permanent changes to mesh if possible in case i want to change something later.
Jepp, used the modifier later in the video when I remembered how tedious it is to do it manually.
Did not know about the bevel node. Have to look into it, but it seems very logical to do this on a material level. Thanks!
I love the internet
@@quinnfoster4671 You love the internet
Thank you for sharing.
Hey hab dich grade gefunden. Und starte das Video grade und freue mich jetzt schon auf die 4 std Video!!🎉
Oha, hoffentlich stimmt das auch nach vier Stunden noch :)
You're awesome! Thanks for sharing this!
Got it. Thanks for sharing 😉
Thank you for doing this. I had been wondering how the whole workflow works and being new to blender this was super helpful and helped me get started. Now, my board has a metric crap ton more components and I’ll be busy for a while. 😆
Yeah, the work really adds up. Check out the hints in the other comments about using "Separate" -> "By Loose Parts" and alternative beveling methods to save a few minutes.
can you share the blender file?
Thanks very much!! I'm just now doing a render with blender for a project. The only difference is that i imported the 3d object from altium. 😁
It is very helpful to me...!! Muchas gracias!!
Thanks!!
+1 subscribed!
>I'm not gonna explain the basics
What pc components do you have that it rendered at Godspeed? Thank you in advance, very nice.
They are not too extreme: It's just a Geforce GTX 1070Ti. The important part is to tell Blender to use the grafic card's CUDA cores.
@@ThereOughtaBe ahhhhhhhhhh was it in eevee or cycles? Looks like cycles but I can’t tell.
@@imboredcantusee1394 Cycles (unless you are looking at the beginning before 0:40:00). At about 0:45:00 you can see the difference between CPU and GPU rendering. (Although this scene of course also benefits from the large empty area around the PCB.)
You only need to care about scale when you want physically accurate physics and depth of field from the camera. But you are a physicist, so you knew that already.
Cool workflow a bit labour intensive but it is what it is for now. Time to get an OBJ export that also exports textures. But I doubt the KiCad community would go that far, as it’s really tertiary functionality.
@ 3:50:46 i need some help :/
i exported my pcb from altium, and from what i see altium exporter does a bettr job than kicad's one. I don't have to create the texture from the image: i already have in blender all my traces as objects. I would like to reach the same results as the one you show at 3:50:46 but i am not good enough with blender. I tried to apply some transparancy to the soldermask, but then i see the inner layer everywhere (i would prefer to see just the a glimpse of the traces.) I think i can work on the difference distances that exist between the soldermask and the inner layer, but i don't know how to apply a modifier based on that. (technically there is the soldermask layer, that is the top layer, then there is the top copper layer, where the traces and exist, and beneath this layer there is the PrePreg. Since there is a 6mil gap between the traces and other copper elements laying on the same plane, in these spots below the soldermask i can see the Prepreg layer.) i am thinking of using this techincal detail to someone highlight the traces on the surface on the pcb.
Any idea on how to do it? Thanks
(i hope i explained my self)
Realmente é um trabalho magnifico! Nunca pensei que seria possivel importar do Kicad no Blender.
what you os?
Linux Mint
@@ThereOughtaBe Thanks brow
Hi... if you use (in edit mode) separate -> by loosing part you can separate all objects at once
Edit: Absolutely correct, this would have saved me a few minutes of hitting Ctrl+L and P.
(Original answer when I forgot that I linked the meshes by merging vertices by distance:
Thanks, but unfortunately the parts are "too loose". At 19:00 you can see what I mean. The components are not exported as individual parts but consist of individual sides. I actually joined everything into a single object as I find it easier to select the parts that belong to a single component when they belong to the same object. With separate by loose parts I would only get back to the situation at 19:00 as each component gets separated into multiple objects because KiCad exports the sides of the component as unconnected meshes.)
@@ThereOughtaBe yes you are right but after you are joined all the meshes and merge all the double points you can perform a separate by loosing part command... I think it work... or not?
@@ThereOughtaBe anyway it's a good work! :-)
@@Marwatt Sorry, you are absolutely right. I forgot that this was the next step and otherwise my "select connected" method would not have worked either. So, thanks - next time this will save me a few minutes of hitting Ctrl+L and P :)
Can I use Adobe Photoshop for rendering?
Plus point for Linux ;)
Very useful that your face is exactly in front of the material settings
I denounce the optocupler diode :D
If you mean what I think you mean: It's a Z-diode and the Optocoupler is supposed to switch only above a specific voltage.
This part is already working perfectly. The circuit in this video still had a big stupid mistake: no pull-ups / pull-downs to define the ESP's boot mode. *facepalm*