Rafael Rebolleda — Fab Academy 2020 Documentation

W4: Electronics Production

Characterization

We start by milling the following template to understand the resolution we can work with with our Roland MDX-40.

The bit that we're using is the following:

We use mods to process the image and create de code that we'll load on the milling machine.

I read these tutorials to get myself aqcuainted with the process and then with the help of my instructor we set everything up for our machine:

The first try doesn't work very well, because the board is not properly attached —flat— to the bed. We tried re-calibrating the bit and also adjusting a deeper cut, but in reality we just need to re-tape the board.

At this point I need to move on to the boards themselves because of time/logistics contraints. When I come back later for a follow up try, with the board properly taped, the process works alright.

Building the programmer board

For this part of the assignment, I followed Brian's excellent tutorial to build an AVR ISP programmer.

Once again, we use mods to create the code for our milling machine:

We load the program and start milling the first board, which turns out pretty good:

I foresee soldering won't be easy, so we make a few boards just in case. However, we ran into the same issue as with the testing pattern, with the board not lying flat on the surface:

After re-taping the board, I create a few of extra boards. Thankfully only a couple of them will be necessary :)

Soldering the components, Part I

The first thing I do is to check for continuity in the board, making sure current will flow with no problem.

I had never soldered surface mount components, only through-hole, so the first try is rather embarrasing :D

Moreover, I break the lines when trying to de-solder the chip to reposition it for a better fit.

To wrap this first round of soldering, for the life of me I can't see the lines on the zener diodes

I was happy for how the board turned today with the CNC, but soldering was not a good experience!

Soldering the components, Part II

Alex, my local instructor, helped me with some small changes for the second sessions of soldering that really made a difference.

Withn all these small but important changes, I was already doing so much better, as we can see in the laying of these pads:

I ended up adding extra soldering in the USB connecting lanes. Here's the final board (after set up, hence the jumper-cut)

I did a quick continuity and resistor test with the multimeter and finally pluggeg it in. One tip here is to check components on the lanes on the board instead of directly on top of them; sometimes they have a poor (or no) connection to the board and checkig on the component itself will render a false positive. I actually had to reinforce a couple points and... lights on!

Setting up the programmer

So I have a fairly new MacBook Pro, so I downloaded CrossPack as recommended on Brian's tutorial, mentioned above. However, although installation went fine, I notice the package hadn't been updated for years. Unsurprisingly, "make" didn't work and threw a "Bad CPU type in executable". I looked and asked around, but to no avail.

I've been pondering moving to Linux for a while, so I had a couple of virtual machines available. I decided to go that way. In linux-land, I installed the toolchain without hiccups:

To set up the new board, it needs to be flashed through a previous programmer which connects to the computer, connected to the new board (powered elsewhere) with a parallel cable.

To help the board stick in the USB jack, I put a bit of folded paper. However, later I also made the mistake of taking for granted all four pins connection just because the light turned on. It was necessary to double check all usb lanes where in fact making connection. I plan on printing a 3D shell to hold the board and prevent these errors.

I was worried the VM wouldn't access the USB "mother" board (the original programmer to flash mine), but it turned out not to be much of an issue. Instructing VirtualBox to pass onto Linux was enough.

Then it was a matter of downloading the firmware and going though each step of the flashing:

Once flashed, I connected both board to the computer to check whether the host recognised it:

Then it was time for the final programming step

And cutting the jumper