6.Electronic design
Assignments
group project:
- use the test equipment in your lab to observe the operation of a microcontroller circuit board
individual project:
- design a development board to interact and communicate with an embedded microcontroller
- extra credit: try another design workflow
- extra credit: make a case for it
- extra credit: simulate its operation
Research
XIO RP2040
SEEED XIAO rp2040 arduino
ADRIÁN TORRES SEEED XIAO rp2040 library
SEEED XIAO rp2040 KiCad library
SEEED XIAO rp2040 eagle library
eagle tutorial 1
Throughout The Week
Group Work
for the group work I along with David worked on the fading led Oscilloscope test. I helped by wiring it and getting the correct data on waveform. Here is the link
SEEED RP2040
To start this week of I practiced with the SEEED XIAO RP2040
made by ADRIÁN TORRES
with the info linked above, so that I can thing of how I was to design my microcontroller this week. To start things off my teacher wanted us to make the SEEED XIAO rp2040
, so I started by following the tutorial he gave in the fab academy website linked above.
to start things off I went to the part list and got them all laid out for be to find all the pieces.
to start things out I got the board out along with a soldering iron and solder.
next I soldered the SEEED XIAO rp2040 onto the board by using solder paste in the corners and then soldering every pin. I also soldered the male two row vertical headers on.
next I soldered on the 1k ohm resistor and the button by placing solder on the first pad and then placing it and soldering one leg on. Then I soldered the other legs after it could not move.
then i soldered on the female header, the LED, then 0 ohm resistors and the 499 ohm resistor to finish the board.
once I was done I uploaded the simple blink code through port 0 on Arduino code onto the seed to see if I could get the light to blink. here is the result.
lastly because I want to make a circuit that involves a servo I tested my servo code from week-4 to see if I could use it and how I wanted to layout my ciruit board.
Designing
to come up with what I want to make I went into Wowki arduino simulator
and made a circuit and code for what I want to make. I started by just thinking of things and building them and when I was happy I made the code to do it here is an image of my design.
Ki-Cad
For this unit we were supposed to design a board for a microcontroller for a single use instead of the designer board I soldered earlier. I wanted to make a servo test board so that I can easly test if a servo works and align it right before I put it into my final project. To start things off I made a project in Ki-Cad called servo.
next what I did was download a library and footprint from the Library linked above for the SEEED XIAO rp2040
and made a symbol for it importing the correct footprint
to build it into the schematic.
Then what I did was add a male wire 1-mm header so that I can connect the two servo motors to the board
then I added buttons to both sides so that I can control each servo multiple ways for testing.
after getting all the parts onto the schematic I wired them all up to the correct pin. At first I got it wrong, Because the pins on the header in the schematic were different from the ones one the UPD board, but I fixed that with some trial and error.
after getting it all to work I got it all ordered correctly on the UDP board and aligned it to where I want them to lay on the board
Next I realized to add the routs I would need a 0 ohm resistor to jump over one of the routs, so I added that to my design.
Next I added rounds from all the nets or wires to make it so that the electricity will actually be able to get from component to component
I then ran the ERC and DRC check on the board and the only error was that I had not actually made the board yet just the circuit.
so I made a box around the whole thing, so that I can cut it out on the milling machine.
here is an image of my board in 3d view in KiCad
Eagle
The next program I used was Eagle
another product of autodesk
like fusion360. Before I could even get started I watched some of the tutorials that our teachers gave us and then messed around in it for a little. Next I downloaded the SEEED XIAO rp2040 library
linked above into Eagle so that I can use the chip. Once I had all the basics set up I got started with the making of the board.
I started things out by making a new schematic and adding the SEEED XIAO rp2040 chip footprint into it.
Then I added the header and buttons so that I could have all my components already on the schematic.
I then went through wiring all the pieces to their respective pins and grounds. The footprint and symbol in eagle for the header actually line up so that part was easier than in Ki-Cad.
Next after importing it onto the PCB I lined up all the pieces and added all the routes onto the board. I tried to line them up nicely, but that part was really awkward.
then to actually make cut out the board I added some lines around the board that were on the board cut layer so that it would all cut out.
to finish things off I ran the DRC and ERC on the board, and it all worked perfectly. So then I downloaded the Gerber files and will mill it out later.
Eagle VRS KICAD
when using both pieces of software I noticed a few differences like were you have to go to get footprints and symbols and stuff like that they were rather similar. A few differences I noticed is that the footprints in Eagle actually changed what the part looked like in the editor, so I had an easy time figurine were to wire compared to KiCad but the wiring and routing in Eagle just feels really awkward compared to KiCad. Overall I believe I will use KiCad in the future because it just felt easy to use, and I believe I got a more refined product from it compared to Eagle.
Case
After I was designing the circuit I wanted to design the Case for the board so that I can carry it around easier, and it's protected. To do this I could have used my eagle board and easily put it into fusion 360 to make the case, but I liked my KiCad board a lot more, so I just went into fusion and realized I could open up the KiCad PCB file in fusion and once I imported it here is what I got.
Once I was done importing the PCB I quickly made an outline of it for the main case by extruding out the sides and making them a separate body. Then I just extruded the whole bottom to get the basic case done.
After that I realized I wanted a sliding top, so I made guide rails along the sides of the case and then designed a top to fit in them and here is what I was left with.
Milling
One I was done designing I got exited and wanted to go ahead and mill out my board. So I downloaded all my Gerber files for my design and sent them to Bantam tools
software to get it all ready. The first step was to select the file you want downloaded. Then you had to get a piece of copper get its dimensions down into the software. Once you do that you have the probe the material to get its thickness, ill go further into that later. Then lastly you have to select the size bits you want to use to mill the board. then you hit print. Once I got all my setting to correct I hit print and here is how it went.
And here is how it turned out.
halfway through the cut I realized that it did not sound right and saw that it was fully cutting through my copper and not making the routs and traces instead. I realized with the help of Aaron Logan
a Fab Academy 2022 graduate that when I did the z-axis probing I never hit except, so it did not actually find out the thickness of the copper and just milled the whole piece.
After we figure that out I hit except and cut again here was my result this time.
while this cut was a lot better I realized that my trace width was way too thin, so I went back into KiCad and made the traces .5 mm wide and resent the files. After this I cut one last time and here was the result.
summary
Throughout this week I learned how to design boards in both KiCad and Eagle learning the perks and disadvantages of both along with learning how to 3d model based off of my board I design. Along with this I got some more practice soldering and learned how to mill PCB boards using a bantam tool milling machine
. This will help me design my board for my final project that will control all the servos and get the time.