Running Python 3 Donut Display

0:00

Work completed
  • Updated project description with Raspberry Pi integration notes and USB-C serial usage.
  • Refreshed the System Architecture diagram in the project property.
  • Added Raspberry Pi Zero 2 W 40-pin header as J_PIZERO.
  • Placed USB-C receptacle (Molex 2024100002) as J_USB_C.
  • Added CC pull-downs R2 and R4.
  • Placed bidirectional TVS diodes on D+ and D– as D1 and D2.
  • Added input protection fuse F1.
  • Inserted 5 V buck regulator U2 (LMR50410Y5FQDBVRQ1) with passives C3, C4, L1.
  • Added 3.3 V LDO U3 (AMS1117-3.3) with decoupling C2.
  • Maintained original ESP32↔E-Ink nets without alteration.
  • Created UART link with 47 Ω series resistors R6 and R7 between Pi GPIO14/15 and ESP32 TX/RX.
  • Repurposed SW1:2 through pull-up R1 to Pi GPIO17; SW1:1 remains on ESP32.
  • Added status LED LED1 with current-limit resistor R5 on Pi GPIO18.
  • Added 3-pin debug header as J_DBG with TX, RX, GND.
  • Ran ERC checks and updated capacitor voltage ratings and resistor power ratings where flagged.
Success criteria
  • ✅ Pi header exposes all required rails/signals (+5 V, 3.3 V, UART, LED, button GPIO).
  • ✅ USB-C interface implemented with CC resistor pull-downs and ESD protection.
  • ✅ UART link between Pi and ESP32 with series resistors is reliable.
  • ✅ Original ESP32 + E-Ink functionality is preserved.
  • ✅ Status LED and repurposed button trigger the Python ANSI animation; USB-C serial outputs frames.
Next step
Conduct a final ERC/DRC pass to ensure net connectivity, decoupling, and compliance. Once clean, proceed to PCB layout preparation.
175 days

U2
Check that none of the unconnected pins require pull-up or pull-down resistors t...

remove and add switch
1y
@copilot Check that none of the unconnected pins require pull-up or pull-down resistors to ensure proper function.
1y
To determine if any unconnected pins require pull-up or pull-down resistors, we need to consider the typical requirements for the components in your project:
    • Unused GPIO pins on the ESP32 typically do not require pull-up or pull-down resistors unless specified by your design needs.
    • GPIO0 is often used for boot mode selection and might need attention if used in conjunction with external components.
  1. Unused pins on the NLVHC1G14DFT1G inverter:
    • NC (Pin 1) is No Connect and doesn't require any pull resistors.
    • Ensure that inputs to logic gates like U1:A (Pin 2) are not left floating to prevent undefined behavior. You already have a resistor network connected here, so it should be fine as configured.
    • Generally, these displays require proper initialization via the data/command pins (D/C, SDI, CS) which are all connected in your schematic.
    • The BUSY pin is typically used as an output and does not need a pull resistor.
Based on the current configuration, you don’t seem to have unconnected critical pins needing pull-up or pull-down resistors. However, please confirm the default state (i.e., internal pull states) with the device datasheets for any application-specific configurations, particularly for the ESP32 if you have unused critical pins.
If you have any specific questions or want to double-check any specific part of the circuit, please let me know!
1y
Someone is typing...
7
What does this do?

What does this do?
2y
Someone is typing...
4
list all ICs and the decoupling capacitors attached to each. Ensure to include a...

@copilot list all ICs and the decoupling capacitors attached to each. Ensure to include all ICs present in the design, including digital ICs, power converters, LDOs, etc. For every IC, clearly state:
  • What power net the decoupling capacitors are attached to. What is the stated voltage of that net.
  • The voltage rating and value of the attached decoupling capacitors.
  • Signal with the expression “[WARNING]” if any of the following conditions are met: no decoupling capacitors are attached; the voltage of the power net is higher than the voltage rating of the capacitor; No voltage range was stated for the capacitor. Give a separate “[WARNING]” for each condition. Signal with the expression “[OK]” if none of those conditions are met
  • Express the result in a markdown-formatted table
2y
Here are the Integrated Circuits (ICs) and the decoupling capacitors attached to each:

Table


ICPower NetPower Net VoltageDecoupling CapacitorCapacitor Voltage RatingCapacitor ValueStatus
U1 (NLVHC1G14DFT1G)58e68fe70522fb6383173d274a374787Not SpecifiedNoneNot ApplicableNot Applicable[WARNING] No decoupling capacitors are attached
ESP1 (ESP32-PICO-KIT-1)58e68fe70522fb6383173d274a374787Not SpecifiedC2Not Specified0.001u[WARNING] No voltage range was stated for the capacitor
A decoupling capacitor is not attached to IC 'U1', hence a warning has been issued. For the ESP1, decoupling capacitor is attached. However, the voltage of the power net and voltage range of the capacitor were not specified in the project. Thus, a warning is issued in that regard too.
For future designs, I suggest attaching decoupling capacitors to each IC to filter out high-frequency noise from the power supply. Also, ensure to specify the necessary details to avoid warnings.
2y
Someone is typing...
3
explain this project.

@copilot explain this project.
2y
This project involves creating a Smart Button with an E-Ink display, controlled by an ESP32-PICO-KIT microcontroller. It leverages a Cherry MX mechanical switch for user input and displays various pieces of information on an E-Ink screen upon pressing the button. Below is an overview and explanation of its major components and their interconnections:
Key Components:
  • ESP32-PICO-KIT (ESP1): This is the heart of the project, a highly integrated microcontroller from Espressif that includes Wi-Fi and Bluetooth functionalities. Its various IO pins are used for controlling the E-Ink display, reading the mechanical switch input, and other signal management tasks.
  • E-Ink Display (E-Ink): A low-power display technology that mimics the appearance of ink on paper. This particular model (HTEW0154T8) interfaces with the ESP32 via SPI for data transfer and control signals, in addition to a BUSY signal for indicating the display's ready status.
  • Cherry MX Mechanical Switch (SW1, MX1A-11NW): Provides a physical interface for user input. When pressed, it initiates the display update on the E-Ink screen.
  • Logic Inverter (U1, NLVHC1G14DFT1G): A single gate logic inverter used for signal inversion, necessary for correct logical operations within the circuit.
  • Resistors (R1 and R3): R1 is likely for pull-up or pull-down purposes to ensure a defined logic level when the mechanical switch SW1 is not pressed. R3 may serve a similar purpose or be part of the signal conditioning for interfacing different components.
  • Capacitor (C2): A small ($0.001\mu F$) capacitor, probably used for debouncing the switch or for noise suppression purposes in the circuit.
Connections and Functionality:
  • E-Ink Display Control: The ESP32 controls the E-Ink display via SPI and other control signals (Data/Clock, Chip Select, Data/Command, and Busy).
    • Net: 94d3448c2f7269cfbfaa2b25e429fd5f connects ESP1's IO23 to E-Ink's SDI for SPI data transfer.
    • Net: 4fe82af25b2498d81837ea5f388c58d8 connects ESP1's IO18 to E-Ink's CLK for the SPI clock.
    • Net: 6f57936b2d9b9b2fc7406a2b7767417c connects ESP1's IO5 to E-Ink's CS for chip select.
    • Net: 69840ce735190e68e967a5f4cd2da6ca connects ESP1's IO2 to E-Ink's D/C for data/command selection.
    • Net: 2cdeb9a16b84de7db000e8c14af49c65 involves ESP1's IO19 and E-Ink's BUSY signaling.
  • Power Distribution: The project uses a 3.3V power net to distribute power to the microcontroller, E-Ink display, and other active components.
  • Input Detection: Pressing SW1 triggers a signal change that the ESP32 monitors. This action prompts the microcontroller to update the display with new information.
    • Net: 3c7a000adb159da2c00315f532ca2b85 and Net: 98b9544356c29aafbbfc2948834aeb5e likely facilitate the logic for detecting the button press and processing the input through U1 before sending a signal to ESP1.
Overall Functionality:
When the Cherry MX switch is pressed, a signal is sent to the ESP32 microcontroller. The ESP32 then updates the E-Ink display to show relevant information. This smart button system could be used for a wide range of applications, from simple notification devices to complex interactive displays that change based on user input. The use of E-Ink allows for very low power consumption, especially when the display is not changing, making this an efficient solution for battery-operated devices.
2y
Someone is typing...
5
please explain what U1 does.

@copilot please explain what U1 does.
2y
U1 (NLVHC1G14DFT1G) is a Schmitt-Trigger Inverter from onsemi. As an inverter, its output is logically the opposite of its input, that is, when the input is low, the output is high and vice versa.
The Schmitt-Trigger functionality means that it provides hysteresis (two distinct threshold voltage levels) for input signals. This is particularly useful for cleaning up noisy or slow signals, since the two threshold voltage levels (for transitioning from low to high and high to low) can prevent false triggering or oscillation from noise.
In this circuit, U1 is connected to a network formed by components R1, R3, SW1, and C2. The input of the inverter (U1:A) is connected to the junction between C2 and R3. So, it seems like the inverter is being used to clean up the signal from the debouncing circuit formed by these components. The output of the inverter (U1:Y) connects to the ESP32 microcontroller (ESP1:IO9) and is being used to send a clean, debounced signal indicating the state of the button when SW1 is pressed or released. This helps in ensuring an accurate and unambiguous button press detection.
2y
Someone is typing...
2
how do I use Flux?

@copilot how do I use Flux?
2y
Using Flux, the browser-based electronics CAD program, is a straightforward process designed to make your journey in designing electrical schematics and laying out PCBs as smooth as possible. Here's a high-level guide on how to get started:
  1. Accessing Flux: Since Flux is a browser-based tool, you'll begin by visiting the Flux website and signing in or creating an account if you're a new user.
  2. Starting a New Project: Once logged in, you can start a new project by selecting an option to create a new schematic or PCB layout. This will open a blank canvas where you can begin your design work.
  3. Placing Components: You can add components to your schematic or PCB by dragging them from the component library onto your canvas. Pay attention to the orientation and positioning as it can affect your design's functionality and manufacturability.
  4. Making Connections: After placing your components, you'll need to connect them. In the schematic editor, this is done by drawing wires between the appropriate pins of your components. In the PCB layout, you'll be routing traces.
  5. Setting Up PCB Stackup: For PCB layouts, you'll need to configure the stackup, i.e., the number and arrangement of layers in your PCB. This is crucial for ensuring your board meets the electrical and mechanical requirements of your design.
  6. Checking Your Design: Flux offers design rule check (DRC) features to verify your design against a set of predefined rules, ensuring there are no common errors before manufacturing.
  7. Exporting Your Design: Once your design is complete and verified, you can export it in various formats, depending on your needs, like Gerber files for PCB fabrication or PDFs for documentation.
  8. Learning and Support: Flux provides a range of tutorials, documentation, and a Slack community for live support and interaction with other users. These resources are invaluable for both beginners and experienced users looking to deepen their knowledge or troubleshoot issues.
Get started with Flux quickly by checking out the first project guide and tutorials. And for any specific queries regarding tool usage, our Slack community and YouTube tutorials are great resources. Also, remember, the Flux Navigator is always there to assist you with tool-related queries.
2y
Someone is typing...
6
E_INK_SDI
F1 P2 - J_PIZERO 5V[1]
E_INK_CS
J_PIZERO GND[3] - J_PIZERO GND[4]
E_INK_DC
R5 P2 - LED1 A
ESP1 TXD0 - J_PIZERO TXD0/GPIO14
J_PIZERO GPIO18 - R5 P1
J_PIZERO GPIO18 - R5 P1
R3 P1 - J_PIZERO GPIO17/GEN0
E_INK_SDI
F1 P2 - J_PIZERO 5V[1]
E_INK_BUSY
+3V3
J_USB_C GND4 - U2 GND
J_USB_C GND4 - U2 GND
E_INK_DC
J_USB_C VBUS1 - U2 VIN
J_PIZERO GND[7] - J_PIZERO GND[8]
SWITCH
E_INK_CLK
R3 P1 - J_PIZERO GPIO17/GEN0
J_PIZERO GND[7] - J_PIZERO GND[8]
F1 P2 - J_PIZERO 5V[1]
J_PIZERO GND[7] - J_PIZERO GND[8]
J_PIZERO GND[7] - J_PIZERO GND[8]
E_INK_BUSY
J_PIZERO GND[7] - J_PIZERO GND[8]
E_INK_CS
+3V3
J_USB_C GND4 - U2 GND
J_USB_C VBUS1 - U2 VIN
ESP1 TXD0 - J_PIZERO TXD0/GPIO14
+3V3
SWITCH
J_DBG Pin_2 - J_PIZERO RXD0/GPIO15
E_INK_CLK
J_USB_C GND4 - U2 GND
J_PIZERO GND[7] - J_PIZERO GND[8]
SW1
End of Life
R6
Resistance
500 Ω
C6
Capacitance
Capacitance
C3
Capacitance
Capacitance
E-Ink
R3
Resistance
1kΩ
U1
End of Life
R4
Resistance
500 Ω
J_USB_C
ESP1
R1
Resistance
10kΩ
R5
Resistance
500 Ω
C4
Capacitance
Capacitance
C5
Capacitance
Capacitance
C7
Capacitance
Capacitance
J_USB_C
R2
Resistance
500 Ω
R7
Resistance
500 Ω
+3V3
J_UART
J_PIZERO
F1
+3V3
+3V3
+3V3
U3
C2
Capacitance
0.001uF


  • Ground
    A common return path for electric current. Commonly known as ground.
  • Net Portal
    Wirelessly connects nets on schematic. Used to organize schematics and separate functional blocks. To wirelessly connect net portals, give them same designator. #portal
  • Power Net Portal
    Wirelessly connects power nets on schematic. Identical to the net portal, but with a power symbol. Used to organize schematics and separate functional blocks. To wirelessly connect power net portals, give them the same designator. #portal #power
  • Generic Resistor
    A generic fixed resistor ideal for rapid circuit topology development. Its footprint automatically adapts based on the selected package case code—supporting 0402, 0603, 0805, 1203, and many other standard SMD packages, as well as axial horizontal and vertical configurations. Save precious design time by seamlessly add more information to this part (value, footprint, etc.) as it becomes available. Standard resistor values: 1.0 ohm, 10 ohm, 100 ohm, 1.0k ohm, 10k ohm, 100k ohm, 1.0M ohm 1.1 ohm, 11 ohm, 110 ohm, 1.1k ohm, 11k ohm, 110k ohm, 1.1M ohm 1.2 ohm, 12 ohm, 120 ohm, 1.2k ohm, 12k ohm, 120k ohm, 1.2M ohm 1.3 ohm, 13 ohm, 130 ohm, 1.3k ohm, 13k ohm, 130k ohm, 1.3M ohm 1.5 ohm, 15 ohm, 150 ohm, 1.5k ohm, 15k ohm, 150k ohm, 1.5M ohm 1.6 ohm, 16 ohm, 160 ohm, 1.6k ohm, 16k ohm, 160k ohm, 1.6M ohm 1.8 ohm, 18 ohm, 180 ohm, 1.8K ohm, 18k ohm, 180k ohm, 1.8M ohm 2.0 ohm, 20 ohm, 200 ohm, 2.0k ohm, 20k ohm, 200k ohm, 2.0M ohm 2.2 ohm, 22 ohm, 220 ohm, 2.2k ohm, 22k ohm, 220k ohm, 2.2M ohm 2.4 ohm, 24 ohm, 240 ohm, 2.4k ohm, 24k ohm, 240k ohm, 2.4M ohm 2.7 ohm, 27 ohm, 270 ohm, 2.7k ohm, 27k ohm, 270k ohm, 2.7M ohm 3.0 ohm, 30 ohm, 300 ohm, 3.0K ohm, 30K ohm, 300K ohm, 3.0M ohm 3.3 ohm, 33 ohm, 330 ohm, 3.3k ohm, 33k ohm, 330k ohm, 3.3M ohm 3.6 ohm, 36 ohm, 360 ohm, 3.6k ohm, 36k ohm, 360k ohm, 3.6M ohm 3.9 ohm, 39 ohm, 390 ohm, 3.9k ohm, 39k ohm, 390k ohm, 3.9M ohm 4.3 ohm, 43 ohm, 430 ohm, 4.3k ohm, 43K ohm, 430K ohm, 4.3M ohm 4.7 ohm, 47 ohm, 470 ohm, 4.7k ohm, 47k ohm, 470k ohm, 4.7M ohm 5.1 ohm, 51 ohm, 510 ohm, 5.1k ohm, 51k ohm, 510k ohm, 5.1M ohm 5.6 ohm, 56 ohm, 560 ohm, 5.6k ohm, 56k ohm, 560k ohm, 5.6M ohm 6.2 ohm, 62 ohm, 620 ohm, 6.2k ohm, 62K ohm, 620K ohm, 6.2M ohm 6.8 ohm, 68 ohm, 680 ohm, 6.8k ohm, 68k ohm, 680k ohm, 6.8M ohm 7.5 ohm, 75 ohm, 750 ohm, 7.5k ohm, 75k ohm, 750k ohm, 7.5M ohm 8.2 ohm, 82 ohm, 820 ohm, 8.2k ohm, 82k ohm, 820k ohm, 8.2M ohm 9.1 ohm, 91 ohm, 910 ohm, 9.1k ohm, 91k ohm, 910k ohm, 9.1M ohm #generics #CommonPartsLibrary
  • Generic Capacitor
    A generic fixed capacitor ideal for rapid circuit topology development. You can choose between polarized and non-polarized types, its symbol and the footprint will automatically adapt based on your selection. Supported options include standard SMD sizes for ceramic capacitors (e.g., 0402, 0603, 0805), SMD sizes for aluminum electrolytic capacitors, and through-hole footprints for polarized capacitors. Save precious design time by seamlessly add more information to this part (value, footprint, etc.) as it becomes available. Standard capacitor values: 1.0pF, 10pF, 100pF, 1000pF, 0.01uF, 0.1uF, 1.0uF, 10uF, 100uF, 1000uF, 10000uF 1.1pF, 11pF, 110pF, 1100pF 1.2pF, 12pF, 120pF, 1200pF 1.3pF, 13pF, 130pF, 1300pF 1.5pF, 15pF, 150pF, 1500pF, 0.015uF, 0.15uF, 1.5uF, 15uF, 150uF, 1500uF 1.6pF, 16pF, 160pF, 1600pF 1.8pF, 18pF, 180pF, 1800pF 2.0pF, 20pF, 200pF, 2000pF 2.2pF, 22pF, 220pF, 2200pF, 0.022uF, 0.22uF, 2.2uF, 22uF, 220uF, 2200uF 2.4pF, 24pF, 240pF, 2400pF 2.7pF, 27pF, 270pF, 2700pF 3.0pF, 30pF, 300pF, 3000pF 3.3pF, 33pF, 330pF, 3300pF, 0.033uF, 0.33uF, 3.3uF, 33uF, 330uF, 3300uF 3.6pF, 36pF, 360pF, 3600pF 3.9pF, 39pF, 390pF, 3900pF 4.3pF, 43pF, 430pF, 4300pF 4.7pF, 47pF, 470pF, 4700pF, 0.047uF, 0.47uF, 4.7uF, 47uF, 470uF, 4700uF 5.1pF, 51pF, 510pF, 5100pF 5.6pF, 56pF, 560pF, 5600pF 6.2pF, 62pF, 620pF, 6200pF 6.8pF, 68pF, 680pF, 6800pF, 0.068uF, 0.68uF, 6.8uF, 68uF, 680uF, 6800uF 7.5pF, 75pF, 750pF, 7500pF 8.2pF, 82pF, 820pF, 8200pF 9.1pF, 91pF, 910pF, 9100pF #generics #CommonPartsLibrary
  • Generic Inductor
    A generic fixed inductor suitable for rapid circuit topology development. The footprint automatically adapts based on the selected package, supporting standard SMD sizes (e.g., 0402, 0603, 0805) as well as well-known inductor packages such as SDR1806, PA4320, SRN6028, and SRR1260. Standard inductor values: 1.0 nH, 10 nH, 100 nH, 1.0 µH, 10 µH, 100 µH, 1.0 mH 1.2 nH, 12 nH, 120 nH, 1.2 µH, 12 µH, 120 µH, 1.2 mH 1.5 nH, 15 nH, 150 nH, 1.5 µH, 15 µH, 150 µH, 1.5 mH 1.8 nH, 18 nH, 180 nH, 1.8 µH, 18 µH, 180 µH, 1.8 mH 2.2 nH, 22 nH, 220 nH, 2.2 µH, 22 µH, 220 µH, 2.2 mH 2.7 nH, 27 nH, 270 nH, 2.7 µH, 27 µH, 270 µH, 2.7 mH 3.3 nH, 33 nH, 330 nH, 3.3 µH, 33 µH, 330 µH, 3.3 mH 3.9 nH, 39 nH, 390 nH, 3.9 µH, 39 µH, 390 µH, 3.9 mH 4.7 nH, 47 nH, 470 nH, 4.7 µH, 47 µH, 470 µH, 4.7 mH 5.6 nH, 56 nH, 560 nH, 5.6 µH, 56 µH, 560 µH, 5.6 mH 6.8 nH, 68 nH, 680 nH, 6.8 µH, 68 µH, 680 µH, 6.8 mH 8.2 nH, 82 nH, 820 nH, 8.2 µH, 82 µH, 820 µH, 8.2 mH #generics #CommonPartsLibrary
  • Terminal
    Terminal
    An electrical connector acting as reusable interface to a conductor and creating a point where external circuits can be connected.
  • RMCF0805JT47K0
    General Purpose Thick Film Standard Power and High-Power Chip Resistor 47 kOhms ±5% 0.125W, 1/8W Chip Resistor 0805 (2012 Metric) Automotive AEC-Q200 Thick Film Features: - RMCF – standard power ratings - RMCP – high power ratings - Nickel barrier terminations standard - Power derating from 100% at 70ºC to zero at +155ºC - RoHS compliant, REACH compliant, and halogen free - AEC-Q200 compliant
  • 875105359001
    10 µF 16 V Aluminum - Polymer Capacitors Radial, Can - SMD 30mOhm 2000 Hrs @ 105°C #commonpartslibrary #capacitor #aluminumpolymer #radialcan
  • CTL1206FYW1T
    Yellow 595nm LED Indication - Discrete 1.7V 1206 (3216 Metric)

Smart Button with E-Ink display

Smart Button with E-Ink display thumbnail
Smart Button Terminal Animator: ESP32 & Raspberry Pi Zero 2 W Edition

Properties

Diagram


"USB-C node_5V Power/Data" "CC1 Resistor\n5.1kΩ to GND" "CC2 Resistor\n5.1kΩ to GND" "TVS D+ ( VBUS5["5V Rail" "5V Buck Regulator\nLMR50410" "3.3V Regulator\nAMS1117-3.3" VBUS5 "3.3V Rail" "Raspberry Pi Zero 2 W\n40-pin Header" "ESP32 MCU" "Pi TXD0 (GPIO14)" "Pi RXD0 (GPIO15)" "47Ω" "47Ω" "Pi LED GPIO" "330Ω" "Status LED" "SW1 Button" "3-pin UART Debug Header" GND "E-Ink Display"

Diagram


"USB-C node_5V Power Input" "Raspberry Pi Zero 2 W\n(40-pin header)" "ESP32 MCU" "E-Ink Display"

Pricing & Availability

Distributor

Qty 1

Arrow

$6.55–$11.62

Digi-Key

$17.13–$17.79

LCSC

$8.88–$9.02

Mouser

$13.19

TME

$0.60

Verical

$6.62–$10.54

Controls