PCBs with proper (but ancient) tools¶
Quentorres¶
For Quentorres board, we did no changes to the design, we just printed the board as it was. But we used a different machine, a LPFK milling machine meant for PCB production. The process of using that machine was a bit more complicated, but not as fiddly and prone for errors as the Roland machine.
The process¶
For the process, we followed the tabs in the top left corner if the LPKF controlling software. (This screenshots are for another board, that was made later as part of interface week).
We downloaded the process files from the quentorres repository and moved them to the milling machine. From there, we followed the process from the machine, which contained to following steps in general:
- Check the tip for a bit
- Select files (the electric lines, the holes and the outline)
- Select which files meant which.
- Select bits for different cuts
- Check lifetime of each bit
- One bit was worn down, the 1mm bit that was used to clear all copper from big areas, but that bit was unimportant, so we did not change it.
- Select contouring divots.
- Define a safe milling area on the bed and select where the board goes within that area.
- Start the milling
- Before each bit, the machine asked to do a test cut to see if it had calibrated itself properly.
- We could select a place for the test line, and the machine would automatically cut a small line there, move a camera to that position and focus there. Then the software had measuring tools for measuring the width of that line (and for other things as well.) If, and when, the milling depth is wrong, the height can be adjusted and a new test line can be milled.
Select what we are milling. In this case we are making a PCB board.
Select how many sides are milled. The Quentorres is only one sided, so I selected that.
Select the material of the board. I selected FR4, even though the board is FR1, because that is the closest predefined material to match the specs.
Select the next tab, after which I chose to import the copper cutouts, contours and through holes.
LPKF tries to guess the correct path types for each file, and seems to e quite good at it. The only file it constantly gets wrong is the drill files, which require manual action, and selection from the drop down menu.
Next two tabs are not relevant, and are skipped. So the next required tab is the one for determining where the toolpaths are defined.
The page asks for two things: how to isolate the pads (i.e. how much copper is removed from around the parts where things are soldered to), and what kind on routes are generated for milling. In this view, I also needed to change the copper layer thickness from 14m²m to 34m²m.
The window also has a tab for defining contours for the whole board (defined in the cut out file), and how it is attached to the outside board. If it would be completely cut off, it would most likely wobble too much the mill anything on it. Or even rip and fly out of the bed while milling the contours.
The last interesting tab in the window is for defining the drill bits.
Next top left tab checks the availability and durability of the required bits. This does not need any actions, is everything is fine, but if a bit is missing or too worn, something should probably be done. There were no problems in this phase during the Quentorres, but in the screenshot it shows that the microcutter was not available.
To fix the issue with the microcutter, I needed to go back to the isolate pads dialog, and deselect microcutter from the list of available tools, so that it would not path routes for it.
Then the next phase was mounting the material.
After which it asked me to define the area for safe milling. The user interface expects me to click on the screen that shows the representation of the bed, after which the machine moves its bit to the spcified position. Once the position of the bit is good enough, I could click P1 button to set it as one safe corner, and then move the bit to another position and press P2 to set the opposite corner.
Those two points then define a square.
Then I dragged the board in the screen to the position where I wanted to mill. The board needs to reside within the safe area. It also allows me to create copies in a grid, if I need multiple boards. For Quentorres, I did not set any copies, but in the screenshot there is one additional copy created on the y-axis.
Pressing continue then starts the process. If the machine has not been used for a while, it will at first spend two minutes spinning the bit to warm the bit up to match the designed tolerances. After that, it will ask to mill a test line for a couple of bits, to calibrate the precise milling depth (which affects the width of the milled line as the bits are conical). The software will ask where to mill the test line, and then the camera will automatically focus on the milled line. The line width can then be measured on the bottom left screen, by right clicking on the camera screen, and selecting Measure -> between two points, and clicking two opposite edges of the drilled line in the camera screen.
The milling took about 5ish minutes per board. We were instructed to be ready to stop the machine if it ever failed to drop the old bit when changing bits, as it could result in the machine breaking multiple bits at once. Thankfully that never happened.
Soldering¶
Soldering was surprisingly fun, even with surface mounted components. With the help of a microscope, it was easy to hit all the necessary spots. And adding molten solder to the surface before inserting the component helped with the need for three hands: the soldering iron, the solder and the component.
Testing¶
My version of Arduino IDE was so old, that it was just called Arduino. I had to download a newer version before I could start testing.
Followed the steps in the repo to download correct boards. The system detected the board automatically which was nice, except the ports were all named in the extra nerdy /dev/ prefix.
Had trouble finding the example code. Wasn’t expecting it to be built into the Arduino IDE, and kept looking it from the repository. Thankfully I found it after a while with some help.
Then I managed to get the board blinking. I first noticed that the default blink test blinked to onboard LED next to the USB connector. Fixed it by defining a new led at the pin 26, with #define LED 26
precompiler command. Then, using LED
instead of LED_BUILTIN
got the right light emitting diode to funtion.
Arduino IDE on macos is a weird beast. Or maybe it is just the seeed board, but after uploading the code to the board, it ejects itself from the usb port for a second. According to this discussion, it might be because the controller resets itself. But that ejection error is really annoying.