The group assignment is to test out the equipment in our lab that is used to troubleshoot and observe the operation of our PCBs. We used multi-meters and an oscilloscope. We are still in the process of finding an appropriate bench top power supply, we hope to borrow one from the physics department for testing purposes and then order one when we decide what type and style we want. I am very familiar with multi-meters as a physics teacher but had less familiarity with an oscilloscope. Off to find a tutorial!
We decided to test our oscilloscope while "following along" with the above tutorial. The following is a list of things we learned about the 'scope, how to use it, how to fine tune the readout, etc.
Finally, we have a short video of using the oscilloscope
Someone in our Lab who had done FabAcademy several years ago suggested I start out designing my PCB with Tinkercad. I was skeptical, as I had rarely used it and thought it was not 'sophisticated' enough. Nevertheless, I loaded it up and gave it a try. I didn't really care for the picture style interface and the drag-and-drop nature of the designing. Also, I quickly realized that I could not load the Fabacademy component library into Tinkercad. I could not easily find all the components I needed in the Tinkercad interface and overall it felt very clunky and difficult to use because I was being forced to manipulate things the way they wanted me to, not necessarily how I wanted to do it. I gave up on this about an hour in and decided to move on to Eagle.
This week was VERY hard for me and I am not sure why. I was pretty confident going in - I watched the lecture class earlier than normal, I borrowed a couple books from the FabLab, and I did a lot of reading and working over the weekend. I felt like I was ahead of the game. (Spoiler alert: I was not.) I read chapters 1, 2, 4, and 5 in this book and started designing my PCB in Eagle.
I ended up designing multiple schematics, several boards, milling at least 3 PCBs, and soldering and re-soldering the board I ended up using. The finalized general process I settled on was:
So, following along with the examples from the book, I was able to make the schematic somewhat easily in Eagle. My familiarity with Fusion 360 also helped while using Eagle.
All seemed to be going really well, so I kept going. The next step was to route the traces in Eagle. This is where things started going south. I decided to try the autorouter in Eagle. I tried different optimizations, and kept getting boards with vias. Why??
FINALLY, I realized that when I was clicking the autorouter, I needed to turn off the bottom layer when I was autorouting and it finally stopped giving me vias.
I quickly realized that the auto-routing was not everything it was cracked up to be, but I still decided to keep trying. I was going to try to mill one of these auto-routed options even though none of them looked particularly "do-able". I figured out I needed to export the board as an image (.png) if I wanted to use FabModules. The best way to do that was to turn off every layer except the top layer which held the traces and pads and set it to "monochrome". You will then end up with a black and white .png file that you can use with FabModules.
I am listing all of my design files from Eagle here, so if anyone would like to download them, feel free.
I followed my procedure from Exercise 04 - Electronics Production. I milled one board and thought it looked like the traces were too close together and there was very little separation between the traces and the surrounding copper. I worried a lot about bridging gaps with a sloppy solder and so I decided to make a new, more spread out board. I later came to realize that the tiny traces were because I had chosen poor values in FabModules, using an offset of 1 instead of a more reasonable value, like 4. Next time I will know to choose my offset better and not have to do all this extra work!
I still had concerns about my relative inability to solder such tiny pads and traces without accidentally bridging the gap to the surrounding copper, so I decided to make ONE MORE board where I would mill out the surrounding copper and be left with only the traces and pads. I did this by importing my Eagle design into Fusion 360, taking the traces image and placing it onto an extruded surface. I generated contour and pocket toolpaths that would mill away all the internal and external copper bits, leaving only the traces and pads behind. This ended up working REALLY well, but possibly being a bit overkill. I really liked the way it ended up, though.
I then took the Fusion 360 design file and loaded it into Othermill and set it to mill the board. Between all the traces, pocketing and contouring, it took almost 30 minutes.
It was time to solder. My labmate, Will, had already pulled all of the pieces so all I had to do was place them and solder. This actually went relatively, almost alarmingly, well and quickly. It looked really good, but was everything aligned correctly? Would it work??
It was now time to test the board after ALL this hard work. The moment(s) of truth. The first thing I did was create a folder and save the (.c) file and the Makefile into it. I opened a terminal/command prompt and set my directory to the new folder and typed "Make". This command tells the Makefile to extract the (.hex) and (.out) file into the folder. I then attached the USBtiny to the ISP port and plugged in the FTDI board to power my target board.
I then went back to the terminal/command prompt and typed "make programusb-tiny". NO errors! I then flashed the fuses using the similar command "make program-usbtiny-fuses". The red LED flashed while the programs were being sent to to my PCB.
FINALLY, I had to test if the programs did what they were supposed to do. I opened up the Arduino program to take advantage of its easy to use serial monitor and chose the FTDI as the serial port for Arduino to interface with. I set the baud rate to 115,200 so it would know the speed. I typed some letters and they echoed back to me on the serial monitor. It worked!!!
Overall, this has been the hardest week so far in terms of learning new things and having to repeat myself, correct mistakes and really stretch myself. If it weren't for the help of Adam Harris, FabLab 2014 I'm not sure I would have ever really figured out or understood the programming aspect of the assignment, but now I feel like I at least partially get it and with a lot more thinking and reading I hope to be able to fully understand it on a deeper, conceptual level for the next electronics assignment.