Electronic design

Week 7 - Electronic design

Here you will find my work description during this seventh week

General info

Class notes

Link to my notes during class

Individual Assignement

  • Redraw the echo hello-world board, add (at least) a button and LED (with current-limiting resistor), check the design rules, make it (if you have time this week, test it).

  • optional: simulate its operation. Measure its operation

Design Hello board in Eagle

EDIT FROM WEEK 9: this design is not correct, see Week 9 assignement for explainationsJump to Week 9

During the Eagle master class, Santi show us how to start with Eagle.

Install Eagle (Windows)

First create Eagle project: You wille create 2 files : schematics and board

eagle

Then we have to import fab.lbr the fablab inventory component set that we will use.

eagle

eagle

Step by step we redesign the Hello board in schematics. Add components following the given picture. Add values, then add routes. Those routes are symbolics here, we have to set them manually in the board window.

eagle

eagle

As you can see the trace are not in the good thickness. I might have changed the DRC Design Rules Checks before wirging component. (Click on DRC button at bottom and set clearance according to your milling machine capabilities). See image bellow to check the DRC values I used (16mil everywhere, that is 0,4064 mm, and the end mill is 1/64inch = 0,396875 mm)

image not loaded

Running the DRC will warn if there are issue on the design.

image not loaded

Add some extra components. For my final project I want to use some WS2812B known as Neopixels. There are individually addressable RGB LED. They have an intergrated WS2811 controller that (I am not sure about that) uses a I²C bus to chain several LED using one Data pin.

Add the button

image not loaded

Add WS2812b, component available on adafruit library. I red the datasheet and I need to add an 0.1uF capacitor for each LED according with documentation.

image not loaded

AN ERROR WAS MADE HERE !! I misunderstood the schematics and I wired the capacitor not correctly.

Then I realise I may have to use a ATTiny84 instead of 44 because it has more memory. That memory is mandatory to use neopixel library. I change the IC to ATTiny 84 that has the same fingerprint.

eagle

After reading some documentation I start adding then in the schematics with a button.

eagle

To the finish board i add a simple text. After add the text, go to their properties and change the SIZE parameter to 0.15 or above, and at the FONT parameter i choose “vector”.

Here is the final result (at least for version 1.0)

eagle

After all is finish, lets export the .png file to mill it.

eagle

Milling the board

First we have to generate the outline raster file, I did it with photoshop.

eagle. File is available below.

I used Mods to generate RML file.

eagle

From Eagle I exported the BOM (Bill of Material), to let me pick components during milling process.

eagle

The first milling job has not cut all the copper so I did it again after setting the Z origin 0.10 mm lower. But some corners are not well cut despite I checked the flatness of the board. I decide I will remove the last part with a knife.

eagle

Then mill the outlines

image not loaded

Outline job did not went well neither. Because other students wanted to use the machine I set the speed at 100% but before the end of the process, the board unsticked.

eagle

Neverming the board was cut enought and I was able to break it properly.

Soldering

I solder all the components and start testing traces. Here is the result.

eagle

Everything looks OK, let’s test it with my FabISP.

Programming

The FabISP I did two weeks ago will be sused to burn the bootloader of the ATTiny84.

eagle

But first we have to setup Arduino IDE to do it.

By default there is no ATTiny board proposed by Arduino IDE. So We have to add them using the Board Manager.

Open File -> Preferences and add an official board source list.

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json

w7

Go to Tools -> Board manager, look for ATtiny and install package.

w7

Now we can select ATTiny familly in the board list.

w7

Set controller to ATTiny84.

Set the Clock as 20 Mhz External because we are using a resonator.

w7

Set the programmer as USBtinyISP.

To set the fuses, Click on Tools -> Burn Bootloader

And BOOM Unable to communicate with the controller.

Troubleshooting

w7

Signature is 0. I read a lot of forums, try a lots of different configurations. I used an arduino Uno Board as ISP, Flash the arduino Uno using the FabISP. Nothing ! The FABIsp works well, arduinoISP too.

w7

Using avrdude software in command line is so usefull to try communicate with the controller but I start thinking that the controller is dead.

w7

I tested traces again and again until I found out that the pin #6 used as data has 5V ?!?

It’s time to Franken hack the board.

I decided to unsolder the controller to change it by a ATTiny 44 (the only one I have). And I discovered something anormal.

As you can see in the image bellow one trace is not cut properly due to a distance bug.

w7

I used a scalpel to scratch the bad traces.

w7

w7

I solder the same controller to check if it is dead.

And fortunately it is not !

Using Avrdude to check tell me that we can communicate with the controller.

w7

I checked using Arduino IDE we can now burn the bootloader. Using a sample code that uses the Neopixels relveals some design issue. The led are not wired correctly, I thing I should have added a higher resistor before the LED data bin. I saw a green light but cannot reproduce, maybe the LED are dead.

I need to find new ones.

Antoher point was the frequency of the clock. Neopixel are made to be used at 8MHz or 16MHz the code cannot compile unless I set 8Mhz (internal) as fuse (bootloader)

I need to update the eagle file with the change I made but I don’t have a fully fonctionnal version yet.

The board is not finished but here are the fixed schematics

image not loaded

Files

FIXED version not included, if you want to use it you have to modify the capacitor wiring accoring to Week 9 modificationsGo to Week 9 - You can also download the new version of the eagle files (but not finished)

Click here to download the eagle files

Click here to download the milling files, including traces and outlines PNG, and RML files

Click here to download the arduino file

Click here to download the BOM file




Share this story