Week 10

Output

1. Hello world test

No much creativity here. I followed Neil's output lecture tutorial and found everything I needed meaning board, components and make file here,here and here.

There was even a sample video of the final result.

Schematic & Board Design

I did the schematic design based on both, the fablab tutorial and this kind soul former fabacademy student. Thank you Weijian.


To be honest I had some electric incongruencies which I did not digged into since I inly needed the traces and I did not really designed this. Still..


I made sure to respect clearances and overlaps and all possible design errors. Note: Drawing a heart with traces is not as easy as it looks.

Here's a fast forward video of board gcodes I tried. Several tests respond to several changes I made: from moving the board to a 0,0 location in eagle to redifinig traces with in the boards. I also tryed slighty chaging the traces path to have a wider clearance etc.

Milling & (almost) Solding

I milled -again- with GAVAmilling machine. You can check the step by step in my fourth week. Excep this time I was able to cut the outline of the board with the same machine and did not have to do it manually.


Oh, la joie of doing artisants work, I love it. More info on how to (or not to) mill on my fourth week.

I try milling my boards two time and could not make it. I still tryed solding but many traces were missing because of the extremelly thin milling.


I wait for a couple of weeks for the milling machine to re-mill properly and a final project good idea -VERY related to output- came up on the run:

2. Jam timmer little's helper

Pseudo Intro

I found this assignment a good excuse to make a jammer timmer cronometer. (Quick unimportant note: I play roller derby. A jam timmer is a specific ref that controlls -among other stuff- time status, every period time and time outs.)

What I basically need as an output device is a screen that shows a bunch of countdown info and can be controlled though buttons. I may also add a led light that blinks when the jam is approaching it end just to make sure the ref don't miss it

Spanish speakers:here'sa great explenation of how to pair an arduino uno with a LCD keypad + buttons.

Here's a quick scheme of what I need to control:


Components and output

I bought a LCD + buttons and made sure first It could be programmed with Arduino. Here's the specific data of my ten dollar toy.


What's good about this shield is that codes can easily be tested with an Arduino ONE before milling anything. For milling an Arduino UNO I downloaded the schematic Eagle file here. Thank you Rodney, thid did save time. Schematic and boads can also be downloaded from Arduino's website.


Before connecting anything I dived into a bunch of tutorials on how to connect both devices. Here's a good one to start with:

Above the LCD shield pins. I had to make the correspondances between an ATMEGA 328 P microcontroller. See below.


I first thought we did not have a surface mounted ATMEGA microncontroller at the local lab, meaning I started developing the whole arduino for a non-surface mounted microcontroller (as shown below).


Luckyly we did have an ATMEGA 328 so I did edited the file but did not change the microcontroller. See below the schematic and board of the arduino. I removed several headers and outputs I did not needed and relocated them to usa the arduinos as a shield for an adafruit OLED screen (more to come in my final project).


Yes it's a double sided board. I tryed quite hard to make the whole thing fit one single top layer but no matter how many jumpers (0 Ohm resistors) I used it was not possible. Below the milling processof one side (top).


And the milling video:

Once two boards were ready I double checked all traces were correctly milled and leading to the right pins in the OLED screen.


Solding was as frustrating as imaginable and the resul wasn't as prettier as I would have like it to be.


I solded every piece as many times as you can imagine. Making sure all traces and 3 shields were connected was essential:

So here's how a two sided board (after countless solding errors) look like:

My friend and mentor Alvaro said this reminded him the 60's sandwich boards where components where too big to have them surgace mounted (meaning the board would be too big in x axis) so what they did was including the components in the middle of the board and make a sandwich board.


Designing the board had 3 main challenges that: 1.Output friendly, 2. 2sided Arduino 3. OLED shield. The 4th challenge I added to this was that I mirrored the arduino since I wanted the top side of the arduino board to be looking down (oposite to the LCD)

Programming

After I did the basic Hello World Test to complete the assignement I started developing my final project idea which will have a display and will need to track multiple values of time simultaneously (See my final project for further info on "Jam Timmer's Little Helper".

I thought this was a cool week to start testing code on my final project (Jam Timmer's Little Helper)so I started doing tests with a basic cronometer (countup). To start with a real arduino and the shield I bought and then with a basic breadboard and the OLED screen.


Once the cronometer code was more developed I moved on to the OLED programming which implied a Layout change. Why? because LCD works with cases and one can set the cursor in a specific case, meanign knowing that every character will take a whole case. With OLED, since they're pixel based displays, characters do not take a "case" but a number of pixels in X and a number of pixels in y. This was kind of a headache but allow different text sizes and colors. Below some graphic tests on the adafruit 1.44" OLED:

Yes, I did dance.

And below a glimpse of my final Project display layout process:


** Since it's a week assignemnet I could not develop the timmer as much as i wanted to. Check my final project for further code development and information**
Hello visitor. You can download all the working files of this week here.

Go backto the INDEXor to thefollowing WEEK?

Creative Commons License
Please respect license terms. More info here