A few minor updates are made to the machine, testing continues, and we run into some issues with our demo.
General Updates
In the last few updates, we’ve discussed having a demonstration with our supervisors. This demonstration happened on March 9th, but unfortunately it did not go as planned.
Due to unforeseen issues with the open-source firmware we’re using as a base (Klipper), we’ve had to produce more original code than we expected. As such, while we were able to implement all invidiual features by March 9th, we were unable to have a fully integrated system running at the time.
Worse yet, we ran into networking issues that prevented us from demonstrating the machine on campus. The machine is controlled through a web-interface, requiring both the controller and our computer to be on the same network, and the controller was unable to connect to both the school’s wifi and our own hotspots at the time of our demo. Working on a fix is our highest priority (we’re investigating using a direct ethernet connection), so that we can properly control and demonstrate the machine during the Capstone Symposium on March 24th.
Despite these setbacks, we’re still on the right track and we’re excited for the symposium!
Mechanical Updates
As with previous updates, some parts have failed during testing and they were swiftly replaced. We’ve also finalized and installed the dust collection system, making both the final product and our testing process a little bit cleaner.
The Replacements
While running various tests on the machine, a wiring mistake with our spindle motor controllers led to them overheating. While the controllers themselves are fine, their 3D-printeed mounting brackets have warped, which in turn caused some interference with the rest of the spindle. These parts have been replaced with slightly redesigned components, which should not interfere with other components even if mildly warped.
The new motor controller brackets (white components).
Dust Collection
After more testing of our custom vacuum fan, we’ve settled on a design that’s a good compromise between performance and noise level, while also not overworking the motor we’re using. The full dust collection system, which includes the fan, a cyclone separator, and a vacuum hose, have been installed on the machine.
The dust collector mounted to the machine.
Unfortunately, due to material and budget constraints, we only have one vacuum with one hose. To make the most of only one point of suction, we’ve position it next to the spindle that produces via holes, as it is critical that these holes are contaminant-free when the vias are installed.
Software/Firmware Updates
Over the last week:
- Computer vision API was created
Computer Vision API
Up until this point the computer vision software flow is basically just a while loop that continuously reads the video from the camera and processes it. For testing this setup was ideal because it allowed us to watch the video and processing in real-time for as long as we needed to analyze it. However, this is not ideal for integrating the software into the control flow. The control flow involves moving the PCB so that the hole is roughly under the wire, then the computer vision software is run, and an adjustment is returned to the motor controls. So, in order to integrate the computer vision program, it needs to be modified so that it just runs through the detection algorithm once, returns an adjustment and then exits. Also, the camera needs to be started before this and when the control flow does not need the computer vision anymore the camera needs to be released properly. To do these tasks initialization and cleanup functions were added to the software. With all these created the control firmware can call the initialization function once, then call the detection function as many times as needed, and finally the cleanup function once all the vias have been filled.
Software Next Steps
At this point the computer vision software is essentially complete. Next it will be integrated and tested with the whole system. There could be some minor tuning that will need to be done such as making the alignment measurements more accurate or making the masking process slightly more robust. But all this tuning will be fast and easy to do given the debugging features like the control sliders that were designed into this software from the start.