Week 6 - Electronics Production

The Electronics Production #

The Electronics Production Process

Designing a PCB: #

For this week’s assignment, I have decided I will try to work with the ESP32 S3, per the recommendation for my final project. I want to create a breakout board that I can use when trying to work with an accelerometer and an e-ink screen. As such my board will include an 8-pin header and a 4-pin header. I will also include and LED and resistor so that I can program the board to blink.

I’ve been struggling a bit to figure out how to match the pins on the ESP32 with the E-ink display. I’ve found the following resources through which it seems like I should be able to discern the answer, but alas I can’t make heads or tails of them:

I’ve also been talking to Claude to try and get a sense of how to create a schematic for my ESP32 breakout board. Here is what Claude suggested:

ESP32 S3 Pinout ESP 32 Datasheet

J3 (SPI E-Ink Header): Pin 1: MOSI (D10) Pin 2: SCK (D8) Pin 3: CS (D3) Pin 4: DC (D2) Pin 5: RST (D1) Pin 6: BUSY (D6) Pin 7: 3V3 Pin 8: GND

Fortuntely this seems to match information from this website, so i feel confident enough to go ahead and create a schematic based on these corroborating sources.

For my ESP32-S3 my Eink Display matches up with the corresponding pins: Busy: D4/SDA/A4/GPIO5 RST: D3/A3/GPIO4 DC: D2/A2/GPIO3 CS: D1/A1/GPIO2 CLK: D8/A8/SCK/GPIO7 DIN: D10/MOSI GND: GND VCC: 3V3

As for the accelerometer, I am connecting the following pins (this was easier to find online): SDA: D4/A4/SDA/GPIO5 SCL: D5/A5/SCL VCC: 3V3 GND: GND

How to use the Roland SRM-20 Milling Machine: #

  • Select an end mill:

    • Options: 1/32" and 1/64"
      • 1/32" is for outlines
      • 1/64" is for traces
    • Check to see if the end mill isn’t chipped
  • Setting up the Roland: (file > home > mods > js)

    • Measure PCB in KiCad, and double check in Milling mode on computer
    • Put in black and white image - png image (you will be left with the white and the black will be the stock)
    • Cut traces first, then cut outline to ensure stability of board
    • Make sure the spoilboard is completely flat and clean
    • Make sure the copper board you are using is also flat (smaller boards are less likely to wrap and bend)
    • Place 3 pieces of tape below copper board vertically and horizontally to avoid movement –> ensure tape is below where you will be milling
    • Place board on the bottom left corner, slightly offset, and use a plastic board to put pressure on the board and ensure cohesion
    • Select mill traces first on the computer mod > select calculate inside “mill raster 2d” Install end mill:
      • Pull out alan key from below the milling machine
      • Push end mill up quite far, almost to tapered part, then start tightening
    • Under “roland srm milling machine” mod > select origin: x, y & z
      • Select z height: 10 mm > lower again if needed and move the x or y to make sure the end mill is in the middle of the stock
    • Loosen end mill again, and release underneath your finger until it touches surface
    • apply downward force on end mill and retighten with alan key
    • Click “open” on websocket device –> might need to click calculate again
    • Click “send file to device”
milling 1 milling 2 milling 3

TBD: #

Wokwi

The Final Product: #

PCB Rendering

Click Here to Download PCB Gerber File

TBD
Notes and Resources

Class Notes: #

  • make sure to recalibrate control software when lowering mill as it will lift up when you tighten it

Recitation Notes: #

How to debug almost anything:

Pattern recognition is key*

Category 1 (will ruin everything)

  1. Milling issues/solder brigdges
  2. Cold joints
  3. Orientations
  4. Connections
  5. Power grids/shorts

Category 2 (soft problems)

  1. Wrong GPIO
  2. Transmit/receive issue
  3. Clock issues

Office Hours Notes: #

Office Hours Office Hours

/* Right sidebar (page table of contents) */ .book-toc { width: 250px; padding: 1rem; background-color: #f0f0f0; position: sticky; top: 1rem; }

/* Force the right sidebar (ToC) to always show / .book-toc { display: block !important; position: sticky; top: 1rem; width: 250px; / adjust width if you like */ }

/* Ensure the toggle input doesn’t hide it */ #toc-control:checked ~ main .book-toc, #toc-control ~ main .book-toc { display: block !important; }