Week 11: Input Devices

Board Design

This week we had to design, make and program a board that lets us use an input to read something. Since I will be controlling temperature in my final project I selected the NTC Thermistor example to adapt.

EXAMPLE

Next I opened up my Eagle and started adding the components from the example plus a 1k resistor and a LED to show me if the board has power.

EAGLE 01

Following I connected my components in my schematic.

EAGLE 03

I changed some of the paths names in order to make it easier to finish my schematic.

EAGLE 02

Once I finished my schematic I started with my board design.

EAGLE 04

I had to try a couple of times and move things around.(Not an expert on Eagle yet)

EAGLE 05

Finally, I finished (or so I thought) routing after about 2 hours trying.

EAGLE 06

I moved things around to make my board more space efficient.

EAGLE 07

Later while trying to program my board I found out there wasa problem, my LED was turning on but my laptop wasn't recognizing the microcontroller so I deviced a way to check my schematics convinced I may have overlooked something.

SOLDER 05 SOLDER 06 SOLDER 07

I found the problem after about an hour checking every route on the board! By mistake I connected my NTC to ground and the ground was connecting to my Attiny's 4th pin.(From datasheet pinout).
I quickly got to designing a new route to get back on track. This time I was quicker and more efficient.

EAGLE 09 EAGLE 08

My new board was more space efficient and had no routing errors.

INPUT

After I finished, my board was being recognized but I had trouble uploading Neil's code with windows 10 so I decided to make another board with an LED I could use to show I was reading the temperature. These are versions 1 and 2 of my second board:

EAGLE 10 EAGLE 11

I forgot to route the SCK pin from the attiny44 to the ISP 2x3 header so I made version 2 with a minor alteration

EAGLE 12 EAGLE 13

Milling

First, I exported the monochrome PNG.

MONOCHROME 01

This came out.
My adaptation of Neil's board.

MONOCHROME 03

I inserted my input board's monochrome into Fab Modules and got my G-Code file.
My adaptation of Neil's board.

FAB MODULES

My board's 2nd version.

FAB MODULES

Next I inserted it into the Modela router and milled it exactly as I milled my boards from week 5, 7 and 9.

MODELA 01

Soldering

Initially I set up my soldering station.

SOLDER 01

And I started soldering with Flux, I've gotten much more proficient using it with practice(Almost no mistakes per board, its been 3 boards without having to re-solder anything).

SOLDER 02

Quickly my board started looking more like a finished product.

SOLDER 03

Almost done...

SOLDER 04

A couple minutes more and I was finished!

SOLDER 08

Final version of the second board.

SOLDER 09

Programming

Just like the other weeks involving programming I started by trying to burn my attiny's bootloader. I connected my board with an AVR MKII programmer.

PROGRAMMING 01

Next I selected the right board, port and programmer.

ARDUINO

Having selected everything I attempted to burn my bootloader.

BURN BOOTLOADER

Miraculously it worked!!! There was just one issue, my board had no legs left to use the SerialMonitor software for arduino and the Attiny45 doesn't have the option of using the serial monitor so I was stuck. I went to the Fab Archive for resources on how to tackle this problem and found out Neil had done a C code to get around this so I got to researching how to use it as I am not an expert in C.

After several days trying to make my computer compile Neil's code I decided to start a new board using an attiny44 and an extra LED. This is how I programmed it.

PROGRAMMING 02

This time I was trying with my FTDI and my fabISP from Electronics production. Next I burnt the bootloader.

ARDUINO 01

And uploaded my code making the LED blink if the temperature was above 20 degrees celsius.

ARDUINO 02

Finally, I modified it so that the LED would stop blinking if the temperature wasn't between 20-23 degrees celsius.
Here is a video of the board working.



Download the original files from the links below:
Termistor Schematic Final Version: Eagle (.sch file)
Termistor Board Final Version: Eagle (.brd file)
Termistor G-Code Final Version: FabModules (.nc file)
Termistor Code Final Version: Arduino (.ino file)



Previous Week Home Next Week