Skip to the content
2 layers70.5 × 64.8 mmSmart Power Button, the printed circuit board in 3D

Examples with wiring diagrams for using some sensors with ESP32-C3, programmed with Rust

Size
70.5 × 64.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
31
Nets
55
Pads
126
Tracks, vias
415, 15
Pours
1
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
4 Jan 2024
Updated
25 May 2026

Overview

Smart Power Button is an open-source printed circuit board by ChocolateLoverRaj, from the ChocolateLoverRaj/rust-esp32c3-examples repository on GitHub, published under the MIT licence. It is a 2-layer board of 70.5 × 64.8 mm with 31 parts on 55 nets, routed with 415 tracks and 15 vias.

Its parts include 14 resistors, 7 ICs, 4 transistors, 4 connectors and 1 switch. It belongs with the ESP32 and RISC-V boards of this library.

README

README.md

Programming ESP32-C3 with Rust

Examples with wiring diagrams for using some sensors with ESP32-C3, programmed with Rust ESP32-C3 with Rust Logo

Materials Needed

  • ESP32-C3 (I bought this one from AliExpress, and I recommend buying it from "TENSTAR ROBOT")
  • USB Cable to connect the ESP32-C3 to your computer. You can use a USB-A to USB-C cable or a USB-C to USB-C cable, they both work.
  • Project-specific materials

Try out the code

  • Clone this repo
  • Install Rust
  • You may need to install some Rust stuff for ESP32-C3
  • Plug in your ESP32-C3
  • Make sure you have the permissions to access ESP32-C3 (/dev/ttyACM0)
  • cd to the directory you want to run
  • cargo run

Supported Chips / Boards

This was originally only for the ESP32-C3, but it should be really easy to add support for other ESP32 chips / boards. Some examples already have support for the ESP32-S3 in addition to the C3, and there is one example for STM32, but it should be really easy to add support for other ESP32 chips / boards. Some examples already have support for the ESP32-S3 in addition to the C3, and there is one example for STM32. If you would like an example for a specific chip / board to be added, let me know. I have a ESP32-C3, ESP32-S3, and a stm32f103c8.

std vs no_std

On ESP32 chips you can use Rust with std or no_std. Originally, every project in this repo used std. At some point I switched to using no_std. I don't recommend using std anymore. The old examples still use std. If you would like a no_std version of an example that is currently std only, let me know.

On-demand Maintanance Mode

I want to maintain this repo to help people do stuff with their ESP32s. However, not all examples will be up to date. If there is an example that uses an out-of-date esp-hal version, is not working, or not working on your chip, or if you have a question, don't hesistate to create an issue.

Resources

This project is based off of these resources

Rust on ESP32-C3

Project-specific resources

Can be found in the README.md files in folders

Parts

31
QtyValueFootprintReferences
6PC817Package_DIP:DIP-4_W7.62mmU1, U2, U3, U4, U5, U6
4107Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR3, R4, R5, R6
41540Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR8, R9, R11, R12
42N3904Package_TO_SOT_THT:TO-92_HandSolderQ1, Q2, Q3, Q4
4330Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR7, R10, R13, R14
2191Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1, R2
2Male HeaderConnector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_HorizontalJ3, J4
120-Pin ATXKiCad Assets:CONN_2-1586041-0_TYCOJ2
1ESP32-C3_SUPERMINIKiCad Assets:MODULE_ESP32-C3_SUPERMINIU7
1Female HeaderConnector_PinSocket_2.54mm:PinSocket_2x04_P2.54mm_HorizontalJ1
1LOGOLOGOG***
1SW_SPSTKiCad Assets:SW_RB141C1100SW1

Similar boards

  • 2 layers44.5 × 46.9 mmOSO SWAT B1-jig, the printed circuit board in 3D

    OSO SWAT B1-jig

    joeycastillo/Sensor-Watch

    A board replacement for the classic Casio F-91W wristwatch

    31 parts2.1k
  • 2 layers65 × 30 mmRgb to hdmi, the printed circuit board in 3D

    Rgb to hdmi

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    31 parts1kGPL-3.0
  • 2 layers191 × 98.5 mmMacroKeypad, the printed circuit board in 3D

    MacroKeypad

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    31 parts915
  • 2 layers39 × 45.2 mmCH32V003F4P6-R0-1v1, the printed circuit board in 3D

    CH32V003F4P6-R0-1v1

    openwch/ch32v003

    CH32V003 is an ultra-cheap RISC-V MCU with 2KB SRAM, 16KB flash, and up to 18 GPIOs that sells for under $0.10

    31 parts599
  • 2 layers26.7 × 27.9 mmBreakout board, the printed circuit board in 3D

    Breakout board

    Luos-io/luos_engine

    Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.

    31 parts546MIT
  • 2 layers100 × 50 mmPixelix, the printed circuit board in 3D

    Pixelix

    BlueAndi/Pixelix

    Full RGB LED matrix, based on an ESP32 and WS2812B LEDs or emulated LEDs on TFT.

    31 parts447MIT
  • 2 layers77.2 × 69.8 mmCubesatsim solar, the printed circuit board in 3D

    Cubesatsim solar

    alanbjohnston/CubeSatSim

    CubeSatSim, the AMSAT CubeSat Simulator

    31 parts419GPL-3.0
  • 2 layers103 × 55 mmTd neck-294, the printed circuit board in 3D

    Td neck-294

    tdaede/td-crt

    tubes

    31 parts373

Questions

How big is the Smart Power Button PCB?

It measures 70.5 × 64.8 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Smart Power Button use?

31 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Smart Power Button KiCad files?

From the ChocolateLoverRaj/rust-esp32c3-examples repository on GitHub, at the commit this page was made from: the board is smart-power-button/KiCad PCB/Smart Power Button.kicad_pcb and its schematic smart-power-button/KiCad PCB/Smart Power Button.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Smart Power Button design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).