We seem to want our PCB design software to do everything these days, and it almost delivers. You can not only lay it all out, check electrical and design rules, and even spit out a bill of materials, but many PCB tools produce 3D models that are good enough to check parts clearance or are useful in designing enclosures. But when it comes to producing photorealistic output, whether for advertising or just for eye-candy, you might want to turn to 3D design tools.
If you don’t know Blender, maybe you don’t know how comprehensive a 3D modelling and animation tool it is. And with the incredible power comes a notoriously steep learning curve up a high mountain. Anool doesn’t even try to turn you into a Blender expert, but focuses on the tweaks and tricks that you’ll need to make good looking PCB renders. You’ll find general purpose Blender tutorials everywhere on the net, but if you want something PCB-specific, you’ve come to the right place.
For context, micromouse is a competition where robots complete to solve mazes of varying pattern but standardized size by driving through them with no guidance or compute offboard of the robot itself. Historically the mazes were 3 meter squares composed of a 16 x 16 grid of cells, each 180mm on a side and 50mm tall, which puts bounds on the size of the robots involved.
What are the hallmarks of a [Keri] micromouse design? Well this is micromouse, so everything is pretty small. But [Keri]’s attention to detail in forming miniaturized mechanisms and 3D structures out of PCBs really stands out. They’ve been building micromouse robots since 2016, testing new design features with each iteration. Versions three and four had a wild suction fan to improve traction for faster maneuvering, but the KERISE v5 removes this to emphasize light weight and small size. The resulting vehicle is a shocking 30mm x 32mm! We’re following along through a translation to English, but we gather that [Keri] feels that there is still plenty of space on the main PCBA now that the fan is gone.
The processor is a now familiar ESP32-PICO-D4, though the wireless radios are unused so far. As far as environmental sensing is concerned the v5 has an impressive compliment given its micro size. For position sensing there are custom magnetic encoders and a 3 DOF IMU. And for sensing the maze there are four side-looking IR emitter/receiver pairs and one forward-looking VL6180X laser rangefinder for measurements out to 100 or 150mm. Most of these sensors are mounted on little PCB ‘blades’ which are double sided (check out how the PCB shields the IR emitter from it’s receiver!) and soldered into slots perpendicular to the PCBA that makes up the main chassis. It goes without saying that the rest of the frame is built up of custom 3D printed parts and gearboxes.
If you’d like to build a KERISE yourself, [Keri] has what looks to be complete mechanical, electrical, and firmware sources for v1, v2, and v3 on their Github. To see the KERISE v5 dance on a spinning sheet of paper, check out the video after the break. You don’t want to miss it!
We like to pretend that our circuits are as perfect as our schematics. But in truth, PCB traces have unwanted resistance, capacitance, and inductance. On the other hand, that means you can use those traces to build components. For example, it isn’t uncommon to see a very small value current sense resistor be nothing more than a long PC board trace. Using PC layers for decoupling capacitance and creating precise transmission lines are other examples. [IndoorGeek] takes us through his process of creating coils on the PCB using KiCad. To help, he used a Python script that works out the circles, something KiCAD has trouble with.
The idea is simple. A coil of wire has inductance even if it is a flat copper trace on a PCB. In this case, the coils are more for the electromagnetic properties, but the same idea applies if you wanted to build tuned circuits. The project took inspiration from FlexAR, an open-source flexible PCB magnet.
Tuning a desktop router and your board designs for isolation routing can be a bit tricky, with thin traces usually being the first victim. For simple prototype boards you usually don’t need tightly packed traces, you just want to isolate the nets. To do this with a minimum amount of routing, [Michael Schembri] created kicad-laser-min, a command-line utility that takes a Kicad PCB design and expands all the tracks and pads to their maximum possible width.
The software takes one layer of the PCB layout, converts it to black and white, and then runs a C++ Voronoi algorithm on it to dilate each track and pad until it meets another expanding region. Each region is colourised, and OpenCV edge detection is used to produce the contours that need to be milled or etched. A contour following algorithm is then used to create the G-code. The header image shows the output of each step.
Full source code is available on GitHub. [Michael] has had good results with his own boards, which are scribed using a laser cutter before etching, but welcomes testing and feedback from other users. He has found that OpenCV doesn’t always completely close all the contours, but the gaps are usually smaller than the engraving width of his laser, so no shorts are created.
The first step is to design the PCB as you normally would in KiCad. This could be an original PCB of your own invention, or a digital representation of an off-the-shelf model you want to build an enclosure for. If the latter, then the PCB doesn’t need to be 100% accurate; the goal is really just to get the big components into roughly the right areas so you can get the clearances right. Though obviously you’ll want to make sure the board’s outer dimensions and mounting hole locations are recreated as accurately as possible.
From there, [Vadim] recommends a tool called StepUp. This will take your PCB KiCad PCB files and create either a STEP or STL file of the assembled board which can be imported into your CAD package of choice. For the purposes of this demonstration he’s sticking with FreeCAD, as he likes the idea of it being a completely FOSS toolchain from start to finish.
Now that you have a model of the PCB in your CAD software, the rest is up to you. Naturally, there are existing enclosure models you can use such as the ones produced by the “Ultimate Box Maker” that we covered previously, but you could just as easily start building a new enclosure around the digital PCB.
A laser cutter is a useful tool to have in any workshop. While many hackers use them for their cutting abilities, it’s important to remember that they can be great as engravers, too. [Wrickert] was well aware of this when he set his to work, producing attractive packaging for his Tindie orders.
[Wrickert] sells a variety of small PCB-based devices on Tindie, and it’s nice to have something to package them up with, rather than just sending a bare board. To do this quickly and effectively, KiCAD is used to help generate the packaging from the original PCB geometry itself. The board outlines are exported as an SVG file, reopened in KiCAD, and then used to create the required cardboard parts. The laser can then also be used to engrave the cardboard too.
It’s a tidy packaging solution that requires no messy inks or printers, and can be designed in the same software as the device itself. We’ve covered this area before, talking about what it takes to go from a home project to a saleable kit. If you’re in the game, you might find [Wrickert]’s hack to be just the ticket!
There’s a new Python-based script that will panelize your KiCad circuit boards from the command line. The project by [Jan Mrázek] is called KiKit and works on .kicad_pcb files to arrange them in a grid with your choice of mousebites or v-cuts for separating the boards after production.
When working with smaller boards it’s common practice to group them together into panels. This is done to speed up PCB assembly as multiple boards can have solder paste applied, go through a pick and place machine, and be sent into the reflow oven as a single unit. Often this is done manually, but in many cases this script will save you the time while delivering the results you need.
Let’s say you really wanted to make a whole bunch of those Xling open source Tamagotchi-like key fobs we saw a couple of weeks back. Using KiKit you can gang up six of the boards at a time, using “mousebites” to keep them together during production but make it easy to separate them after all the components are soldered:
You can see that the parameters let you set space between the boards, number of boards in the grid, width of the tabs, tab dimensions, number of tabs between boards, and even the radius of the curve where the tabs meet the board. These settings were pulled from the examples page, which demonstrates outcomes for many different settings options.
If you want to give this a try, we suggest installing directly from the repository, as improvements are ongoing and the pip3 version didn’t have all of the options shown in the examples. For us this was as easy as sudo python3 setup.py install and then calling the script with the full path /usr/local/bin/kikit.
Results from this board are both impressive and cautionary. You can see the top edge of the design is recessed yet the most up-to-date version of KiKit was still able to make the connection. However, how this affects the USB connector on the bottom of the board design may be something to consider before pulling the trigger on your panel order.