Explore Output Devices
I continue to have issues with my ability to fabricate PCBs on my CNC. I reached out to the University of Washington's Co-Motion Makerspace to access a machine to mill the PCBs for this week and last week. This week I created a breadboard prototype to prove that the concept, wiring and code work and used a "fancy" machine to mill the boards.
Last week I created a project that seemed fairly simple, but ended up being more complex than expected. This week my goal was to get back on track by creating a very simple project that used both an input and an output.
This week's project reads an analog value from a potentiometer and then moves a servo to a proportional location in it's travel. This is kind of a "Hello World" for connecting input sensors to output actuators.
My inital board is a derivative of the week 6 Hello World board. Because the pot and servo each need external connections, I routed the AT Tiny 44 data pins from the remaining I/O ports to external connectors. This was kind of like making an ATTiny44 Arduino board. The data pins could be configured either as inputs or outputs and the external connections could be wired to many kinds of inputs and/or outputs.
The figure above shows the schematic for this generic Hello World I/O board. The Symbol and footprint for the 1x6 header pins are being reused for the external interface to the pot and servo. Each needs Vcc, GND, and signal pins.
The figure above shows the PCB design for the generic Hello World I/O board and the rat's nest of wires.
Because KiCAD doesn't have any auto router included, I exported a trace file and imported into the FreeRouting program. I auto generated a single sided solution and exported the results and imported back into KiCAD. In the end, it helped as a starting point, but I went back and routed the traces myself.
I tried to mill this design on my CNC. Initially I used the design with the same trace width and angled routes that I used on earlier projects. The resulting milling operation didn't generate a workable board. I went back in increases the trace width and made all the routes use 90 degree bends. This still didn't result in a workable board.
The figure above shows several of these attempts to mill the board.
Next I fell back to an even simpler design using an ATTiny45.
This design has the minimum amount needed to have the pot move the servo.
The video clip above shows a demo of turning the pot and having the servo react with proportional movement.
I joined UW's Co-Motion Makerspace and as a result gained access to their PCB mill. The figure shows their high end mill that automatically supports swapping end mills and also has a camera that detects positioning holes to support double sided boards.
Even with all this technology it took quite several iterations to end up with a workable board. The outline cut for the PCB worked fine, but the end mill that cut the copper out of the empty space was slightly worn, so it produced insistent results. I worked with the Makerspace staff for several days and we got a "workable", but never a "perfect" result.
The figure above shows the components and board ready for assembly.
I used Co_motion's "real" reflow oven to bake the board with solder paste.
The figure above shows the finished circuit. The video clip shows the use of the potentiometer to move the servo.