Modular FPGA board – blender

Modular FPGA board – blender



We imported the board from KiCad in various formats into Blender in order to get the most customized and simple object for editing or manipulation. The first problems were related to the excess geometry that occurs when importing .stl and .obj format. This problem needs to be solved at the beginning due to complications which happened with colouring part of the object or with selecting many surfaces. I made a mistake colouring objects after adjusting the whole animation, so there was a lot of problems that were difficult to fix and I lost a lot of time. I’ve learned that the process should be followed this way: import file, separate components, clean geometry, colour components, parent objects, set the scene with the lights and the background, animate, render.

Description of the process:

Import .stl document – imported board becomes one object, without the possibility of selecting components, the board will be divided into components in edit mode: (A) select all – (P) separate by loose parts. In edit mode, you can see how much geometry the object contains and here it should be reduced to the number of surfaces and vertices to a level where the object will not deform. It is necessary to select all in edit mode and apply hotkeys M – Merge, B – by Distance, X – Delete, L – Limited Dissolve. It is possible now to select each component in object mode, they became separate objects.

Connectors should be parented (P) in object mode with a board so that they do not fall apart during animation or to behave as a single particle. For some reason, that kind of parenting didn’t work for me in the animation, so I set one Empty for each board, which was the parent of all other parts and that solved the problem.

In our case, we separated the base from the connector. After cleaning the geometry, each component is coloured in the Shading editor. We used silver colour for the connector pins and black matte colour for the connector body. The base itself is also black, however the roughness is reduced which gives a slight reflectivity to the surface. The graphic drawing was inserted as a .png file and positioned in the UV editor. In the shading editor, the image texture node is connected to the principled BSDF node and the .png file is assigned to it. With this principle, each surface of the object has the same pattern of the graphic drawing. I solved this problem by selecting the face area and creating a new material slot in the material properties panel with graphics inserted in base colour. Roughness is also adjusted as a black colour for the body, otherwise the rendered image would show the graphics as square label. The board also has a copper-gold material in the holes.

A plane was created for the scene as a hard surface where the boards stand. Colour code is #363E41, roughness is set to maximum and metallic value is 0.174. The background was “the world” which defines the environment that the scene is in. Two soft boxes were made for lighting the objects in the scene and parented with camera, so whenever the camera is moved the light source is not in the frame but still enlightens the object in focus. Each soft box has strength value of 10 000 and base colour #FFFCE9.

We made animation where the boards flip in the air like coins and merge at the end. It was necessary to adjust the camera, key frames and emphasize the connection of the boards with light. All changes were made in a graph editor where it is possible to change the position, rotation and scale of the selected object on the XYZ axis.

I took the plane mesh and turned it into a light object with an Emission shader. This light is not needed to be visible all the time in the animation, so it was necessary to animate fading of the object at a particular point in timeline. I got this effect by connecting a transparent BSDF node and an emission node to the mix shader by moving the slider of Fac value which is activated in the material properties panel under the mix shader option. Fading or transparency and emission are animated. Pressing the diamond icon next to the slider will place the key frames on the timeline.

For rendering, we chose Cycles which allow a more natural appearance of the visualization. In Cycles the light effect is weakened, so there is not enough luminescence. This situation was solved after rendering material in the Compositing workspace by connecting the Render layers node with the Glare node which has the Fog glow option in it’s menu. This option restored the light emission and gave the accent when boards were connected.

First rendered material had some visual noise in the brighter parts and rendering time was very fast. To solve the noise we used de-noising option in render properties panel. Select NLM option (which is Non-local means denoiser) and activate it by checking the Render box.

Leave a Reply