Skip to content

5. Electronics production

Week 04 / Feb 16

This week’s assignment:

Group assignment:

  • characterize the design rules for your in-house PCB production process
  • extra credit: send a PCB out to a board house

Individual assignment:

  • make an in-circuit programmer that includes a microcontroller:
  • extra credit: customize the design
  • mill and stuff the PCB
  • test it to verify that it works
  • extra credit: try other PCB processes

We developed a USB-t44-ISP programmer

Making the board

I downloaded the traces and components of the Fab Academy website.

I used Flatcam to engrave the PCB board on the Roland Modela PRO MDX 540 we have at CIDi.

Soldering

Soldered with tin, using a welder. Followed plan of components as indicated in the provided schematics of the programmer.

In soldering initially I did not realize that the processor had a specific orientation. It is challenging at the first time to realize which components do not have an specific orientation - such as the resistances and capacitors - and which one do have an established orientation - e.g.: the t44 processor and the diodes. In my case, I only found out that the t44 was upside down after welding it completely. Thus, I had to unweld it, and weld it again.

Testing

After finishing the soldering process we tested the programmer with the help of our instructors. For this we used an atmel programmer and could verify that the programmer that I built was functioning properly. However, thus far we could not load the required software on the programmer using AVR. We are still working on this point.

My programmer connected to the Atmel ICE, and to the laptop. Green light

Customizing

Beyond making the USB-t44-Programmer, I customized the board. For this, I added a Baby Yoda outline and the logos of CIDi and Fab Lab CIDi to the board. We called the new hardware piece “Yodaboard”.

This week I:

Started using two new softwares: Flatcam (successfully) and AVR - Linux (thus far, without success). I think I have the basics of downloading pcb schematics and engrave the PCBs using Flatcam and our Roland, pretty much covered. I could develop a first (successful) iteration of welding components, and understand which components did have a specific orientation to weld and which ones did not. I could unweld and weld again a misplaced component. I could customize the board using Gimp, Inkscape and flatcam, to create “Yodaboard”.

Will keep on working to load required programs on the programmer, thus making it fully functional.

Update to electronic production week:

March 5, 2022.

Programmer done!!! (finally!!)

In the past week and a half I continued to have problems with my programmer. Several tasks were necessary in order to solve the problems.

a) Inadequate placement of components.

The first problem was that the microcontroller was rotated 180 degrees and thus, placed incorrectly. I did not realize that the Attiny44 had a small dot on the object. This dot signaled that there is an adequate orientation or way to solder the component. After Abdon, one of our instructors pointed out this fact to me, I had to unweld the microcontroller, locate it correctly and weld it again.

b) Inadequate welding.

Well, it was my first time soldering, and thus, I didn’t do it perfectly. Parts of the welding of my microcontroller were poorly done, and also, some of the contact points of the usb port. I audited this with the help of Hans, one of the staff members of the lab.

c) Problems while programming!

c.1) WSL and USB: I had never used Linux prior to Fab Academy. In the process of familiarizing myself with version control and GIT, I started to run Linux Ubuntu, over Windows Subsystem for Linux (WSL) on Windows Terminal. It was by the way a great and unexpected way to use the skills of a UNIX XENIX course that I took in the early 90s!!. In any case, I started to use the Linux command line as the basic interface for all my Git and documentation update processes. Thus, in the moment of programming the board, and considering the warnings about how unreliable AVRDude had become I opted to use Linux. I followed the step by step instructions for the programmer, but on the “make fuse” step, I repeatedly received a message stating that the usb was not detected. After extensive research I found out that there is a known issue between Linux running on WSL, and USB Ports.

c.2) Install Ubuntu:

The following step was install Ubuntu on my university laptop. I did that because up to that moment, the only two programmers that were successfully programmed at Fab LAB CIDi did it using Ubuntu as OS. After a day, basically, of working and setting UBUNTU, I had everything ready.

c.3) Debug the Makefile:

I downloaded the FabISP Firmware and extracted it.

Finally I debugged the makefile. I was not understanding the instructions properly, regarding where to substitute the name of the target device (Attiny 44) and the name of the programmer that I was using, an Atmel Ice. Finally, working with Abdón and Daniel I could clarify everything, and run the code successfully.

To program I applied the following commands:

make clean
make hex
make fuse
make program

Programmer board recognized on windows

Programming failure

Programming done!

Yodaboard done!!! (at last!!)

I also could conclude the soldering and programming of the Yodaboard, developing thus one customized and operational programmer.

Flatcam files here:

Fab Programmer

Yodaboard Programmer

Please see the tests and machine characterization for electronics production that we developed as a group here:

CIDi’s PCB machining capabilities


Last update: July 28, 2022