Skip to content

System Integration

link to Fab Academy class links

Individual assignment:

  • Do a system integration of your final project

I have been doing a lot of thinking and working through what needs to be done for my final project, and how I will do it.

The main goal is to have an interactive table top that has the ability to run other magical components in the future. I keep digressing on those additional components, because they seem more feasable.

Since every journey starts with a single step, I decided to start with a simple circut using a hall sensor and led. I hope to use this in both the table top and a magical creature. I will start small and scale up to the table.

This seemed like a good idea, but I started running things by Claude. It has been very helpful in figuring out circuitry, since there are so many types of every electrical part. However, I now know how people feel when they bring a simple idea to me, and I make it way more complex. Granted a more complex design can be more amazing, but it also has a higher chance of failor. I want to spiral up my design over the years. I am new at circuts and programing, and I want to understand what I am doing so that I can fix it. I also want a very reliable project as it will be moved around, beat up, and played with by kids.

I have talked Claude and myself down to the simplest system I can think of. It is a few RGB LEDs in paralell controlled by an attiny412. I had Claude create a transcript of our chat as I normally do, but I had it add descriptive headers to help me find information later. This chat went over a lot of information, and had details about choices I didn't take for simplicity. However, I may want to look into more complex systems in the future.

Here is my prompt for the document, followed by the document link.

create a document "attiny412-led&hall-with-claude.md". fill it with a transcript of this chat, but add descriptive titles to sections of the chat. include references to images I placed in the chat.

attiny412-led&hall-with-claude.md

After doing my best to think of areas my circuit could fail, which mostly were the extra capacitors, I asked Claude to reference our class notes on syestem intergration in order to find other areas I missed. Claude was a great help in this because I am unfamilier with most failure modes. The above document has been updated as I continue to work.

Key points in my design:

  • controlled by ATtiny412
  • Program through UPDI
  • 3 RGB leds controlled by PA1, PA2, PA3
    • 150 Ohm resistors in series with leds
      • 150 instead of 100 to prevent reaching the 20mA per pin limit on the Attiny
  • Hall sensor A1324LLHLT-T SOT-23W
    • chosen because it has 3 pins, and is relativly simple even though it runs on 5V
  • Power supply from usb batery packs since I do not want plugs running from my magic table!
  • USB-C connector for power
    • 2 VBus and 2 Grounds to handle current loads
    • shield protects divice, connect to ground
    • CC1 and CC2 must be connected through 5.1kΩ resistors to ground
      • without a current being drawn through them, the powerblock will not think anything is attched to be powered, and won't work
  • Add a ceramic 100nF capacitor in parallel to the hall sensor, and in close proximity to reduce noise
  • add 2 capacitors in parallel imedietly after the power input to reduce noise
    • 1 ceramic 100nF decoupling capacitor to reduce noise
    • 1 bult capacitor 100µF electrolytic capacitor to prevent damage from current spikes
  • add a tvs diode for transient protection for everything downstream in the circuit
  • use Keyed JST connector on UPDI header to prevent plugging in the connectors backwards
  • secure my pcb, and add strain relief to prevent failiors.

Here is the KiCad schematic I drew.

Dorian's Attiny412 pcb schematic

And the schematic Claude drew.

Claude's Attiny412 pcb schematic

I will compare them before moving on to pcb design.

From what I can see the main difference is that the zener diode, as close to a tvs diode at the fab lab, is before the parallel capacitors. This makes sence, because the diode protects the circuit down stream of it, and the capacitors in parallel are upstream in my schematic. Although the capacitors are also supposed to prevent damage from signal spikes, I can see that having a TVS diode, which only conducts when the voltage is over the threshold of the Reverse Standoff Voltage, would prevent large spikes that are too great for the capacitors to regulate.

I am not comfortable taking Claude's word on substituting the zener diode for a TVS diode in my circuit. I know the risk of surging voltage is small concidering I am planning on using battery packs to run my components, but should I want to switch to a power plug one day I will need the TVS.

Also, I am missing a connection to pin 3 of my second RGB led. I do have 3 RGB leds shown, and Claude's schematic only shows one, but we discussed that I could get put up to 4.

I removed the 10K Ohm resistor I had from the hall sensor to the ATtiny412. That was left over from a previous sensor choice. The A1324 does not need a resistor.

Furthermore, I moved the UPDI header to be in parallel before the diode so that when I program the ATtiny412 the diode and capacitors should protect the circuit. When I am not programming, the connector is an open circuit, and should not effect anything. The difficult part will no be making a pcb design that fits everything.

dorian schematic 2

... lots of tweaking later ...

dorian's attiny412 + leds pcb

I am concerned that trying to prevent all possible failures will create failures from overcomplication. I brought this up during open time. I was pointed to Adrian's week14 from 2020 to look at how he made a board with the ATtiny412.

Adrian's ATtiny412 bridge

I am not having my boards network with each other, they just need to be programmed. So I do not need to have the connection for Tx and Rx cables like he does. He mentions in his documentation that the board did not work as well as expected, which he attributed to noise. He mentions noise from too much data, but I hear, "noise," and I think, "more capacitors are needed." Therefore, I'm hesitant to remove all the capacitors he suggested I take out. I need to keep the 100nF capacitors by each component in parallel, but I am tempted to leave the bulk capacitor as well. Maybe it doesn't have to be with an additional 100nF capacitor?

Hierarchical Sheets

I had split my board up so that the LEDs were on another board. This allows me to easily swap out my LEDs if they break, or use another component. Yesterday, I pulled the pieces off to the side in my schematic and pcb editor, but they were not their own files.

Today, thanks to asking Claude if it were possible, I learned to split my schematic into a hierarchical structure, like a hybrid fusion design. Press "S" or go to "Place" -> "Draw Hierarchical Sheets".

hierarchical sheets

Here is a section of my Claude chat, linked above and here, that explains how to create a hierarchical sheet.

Steps from here:

  1. Click Draw Hierarchical Sheets
  2. Click and drag on an empty area of your schematic to draw a rectangle — this becomes your sub-sheet box
  3. A dialog will pop up asking for a sheet name and filename — name it something like LED_Board and it will create a new .kicad_sch file for it
  4. Click OK
  5. Double click the sheet box to open it — it opens as a separate schematic sheet
  6. Go back to your main sheet, select all the LED components (D1, D2, D3, resistors, JST connector)
  7. Cut them (Cmd+X)
  8. Double click into the hierarchical sheet and paste them there

To connect the two sheets you'll use:

Ignore Claude's advice to use hierarchical pins, and just use global labels.

5/9/2026 ATtiny412 circuit design

I decided to break off my USB-C cable power supply into another board, and just have jumper connectors between each node to power them. This will allow me to use alternate power sources, and I will keep the TVS diode on that pcb to protect all the nodes downstream instead of each one individually.

I can see a potential problem with my power circuit though. If I leave the power pcb plugged into the power cord it will continue to draw power because I have resistors hooked up to create a current flow in order to keep the battery pack turned on even if my circuit doesn't draw much. I must remember to only have it plugged into a USB-C power cord when in use.

I separated the power and UPDI plug ins as well. This allowed me to place the UPDI header closer to the ATtiny412. Furthermore, it is impossible to have 2 power inlets at the same time. This reduces the chance of me accidentally leaving the USB-C power cord plugged in when programming the ATtiny412.

I will keep the bulk 100µF capacitor and the 100nF one that are in parallel. I can always leave them off, and solder them on later. This tutorial show why decoupling capacitors are so important. Decoupling Capacitors - And why they are important

I made my traces as big as possible. I hope I don't have soldering problems. I also tried to make thicker traces for the ground and power.

I had a problem when using the checker. It kept saying my tracks were not connected. I deleted, and remade the tracks a lot, until it occurred to me that it thought I needed to connect to the headers on the other boards!

tracks not connected

I need to figure out how to separate the boards into different files. This may be possible with the hierarchy I learned a bit about last night, but I'm not sure. This is ok for now.

I also used text in the F_Cu layer to help me remember pins without having to reference my diagrams. This will help with trouble shooting, and when swapping out components.

ATtiny412 power and leds

I had some trouble in a few places with this design. First, my edge cut drilled across my pcb board!!

drilled across my board

I could have caught this if I looked closer at the tool path preview. I remade the edge cut drill path for that particular piece, and it didn't have a problem. I figured out that this was caused by a glitch caused by placing tabs in Makera when I noticed it happen again later. I was able to fix the second problem by deleting the tab, and moving it. I tried different tab placement, and sometimes a line would cut the pcb. Moving the tab seems to solve the problem.

Another problem was that some areas did not cut all the way through the copper layer.

not drilled all the way

It could be because the board was not secure enough, and had some give when drilling. You can see in the photo the toolpath lines indented, which supports this hypothesis. Zack said to clamp closer to where I am drilling, and to drill upto .15mm for the traces instead of .05mm. I set the drill path to .1mm, and it was going to take 6 hours! So I am trying .07mm with some adjustments to my traces, and more secure clamping.

Also, after talking with Camille, I decided to make my connections through hole so that I can mount them from below. I had wanted to do this, but wasn't sure I could. The connectors that were ordered for me ended up being through hole anyway, so this works out well.

My next issue, but luckily not a problem, was that I must have saved the drill path files in the wrong order, because my edgecuts were done before my traces. Luckily I had tape and tabs to hold my pieces secure.

tool path order

Unfortunately, they still didn't drill all the way through. I tried to fix this by creating a deeper, new toolpath with only the traces that were not fully drilled.

This was actually set to .03mm cut depth. My thought was that a shallower cut would not scrape away as much copper when using the v-bit. The traces that did cut look good though!

almost cut

Sadly it scraped off all the copper left in those areas instead.

scrapped off the copper :(

Latest design:

attiny412-power-led-tht-20260511

attiny412-power-led-tht-20260511-.07mm

SVG Files:

Fritze-ATtiny412-simple-F_Cu.svg

Fritze-ATtiny412-simple-Edge-Cut.svg

Fritze-attiny-simple-NPTH3.drl

Fritze-attiny-simple-PTH3.drl

I also printed my pcbs on the 3D printer.

still file for 3D printed attiny412, power, and led pcb boards

3d printed pcbs

copper tape on 3d pcb

copper tape pcb vs pcb

Magic Table Top

Securing Back of Top

I need to make the table top appear to be solid, while holding my electronics inside. I could seal all my electronics inside, but that would not allow me to repair or upgrade components in the future.

I think using child proof cabinet locks would work well to hold the back onto the top as secretly as possible.

As I was looking into where to purchase these locks, I noticed they look 3D printed. I searched online models through Bambu Studio, and found it right away. I just finished printing one using Bambu wood filament. I had hoped the wood filament, being brand new, wouldn't have any issues, but there was a bit of stringing. I will have to play with my settings.

magnetic lock 1

There were other things wrong with that print that I think there were design errors. I decided to try another style where all the components print separately. This should help.

magnetic lock 2

I removed the supports,

magnetic lock 2 - supports removed

and this is when I decided that for $19 for 20 locks was well worth it. Amazon link to Magnetic Cabinet Locks Baby Proofing (20 Locks + 2 Keys) – Child Proof Cabinet Locks with Easy Adhesive Installation – Child Safety Locks for Kitchen, Cabinets & Drawers with Optional Screws by Trezuma.