Electronics Design
Assignments Goals
- Redraw the echo hello-world board and add at least a button and LED with current-limiting resistor or design your own
Designing my board
At my workplace I often design electronic circuits and PCB, so I'm quite proficient in Eagle CAD, and I'm used to run commands directly from the command line. I would really like to learn Altium as well, but since it's a very expensive software I couldn't afford it. Actually there's the free alternative version of Altium, CircuitMaker, but in my opinion it has a major drawback: you need to be online for it to work!
So I used Eagle to design my version of Neil's Echo Hello World, with an additional button and a led. I would like to modify the original firmware to be able to turn on and off the led using Morse code, according to the received character.
The first step was to create a new project, and add a new schematic file to it. Then to add components to the schematic sheet, I used the command add, and chose the right component from the library.
One of the best things of Eagle is that there are a lot of user created libraries for any kind of common and strange components. For this board, I used SparkFun libraries, Adafruit libraries and Fab libraries.
After placing all the components I needed, I created the logic connections between them, using the command net. To change name of a net, you can use the command name, and if you want to place a small bullet with the name of the net inside of it, you can use the label command.
Once the schematic and the Electrical Rules Check are done, I started to design the Board Layout. Eagle starts the board layout, positioning every component outside the outline and highlighting the logical connection between pads with greenish lines.
After a bit of grouping (command group), moving (command move), rotating (you can rotate components while moving them, by clicking the right mouse button) and trying (with commands route and ripup), I came up with a board layout that pleased me. As a final touch, I added a ground plane, and modified the outline dimension to be circular.
I finally did a Design Rule Check, and to make the layout more readable I rearranged the names and the values of components in a more tidy manner.
You can use the command smash to separate values and names from the component, and treat them separately.
The result was really compact and functional.
Work files links
GF_HelloMorse.zip
3D Rendering with EagleUp! plugin
Since the design of the board was quite simple to me, because of my acquired knowledge at workplace, I decided to exploit this assignment to learn something that could be useful during the design of enclosures or to calculate the exact three dimensional size of the board.
As I stated before, Eagle CAD is powered by a bunch of cool plugins and scripts. One of these, that I found extremely useful, is called EagleUp!. It's a plugin that creates a 3D version of the board, ready to be imported in SketchUp. So I followed this tutorial and set everything up.
EagleUp it's a nice plugin, but it's not bug free... One of the most annoying I found, is that it cannot cope with mm as base unit. So, prior to import the design in Sketchup, you have to select a template in meters!
A lot of 3D models for the most used components are already included with the plugin. For the components I needed that don't have a model, I created them in SketchUp quite easily. You just have to position the model in the exact same origin as the package footprint, or they won't align with the underlying pcb layout.
Work files links
EagleUp_output.zip
GF_HelloMorse_3D.zip
models.zip
Firmware programming
Since I added a LED and a button to the original design by Neil, I wanted to change the firmware as well to make use of such new components. So I started from Neil's firmware hello.ftdi.44.echo.interrupt.c, and modified it to generate Morse Code according to the last received character from FTDI port. Moreover I added a simple routine, to generate the "SOS" sequence when the button is pressed.
My version of the firmware is not compatible with the original pcb layout, because I swapped TX and RX on the ATTiny44. That was done to make the routing to the FTDI connector more straightforward. If you want to use it you need to change accordingly the pin definition in the C file.
Work files links
GF_HelloMorse_FW.zip
Assignments Outcomes
- Select and use software for circuit board design
- Demonstrate workflows used in circuit board design
Have you:
shown your process using words/images/screenshotsexplained problems and how you fixed them
done fabbercise today
included original design files (Eagle, KiCad, Inkscape - whatever)

