Final Project - Nouveau Lure (jewelry display stand)

Final Presentation Slide and Video







Concept/Ideation

Thumbnail sketch of art nouveau inspired display stand

Motion sensor light up display stand

  • display stand for market events
  • lights up when customers walk by
  • maybe movement? spinning slowly
  • display earrings and or art prints
  • designed/inspired by an art nouveau style
  • At first, I was thinking about making a large furniture piece, but after a bit of brainstorming and checking out some past academy projects and considering, my current skills and desired detail, I went smaller. I am an Illustrator and for some freelance work on the side, I sell my art and products at art markets. Lots of markets tend to be in the evening and vendors usually need to provide their own lighting. I thought it would be nice to create a small display stand for my earrings, prints or other products that nicely highlights my products. The idea would be to have a motion sensor to activate integrated lights when a customer approaches the display. I love intricate details and want my display to be eye-catching, just like my art. I also want the display to be inspired by one of my favorite art movements, which is Art Nouveau.

    Reference Images

    plan1test plan1test


    Timeline





    PCB Design & Milling

    - Components needed for my project are a motion sensor, an LED strip, and a servo motor. I had initially wanted to incorporate a switch as well, possibly for the lights and/or servo. But over time while working on it, I decided to not include one.

    - Ideally for my final project I would like my jewelry display stand to have a light and motion feature that is possibly controlled by two input options, a motion sensor and a master switch. So, I will need to design my PCB board to interact with two inputs and two outputs.

    - First test run of a potential PCB board to use for final. Upon learning more through the duration of this course and having all my components physically in front of me, it became very clear I would need to make modifications to this design. This board works well for testing and the general concept, but I did not take into account running my project off of batteries instead of being plugged, as well as the LEDs running off of and needing more voltage.
    plan1test plan1test


    - I created a new design in KiCad that would include addition 12v battery power source, a buck converter to control what components are receiving the necessary power to function, and additional traces for possible future modifications or additions.
    plan1test plan1test

    plan1test plan1test

  • PCB File


  • For a more detailed process breakdown review:
    PCB Design Documentation
    Electronics Production Documentation


    3D Components

    - I had designed a base in week 2 I thought I’d be using and naturally, as I started to work more on my project and started planning the mechanics of it, I realized, I needed to redesign it completely. I did end up keeping and incorporating the leg design from week 2 as decorative side paneling.
    plan1test plan1test


    - The main pieces I would need to make the spinning component, spin and run smoothly are bearings and gears. I planned to uses gears instead of just placing the whole carousel unit right on the servo for two main reasons. One, weight. I didn’t want to add to much weight or pressure on top of the servo to possibly make it malfunction. Two, I wanted to have the carousel unit make a couple full rotations back and forth. To do so, I needed to make gears with a specific ration of teeth to have the unit travel more than the servo. I used a 4 to 1 ratio, with the larger gear having 64 teeth on the servo and a gear of 16 teeth on the dowel that will be connected to the carousel. I used a gear generator to help with the accuracy of the design, then made modifications in Tinkercad.
    Thumbnail sketch of art nouveau inspired display stand
  • Gears File


  • - I used an open-source file for the bearings.
    Thumbnail sketch of art nouveau inspired display stand
  • Bearings for Carousel File


  • For a more detailed process breakdown review:
    Computer Aided Design Documentation
    3D Scanning and Printing Documentation


    2D Components

    - The base of my project, which would house all the components and the systems integration, needed a redesign and a larger amount for space to work with. I decided to design the whole structure in Illustrator to be laser cut. I wanted to keep the project and pieces thin and light, so I chose to use 1/8th in birch plywood.

    - I needed the carousel to be light weight, to have lots of areas to be able to hang earrings from, to be reflective of my style, and eye catching.

    - For the arch around the carousel, I wanted it to match the art nouveau theme, but needed it to house the LED strip discreetly without hindering the lighting. To do so, I designed it to be a sandwich of wood paneling, similar to the idea of a hardcover book. You have the front and back cover that sticks out a bit more, covering/protecting the shorter pages.
    plan1test plan1test


    - The outside panels are the thinner decorative cutout patterns. There will be two solid layers of ¼ in plywood, in between the two decorative layers, and will have an inner offset of .125in for where the LED strip will sit.
    Thumbnail sketch of art nouveau inspired display stand
  • Illustrator Structure Files


  • For a more detailed process breakdown review:
    Computer Aided Design Documentation
    Computer-Controlled Cutting Documentation


    System Integration


    plan1test plan1test


    - I have created an interlocking housing structure that discreetly covers all the electronics and mechanisms working the piece.
    plan1test plan1test
    plan1test plan1test


    For a more detailed process breakdown review:
    Systems Integration Documentation


    Coding/Interface

    -As far as coding I used code from previous weeks to test each individual component. I did test this first on the rp2040 since I have mainly been using it through out the course and then went to chat gpt to help merge my codes together.
    plan1test plan1test plan1test


    - I also used chat gpt to help code the LED strip. I learned through the code, what I thought were three signal wires was actually only one signal wire and two power and ground wires. I still do not fully understand why the strip has two sets of power and ground, but everything works with only one set connected to the board.
    Thumbnail sketch of art nouveau inspired display stand

    - Once I had the base code to work with, I realized I could play more with the LEDs and how they function. My initial intention was to just have white light on. When chat gave me the code with rainbow lighting, I loved the idea of having colorful lights while the carousel is moving, to draw even more attention from afar, and then when the motion sensor is triggered the lights would turn white to have a better look at the earrings on display close up.

    - Once everything was up and running, it was time to include my web interface counter code to the mix and have it all come together on the esp32s3. Whelp, it didn’t work on the esp32s3. If everything was good for the rp2040 what was the problem with the esp32s3. The code was verified and looked good.
    #include <WiFi.h>
    #include <WebServer.h>
    #include <FastLED.h>
    #include <ESP32Servo.h>
    
    // ----- WiFi Setup -----
    const char* ssid = "fLAN";
    const char* password = "3057720171";
    WebServer server(80);
    
    // ----- LED Setup -----
    #define LED_PIN     5
    #define NUM_LEDS    30
    #define COLOR_ORDER GRB
    #define LED_TYPE    WS2811
    #define BRIGHTNESS  100
    CRGB leds[NUM_LEDS];
    
    // ----- PIR Setup -----
    #define PIR_PIN     4
    bool motionDetected = false;
    bool lastPirState = LOW;
    unsigned long lastMotionTime = 0;
    unsigned long lastPirCheck = 0;
    const unsigned long motionTimeout = 7000;
    const unsigned long pirPollInterval = 50;
    int motionCount = 0;
    
    // ----- LED Animation -----
    uint8_t hue = 0;
    unsigned long lastColorUpdate = 0;
    const unsigned long colorUpdateInterval = 40;
    
    // ----- Servo Setup -----
    #define SERVO_PIN   3
    Servo myServo;
    int servoPos = 0;
    bool sweepingForward = false;
    unsigned long lastServoMove = 0;
    const unsigned long servoInterval = 45;
    
    // ----- Web Handler -----
    void handleRoot() {
      String html = "<!DOCTYPE html><html><head>";
      html += "<meta http-equiv='refresh' content='1'>";
      html += "<style>";
      html += "body { background-color: #b2f0e3; font-family: 'Be You', cursive, sans-serif; text-align: center; padding-top: 50px; }";
      html += "h1 { font-family: 'Christmas Wish Calligraphy', cursive; font-weight: bold; font-size: 48px; }";
      html += "p { font-size: 24px; }";
      html += "</style>";
      html += "</head><body>";
      html += "<h1>Creative Cutout Market Event</h1><p>Motion Events Detected: ";
      html += String(motionCount);
      html += "</p></body></html>";
      server.send(200, "text/html", html);
    }
    
    void setup() {
      Serial.begin(115200);
    
      // LED setup
      FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS)
             .setCorrection(TypicalLEDStrip);
      FastLED.setBrightness(BRIGHTNESS);
    
      // PIR
      pinMode(PIR_PIN, INPUT);
    
      // Servo
      myServo.setPeriodHertz(50);
      myServo.attach(SERVO_PIN, 600, 2400);
      myServo.write(servoPos);
    
      // WiFi
      WiFi.begin(ssid, password);
      Serial.print("Connecting to WiFi");
      while (WiFi.status() != WL_CONNECTED) {
        delay(100);
        Serial.print(".");
      }
      Serial.println("\nWiFi connected. IP address: ");
      Serial.println(WiFi.localIP());
    
      // Web server
      server.on("/", handleRoot);
      server.begin();
      Serial.println("Web server started.");
    }
    
    void loop() {
      server.handleClient();
      unsigned long currentMillis = millis();
    
      // ----- PIR Poll -----
      if (currentMillis - lastPirCheck >= pirPollInterval) {
        lastPirCheck = currentMillis;
        bool currentPirState = digitalRead(PIR_PIN);
        if (currentPirState == HIGH && lastPirState == LOW) {
          motionDetected = true;
          lastMotionTime = currentMillis;
          motionCount++;
          Serial.println("Motion detected!");
        } else if (currentMillis - lastMotionTime > motionTimeout) {
          motionDetected = false;
        }
        lastPirState = currentPirState;
      }
    
      // ----- LED Behavior -----
      if (motionDetected) {
        fill_solid(leds, NUM_LEDS, CRGB(234, 221, 202));
      } else {
        if (currentMillis - lastColorUpdate >= colorUpdateInterval) {
          lastColorUpdate = currentMillis;
          for (int i = 0; i < NUM_LEDS; i++) {
            leds[i] = CHSV(hue + (i * 3), 255, 255);
          }
          hue++;
        }
      }
      FastLED.show();
    
      // ----- Servo Behavior -----
      if (!motionDetected && currentMillis - lastServoMove >= servoInterval) {
        lastServoMove = currentMillis;
    
        myServo.write(servoPos);
        if (sweepingForward) {
          servoPos++;
          if (servoPos >= 180) {
            servoPos = 180;
            sweepingForward = false;
          }
        } else {
          servoPos--;
          if (servoPos <= 0) {
            servoPos = 0;
            sweepingForward = true;
          }
        }
      }
    }
    


    - After some research online, I found that the voltage I had going to the control from the buck converter, while sufficient for a rp2040 at 4.25v, is not sufficient for the esp32s3, which apparently needs between 5v to 5.02v. I soldered the converter to be 5v but even with tuning it all the way up, it wouldn’t go up to 5v. So I soldered a new converter to go up to 9v and lowered the tunning to get 5.01v.
    plan1test plan1test


    - Once I made this change, I got my piece to come alive.


    For a more detailed process breakdown review:
    Inputs Documentation
    Outputs Documentation
    Networking and Communications Documentation
    Interface and Application Programming Documentation


    Final Project Breakdown

    What will it do?

    - This display stand will hold jewelry made by yours truly. It will have a movement and light up component that interacts and responds to viewing interaction with a motion sensor. The stand will have a spinning tower and LED lights to draw in viewers. Once viewers are close enough to trigger the motion sensor, the stand will stop moving so they can get a better look at the jewelry on display. It will also sit and look pretty.

    Who's done what beforehand?

    - There are tons of display stands in existence and many that rotate. Typically, jewelry stands that rotate do not automatically do so because they are intended for viewers to have control and look at their own pace. Display stands that do rotate automatically usually are used with more obviously 3 dimensional products or meant for one single object. I’m taking these concepts and mixing them up a bit to use the movement less of a feature to view the products and more of a spectacle to draw in more engagement.

    What sources will you use?

    - I will mainly use the source of shared human knowledge and experience. But along side the help and guidance of my mentors, friends, and colleagues, I will also be looking to the world wide web and chat gpt. There are a few open-source programs I will use like KiCad, Tinkercad, Sculptgl. Some shared designs from Printables and a free gear generator.

    What will you design?

    - I will design the PCB board and the full display structure including the base, the rotating tower, and the decorative structure.

    What materials and components will be used?

    - The main structure will be made of wood. Components such as the gears and the bearings will be made of pla filament. I will be using a servo motor, a motion sensor, an LED strip, a battery pack, a buck converter, and an ESP32s3.

    Where will they come from?

    - Most of it would have/ or will be ordered from online. The filament and birch ply is something we keep in stock at the shop. Sometimes we can get wood from local suppliers but we have also order from online depending on availability.

    How much will they cost?

    - My sanity…..just kidding! For me to make this one, a lot of the materials were scraps or recycled pieces keeping the cost very cheap. But if everything was purchased new, the breakdown would look something like this bill of materials chrat listed below. After dividing and estimating usage of some materials(while not accounting for machine and tool costs/usage) the total would come out to a rough estimate of $53.

    What parts and systems will be made?

    - The PCB board will be made/milled with a Bantam Tools precision CNC mill. The gears and bearings will be made with Bambulabs 3D printer. The structure will be laser cut on a Full Spectrum machine. May include cast leaves as well.

    What processes will be used?

    - The PCB board will be designed in KiCad, then milled with a CNC and soldered using solder paste. The controllers will be coded and programmed using Arduino IDE. The 3D printed components will be designed using Illustrator and Trinkercad, then 3D printed with PLA. The structure will be hand drawn and designed in Illustrator, then laser cut. Most of the structure will be press fit but some components will have an adhesive. The wood will also get a stain coat. If I include the leaves, which were designed in Sculptgl, the mold will be a two part mold designed in Tinkercad and 3D printed to form the silicone mold. Then the leaf will be casted using liquid plastic.

    What questions need to be answered?

    - Will the Display be flashy enough to catch the attention of individuals or a crowd at an event with additional stimulation/distractions? Will the unit be equally intriguing from up close and at a distance?

    How will it be evaluated?

    - By the test of time and the attention spans of the general public. It will be evaluated by its aesthetic and attractiveness. It’s ability to look intricate and detailed while simultaneously being simple and elegant. Having it embrace nostalgia, bringing back to the art nouveau movement while having a modern features through design and components. It should invoke multigenerational processes and aesthetics.

    What tasks have been completed?

    -design and laser cut majority structure
    -design and milled pcb board
    -design and printed gears and bearings
    -tested individual components

    What tasks remain?

    -Have code and components working all together
    -Design arch and front plate
    -Stain
    -Maybe make more leaves to incorporate

    What questions need to be resolved?

    -Can the servo motor and the internal system/structure smoothly move and control the tower?

    What have you learned?

    -An ENORMOUS amount of new skills! How the whole electronics production process works, how to read and understand the (basic) jargon, the design and manufacturing process. How to incorporate parameters. How to make different types of molds and different casting materials. How to code both for components and for html. The expansion of the digital world has grown exponentially for me even though I know I have only toughed the surface.

    Bill of Materials

    Description Qty Link Price
    Pin Headers 2 https://www.digikey.com/en/products/detail/oupiin-america-inc/2011-2X04G00SC028B/13252006?gad_source=1&gad_campaignid=17336967819&gbraid=0AAAAADrbLlgwVTCuK_m9twc0otR4sgEuT&gclid=Cj0KCQjwuvrBBhDcARIsAKRrkjcOTOzWss2utKb-GDtQghhFTnqgWfPyBxfyr2QbjSiuVCjO3rTqo_AaAqYeEALw_wcB&gclsrc=aw.ds $0.54
    0 Ohms Resisters 50 https://www.digikey.com/en/products/detail/nic-components-corp/NRC04F1003TRF/19186097?gad_source=1&gad_campaignid=20947095596&gbraid=0AAAAADrbLlgPkjx1XK6IUiwTPhP_MTHCW&gclid=Cj0KCQjwuvrBBhDcARIsAKRrkjdDHO0Jt6Q-7XRFhveM7R1PLUFxxXWJO6vwW-XMYiTNaL5rFF5-gkoaAjJ8EALw_wcB&gclsrc=aw.ds $0.63
    Screw terminals 4 https://www.digikey.com/en/products/detail/pololu-corporation/2440/19200294?gQT=1 $1.89
    Wires 120 https://www.amazon.com/Elegoo-EL-CP-004-Multicolored-Breadboard-arduino/dp/B01EV70C78/ref=sr_1_4?crid=X600GINPPDKW&dib=eyJ2IjoiMSJ9.02_pGPGJuD2vGMjk_uhq8lA29_9MvglIh5lhUOFRowgqPojUU__1DuDDtnZQNuOO04zTgR2zMJ8efkBoe_Ej58qEuQB5DrXlQzTAg9Mxna9MvYCFrOjkyLx5LhNDDzPXlCVQ_n9CWrIxug_ketusIoda6EDw4zmq29SRP9OJFO_Na8CHE8eSoOdx0m0pAIS91D_uDhHBmBXP7zMe6K48STMAvrvMGIP_dgnghqO4rWR38Vye37QaAG_aTd_5rooHmoNwKg-RwObI1macuxw2c2C0rrR7kcpQ2M2IaxCkafo.cF9RJ8wgnr2Zy4cme2zZofIgJlPgU7cxovtmCSO8Yrg&dib_tag=se&keywords=jumper%2Bwires%2Bmale%2Bto%2Bmale&qid=1719599830&s=industrial&sprefix=male%2Bto%2Bma%2Cindustrial%2C97&sr=1-4&th=1 $6.98
    Switch 5 https://www.amazon.com/5Pcs-Rocker-Switch-Position-QTEATAK/dp/B07Y1GDRQG/ref=pd_rhf_se_s_pd_sbs_rvi_d_sccl_2_4/143-4338311-8548611?pd_rd_w=f30FO&content-id=amzn1.sym.46e2be74-be72-4d3f-86e1-1de279690c4e&pf_rd_p=46e2be74-be72-4d3f-86e1-1de279690c4e&pf_rd_r=79393S7W5E90XZAHP3QK&pd_rd_wg=9mwIf&pd_rd_r=451dd428-2455-42ef-b49e-18a1d9803047&pd_rd_i=B07Y1GDRQG&th=1 $6.99
    Battery Pack 2 https://www.amazon.com/CO-RODE-Battery-Holder-Wired-Switch/dp/B00VE7HBMS/ref=sr_1_7?crid=2C456GR8LEUV5&dib=eyJ2IjoiMSJ9.0nS-e0TnfAzKQ-5yvX4xOHJOuB71mlKv-E2AGPb4pB6zY_pOpV-3usV0ouLIofZenduRzq_vOxwZmSzAgUuX3tqjDSgVFCvX4SKHgOP0JC3V1238wqxd2R42e1YTEvIohiEwRfu80A7-TsUYDFsUn_RmXfnrJIJbB3afBeD8bjS5eCRvs0AQ5tMZqqYs7bu1YziXxRKtz9-LAnJmrbi5qDPWY2vVyuZ597nUO26rUuqioP0W-L-58S7UDFoF6_SCNsw-oBG3_trHam9s1Gf0zU4db5M8JFcJVbA-cMVHXqM.5wsSyRHJiVL5GomRmu330CpjiYZeP5FxssrUaUBHsuU&dib_tag=se&keywords=12v+battery+pack&qid=1749497252&s=electronics&sprefix=12v+bat%2Celectronics%2C108&sr=1-7 $8.00
    Motion Sensor 4 https://www.amazon.com/HC-SR501-Pyroelectric-Raspberry-Microcontrollers-Projects-Blue/dp/B09MM3HDBK/ref=sr_1_33?crid=BKA5TUHZP289&dib=eyJ2IjoiMSJ9.CyLGSQKEALZHuaknZiVRdohUolw650X6cMp_zHPY9KGncyW20wCBPVP0JNB8waoK04WD41dOIRvTfNqSPqTfNpv12EWn3AdfylkQjZ8eFSbtoYvQi1xOrI8E7fOpIuaym61mwJG_-qXFlpkkcfja8XOYZjUCRwJ8NYQrPs3-5JYDpM7DTqYQyadB_fdOBKYR.cCgnWa3b6D5NlUaWcuHRxb8LilGNhd24vZukGVAWbXE&dib_tag=se&keywords=pir%2Bmotion%2Bsensor&qid=1749495959&sprefix=pir%2Bmotion%2Bsensor%2Caps%2C108&sr=8-33&xpid=KeOiP_c-KPr44&th=1 $5.99
    Servo Motor 2 https://www.amazon.com/DIYmalls-Feetech-Continuous-Rotation-Microbit/dp/B092VN3MTX/ref=sr_1_7?dib=eyJ2IjoiMSJ9.UoX3RmmqZMv7LU5rDoVrsnK11TNletc0zJLbHQOvRnjN5hGTT_GpyVa8bsLQMsrQR2EN-wBMnxMCAoHxoov4CdH0xnCyaF3rEAQ7pSFyTcu2q8mqm5oenAy8vODFFwsFzAk7vV5RUhARSwj-DBlwJikD4TKqMTpn4QmheIGbR1bMduCyj6L87ofPiRggg51H7tTh8RrBhWtOC-g9KOxjUGgWV49mhpEmceMxlgAf6ZJuBeZWYXMos_6W2tam-WW4ud2TdecY72z9QE9bXNqiKQFUbK4ze2KypSOLngzbFTMkB9Lz0q_-DOFHWA-gytNb_vo-sF5l0g9X2IJtyiZtxRUWmSEg81iRchQm2bAyhwgPSRlEFz8BQpxTAb50Nke-DyY7WjQHKKI4izIZH2j87BS4-8DqvooI8TYtclDZIaNUMLl46EXZmiYahmC1-jE4.mZk3UD4IHsVdbPo0Isf-vmp2tlOsKzz7JLgqgdPpqTE&dib_tag=se&keywords=360+servo+motor+component&qid=1741643121&sr=8-7 $13.98
    LED Strip 1 https://www.amazon.com/ALITOVE-Addressable-Flexible-Backlight-Controller/dp/B0CKR1SC7R/ref=sr_1_10?crid=2GBXV4ZT42FJQ&dib=eyJ2IjoiMSJ9.6n3haSrLl2vrH4CmVjOiLMcFZMhtF_sE5xkJ1ODMQE6AfRbxgFyuv1M5ez3eCH0scgz0RGnOP4-IbpcJcNDw0VND8_CmhNjM9mGx-AoKwmy8vx-3ayAya9bOpKq1QZ-rTA7-tlRHQCUODoKZhtOX6-y3mNuL2PUXk790Jte24lrkgTJUxtVPoF4QA7MzuhOJSpfbpz2Q5v2pVRtSs-4ssaLsLWDKtHrzD5oUSQmJuvAfMt6NoxpmYE5oXYh1QnZd86FZX27D6M2vPvrKh0eDhW0R1xsOuZOvPd-nv7XBO8shp92A4_e8_Ml2_vJcrSdeIojYcsSlGPsdmsk9ALXzgZnWU5t5iXSdPY-lbT6aQzCkZooEc7ON4ttUj9001mwEsI_bqF-R-CqOkPTNBEdU6DdjBBp0iVa-0FzRgUsFhE4opDyvE6GZPEAAA4hPrBjo.TLLlrbvaveT1VIyARPv8EY9H4DmlJqVErtwCe3CptIo&dib_tag=se&keywords=flexible+led+strip+for+microcontroller&qid=1741648840&sprefix=flexible+led+strip+for+microcontroller%2Caps%2C114&sr=8-10 $5.99
    Buck Converter 5 https://www.amazon.com/Converter-DROK-Transformer-Adjustable-Stabilizer/dp/B096RC71DC/ref=sr_1_1_sspa?crid=6VA7X3R36BTE&dib=eyJ2IjoiMSJ9.6B_V_aBStfbVwjIhTFPrL5RYd0jqrdDBeR_O5dLbiGrD06gcuGCJAx3DO31TsV3xFOUgaIsWHYjMo1TIj6L4cL32LgiN-Rj56-XgWhv6tP7uP7kJqCuX8GLrH54wYT6nUlF1Z9kTD6BGvKMYWMuSDZsXUKwWMF9uhiETrKAVBO4j0ZxgjsgC4wo6E9TAJjlyfoK4bQx2-9UeTiqnTC8XdKWc044wDok7k9SeE3IageA.S4HITQdB9HBLZ_KbTLHzPw3_N7SCV_O4HHCa7YpaFG0&dib_tag=se&keywords=buck%2Bconverter&qid=1749497105&sprefix=buck%2Bcon%2Caps%2C135&sr=8-1-spons&sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&th=1 $9.49
    ESP32s3 2 https://www.amazon.com/Mini-Development-Board-ESP32S3-Arduino/dp/B0D56YYB5S/ref=sr_1_4?crid=2HDT4B6JR9C11&dib=eyJ2IjoiMSJ9.Df0RTCZpKwp6iQCKvEtkGT2xoZIBXoEgFensuXoBhIFmu9StoF7p6P7ESfsLTKEX7ekCLRCWBd6KwIjEjPjahRFVn3krgX5u3SxDiZ0pcm87OU6qLFKsGMap3-cfNKs74blaXVL2wUcmk9cEli7JP5yF_N_tOBpRFfE7DB3_CWJgHX7mFuavvF5DdtMjhzjKlSmuNADleJKy4vtgGzI0XVq8_CpVVxPILCdMU-5g539jrskiTsxgFmBFZbDS9zU1sJ6Dw82uXIXdV5WZp2aAwkAIkFvGOZYXQW-sUWwmFVk.u9CEnZ_XQH4SIR3JfFOewj_AHNg49_D0z288Q8kiZM4&dib_tag=se&keywords=xiao%2Bseeed%2Besp32-s3&qid=1749497177&s=electronics&sprefix=xiao%2Bseeed%2Besp32-s3%2Celectronics%2C76&sr=1-4&th=1 $31.99
    PLA Filament 1 https://us.store.bambulab.com/collections/sale $19.99
    1/8 in Birch Ply 36 12"x12" https://www.amazon.com/Basswood-Unfinished-Engraving-Burining-Architectural/dp/B0CMTG1979/ref=sr_1_32?crid=WDEG73A5XS9A&dib=eyJ2IjoiMSJ9.TjrWxhIfVfjKskCdcmGiJeVnv8uzlxGY5O6GdHxwkwnbFu58XVEHsUmLWzSRVb4CjIERVTa9IWOQFvwXlV4I7tWVt5ot_9ocEoyZJkkaJ8oonpXBAe4aIKPHj19ukEXRvZsCc3QMVrzEB6l8Srjk_lK1Jwu0ZtIwv0hFbcl6CrFkBFi6GEMe5PWxS8nmV4FeujlpIZsWZn40rPeNUZmlI80CDeWgJtbiG5LKNtl_O17NsWKU0XzKNxjgnAMp9U4Hkbxmyom7ZoYqaKwuj2qiMqLuQ5yDzWdoV6WGQAPSkns.q5dJuzDQQUKkhbWhYgGZsECkWe2EQwg_NjE-_Vwh-dk&dib_tag=se&keywords=1%2F8%2Bbirch%2Bplywood%2Bsheets%2B12x12&qid=1749214250&sprefix=1%2F8%2Bbirch%2Bplywood%2Bsheets%2B12x12%2Caps%2C110&sr=8-32&th=1 $39.99
    ¼ in Ply 4'x8' https://www.homedepot.com/p/Plytanium-1-4-in-x-4-ft-x-8-ft-BC-Sanded-Pine-Plywood-235552/100063669 $30.32
    Copper Plates 10 https://www.amazon.com/Chanzon-Laminate-Universal-Circuit-Prototype/dp/B07LF6VT32/ref=pd_ci_mcx_di_int_sccai_cn_d_sccl_2_3/143-4338311-8548611?pd_rd_w=UKmd9&content-id=amzn1.sym.751acc83-5c05-42d0-a15e-303622651e1e&pf_rd_p=751acc83-5c05-42d0-a15e-303622651e1e&pf_rd_r=HH5195230GHTCHG2F028&pd_rd_wg=OrQjv&pd_rd_r=27e1b3b8-f0e3-42c2-bb3e-f89773cf721d&pd_rd_i=B07LF6VT32&psc=1 $17.39
    Dowel 1 https://www.homedepot.com/s/dowel?NCNI-5 $1.24
    Wood Glue 1 https://www.homedepot.com/p/Varathane-8-oz-Special-Walnut-Classic-Wood-Interior-Stain-339732/305502003 $3.68
    Stain 1 https://www.homedepot.com/p/Varathane-8-oz-Special-Walnut-Classic-Wood-Interior-Stain-339732/305502003 $7.98