1. Mengapa Custom PCB untuk IoT?
Prototyping dengan breadboard dan jumper wire sangat bagus untuk development, tetapi untuk produksi atau proyek yang serius, custom PCB memberikan keunggulan yang signifikan: ukuran lebih kecil, koneksi lebih reliable, performa RF yang lebih baik, dan estetika yang profesional.
- โ Cepat untuk prototyping
- โ Murah dan mudah diubah
- โ Tidak reliable untuk produksi
- โ Koneksi longgar / noise tinggi
- โ Ukuran besar
- โ Performa RF buruk
- โ Koneksi solder permanen
- โ Ukuran sangat kecil
- โ Ground plane untuk noise rendah
- โ Impedance control untuk RF
- โ Bisa diproduksi massal
- โ Terlihat profesional
Biaya PCB Custom di PCB Manufacturer
| Parameter | Typical Value | Harga (est.) |
|---|---|---|
| Ukuran | 50ร50 mm (2-layer) | $2-5 / 5 pcs |
| Ukuran | 100ร100 mm (2-layer) | $5-15 / 5 pcs |
| Ukuran | 50ร50 mm (4-layer) | $10-20 / 5 pcs |
| Lead time | 3-7 hari (standard) | - |
| Lead time | 24-48 jam (express) | +50-100% |
2. Setup KiCad 8
# Linux (Ubuntu/Debian)
sudo add-apt-repository ppa:kicad/kicad-8.0-releases
sudo apt update
sudo apt install kicad
# macOS (Homebrew)
brew install --cask kicad
# Windows: Download dari https://www.kicad.org/download/windows/
# Install library tambahan (footprints, symbols)
# KiCad 8 sudah include semua library dasar
# Tapi bisa ditambah dari:
# https://componentsearchengine.com/
# https://snapeda.com/
# https://www.ultralibrarian.com/
# Setup design rules setelah buat project baru
# Preferences โ Board Setup โ Design Rules:
# - Minimum track width: 0.15mm (6 mil)
# - Minimum clearance: 0.15mm (6 mil)
# - Minimum via drill: 0.3mm
# - Via diameter: 0.6mm
# - Copper pour clearance: 0.3mmKiCad Workflow
3. Schematic Capture
Schematic adalah "blueprint" dari desain elektronik. Di KiCad, kita menggunakan Eeschema editor untuk menggambar schematic. Pastikan menggunakan library standar KiCad atau custom library yang sudah di-setup.
Best Practices Schematic
- Modularisasi: Pisahkan schematic menjadi beberapa sheet (power supply, MCU, sensors, I/O)
- Power symbols: Gunakan power symbols (VCC, GND, 3V3) daripada wire manual
- Net labels: Gunakan net label untuk koneksi yang lintas sheet
- Decoupling: Letakkan decoupling capacitor di dekat setiap VCC pin
- Comments: Tambahkan text box untuk menjelaskan setiap blok fungsi
Desain Power Supply untuk ESP32
Power Supply Circuit untuk ESP32 IoT Board:
=============================================
Input: USB-C (5V) atau Battery (3.7V LiPo)
1. USB-C Connector (USB_C_Power_Only)
โโโ VBUS (5V) โ AMS1117-3.3 LDO Input
โโโ CC1 โ 5.1kฮฉ โ GND (for USB-C detection)
โโโ CC2 โ 5.1kฮฉ โ GND
โโโ D+/D- โ Data pins (opsional)
2. LDO Voltage Regulator (AMS1117-3.3)
โโโ Input: 5V (from USB) or 3.7V (from battery)
โโโ Output: 3.3V โ main power rail (VCC_3V3)
โโโ Input cap: 10ยตF ceramic + 100nF
โโโ Output cap: 22ยตF ceramic + 100nF
3. Battery Charging (TP4056 โ opsional)
โโโ B+ โ Battery + (through protection IC)
โโโ B- โ Battery -
โโโ OUT+ โ 5V rail (when USB connected)
โโโ Charge current: 1A (Rprog = 1.2kฮฉ)
4. Battery Protection (DW01A + FS8205)
โโโ Over-discharge: 2.5V cutoff
โโโ Over-charge: 4.25V cutoff
โโโ Over-current: 3A cutoff
5. Power Path (USB/Battery switch)
โโโ Schottky diode (SS34) from USB
โโโ Schottky diode (SS34) from battery
โโโ Both feed into LDO input4. PCB Layout & Routing
PCB layout adalah proses menempatkan komponen (placement) dan menghubungkannya dengan copper traces (routing). Layout yang baik sangat mempengaruhi performa, terutama untuk sinyal RF dan high-speed digital.
Placement Strategy untuk ESP32 Board
- MCU di tengah: ESP32 modul (ESP32-WROOM-32) di center PCB
- Power di satu sisi: USB connector, LDO, battery di edge
- Sensor di sisi lain: Sensor breakout di edge yang berbeda
- Antenna clearance: Kosongkan area di bawah/belakang antenna
- Decoupling dekat pin: 100nF capacitor < 5mm dari VCC pin
Track Width Guidelines
| Koneksi | Minimum Width | Recommended | Catatan |
|---|---|---|---|
| Signal (digital) | 0.15mm (6mil) | 0.2mm (8mil) | GPIO, SPI, I2C |
| Signal (analog) | 0.2mm (8mil) | 0.25mm (10mil) | ADC, sensor |
| Power (3.3V) | 0.3mm (12mil) | 0.5mm (20mil) | Tergantung arus |
| Power (GND) | Full plane | Ground plane | Copper pour |
| USB (D+/D-) | 0.15mm (6mil) | 0.2mm (8mil) | Differential pair, 90ฮฉ impedance |
| RF (WiFi antenna) | 0.5mm (20mil) | Matched impedance | 50ฮฉ, coplanar waveguide |
Via dan Layer
| Tipe PCB | Layers | Harga | Kapan Pakai |
|---|---|---|---|
| 2-layer | Top + Bottom | Murah | Simple IoT board, sensor node |
| 4-layer | Top + GND + Power + Bottom | 2-3x lebih mahal | ESP32 board, high-speed |
| 6-layer | 6 copper layers | 5-10x lebih mahal | Hampir tidak perlu untuk IoT |
5. Ground Plane & Power Distribution
Ground plane adalah lapisan tembaga yang solid yang berfungsi sebagai referensi ground untuk semua sinyal. Ground plane sangat penting untuk mengurangi noise, EMI, dan meningkatkan performa RF.
Prinsip Ground Plane
- Copper pour GND: Selalu gunakan copper pour pada layer bawah untuk 2-layer PCB
- Jangan potong ground plane: Signal traces di layer atas harus menghindari pemotongan ground plane di layer bawah
- Via stitching: Tambahkan via GND secara berkala untuk menghubungkan ground plane di kedua layer
- Star grounding: Untuk sinyal sensitif (ADC), pisahkan analog ground dan digital ground, hubungkan di satu titik
Langkah membuat Ground Plane di KiCad Pcbnew:
1. Buka PCB Editor (Pcbnew)
2. Add Fill Zone (Copper Pour):
- Toolbar โ "Add a filled zone" (ikon kotak dengan crosshatch)
- Klik di corner PCB
- Setting:
* Layer: B.Cu (Bottom Copper) โ untuk 2-layer
* Net: GND
* Clearance: 0.3mm (12mil)
* Minimum width: 0.15mm (6mil)
* Thermal relief: Yes (untuk GND pad)
* Corner mode: chamfer (45ยฐ lebih baik dari 90ยฐ)
3. Gambar zone boundary mengelilingi seluruh PCB
4. Tekan 'B' atau Edit โ Fill All Zones untuk mengisi copper
5. Untuk top layer, buat zone lagi:
- Layer: F.Cu (Front Copper)
- Net: GND
- Biasanya lebih kecil (jangan penuhi area antenna!)
6. Via stitching (ground via):
- Tambahkan via GND setiap 5-10mm di area ground plane
- Via: 0.3mm drill, 0.6mm diameter
- Ini menghubungkan ground plane di kedua layer
7. Verify:
- DRC check โ pastikan tidak ada clearance violation
- 3D View โ visualisasi ground plane6. Decoupling Capacitor
Decoupling capacitor adalah komponen paling penting dalam PCB design yang sering diabaikan oleh pemula. Tanpa decoupling yang baik, IC akan mengalami voltage spikes, noise, dan bahkan reset yang tidak terduga.
Panduan Decoupling
| Komponen | Kapasitor | Jarak dari Pin | Catatan |
|---|---|---|---|
| ESP32 VDD3P3 | 100nF + 10ยตF | < 3mm (100nF) | Setiap VDD pin |
| ESP32 VDD_SDIO | 100nF | < 3mm | Untuk SDIO |
| LDO Output | 22ยตF + 100nF | < 5mm | Stability requirement |
| Crystal | 12pF ร 2 | < 5mm | Load capacitance |
| Sensor I2C | 100nF | < 5mm | Setiap IC VCC |
| USB connector | 100nF + 4.7ยตF | < 5mm | USB VBUS |
Saat men-decouple VCC pin IC, urutkan dari kapasitor kecil terdekat ke pin: 100nF (3mm dari pin) โ 1ยตF (5mm) โ 10ยตF (dekat power source). Kapasitor kecil menangani noise frekuensi tinggi, kapasitor besar menangani low-frequency ripple.
7. Antenna Design untuk IoT
Untuk board IoT WiFi/BLE, desain antenna sangat krusial. Performa radio sangat bergantung pada antenna design dan clearance area.
Jenis Antenna untuk IoT PCB
| Tipe Antenna | Gain | Ukuran | Kapan Pakai |
|---|---|---|---|
| PCB Trace (meander) | ~2 dBi | ~15ร15mm | Paling umum, murah |
| Chip Antenna (SMD) | ~2-3 dBi | 3ร1.5mm | Compact, lebih mahal |
| U.FL Connector | Tergantung antenna | Connector + antenna | Maximum flexibility |
| Wire antenna (quarter-wave) | ~5 dBi | ~31mm (2.4GHz) | Simple, high gain |
Aturan Antenna Clearance
- No ground plane di bawah/belakang antenna area (minimum 10ร15mm clearance)
- No copper pour di layer bawah area antenna
- No komponen di area antenna clearance
- 50ฮฉ impedance matching untuk trace ke antenna
- Via fencing: Baris via GND di kedua sisi antenna trace (jarak ฮป/20 โ 6mm)
ESP32-WROOM-32 module sudah punya antenna on-module. Saat mendesain custom PCB, pastikan area di bawah modul ESP32 tidak ada copper (atas dan bawah). Ini termasuk ground plane! Gunakan keep-out area di KiCad untuk menandai area ini.
8. DFM: Design for Manufacturing
DFM memastikan PCB kamu bisa diproduksi dengan yield yang tinggi dan cost yang rendah. Setiap PCB manufacturer punya capability yang berbeda, tapi berikut adalah guidelines umum:
DFM Checklist
| Parameter | Minimum (Cheap) | Recommended | Catatan |
|---|---|---|---|
| Minimum trace width | 0.15mm (6mil) | 0.2mm (8mil) | Lebih lebar = lebih murah |
| Minimum clearance | 0.15mm (6mil) | 0.2mm (8mil) | Jarak antar trace/pad |
| Minimum via drill | 0.2mm | 0.3mm | 0.2mm = special process |
| Minimum via annular ring | 0.15mm | 0.25mm | Copper di sekitar via |
| Minimum hole-to-hole | 0.25mm | 0.5mm | Antar via / mounting hole |
| Silkscreen width | 0.1mm | 0.15mm | Untuk text dan label |
| Solder mask clearance | 0.05mm | 0.1mm | Mask dari pad edge |
Component Placement DFM Rules
- Orientation: Orientasi komponen yang sama (polarized caps, IC) harus konsisten
- Spacing: Minimum 0.5mm antar SMD component
- Edge clearance: Minimum 2mm dari board edge ke komponen terdekat
- Fiducials: 3 fiducial marks (1mm diameter) untuk pick-and-place alignment
- Panelization: Untuk produksi massal, gunakan V-score atau mouse bite
9. Export Gerber & Order PCB
Gerber adalah format file standar industri untuk manufacturing PCB. KiCad bisa export langsung ke format Gerber yang diterima oleh semua PCB manufacturer.
Langkah Export Gerber di KiCad 8:
1. Buka PCB Editor (Pcbnew)
2. File โ Fabrication Outputs โ Gerbers (.gbr)
Setting:
โโโ Format: Gerber X2 (atau RS-274X)
โโโ Units: mm
โโโ Precision: 4.6 (4 digit integer, 6 decimal)
โโโ Layers to export:
โโโ F.Cu (Front Copper)
โโโ B.Cu (Back Copper)
โโโ F.SilkS (Front Silkscreen)
โโโ B.SilkS (Back Silkscreen)
โโโ F.Mask (Front Solder Mask)
โโโ B.Mask (Back Solder Mask)
โโโ F.Paste (Front Paste โ untuk stencil)
โโโ B.Paste (Back Paste)
โโโ Edge.Cuts (Board Outline)
โโโ F.Fab (Front Fabrication โ opsional)
3. Output directory: fabrication/ (bisa custom)
4. Klik "Plot" โ File .gbr akan ter-generate
5. Export Drill File:
File โ Fabrication Outputs โ Drill Files (.drl)
โโโ Format: Excellon
โโโ Units: mm
โโโ Zeros format: Decimal format
โโโ Map format: Gerber X2
6. Generate Job File:
File โ Fabrication Outputs โ Component Placement (.pos)
(Untuk assembly otomatis)
7. Zip semua file dan upload ke PCB manufacturerPCB Manufacturer Populer
| Manufacturer | Min. Order | Harga (50ร50mm) | Lead Time |
|---|---|---|---|
| JLCPCB | 5 pcs | $2 (2-layer) | 3-5 hari |
| PCBWay | 5 pcs | $5 (2-layer) | 3-7 hari |
| AllPCB | 5 pcs | $5 (2-layer) | 3-5 hari |
| Elecrow | 5 pcs | $2 (2-layer) | 3-7 hari |
Zip semua file Gerber (.gbr) dan drill (.drl) โ upload ke jlcpcb.com โ setting jumlah PCB, warna, ketebalan (1.6mm standard), dan copper weight (1oz standard) โ order. PCB akan sampai ke Indonesia dalam 1-2 minggu via DHL/FedEx.