Intended Timeline

  1. Final electronics design completed by the end of April.
  2. Electronics production and testing during the first week of May.
  3. Mechanical parts production during the second week of May.
  4. Last two weeks of May for troubleshooting and spiral development.

Electronics

General Electronics Design V1

Initially, I thought about using the AVR128DB64 microcontroller on a motherboard and having all the inputs go directly into it, like you can see below:

Motherboard V0

After speaking with Dani, we discussed that a better approach might be to have daughterboard going into the main motherboard so as to simplify things. So instead of a single pcb with a ridiculous amount of inputs, I decided to have the left hand keys go into one board, the right hand keys go into another board, the breath chamber sensors go into another board, and have all 3 of these boards go into the main motherboard. So instead of using the AVR128DB64 microcontroller, I decided to use the AVR128DB32 microcontroller for all 4 boards. Based on this approach, I began by developing the daughterboard for the left hand keys and the granddaughterboard(s) for the input devices going into it

Daughterboard 01 (Left Hand Keys) V1

After designing my development board in Week 6 and learning from some mistakes there, I came up with the following schematic for the first daughterboard:

Motherboard V0

To get to this point in the schematic, I started, as always, by diving deep into the datasheet which is available here. So firstly, I familiarized myself with the microcontroller's pinout:

Pinout

Then, I started with understanding the connection to the power supply better:

Power Supply
Power Supply

So after understanding how the microcontroller worked in regards to this, I set up the AVDD and VDD connections to power supply, selecting the components in accordance to what the datasheet recommended:

Power Supply
Power Supply

Then, I set up the reset button by selecting the components in accordance to what the datasheet recommended:

Pinout

Then, I set up the UPDI programming connector by selecting the components in accordance to what the datasheet recommended:

Pinout

Then, I wanted to add an LED light to the board to make troubleshooting easier for myself. So I looked at the datasheet for the one I chose:

Pinout

Based on the datasheet, I used this calculator to determine which resistor to use:

Pinout

Then, it was time for me to switch over to the PCB editor. Due to our in-house limitations, we cannot have gaps thinner than 0.4mm, so I had to modify some footprints to accommodate this. I decided to have the tracks have a width of 0.3mm, but the ones closer to the microcontroller had to be 0.2 in order for me to be able to produce the PCB in-house in a few weeks. So all in all, the final PCB design looked like this:

Motherboard V0

After following the workflow for our in-house production, I got to milling:

Motherboard V0

And finally, soldering:

Motherboard V0

Now, you may see that there is one pin socket connector missing. This is because one of its lines was cut off during the milling process. I still decided to go ahead with this board instead of building another one so that I could use this one for initial testing.

Granddaughterboard

Having the daughterboard ready, I needed the input devices I would be measuring with it, so I designed the general granddaughterboard that each one of the keys would have. The schematic and PCB design looked like this:

Motherboard V0
Motherboard V0

After following the workflow for our in-house production, I got to milling:

Motherboard V0

And finally, soldering:

Motherboard V0

Programmer

In order to program the AVR128DB32 microcontrollers on all of my daughterboards and the motherboard, I designed a UPDI programmer based off the Quentorres. I removed the original Quentorres' SWD components and turned the UART connector into a UPDI connector, putting the resistors between the TX and RX lines on the board itself. So the design looked like this:

Motherboard V0
Motherboard V0

But since I didn't want to solder the Xiao RP2040 directly into the board, I put vertical pin sockets so that I could remove it if needed. So the PCB design ended up lookig like this:

Motherboard V0

After following the workflow for our in-house production, I got to milling (where I forgot to take a picture), and then soldering the components in, so my programmer looked like this:

Motherboard V0

I followed the instructions on the Quentorres Documentation page to set the programmer up.

General Electronics Design V2

The overall electronic schematic can be found here.

Motherboard V1

Daughterboard V2

Mechanical

Bill of Materials

Processes

2D Design

3D Design

Additive Fabrication

Subtractive Fabrication

Embedded Microcontroller PCB

Interfacing

Programming

System Integration

Techniques

Applications