Sebelum menyentuh firmware pertama, kalian perlu menguasai C/C++ dasar, bit manipulation, dan elektronika dasar, lalu menyiapkan board MCU, toolchain ARM GCC, OpenOCD, dan debug probe. Di episode ini kita memastikan seluruh skill dan environment siap dipakai sepanjang series

Selamat datang di series Belajar Embedded Engineer! Series ini akan membawa kalian menguasai sistem embedded — software yang berjalan di dalam perangkat tertanam — dari level register MCU sampai embedded Linux, RTOS, dan TinyML. Total ada 28 episode yang tersusun dalam enam fase: fundamentals, operational core, data & workloads, security & safety, advanced topics, sampai production readiness.
Menjadi embedded engineer berbeda dari developer biasa: kalian menulis kode yang berjalan di perangkat dengan RAM beberapa KB, tanpa sistem operasi, dan sering kali tanpa debugger layar penuh. Kesalahan sekecil bit salah set bisa membuat hardware tidak berfungsi — atau lebih buruk, merusaknya. Karena itu, sebelum menyentuh firmware pertama, ada skill dasar dan perangkat yang wajib kalian siapkan.
Episode 0 ini adalah peta jalan kalian: kita akan memastikan skill dasar terpenuhi, menyiapkan toolchain software (ARM GCC, OpenOCD, GDB), memilih board MCU, lalu memverifikasi seluruh environment untuk pertama kali. Setelah episode ini selesai, seluruh series bisa diikuti dengan nyaman.
Embedded engineer berbicara langsung dengan hardware, dan bahasa utama percakapan itu adalah C. Kalian wajib paham pointer, array, dan konsep memory address, karena register perangkat keras hanyalah lokasi memory yang bisa dibaca dan ditulis. Kalian juga wajib nyaman dengan bit manipulation — mengatur bit tertentu di dalam sebuah register tanpa menyentuh bit lain:
#define GPIOA_MODER (*(volatile uint32_t *)0x48000000)
void pin_high(void) {
GPIOA_MODER |= (1U << 10); /* set bit 10: ubah satu bit tanpa sentuh lainnya */
}| untuk menyalakan bit (set), & dengan negasi untuk mematikan bit (clear), dan ^ untuk toggle. Ini adalah operasi yang akan kalian tulis ribuan kali sepanjang karier — pahami sekali, pakai selamanya.
Software tidak bisa dipisahkan dari fisik. Kalian tidak perlu menjadi electrical engineer, tetapi wajib memahami konsep berikut:
| Konsep | Peran dalam embedded |
|---|---|
| Tegangan & arus | MCU membaca HIGH/LOW dari level tegangan pin; salah level bisa membuat pin rusak |
| Pull-up / pull-down | Menentukan logika default sebuah pin saat tidak ada sinyal |
| LED & resistor | Hello world paling sederhana di hardware; resistor membatasi arus |
| Ground / common | Semua sinyal diukur relatif terhadap ground — koneksi longgar adalah musuh nomor satu |
Analogi paling dekat: membangun firmware tanpa memahami elektronika itu seperti menulis API tanpa tahu protokolnya — kode jalan, tapi kalian tidak tahu mengapa ia berhenti jalan saat hardware berubah.
Kalian harus memahami tiga lapisan: memory (flash untuk menyimpan kode, RAM untuk data runtime), register (jendela ke peripherals seperti GPIO dan timer), dan clock (jantung ritme semua peripheral). Boot sequence, interrupt, dan memory map akan dibedah pelan-pelan mulai episode 2.
Sebagian besar board MCU modern (STM32, ESP32, nRF) berbasis arsitektur ARM Cortex-M. Toolchain utamanya adalah arm-none-eabi-gcc — compiler yang menghasilkan binary untuk MCU, bukan untuk PC:
sudo apt install gcc-arm-none-eabi openocd gdb-multiarchUntuk Windows, pakai xPack GNU ARM Toolchain + OpenOCD (paket standalone). Alternatif yang lebih ramah pemula: install PlatformIO di VS Code, yang mengelola toolchain, flash, dan monitoring dalam satu tempat — tapi tetap pelajari perintah mentahnya karena kita pakai di episode 6 dan 9.
Firmware tidak bisa dijalankan dari PC; ia harus di-flash ke MCU. Tools utama:
| Tool | Fungsi |
|---|---|
st-flash / ST-Link CLI | Flash binary ke board STM32 via probe ST-Link |
openocd | Jembatan debug: hubungkan GDB ke target MCU |
esptool.py | Flash board ESP32 lewat USB-serial |
gdb-multiarch / arm-none-eabi-gdb | Debugger interaktif (dipakai di episode 9) |
Kalian hanya butuh satu board. Pilih sesuai budget dan tujuan:
| Board | MCU | Kelebihan | Ideal untuk |
|---|---|---|---|
| STM32 Nucleo (F401RE) | ARM Cortex-M4 | Debugger ST-Link built-in, ekosistem STM32 raksasa | Bare-metal, RTOS, episode 4-9 |
| ESP32 DevKit | Xtensa / RISC-V | WiFi + BLE, harga murah | IoT, networking (episode 12) |
| Raspberry Pi Pico | RP2040 (Cortex-M0+) | Sangat murah, dokumentasi jujur | Belajar bare-metal, Rust |
| Arduino Uno | AVR | Paling ramah pemula | Warm-up sebelum MCU kelas ARM |
Rekomendasi utama untuk series ini: STM32 Nucleo karena debugger-nya sudah tertanam — kalian tinggal colok USB untuk flash dan debug tanpa probe tambahan. Jika budget ketat, Raspberry Pi Pico adalah alternatif yang sangat baik.
Tip
Jangan beli semuanya sekaligus. Mulai minimal: 1 board Nucleo (atau Pico), 1 breadboard, 5 LED, dan sekumpulan resistor. Totalnya bisa di bawah Rp250 ribu dan sudah cukup untuk 80% praktik series ini.
Sebelum lanjut ke episode 1, jalankan verifikasi menyeluruh:
arm-none-eabi-gcc --version
openocd --version
lsusblsusb harus menampilkan probe kalian — misalnya STMicroelectronics ST-LINK untuk Nucleo, atau chip USB-serial CP210x untuk ESP32. Jika tidak muncul, periksa kabel (harus kabel data) dan driver USB.
Uji kelistrikan pertama: colok board ke USB dan pastikan LED power menyala. Ini "hello world" hardware — jika LED hidup dan toolchain terbaca, environment kalian siap.
Warning
Jangan pernah menghubungkan apa pun ke pin board yang dialiri tegangan berbeda dari rating board (umumnya 3,3V). Satu tegangan salah bisa mematikan MCU secara permanen. Selalu matikan power sebelum merangkai ulang breadboard.
Inti yang harus dibawa pulang:
lsusb.arm-none-eabi-gcc --version dan cek LED power.Di episode 1 selanjutnya kita akan membahas peran & karir embedded engineer — apa saja pekerjaan nyata di balik firmware, MCU, hingga embedded Linux, konteks industri 2026 dengan naiknya embedded AI dan Rust, serta jalur karir dan gaji yang menanti kalian. Pastikan environment sudah siap, karena perjalanan Belajar Embedded Engineer baru saja dimulai!