Hardware Docs

Spesifikasi teknis Robot RNV4 — dimensi, kinematika lengan, gearbox, driver motor, pinout ESP32-S3, dan referensi perintah G/M/R-code

Terakhir diperbarui: 24 Agustus 2026

RNV4 adalah lengan robot (robot arm) yang dikendalikan lewat antarmuka desktop RNV4 Studio via koneksi serial USB, dirancang agar mudah dikembangkan sesuai kebutuhan penggunanya. Robot bergerak dalam sistem koordinat Kartesian (X, Y, Z) — pengguna cukup memasukkan titik tujuan lewat antarmuka atau command G-code tanpa perlu menghitung sudut tiap sendi secara manual, dan gripper bawaannya dapat berotasi hingga 180°.

Selain lewat RNV4 Studio, robot ini juga bisa dikendalikan lewat skrip Python (via port serial) untuk kebutuhan kontrol yang lebih kompleks, otomatis, atau terintegrasi dengan sistem lain — lihat Pengembangan & Ekstensi Kustom di bawah. Protokol komunikasi G/M/R-code yang dipakai bersifat terbuka & terdokumentasi lengkap di halaman ini, sehingga integrasi dari luar tetap fleksibel meski firmware bawaan robot sendiri bersifat tertutup (lihat Syarat Layanan).

Dengan kombinasi presisi mekanik, kemudahan kontrol, dan fleksibilitas pengembangan ini, RNV4 cocok dipakai untuk berbagai aplikasi seperti pick and place, inspeksi, riset, maupun pembelajaran robotika — baik oleh pengguna pemula maupun profesional, di lingkungan industri, laboratorium, pendidikan, dan bidang lainnya.

RNV4 adalah lengan robot SCARA 2-link dengan rotasi base dan rel linear (E0), dikendalikan mikrokontroler ESP32-S3 lewat protokol G-code (mirip Marlin) ditambah perintah kustom R-code.

Unit ini sudah dilengkapi pump vacuum bawaan yang terpasang langsung di dalam bodi — siap digunakan begitu keluar dari kemasan tanpa perlu instalasi atau perakitan komponen tambahan. Setiap sendi dilengkapi bearing dan rangka ABS + resin yang diperkuat, sehingga gerakannya tetap presisi dan kokoh untuk pemakaian jangka panjang.

Mencari dokumentasi REST API & Webhook untuk integrasi software (AI Doodle dkk)? Lihat Developer Docs.

⚠ Perhatian Keselamatan

  • Jauhkan tangan/jari dari area sendi (bahu, siku) dan rel linear (E0) saat robot sedang bergerak — berpotensi terjepit (pinch point).
  • Jangan letakkan benda atau kabel di jalur gerak lengan maupun rel.
  • Tempatkan robot di permukaan yang stabil dan rata sebelum dioperasikan.
  • Cabut adaptor 12V (matikan catu daya) sebelum membongkar bodi atau mengganti komponen.
  • Bukan mainan anak-anak — pengoperasian oleh anak-anak wajib didampingi orang dewasa.
Render 3D robot RNV4 — tampak depan kiri
Render 3D robot RNV4 — tampak depan kanan
Render 3D robot RNV4 — tampak belakang
Versi:

Apa yang berbeda di RNV4H2

  • Driver motor TMC2209 (lewat UART) menggantikan driver lama pada sendi bahu, siku, dan rotasi base.
  • Arus motor disetel dari perangkat lunak dan tersimpan per unit, bukan lewat trimpot.
  • Homing tanpa limit switch di X/Y/Z: memakai encoder (tanpa menyentuh stopper) atau deteksi beban motor.
  • Encoder AS5600 di tiga sendi, sehingga robot bisa memeriksa sendiri apakah posisinya sesuai perintah.
  • Kipas dikendalikan termostat di papan, tidak lagi lewat firmware.
  • Sensor dan relay datang dari modul eksternal (RS-485), bukan pin di papan robot.
  • Lengan, gearbox, ukuran, dan payload sama persis dengan RNV4.
Hanya ada di RNV4 (lama): probe sentuh G33/R520, sensor IN1–IN3 yang langsung di papan, serta pengaturan suhu dan kipas lewat firmware. Lihat tab RNV4: Sensor Digital (RNV4) · Kalibrasi (RNV4)

Spesifikasi Satu Layar

Intinya: RNV4H2 adalah lengan robot SCARA berpenggerak TMC2209 dengan encoder di tiga sendi; semua angka pentingnya ada di satu layar ini.

Otak dan penyimpanan

Pengendali
ESP32-S3-WROOM-1 N16R8 (16 MB flash, 8 MB PSRAM)
Penyimpanan program
SD card (teach & playback)

Gerak

Driver motor
TMC2209 (X/Y/Z, lewat UART) · DRV8825 (rel)
Motor
NEMA17, 200 langkah/putaran, microstep 16
Reduksi
15:1 (bahu, siku, rotasi base)
Encoder
AS5600 di 3 sendi (lewat multiplexer I2C)

Ukuran dan berat

Tinggi (posisi awal)
369,89 mm
Tinggi (maksimum)
446,57 mm
Lebar (termasuk rel)
445,60 mm
Berat
5 kg (termasuk rel)

Kemampuan kerja

Beban maksimal (payload)
500 gram
Jangkauan radial
113,03 – 329,72 mm
Jangkauan tinggi (Z)
−140 sampai 245 mm
Catu daya
12 V DC, 10 A (maks)

Komunikasi

Ke komputer
USB (RNV4 Studio)
Nirkabel
Bluetooth BLE (profil NUS)
Ke modul eksternal
RS-485 lewat UART0

Firmware dan kontrol

Pasang firmware
Lewat USB dari RNV4 Studio (Flash Firmware)
Bahasa perintah
G-code (mirip Marlin) + R-code

Peta sistem

Komputer atau HP berbicara ke robot lewat USB atau Bluetooth. Robot memakai satu jalur RS-485 (UART0) untuk modul IO, yang punya sensor dan relay sendiri.

PC · RNV4 Studio Home, jog, program, Flash Firmware HP / komputer aplikasi BLE (NUS) kirim G/M/R-code Robot RNV4H2 ESP32-S3 N16R8 TMC2209 · DRV8825 · AS5600 SD card · LED status Modul IO Wemos D1 mini Pro 3 sensor · 3 relay USB Bluetooth (BLE) RS-485 UART0 + konverter Sensor IN1–IN3 Relay OUT1–OUT3 beban pakai catu sendiri
Diagram blok sistem: dari komputer/HP sampai sensor dan relay.

Langkah berikutnya: Mulai dari Nol · Motor & Driver Listrik · Modul Eksternal

Mulai dari Nol

Intinya: Urutannya: rakit, cek kabel, sambung daya, colok USB, buka Studio, pasang firmware, cek driver (R530 harus 3/3), G28, lalu coba gerak.

⚠ Sebelum mulai

Pasang atau cabut modul TMC2209 hanya saat daya mati, dan pastikan ruang di sekitar lengan bebas sebelum G28.

  1. 1

    Rakit robot dari kemasannya

    Keluarkan lengan, rel, dan gripper dari styrofoam lalu pasang sesuai isi kemasan (lihat Kemasan & Styrofoam). Pasang tiga modul TMC2209 dalam keadaan daya mati dan cek alamatnya (X = 0, Y = 1, Z = 2).

    ✓ Tanda berhasil: Semua bagian terpasang kokoh dan ketiga modul TMC2209 terpasang rapat dengan alamat yang berbeda.

    ✗ Kalau gagal: Lihat Motor & Driver Listrik untuk alamat dan cara memasang modul.

  2. 2

    Cek semua kabel

    Cocokkan kabel dengan label di panel belakang dan lengan atas: motor rel ke MOTOR RAIL, gripper ke GRIPPER SERVO atau selang ke GRIPPER VACUM. Kalau memakai modul IO, ikuti bagian Modul Eksternal.

    ✓ Tanda berhasil: Tidak ada kabel yang tertukar atau menggantung; semua cocok dengan label pada konektor.

    ✗ Kalau gagal: Lihat gambar dan tabel di Pin & Wiring.

  3. 3

    Sambungkan daya 12 V

    Colok adaptor 12 V ke jack IN 12 VOLT di panel belakang, lalu tekan tombol ON/OFF.

    ✓ Tanda berhasil: Robot menyala dan, di langkah berikutnya, komputer mengenali robot.

    ✗ Kalau gagal: Periksa adaptor (catu maksimum 12 V DC, 10 A) dan sambungan jack; lihat Spesifikasi Satu Layar.

  4. 4

    Colok kabel USB

    Sambungkan kabel USB tipe B dari konektor USB di panel belakang ke komputer.

    ✓ Tanda berhasil: RNV4 Studio menampilkan port robot di kotak Port (contoh: COM19, ESP32).

    ✗ Kalau gagal: Coba kabel USB lain (pakai kabel data); lihat tabel pemecahan masalah di Koneksi ke RNV4 Studio.

  5. 5

    Buka RNV4 Studio dan klik Konek

    Pilih port robot, atur baud 115200, lalu klik Konek.

    ✓ Tanda berhasil: Status di Studio berubah dari “Tidak terhubung” menjadi terhubung.

    ✗ Kalau gagal: Ikuti langkah di Koneksi ke RNV4 Studio.

  6. 6

    Pasang firmware (Flash Firmware)

    Di Studio pilih Flash Firmware. Firmware dipasang lewat kabel USB (tidak ada pembaruan nirkabel): Studio memutus serial, memasang firmware, lalu tersambung kembali otomatis. Jangan cabut USB selama proses.

    ✓ Tanda berhasil: Studio tersambung lagi sendiri dan perintah M115 membalas info firmware.

    ✗ Kalau gagal: Ulangi dengan kabel USB lain; lihat Koneksi ke RNV4 Studio dan FAQ.

  7. 7

    Cek driver motor: R530

    Kirim R530 dari kolom G-code di Studio.

    ✓ Tanda berhasil: Balasan menyebut 3/3 driver menjawab.

    ✗ Kalau gagal: Kalau kurang dari 3/3, motor dikunci dan LED ungu berkedip. Periksa modul TMC2209 terpasang, tegangan logika (VIO), dan alamatnya; lihat Gejala & Solusi.

  8. 8

    Home robot: G28 ⚠

    Pastikan ruang di sekitar lengan bebas, lalu kirim G28. ⚠ Lengan akan bergerak.

    ✓ Tanda berhasil: Homing selesai tanpa pesan error dan R50 melaporkan robot siap.

    ✗ Kalau gagal: Pesan “Robot not calibrated. Send G28 first.” berarti robot belum di-Home; homing yang gagal ditandai LED ungu berkedip. Lihat Motor & Driver Listrik dan Kalibrasi (hwConfig).

  9. 9

    Coba gerak

    Pakai tombol jog di Studio, atau kirim G0 X0 Y250.05 Z175 (posisi awal). Lalu kirim R515 untuk membaca posisi.

    ✓ Tanda berhasil: R515 menampilkan posisi yang sesuai dengan perintah gerak.

    ✗ Kalau gagal: Kalau gerakan ditolak atau robot diam, lihat Gejala & Solusi.

Langkah berikutnya: Spesifikasi Satu Layar · 10 perintah paling berguna · Gejala & Solusi

Mekanik & Elektrik

Dimensi & Desain

Intinya: Tinggi 369,89 mm saat posisi awal (446,57 mm maksimum) dan lebar 445,60 mm termasuk rel.

Diagram dimensi RNV4 posisi awal (home)
Diagram dimensi RNV4 lengan terentang maksimum

Kiri: posisi awal (home). Kanan: lengan terentang ke posisi tertinggi.

Tinggi (posisi awal / home) 369,89 mm
Tinggi (lengan terentang maksimum) 446,57 mm
Lebar (tampak depan, termasuk rel) 445,60 mm
Panjang rel dasar (axis E0) 360,00 mm
Panjang lengan bawah (shoulder → elbow) 175,0 mm
Panjang lengan atas (elbow → ujung) 175,0 mm
Offset end-effector 48,59 mm
Beban maksimal (payload) 500 gram
Berat robot 5 kg (termasuk rel)
Material rangka / casing ABS + resin — resin dituang (cor) di bagian-bagian tertentu untuk memperkuat casing
Bantalan sendi (bearing) Seluruh join/sendi dilengkapi bearing, untuk presisi & kekokohan gerakan
Dimensi Kemasan (Pengiriman) 50 × 50 × 20 cm

Langkah berikutnya: Payload · Kinematika & Geometri Lengan · Kemasan & Styrofoam

Kapasitas Beban (Payload)

Intinya: Beban maksimal robot adalah 500 gram.

Kapasitas payload robot RNV4 — 500 gram maksimal

500gram

Beban Maksimal (Payload)

Beban maksimal yang dapat diangkat ujung lengan (end-effector) robot. Melebihi batas ini berisiko mengganggu presisi gerakan atau membebani motor & gearbox secara berlebihan.

Rekomendasi: pelankan gerakan untuk beban mendekati batas maksimal

G0 (rapid move) selalu bergerak di kecepatan maksimum otomatis dan mengabaikan parameter F — cocok untuk beban ringan/tanpa beban, tapi berisiko membuat beban berat berayun/oleng atau motor kehilangan langkah (step) saat mendekati 500 gram. Untuk beban berat, gunakan G1 dengan parameter F (feedrate, mm/menit) yang jauh lebih rendah dari biasanya, mis.:

G1 X100 Y200 F300 ; ≈5 mm/detik — pelan G1 X100 Y200 F600 ; ≈10 mm/detik — sedang

Nilai F yang aman tergantung berat & bentuk beban Anda — mulai dari nilai rendah lalu naikkan bertahap sambil diamati, bukan langsung dipakai di kecepatan tinggi.

Langkah berikutnya: Gripper & End-Effector · Motor & Driver Listrik

Gripper & End-Effector

Intinya: Ada tiga jenis gripper: servo untuk menjepit, pena untuk menulis atau menggambar, dan vakum untuk mengangkat dengan hisapan.

Setiap RNV4 sudah dilengkapi 3 jenis gripper (gripper servo/mencapit, gripper pen, gripper vacuum) — semuanya plug and play: baut, mounting, dan kelengkapan pemasangan lain sudah disediakan di dalam paket. Tidak perlu beli terpisah atau merakit dari komponen mentah, tinggal pasang di ujung lengan sesuai kebutuhan pekerjaan.

Gripper servo — mencapit benda

Gripper servo — mencapit benda.

Gripper pen — menulis atau menggambar

Gripper pen — menulis/menggambar.

Gripper vacuum — mengangkat benda dengan hisapan

Gripper vacuum — pompa sudah terpasang di bodi.

Gripper Servo — Mencapit & Rotasi 0°–180°

Capitan digerakkan servo, bisa dibuka-tutup untuk menjepit benda, dan seluruh unit gripper bisa berotasi 0°–180° (titik tengah 90°) untuk mengatur sudut jepitan sesuai orientasi benda.

Gripper servo posisi terbuka maksimal, jarak capit 32,55 mm

Terbuka maksimal — jarak capit ±32,55 mm.

Gripper servo posisi tertutup/mencapit

Tertutup — posisi mencapit.

Rotasi gripper servo 0 derajat sampai 180 derajat, titik tengah 90 derajat

Rotasi 0°–180°, titik tengah 90°.

Bukaan capit bisa dikustom

Jarak bukaan bawaan (±32,55 mm) cukup untuk kebanyakan benda kecil-sedang. Kalau kebutuhan Anda mencapit benda yang lebih besar dari bukaan standar, bentuk capit bisa dikustom sesuai kebutuhan — silakan hubungi/diskusikan dengan admin untuk kebutuhan spesifik ini.

Gripper Vacuum — Pompa Sudah Terpasang di Bodi

Berbeda dari gripper servo/pen, gripper vacuum butuh sumber hisapan (pompa). Pada RNV4, pompa vakum sudah terpasang di dalam bodi robot dari pabrik — Anda tidak perlu memasang atau mengkabel pompa terpisah, tinggal pasang ujung gripper vacuum ke lengan dan langsung bisa dipakai.

Perkiraan ukuran dan jarak gripper vacuum dari sambungan lengan

Perkiraan ukuran & jarak gripper vacuum dari sambungan lengan (satuan mm).

Dimensi Dudukan — untuk Gripper/Mount Custom

Pola lubang baut di ujung lengan (dudukan bawaan untuk gripper pen) — dipakai kalau Anda ingin merancang gripper atau mount custom sendiri (bukan dari 3 pilihan bawaan) yang menempel langsung ke ujung lengan robot.

Jarak lubang baut dudukan gripper di ujung lengan robot — 17,80mm horizontal atas, 23,60mm horizontal bawah, 21,40mm vertikal
Tampak 3D dudukan gripper di ujung lengan robot

Tampak depan (kiri) & 3D (kanan) dudukan gripper di ujung lengan — satuan mm.

Jarak horizontal — pasangan baut atas 17,80 mm
Jarak horizontal — pasangan baut bawah 23,60 mm
Jarak vertikal — atas ke bawah 21,40 mm

Perhatikan pola 4 lubang baut ini bukan persegi panjang sempurna (jarak atas dan bawah beda, 17,80mm vs 23,60mm) — pastikan mount custom Anda mengikuti pola trapesium ini, bukan diasumsikan simetris.

Langkah berikutnya: Kalibrasi (hwConfig) · 10 perintah paling berguna

Kemasan & Styrofoam Pelindung

Intinya: Robot dikirim dalam kardus 50 × 50 × 20 cm dengan styrofoam yang dibentuk mengikuti bagian-bagian robot.

Robot dikemas dalam styrofoam custom yang dibentuk mengikuti kontur bodi & lengan, dipasang rapat di dalam kardus 50 × 50 × 20 cm.

Styrofoam dibuka sebagian, robot terlihat terkunci rapat di dalamnya

Styrofoam dibuka sebagian — robot terlihat terkunci rapat di dalamnya.

Bentuk 3D styrofoam custom untuk kardus 50x50x20cm

Bentuk styrofoam custom, dicetak mengikuti kontur tiap komponen robot.

Foto Kemasan Asli

Contoh kemasan sungguhan yang dikirim ke pembeli — foto langsung dari unit yang sudah dikemas, bukan render.

Tampilan kardus pengiriman RNV4 dari luar, dilapisi lakban FRAGILE

Kardus pengiriman — dilapisi lakban FRAGILE di semua sisi.

Sisi lain kardus pengiriman RNV4 dengan simbol penanganan

Sisi lain kardus, lengkap simbol penanganan (fragile, lindungi dari air).

Kardus RNV4 dibungkus plastik wrap tambahan sebelum diserahkan ke kurir

Dibungkus plastik wrap tambahan sebagai lapisan pelindung ekstra saat pengiriman.

Bagian dalam kardus RNV4 setelah dibuka, styrofoam custom dengan slot komponen

Bagian dalam setelah dibuka — slot styrofoam terpisah untuk tiap komponen.

Robot RNV4 terpasang rapat di dalam styrofoam beserta aksesori

Robot terkunci rapat di styrofoam, lengkap kabel & aksesori dalam kantong terpisah.

Sudut lain isi kardus RNV4, memperlihatkan gripper cadangan

Sudut lain — gripper cadangan & kelengkapan lain yang ikut dikemas.

Lapisan atas kemasan RNV4H2: komponen pendamping tertata dalam slot styrofoam masing-masing

Lapisan atas — komponen pendamping tertata dalam slot styrofoam masing-masing.

Lapisan bawah kemasan RNV4H2: rangka robot merah terkunci di styrofoam bersama kabel, gripper, dan silica gel

Lapisan bawah — rangka robot terkunci di styrofoam, lengkap dengan kabel, gripper, dan silica gel.

Isi Paket

✓ Robot RNV4 — 1 unit
✓ Rel robot (E0) — 1 unit
✓ Gripper servo — 1 unit
✓ Gripper pen — 1 unit
✓ Gripper vacuum — 1 unit
✓ Baut gripper + nut
✓ Kabel USB
✓ Adaptor/power supply 12V
✓ SD card — sudah terpasang & siap pakai di robot
✓ Benda uji coba (untuk latihan pick-and-place)
✓ Kabel ties

Isi paket dapat berubah sewaktu-waktu — rujukan resmi & terbaru selalu di halaman produk /belanja.

Garansi

3 bulan untuk kerusakan pabrik/produksi — biaya servis gratis.

Di luar cakupan (kelalaian pengguna, mis. salah tegangan atau salah pemakaian): tetap dilayani, cukup bayar komponen yang rusak tanpa biaya jasa servis.

Syarat klaim: hubungi lewat WhatsApp/email dengan bukti pembelian, unit dikirim ke alamat yang diarahkan admin, biaya pengiriman klaim ditanggung pembeli. Detail lengkap di Syarat Layanan.

Langkah berikutnya: Mulai dari Nol · Dimensi & Desain

Kinematika & Geometri Lengan

Intinya: Ujung lengan menjangkau radius 113,03–329,72 mm dengan tinggi Z −140 sampai 245 mm.

Metode: Geometric closed-form IK (bukan Jacobian/iteratif) — semua sudut dihitung langsung dari trigonometri (law of cosines), deterministik dan cepat.

Diagram inverse kinematics RNV4

Dimensi Mekanis (config.h)

LOW_SHANK_LENGTH 175,0 mm Panjang lengan bawah (bahu → siku)
HIGH_SHANK_LENGTH 175,0 mm Panjang lengan atas (siku → ujung)
END_EFFECTOR_OFFSET 48,59 mm Offset dari ujung lengan atas ke pusat end-effector
INITIAL_X 0,0 mm Posisi X saat home
INITIAL_Y 223,59 mm HIGH_SHANK + EE_OFFSET (175 + 48,59)
INITIAL_Z 175,0 mm LOW_SHANK_LENGTH (lengan bawah vertikal saat home)

Sistem Koordinat

X Kiri / Kanan Lateral dari posisi home
Y Depan (jarak horizontal dari base) Y > 0 = di depan robot
Z Vertikal Z naik = joint shoulder naik

Batasan Workspace

Z Max 245,0 mm (LOW_SHANK + 70)
Z Min -140,0 mm (konstanta tetap)
R Min 113,03 mm (law of cosines, sudut lengan minimum)
R Max 329,72 mm (law of cosines, sudut lengan maksimum)

Rumus IK (robotGeometry.cpp :: calculateGrad())

r_ee = √(x² + y²) r_rot = r_ee − EE_OFFSET r_side = √(r_rot² + z²) θ_rot = asin(x / r_ee) → motor stepperRotate (Z) θ_elbow = acos((L_low² + L_high² − r_side²) / (2·L_low·L_high)) θ_high = π − θ_elbow θ_low = acos(z / r_side) − acos((L_low² − L_high² + r_side²) / (2·L_low·r_side)) → motor stepperLower (Y) stepperHigher (X) = θ_high + θ_low (sudut absolut, karena siku "menunggangi" bahu)

Langkah berikutnya: Gearbox & Transmisi · Kalibrasi (hwConfig)

Gearbox & Transmisi

Intinya: Reduksi 15:1 untuk bahu, siku, dan rotasi base (tahap 60:12 lalu 90:30), sama dengan RNV4.

Compound timing belt drive 2-stage (bukan gear mesh langsung), rasio total 15:1. Berlaku untuk axis X, Y, Z — tidak berlaku untuk E0 (rel), yang punya jalur konversi mm sendiri.

Motor (12T) --Belt A (150mm, 75T)--> Jackshaft (60T/30T) --Belt B (230mm, 115T)--> Sendi (90T) 5 : 1 3 : 1 Total = 5 × 3 = 15 : 1

Spesifikasi

Rasio total 15 : 1
Pulley motor 12T (beli jadi, bukan cetak)
Pulley jackshaft besar 60T (cetak 3D)
Pulley jackshaft kecil 30T (cetak 3D)
Pulley utama (sendi) 90T (cetak 3D)
Belt A (motor → jackshaft) 150mm / 75T, jarak poros (C1) = 36,59mm
Belt B (jackshaft → sendi) 230mm / 115T, jarak poros (C2) = 50,76mm
Total jarak motor → sendi 87,35mm (fixed, batasan ruang fisik)
Tipe belt GT2, pitch 2mm, lebar 6mm
Efisiensi transmisi (estimasi) ±0,85–0,90 (2-stage, belt)

Konstanta Firmware (config.h)

#define MOTOR_GEAR_TEETH 12.0 #define MAIN_GEAR_TEETH 180.0 // BUKAN 90 — ini rasio efektif (12 × 15), bukan gigi fisik pulley sendi

RampsStepper (RampsStepper.cpp) hanya mengenal satu rasio tunggal MAIN_GEAR_TEETH / MOTOR_GEAR_TEETH — tidak tahu ada jackshaft. Kalau rasio berubah lagi, hitung ulang MAIN_GEAR_TEETH = MOTOR_GEAR_TEETH × rasio_total_baru.

radToStepFactor = (MAIN_GEAR_TEETH / MOTOR_GEAR_TEETH) × (MICROSTEPS × STEPS_PER_REV) / (2π) = 15 × (16 × 200) / (2π) ≈ 7639,4 step/radian

Torsi Desain (sendi Y, lengan bawah — beban terberat)

Torsi statis maksimum (lengan horizontal, beban penuh) ±410 Ncm
Torsi desain (dengan safety factor 2×) ±810 Ncm
Torsi motor dibutuhkan (setelah rasio 15:1, efisiensi ~0,86-0,90) ±46-53 Ncm
Rekomendasi motor NEMA17 torsi tinggi, rating 45-59 Ncm, arus ≥1,5A/fase
Rasio gigi, pulley, dan belt tidak berubah dari RNV4: reduksi 15:1 untuk bahu, siku, dan rotasi base (tahap 60:12 lalu 90:30).

Langkah berikutnya: Motor & Driver Listrik · Kinematika & Geometri Lengan

Bukan versi Anda? Bagian ini untuk RNV4H2. Kalau robot Anda RNV4 (lama), lihat bagian yang sama untuk RNV4: Motor & Driver Listrik (RNV4)

Motor & Driver Listrik

Intinya: Sendi X/Y/Z memakai TMC2209 yang arusnya disetel dari software; rel memakai DRV8825 yang arusnya diatur trimpot.

⚠ Pasang atau cabut TMC2209 hanya saat daya mati

Mencabut atau memasang modul TMC2209 saat daya motor hidup dapat merusak driver. Matikan robot dulu.

Ringkasan

SumbuFungsiDriverDikendalikan lewatArus diatur
X Bahu TMC2209 STEP/DIR + UART Software
Y Siku TMC2209 STEP/DIR + UART Software
Z Rotasi base TMC2209 STEP/DIR + UART Software
E0 Rel (opsional) DRV8825 STEP/DIR saja Trimpot di modul (fisik)
  • Sendi lengan (X/Y/Z) memakai TMC2209 yang diajak bicara lewat satu bus UART. Arus motor, arus tahan, dan deteksi tabrakan semua diatur dari software, tanpa memutar trimpot.
  • Rel (E0) TIDAK berubah dari RNV4 lama: tetap DRV8825 terpisah, tanpa UART, arus lewat trimpot. Jangan mencari pengaturan arus rel di software — tidak ada.
  • Nomor pin tiap driver ada di bagian Tabel Pin GPIO.

Motor dan mekanik

ItemNilai
Motor Stepper NEMA17, 200 langkah/putaran (1,8°)
Reduksi bahu / siku / base 15:1 masing-masing (tahap 60:12 lalu 90:30)
Microstep X/Y/Z 16 (bawaan; bisa diubah, berlaku setelah reboot)
Resolusi sendi 200 × 16 × 15 = 48.000 langkah per putaran sendi
Rel 80 langkah/mm (microstep 16), panjang bawaan 193 mm

Catatan: motor rotasi base di rangka ini lebih pendek daripada motor bahu dan siku, sehingga torsinya lebih kecil pada arus yang sama. Karena itu arus bawaannya sengaja berbeda (lihat Arus motor).

Catu daya dan bus UART TMC2209

  • Tiga TMC2209 berbagi satu bus UART (TX lewat resistor 1 kΩ, RX terpisah). Setiap driver dibedakan oleh alamat yang di-strap di modulnya: X = 0, Y = 1, Z = 2. Alamat 3 dikosongkan.
  • Jika dua modul beralamat sama, keduanya menjawab bersamaan dan bus kacau. Periksa strap alamat (MS1/MS2) sebelum menyalakan.
  • Kalau tidak satu pun driver menjawab di bus, robot menolak menyalakan motor dan LED berkedip ungu. Ini pengaman, bukan kerusakan — penyebab tersering: modul TMC2209 belum terpasang, tegangan logika (VIO) tidak ada, atau alamat salah.
  • Pasang modul TMC2209 dalam keadaan daya mati. Mencabut/memasang modul saat daya motor hidup dapat merusak driver.

Arus motor (TMC2209)

Arus diatur per sendi, dalam mA RMS:

SendiBawaanRentang yang diizinkan
Bahu (X) 600 mA 200 – 1200 mA
Siku (Y) 600 mA 200 – 1200 mA
Base (Z) 700 mA 200 – 1200 mA
  • Nilai di luar rentang dijepit otomatis, tidak ditolak diam-diam.
  • Resistor sense modul diasumsikan 0,11 Ω (umum pada modul TMC2209 model SilentStepStick). Periksa modul yang Anda pakai — kalau resistornya lain, arus sebenarnya akan berbeda dari angka yang diatur.
  • Batas atas 1200 mA bukan batas chip, melainkan batas termal yang wajar untuk driver tanpa kipas paksa. Arus terlalu tinggi tidak gagal seketika: driver memanas sampai proteksi suhu menurunkan arus di tengah gerakan, dan langkah yang hilang di situ terlihat seperti masalah mekanik.
  • Cara tuning: mulai dari bawaan, naikkan bertahap hanya bila motor kehilangan langkah menahan beban. Jangan langsung ke arus nominal motor.

Arus tahan (saat diam)

Setelah robot diam beberapa saat, arus turun otomatis agar motor dan driver tidak panas terus.

PengaturanBawaanArti
Persen arus tahan 50 % dari arus kerja 100 % = tidak diturunkan
Jeda sebelum turun 3 detik Menjaga robot tidak melorot di jeda antar-titik
Penurunan bertahap 8 0–15; semakin besar semakin halus turunnya

Sendi yang menahan beban (terutama bahu) sebaiknya jangan diturunkan terlalu rendah.

Mode gerak dan kehalusan

  • Mode bawaan saat bergerak: SpreadCycle (torsi lebih besar, sedikit lebih berisik). Mode lain bisa dicoba lewat perintah R553 (lihat bagian R-code).
  • Bila ada bunyi "duk" berulang tiap beberapa ratus langkah pada motor X/Y, itu getaran kasar saat berputar, bukan langkah yang hilang. Periksa dahulu arus, kekencangan bracket/kopling motor, dan coba matikan Bluetooth (R24 S0) untuk membedakan penyebabnya.

Deteksi tabrakan (StallGuard) dan homing

  • X/Y/Z tidak memiliki limit switch. Pin DIAG tiap TMC2209 dipakai sebagai sinyal "motor tertahan" (StallGuard).
  • G28 memakai encoder bila acuan home sudah terisi, atau menabrak stopper mekanik dan mendeteksinya lewat StallGuard bila belum.
  • Ambang deteksi bawaan per sendi (angka lebih besar = lebih mudah terpicu = tabrakan lebih ringan): bahu 90, siku 80, base 50. Sapuan kalibrasi memakai ambang sendiri: 100 / 80 / 50.
  • StallGuard hanya valid saat motor berputar dan nilainya bergantung pada kecepatan dan arus. Mengubah arus atau kecepatan homing berarti ambang perlu diukur ulang (R531).
  • Rel memakai limit switch mekanis, bukan StallGuard.

Rel (E0) — DRV8825

  • Driver terpisah, tanpa UART. Tidak ada deteksi tabrakan; homing lewat limit switch (aktif-LOW).
  • Arus diatur trimpot (Vref) di modul DRV8825, bukan software. Rumus praktis: arus batas ≈ Vref × 2 (A). Setel dengan multimeter, daya motor menyala, tanpa beban mekanis.
  • Microstep rel ditentukan oleh pin MS1/MS2/MS3 pada modul (hardware), bukan lewat perintah.
  • Jangan menyalakan rel lebih panas dari yang dibutuhkan: DRV8825 tanpa pendingin kecil cepat panas pada arus tinggi.

Mengaktifkan dan mematikan motor

  • M17 mengaktifkan motor, M18 mematikan.
  • Pin ENABLE Y/Z/E0 digabung menjadi satu jalur. Karena itu setiap TMC2209 juga diaktifkan/dimatikan lewat UART — motor baru menyala bila kedua syarat terpenuhi. Rel (E0) hanya punya syarat pin ENABLE karena tanpa UART.
  • Saat motor mati, lengan bisa digerakkan tangan; encoder tetap membaca sudut.

Diagnosa

PerintahKegunaan
R530 Cek bus UART: berapa dari 3 driver yang menjawab (target 3/3)
R558 Lihat arus yang dipakai driver saat ini dan pengaturan arus tahan
R531 P1 Tuning StallGuard satu sendi
R553 Pilih mode gerak (StealthChop/SpreadCycle/hibrida)
R90 / R91 Baca / ubah pengaturan arus, microstep, ambang

Urutan bring-up yang disarankan untuk board baru:

  1. Pasang ketiga modul TMC2209 (daya mati), cek alamat strap.
  2. Nyalakan; R530 harus melapor 3/3.
  3. Baru G28.

Gejala umum:

GejalaKemungkinan penyebab
LED ungu berkedip, motor tidak mau menyala R530 < 3/3: driver belum terpasang, VIO tidak ada, atau alamat sama
Motor kehilangan langkah di tengah gerakan Arus terlalu rendah, atau driver terlalu panas
Motor panas saat diam Arus tahan terlalu tinggi
Homing berhenti terlalu cepat/terlalu lambat Ambang StallGuard belum cocok

Langkah berikutnya: Tabel Pin GPIO · Kalibrasi (hwConfig) · Gejala & Solusi

Bukan versi Anda? Bagian ini untuk RNV4H2. Kalau robot Anda RNV4 (lama), lihat bagian yang sama untuk RNV4: Pin & Wiring (RNV4)

Pin & Wiring

Intinya: Pasang kabel sesuai label di panel dan pakai tabel pin RNV4H2 ini, bukan tabel RNV4 lama.

Panel Belakang

Panel belakang robot RNV4H2 dengan label konektor
Panel belakang RNV4H2: tombol daya, USB, UART0, MOTOR RAIL, dua konektor OUT, jack 12 V, RESET, dan AJ PUMP.
RUSKOMPONEN AJ PUMP ON/OFF MOTOR RAIL 2B 2A 1A 1B OUT 12V GND OUT 3.3V 5V UART0 GND RX TX 3.3V USB IN 12 VOLT RESET RNV4H2
Diagram konektor panel belakang RNV4H2 beserta label pada panel.
Label panelKeterangan
ON/OFF Tombol daya (tombol bulat dengan cincin merah)
USB Konektor USB tipe B: sambungan ke komputer / RNV4 Studio
UART0 Konektor 4 pin berlabel GND, RX, TX, 3.3V — jalur serial kedua (GPIO44 dan GPIO43). Untuk modul resmi, pakai konverter RS-485 (lihat Modul Eksternal)
MOTOR RAIL Konektor 4 pin berlabel 2B, 2A, 1A, 1B — kabel motor rel, keluaran DRV8825 (lihat Wiring Motor Rel di bawah)
OUT 12V · GND Konektor 2 pin berlabel 12V dan GND
OUT 3.3V · 5V Konektor 2 pin berlabel 3.3V dan 5V
IN 12 VOLT Jack catu daya 12 V
RESET Tombol reset
AJ PUMP Penyetel kecil (trimpot) berlabel AJ PUMP

Konektor di Lengan Atas

Panel konektor di lengan atas robot RNV4H2: gripper vakum, kalibrasi/teach, UART0, dan gripper servo
Robot dilihat dari atas; panel konektor berada di lengan atas.
Label panelKeterangan
GRIPPER VACUM Konektor biru untuk gripper vakum
KALIBRASI/TEACH Tombol merah berlabel Kalibrasi/Teach
UART0 Konektor 4 pin berlabel 3.3V, TX, RX, GND
GRIPPER SERVO Konektor 3 pin berlabel D, 5V, GND
Ikuti label yang tercetak pada konektornya. Urutan label UART0 di lengan atas ditulis 3.3V TX RX GND, sedangkan di panel belakang GND RX TX 3.3V; jangan menyambung berdasarkan urutan dari gambar lain.

Wiring Motor Rel

Kabel dari konektor MOTOR RAIL di panel belakang ke motor stepper pada rel
Kabel motor rel: dari konektor MOTOR RAIL di panel belakang (panah) ke motor di ujung rel.

Hubungkan kabel motor rel dari konektor MOTOR RAIL (2B, 2A, 1A, 1B) di panel belakang ke motor pada ujung rel, mengikuti arah panah pada gambar.

Tabel Pin GPIO

ESP32-S3-WROOM-1 N16R8 — peta fungsi pin Dikelompokkan per fungsi (bukan tata letak fisik papan). Nomor = GPIO. Stepper X (bahu) · TMC2209 GPIO10 STEP GPIO11 DIR GPIO40 ENABLE (sendiri) GPIO18 DIAG StallGuard Stepper Y (siku) · TMC2209 GPIO15 STEP GPIO16 DIR GPIO12 ENABLE (bersama) GPIO5 DIAG StallGuard Stepper Z (base) · TMC2209 GPIO8 STEP GPIO9 DIR GPIO12 ENABLE (bersama) GPIO6 DIAG StallGuard Rel E0 · DRV8825 GPIO38 STEP GPIO39 DIR GPIO12 ENABLE (bersama) GPIO7 limit switch Bus UART driver TMC2209 GPIO3 TX (resistor 1 kΩ) GPIO46 RX Bus I2C encoder AS5600 GPIO4 SDA GPIO17 SCL Servo GPIO21 servo rotasi GPIO47 servo gripper Equipment GPIO14 pompa vakum GPIO13 katup udara SD card (SPI) GPIO1 CS GPIO2 SCK GPIO42 MOSI GPIO41 MISO LED & tombol GPIO48 LED status WS2812 GPIO0 tombol BOOT UART0 (modul eksternal) GPIO43 TX GPIO44 RX lewat konverter RS-485 USB native GPIO19 D− GPIO20 D+ konsol & RNV4 Studio JANGAN DIPAKAI GPIO33–37 terhubung ke PSRAM octal di modul (batas fisik) GPIO45 strapping tegangan flash — jangan beri pull-up/beban GPIO26–32 flash internal, tidak dikeluarkan ke konektor GPIO19/20, 43/44 sudah dipakai USB dan UART0
Peta fungsi pin per kelompok (diagram bisa digeser ke samping di layar kecil).

Tabel pin lengkap papan kontroler RNV4H2 (ESP32-S3-WROOM-1 N16R8): stepper, bus komunikasi driver, encoder, equipment, SD card, dan sisanya. Berlaku untuk firmware v2.13.0 ke atas.

⚠ Perhatian Keselamatan

Jangan menyolder atau mengubah wiring berdasarkan tabel RNV4 lama. Lebih dari sepuluh GPIO berpindah fungsi. Contoh yang paling berbahaya: GPIO40 dulu pin ENABLE rel, sekarang pin ENABLE sendi X, dan GPIO36/37 dulu servo, sekarang tidak boleh dipakai apa pun. Menyambung beban lama ke pin yang sama bisa merusak papan atau peralatan.

Firmware RNV4H2 tidak berjalan di board RNV4 lama, dan sebaliknya. Kalau tidak ada satu driver motor pun yang menjawab saat boot, robot menolak menyalakan motor dan LED ungu berkedip.

Ringkasan penggunaan pin

KelompokPin
Stepper X (bahu) 10, 11, 18, 40
Stepper Y (siku) 15, 16, 5, 12
Stepper Z (rotasi base) 8, 9, 6, 12
Rel (E0) 38, 39, 7, 12
Bus UART driver motor 3, 46
Bus I2C encoder 4, 17
Servo 21, 47
Equipment 13, 14
SD card 1, 2, 41, 42
LED status 48
Tombol BOOT 0
UART0 (modul eksternal) 43, 44
USB native 19, 20

Stepper motor

Sendi X, Y, dan Z memakai driver TMC2209 (diatur lewat UART, dengan deteksi beban StallGuard untuk homing tanpa limit switch). Rel (E0) memakai driver DRV8825 terpisah dan tetap memakai limit switch.

FungsiX (bahu)Y (siku)Z (rotasi base)E0 (rel)
Driver TMC2209 TMC2209 TMC2209 DRV8825
STEP 10 15 8 38
DIR 11 16 9 39
ENABLE 40 (sendiri) 12 (bersama) 12 (bersama) 12 (bersama)
DIAG / MIN 18 (DIAG, StallGuard) 5 (DIAG, StallGuard) 6 (DIAG, StallGuard) 7 (limit switch)

Catatan:

  • ENABLE driver aktif-LOW, baik TMC2209 maupun DRV8825. GPIO12 disambung paralel ke pin ENABLE driver Y, Z, dan rel (satu keluaran ke tiga titik). GPIO40 hanya ke ENABLE driver X.
  • DIAG pada X/Y/Z adalah keluaran StallGuard dari driver. Tidak ada limit switch mekanis di sendi X, Y, dan Z. Pin-nya adalah pin yang dulu dipakai limit switch, tetapi fungsinya berbeda: ia keluaran driver, bukan masukan saklar.
  • Rel memakai limit switch atau sensor magnet di GPIO7 (aktif-LOW). Rel tidak punya StallGuard.
  • Arus motor rel diatur dengan trimmer VREF di modul DRV8825 (obeng dan multimeter), bukan lewat perangkat lunak seperti X/Y/Z. Microstepping rel diatur lewat pin MS1/MS2/MS3 di modulnya.

Bus komunikasi driver TMC2209 (UART)

Satu bus UART setengah dupleks untuk tiga driver (X, Y, Z). Rel tidak ada di bus ini.

SinyalPinKeterangan
TX (ESP32 → driver) GPIO3 Lewat resistor 1 kΩ ke bus bersama
RX (driver → ESP32) GPIO46 Dari bus bersama (membaca gema TX dan balasan)

Bus bersama menyambung ke pin PDN_UART ketiga driver. Alamat tiap driver diatur lewat strap MS1/MS2 di PCB (bukan lewat GPIO):

DriverAlamatMS1MS2
X 0 GND GND
Y 1 VCC_IO GND
Z 2 GND VCC_IO
(3) tidak dipakai    

Dua driver dengan alamat yang sama akan menjawab bersamaan dan membuat bus kacau. Periksa strapnya kalau R530 melaporkan hasil yang aneh.

Encoder sudut (I2C)

Sensor AS5600 di sendi X, Y, dan Z, lewat multiplexer I2C TCA9548A. Alamat AS5600 tetap (0x36) dan tidak bisa diubah, jadi tiap sensor wajib punya channel multiplexer sendiri.

SinyalPin
SDA GPIO4
SCL GPIO17
Channel multiplexerSensor
0 Sendi X (bahu)
1 Sendi Y (siku)
2 Sendi Z (rotasi base)
3–7 Kosong. Rel tidak memakai encoder
  • Pull-up SDA dan SCL ke 3,3 V (2,2–10 kΩ) wajib ada di papan.
  • Jangan memberi pull-up atau beban ke GPIO45 (lihat Pin yang tidak boleh dipakai).
  • Nomor channel adalah wiring: harus sama dengan pasangan SDn/SCn tempat sensor itu disolder.

Servo

FungsiPinKeterangan
Servo rotasi GPIO21 Memutar end-effector
Servo gripper GPIO47 Membuka dan menutup gripper

Dulu servo memakai GPIO36 dan GPIO37. Keduanya terhubung fisik ke PSRAM di dalam modul dan tidak boleh dipakai, jadi servo dipindah.

Equipment (vakum dan katup)

FungsiPinPerintah
Pompa vakum GPIO14 M10 hidup / M11 mati
Katup udara (lepas) GPIO13 M10 / M11
  • Kipas tidak lagi memakai GPIO. Kipas disaklar langsung oleh termostat bimetal (KSD9700) di hardware; firmware tidak membaca suhu dan tidak mengendalikan kipas. Pastikan memakai varian NO (Normally Open), bukan NC: varian NC mematikan kipas justru saat panas.
  • Sensor suhu DS18B20 dihapus. Pin GPIO4-nya dipakai ulang sebagai SDA encoder.

SD card (SPI)

SinyalPin
CS GPIO1
SCK GPIO2
MOSI GPIO42
MISO GPIO41

Lain-lain

FungsiPinKeterangan
LED status (WS2812) GPIO48 Warna dan arti kedipnya: lihat Arti Warna LED
Tombol BOOT GPIO0 Fungsi resmi pin ini. Tekan pendek: Home, putar program terdaftar, atau hentikan, sesuai keadaan robot
UART0 RX GPIO44 Jalur modul eksternal (lewat konverter RS-485)
UART0 TX GPIO43 Jalur modul eksternal (lewat konverter RS-485)
USB D− / D+ GPIO19 / GPIO20 USB native: konsol dan Studio. Bukan GPIO biasa

Pin yang tidak boleh dipakai

PinAlasan
GPIO33–GPIO37 Terhubung fisik ke PSRAM octal di dalam modul N16R8. Tidak boleh dipakai sebagai GPIO apa pun, walaupun PSRAM tidak dipakai. Ini batas fisik modul, bukan pengaturan perangkat lunak
GPIO45 Strapping tegangan flash (VDD_SPI). Kalau tertarik rangkaian eksternal saat reset, tegangan flash dan PSRAM bisa salah: gagal boot atau merusak hardware. Sengaja dikosongkan
GPIO19, GPIO20 USB D− / D+
GPIO26–GPIO32 Flash internal; tidak dikeluarkan ke konektor
GPIO43, GPIO44 UART0, sudah dipakai modul eksternal

Pin strapping lain yang dipakai tetapi aman: GPIO0 (tombol BOOT, fungsi resminya), GPIO3 (TX bus driver; tidak memengaruhi boot karena memakai USB native), dan GPIO46 (RX bus driver).

Yang berubah dari RNV4 lama

FungsiRNV4 lamaRNV4H2Catatan
ENABLE X GPIO12 GPIO40 Pin sendiri
ENABLE Y GPIO17 GPIO12 Bersama Z dan rel
ENABLE Z GPIO3 GPIO12 Bersama Y dan rel
ENABLE rel (E0) GPIO40 GPIO12 Bersama Y dan Z. GPIO40 sekarang milik sendi X
Limit switch X, Y, Z GPIO18, 5, 6 (saklar) GPIO18, 5, 6 (DIAG StallGuard) Pin sama, fungsi berbeda: keluaran driver, bukan saklar
Servo rotasi GPIO36 GPIO21 Pin lama terhubung ke PSRAM
Servo gripper GPIO37 GPIO47 Pin lama terhubung ke PSRAM
Sensor IN1 GPIO21 tidak ada di papan Sekarang dari modul eksternal
Sensor IN2 GPIO47 tidak ada di papan Sekarang dari modul eksternal
Sensor IN3 GPIO35 tidak ada di papan Sekarang dari modul eksternal
Sensor suhu DS18B20 GPIO4 dihapus GPIO4 dipakai SDA encoder
Spindle / laser GPIO46 dihapus GPIO46 dipakai RX bus driver
Kipas tanpa GPIO tanpa GPIO Tetap disaklar termostat
Bus UART driver — GPIO3 (TX), GPIO46 (RX) Baru
Bus I2C encoder — GPIO4 (SDA), GPIO17 (SCL) Baru
UART0 komunikasi modul eksternal (RS-485) Ganti fungsi

Pin yang tidak berubah: STEP/DIR semua sendi dan rel (10, 11, 15, 16, 8, 9, 38, 39), limit switch rel (GPIO7), pompa (GPIO14), katup (GPIO13), SD card (1, 2, 41, 42), LED (GPIO48), dan tombol BOOT (GPIO0).

Daftar pemeriksaan sebelum menyolder

  1. Pastikan Anda memakai tabel ini, bukan tabel RNV4 lama.
  2. Tidak ada beban lama yang masih tersambung ke GPIO36, GPIO37, GPIO35, atau GPIO45.
  3. ENABLE rel tidak lagi di GPIO40: GPIO40 hanya untuk driver X.
  4. Resistor 1 kΩ terpasang di jalur TX bus driver (GPIO3).
  5. Alamat ketiga driver TMC2209 berbeda (lihat Bus komunikasi driver TMC2209).
  6. Pull-up SDA/SCL (GPIO4/GPIO17) terpasang, dan tidak ada pull-up ke GPIO45.
  7. Kipas memakai termostat varian NO.
  8. Setelah dinyalakan, jalankan R530: hasil yang benar 3/3 driver menjawab. Lalu R540 untuk encoder.

Langkah berikutnya: Skematik Elektronik · Modul Eksternal · Motor & Driver Listrik

Modul Eksternal

Intinya: Modul IO tersambung ke robot lewat RS-485 pada UART0; robot yang bertanya, modul yang menjawab.

Robot RNV4H2 bisa diperluas dengan modul eksternal: papan kecil yang menambah sensor, relay, servo, dan nanti kamera atau sensor warna, tanpa mengubah firmware robot. Modul tersambung ke robot lewat kabel RS-485 pada konektor UART0 di panel belakang.

Gambaran umum

robot RNV4H2 modul IO ┌──────────────┐ TTL ┌────────┐ A+ / B− / GND ┌────────┐ TTL ┌───────────────┐ │ UART0 ├─────────┤ RS-485 ├─────────────────┤ RS-485 ├─────────┤ GND RX TX VCC │ │ GND RX TX 3V3│ │ papan │ (3 kawat) │ papan │ │ 3 sensor │ │ │ │ │ │ │ │ 3 relay │ └──────────────┘ └────────┘ └────────┘ └───────────────┘
  • Robot yang bertanya, modul yang menjawab. Modul tidak pernah bicara sendiri. Ini membuat jalur dua-kawat tidak pernah bertabrakan.
  • Modul memperkenalkan dirinya sendiri: ia menyebut kanal apa saja yang dimilikinya (masukan, relay, servo). Robot tidak perlu tahu jenis modulnya lebih dulu.
  • Sumber masukan IN1–IN4 robot kini berasal dari modul. Kondisi sensor di program SD (mis. IN1 H) dan perintah R1–R4 membaca dari modul, bukan dari pin di papan robot.

Kenapa RS-485, bukan kabel TTL biasa

 RS-485TTL langsung
Jarak kabel puluhan meter di bawah 50 cm
Tahan derau/lonjakan ya (sinyal diferensial) tidak
Aman untuk pin robot ya: pin kedua papan tidak pernah bersentuhan pin robot bisa rusak kalau catu modul mati

Yang dibutuhkan

KomponenKeterangan
Modul IO RNV4H2 Papan masukan dan keluaran: 3 konektor sensor, 3 relay, ESP di tengah papan
2 papan konverter TTL ↔ RS-485 Satu di sisi robot, satu di sisi modul. Pakai papan 4-pin (VCC, TXD, RXD, GND) berarah-otomatis. Lihat peringatan tegangan di Perhatian Keselamatan
Catu 12 V untuk modul Masuk ke terminal DCIN1 di papan modul
Sensor Contoh pada gambar: sensor penghalang IR (deteksi objek), tiga buah
Kabel Tiga kawat antar papan RS-485 (A+, B−, GND) dan kabel konektor 4 pin ke robot dan modul

Skematik dan tampilan 3D PCB modul IO: lihat bagian Skematik Elektronik — Modul IO.

Wiring

⚠ Konverter RS-485 harus 3,3 V

Pakai konverter yang bisa dicatu 3,3 V (cip MAX3485 atau SP3485). Papan 5 V saja (MAX485) mengirim sekitar 5 V ke pin robot yang hanya tahan 3,3 V dan bisa merusaknya seketika.

Wiring modul IO ke robot RNV4H2: dua papan konverter RS-485 dan tiga sensor
Robot RNV4H2 ke modul IO lewat dua papan konverter RS-485; tiga sensor penghalang IR terpasang di konektor SENSOR1–3.

1. Robot → papan RS-485 (sisi robot)

Konektor UART0 di panel belakang robot, empat pin berurutan: GND, RX, TX, 3.3V.

Pin UART0 robotPapan RS-485 sisi robot
GND GND
3.3V VCC
TX TXD
RX RXD

TXD ke TX dan RXD ke RX, tidak disilang: label pada papan konverter mengikuti sudut pandang mikrokontrolernya. Kalau sesudah semuanya tersambung tidak ada komunikasi sama sekali, tukar dulu pasangan TX/RX sebelum mencurigai yang lain.

2. Papan RS-485 ↔ papan RS-485

Tiga kawat, tersambung lurus:

Papan sisi robotPapan sisi modul
A+ A+
B− B−
GND GND

Kawat GND wajib ada. RS-485 membutuhkan acuan ground bersama; dua kawat A dan B saja tidak cukup.

3. Papan RS-485 (sisi modul) → modul IO

Konektor komunikasi di papan modul, empat pin: GND, RX, TX, VCC.

Papan RS-485 sisi modulKonektor modul IO
GND GND
VCC VCC
TXD TX
RXD RX

4. Daya modul

Terminal DCIN1 di papan modul menerima 12 V. Daya ini menghidupkan relay dan papan modul. Perhatikan polaritasnya (+ dan − tertera di papan).

5. Sensor

Tiga konektor sensor di sisi bawah papan, masing-masing VCC, GND, OUT:

KonektorMenjadi masukan robot
SENSOR1 IN1
SENSOR2 IN2
SENSOR3 IN3

Tiap konektor punya tombol uji di sebelahnya (SW-SENSOR1–3): menekannya meniru sensor terpicu, jadi sambungan ke robot bisa diuji tanpa sensor terpasang.

6. Relay

Tiga relay (OUT1–OUT3), masing-masing punya terminal NC, COM, NO. Satu LED kuning di dekat tiap relay menyala saat relay aktif. Relay diperintah dari robot dengan R701.

Cara menyambung beban, batas arus, dan keselamatannya: lihat bagian Relay Modul IO.

⚠ Perhatian Keselamatan — baca sebelum menyambung

  1. Tegangan papan konverter. Pakai konverter yang bisa dicatu 3,3 V (cip MAX3485, SP3485, atau sejenisnya; periksa tulisan di cipnya). Papan 5 V saja (MAX485) mengirim ~5 V ke pin robot yang hanya tahan 3,3 V, dan bisa merusaknya seketika.
  2. VCC tiap papan konverter diambil dari rail 3,3 V papan yang ditempelinya, tidak pernah dari 5 V dan tidak dari catu papan seberangnya.
  3. Ground disambung lebih dulu, bersama konektor datanya.
  4. Robot dinyalakan lebih dulu, modul kemudian, kalau tidak berbagi satu catu.
  5. Pasang resistor seri 330 Ω–1 kΩ di jalur data antara papan konverter dan pin mikrokontroler kalau papannya belum membawanya.
  6. Terminasi 120 Ω: banyak papan sudah memasangnya tetap. Untuk dua node itu benar. Kalau kelak ada lebih dari dua node, hanya ujung terjauh yang boleh ber-terminasi.

Memeriksa bahwa modul terbaca

Sambungkan robot ke Studio (atau serial monitor) dan jalankan:

PerintahHasil yang benar
R700 Modul muncul di daftar, lengkap dengan kanalnya. Tanda [BASI] berarti sudah lebih dari 1,5 detik tanpa kabar
R5 IN1–IN3 terbaca beserta kesegaran sumbernya
R1 IN1: HIGH atau IN1: LOW
R701 P1 S1 lalu R701 P1 S0 Relay 1 menyala lalu mati (LED kuning ikut)

Kalau sumbernya diam, R1 menjawab TIDAK DIKETAHUI, bukan LOW. Itu disengaja: kabel yang lepas tidak boleh terbaca seperti sensor sehat yang sedang tidak terpicu.

Tombol uji di papan modul (SW-SENSOR1–3) mengubah nilai R1–R3 saat ditekan.

Memakai di program

Sensor sebagai syarat

Di program SD, masukan modul dipakai persis seperti sensor biasa: IN1 H (tunggu sampai tinggi) dan IN1 L (tunggu sampai rendah), serta percabangan dengan label. Panduan lengkapnya ada di bagian Sensor Digital.

Modul melaporkan tingkat pin apa adanya, bukan "terdeteksi" atau "tidak". Sensor penghalang IR yang umum menarik OUT ke rendah saat ada objek, jadi untuk "tunggu objek datang" biasanya yang dipakai IN1 L. Cek dengan R1 saat objek ada dan tidak ada.

Relay dan servo di modul

PerintahFungsi
R701 P<1-3> S<0|1> Relay nomor P nyala (S1) atau mati (S0). Jumlah relay mengikuti modulnya
R702 [P<n>] S<0-180> Servo nomor P di modul ke sudut S (hanya pada modul yang punya servo)

Perintah ini boleh menjadi baris di program SD. Robot menunggu konfirmasi dari modul. Kalau modul tidak menjawab setelah beberapa kali kirim ulang, kanalnya dianggap gagal, tercatat sebagai error, dan program yang sedang berjalan dihentikan. Ini disengaja, karena baris berikutnya biasanya gerakan yang mengandalkan keluaran itu sudah aktif.

Keselamatan di sisi data

SituasiYang dilakukan robot atau modul
Modul diam lebih dari 1,5 detik Nilainya dianggap tidak ada, bukan "rendah". Program yang bergantung padanya berhenti dengan pesan jelas
Robot diam lebih dari 2,5 detik Modul mengembalikan relay dan servo ke posisi aman yang ia umumkan sendiri. Kabel lepas tidak membiarkan relay tetap menyala
Dua modul mengaku peran yang sama Yang kedua ditolak dan tercatat error, supaya robot tidak membaca sensor yang salah

Batas yang ada saat ini: robot punya empat masukan logis (IN1–IN4) yang bisa dipakai di program SD. Modul boleh punya lebih banyak masukan (modul acuan versi ESP32 punya delapan); selebihnya tetap terbaca di R700 tetapi belum bisa dipakai sebagai syarat di program.

Modul yang tersedia dan yang direncanakan

ModulKeadaanKeterangan
Modul IO Tersedia Papan pada gambar: 3 masukan sensor, 3 relay. Versi ESP32: 8 masukan, 4 relay, 4 servo
Hub (ESP kecil) Direncanakan Menyatukan beberapa modul menjadi satu jalur ke robot. Setiap modul dicolok ke port hub sendiri; hub yang memberi alamat sesuai port, jadi dua modul sejenis tidak pernah bentrok. Baru diperlukan saat modul kedua datang; sisi robot tidak berubah karenanya
Modul sensor warna Direncanakan Melaporkan nama warna dan nilainya
Modul kamera Direncanakan Melaporkan hasil pengenalan (mis. "ada objek", posisi, jumlah), bukan gambar. Gambar dan berkas besar tidak lewat jalur ini
Modul keluaran lain Direncanakan Katup, motor kecil, dan sejenisnya

Susunan setelah ada hub

┌────────────────┐ ┌──────────────┐ robot ── RS-485 ───┤ HUB ├────────┤ modul IO │ │ (ESP kecil) ├────────┤ modul warna │ │ ├────────┤ modul kamera│ └────────────────┘ └──────────────┘

Yang perlu diketahui sejak awal tentang kamera dan modul "pintar"

  • Modul yang butuh waktu lama untuk mengolah data (kamera) tidak menahan jawabannya: ia mengolah di latar, lalu menjawab dengan hasil terakhir yang sudah ada, bersama umur hasilnya.
  • Kamera yang ingin menghentikan atau mencabangkan program harus menyediakan satu keluaran ya/tidak ("objek terdeteksi"). Robot mencabang dari sinyal itu. Koordinat atau nilai angka lainnya bisa dibaca lewat R700, tetapi belum bisa dipakai sebagai syarat di program.

Pemecahan masalah

GejalaKemungkinan penyebabTindakan
R700 kosong, tidak ada modul Modul tidak mendapat daya, TX/RX tertukar, atau GND antar papan RS-485 tidak tersambung Cek 12 V di DCIN1, cek kawat GND, tukar TX/RX
R700 menampilkan [BASI] Modul sempat hidup lalu diam Cek kabel dan daya modul; jalankan R700 S1 untuk meminta modul memperkenalkan diri lagi
R1 menjawab TIDAK DIKETAHUI Sumber masukan tidak melapor Sama seperti di atas
Program berhenti dengan "sumber IN1 tidak tersedia" Modul diam saat program menunggu sensor Perbaiki sambungan modul, jalankan program lagi
Relay tidak bereaksi pada R701 Modul tidak menjawab, atau relay tidak ada di modul itu Lihat R700: nomor relay harus ada di daftar kanal
Robot mengaku modul hilang tepat sesudah Home Modul sempat sibuk Cek R700 lagi; kalau segar, tidak ada masalah
Konverter RS-485 panas atau robot mendadak mati Papan 5 V dicatu atau disambung ke pin 3,3 V Matikan, ganti dengan konverter 3,3 V

Langkah berikutnya: Relay Modul IO · Sensor Digital · Gejala & Solusi

Relay Modul IO

Intinya: Relay hanya hidup atau mati: pakai COM + NO, catu beban terpisah, dioda flyback, dan sekering.

Modul IO punya relay yang bisa diperintah dari robot untuk menyalakan dan mematikan perangkat lain: motor, pompa, conveyor, katup, lampu, atau mesin di sebelah robot. Bagian ini menjelaskan cara menyambung bebannya, cara memerintahnya dari program, dan batas keselamatannya. Ia melengkapi bagian Modul Eksternal (yang menjelaskan wiring modul ke robot).

⚠ Perhatian Keselamatan

Relay bisa mengalirkan arus yang berbahaya. Beban listrik jala-jala (AC 110/220 V) hanya boleh disambung oleh orang yang memahami instalasi listrik, dengan kotak pelindung dan sekering. Mulailah dengan beban tegangan rendah (12 V atau 24 V DC) sampai Anda terbiasa.

Apa yang bisa dan tidak bisa dilakukan relay

Relay adalah saklar yang dikendalikan robot. Ia hanya punya dua keadaan: hubung dan putus.

BisaTidak bisa
Menyalakan dan mematikan motor DC, pompa, kipas, conveyor Mengatur kecepatan motor (relay hanya hidup/mati)
Membuka dan menutup katup, solenoid Membalik arah motor dengan aman (butuh rangkaian khusus, lihat Membalik arah motor)
Menyalakan lampu, buzzer, indikator Mengalirkan arus melebihi kemampuan kontaknya
Memberi kontak kering ke mesin lain ("seolah menekan tombol") Menggantikan sistem pengaman mesin
Mengaktifkan kontaktor untuk beban besar Bekerja tanpa daya 12 V di papan modul

Pengaturan kecepatan, arah, atau sinyal analog tidak bisa lewat relay. Untuk itu diperlukan modul keluaran khusus (lihat daftar modul di bagian Modul Eksternal).

Relay ini bukan motor penggerak lengan robot. Motor lengan (bahu, siku, rotasi base) dan rel digerakkan oleh driver di papan robot. Pompa vakum dan katup bawaan robot tetap dikendalikan dengan M10 / M11. Relay modul IO untuk perangkat tambahan di luar robot.

Terminal relay: NC, COM, NO

Tiap relay punya tiga terminal di papan modul:

TerminalArtiKondisi relay padamKondisi relay nyala
COM Common (kaki bersama)    
NC Normally Closed terhubung ke COM terputus dari COM
NO Normally Open terputus dari COM terhubung ke COM

Bayangkan COM sebagai poros saklar yang berpindah antara NC dan NO. Yang mana yang dipakai menentukan perilaku beban saat relay padam:

SambunganSaat relay padamSaat relay nyalaDipakai untuk
COM + NO Beban mati Beban hidup Hampir semua kasus: motor, pompa, katup
COM + NC Beban hidup Beban mati Beban yang justru harus mati saat robot menyuruh berhenti

Pilih COM + NO untuk motor dan beban yang berbahaya kalau menyala sendiri. Saat daya modul hilang, kabel komunikasi lepas, atau robot berhenti menjawab, relay padam. Dengan COM + NO, beban ikut mati. Itu perilaku yang aman.

⚠ Relay: tiga kebiasaan wajib

  1. Dioda flyback di setiap beban induktif (motor, pompa, solenoid), pita dioda ke kutub +.
  2. Sekering di kawat catu beban, sesuai arus beban.
  3. Catu beban terpisah dari catu modul; jangan mengambil arus beban dari catu modul atau dari robot.
Terminal relay NC COM NO COM = poros saklar Relay padam COM tersambung ke NC Relay nyala COM tersambung ke NO Pakai COM + NO (mati bila daya/komunikasi hilang) Contoh 1 — lampu 12 V DC Catu beban — terpisah dari catu modul IO 12 V + sekering COM NO lampu 12 V 12 V − Contoh 2 — pompa 12 V DC (beban induktif) Catu beban — terpisah dari catu modul IO 12 V + sekering COM NO M pompa 12 V dioda flyback — pita ke sisi + 12 V −
Terminal relay NC/COM/NO dan dua contoh sambung (lampu dan pompa) dengan catu beban terpisah.

Keadaan awal dan keadaan aman

SituasiKeadaan relay
Modul baru dinyalakan Padam
Robot memerintah R701 P1 S1 Nyala
Robot memerintah R701 P1 S0 Padam
Modul tidak mendengar robot lebih dari 2,5 detik (kabel lepas, robot mati atau restart) Modul memadamkan semua relay sendiri
Program dihentikan (R512) atau mode lain berjalan Relay tetap pada keadaan terakhir

Baris terakhir sering terlewat: menghentikan program tidak memadamkan relay. Selama robot masih hidup dan terhubung ke modul, relay yang sedang nyala tetap nyala. Karena itu:

  • Letakkan R701 P<n> S0 di akhir program dan di setiap titik keluar yang mungkin.
  • Pasang pemutus darurat di sisi beban (tombol stop fisik atau saklar utama) untuk beban yang berbahaya. Jangan menjadikan program robot satu-satunya cara mematikan motor.
  • Setelah R512 atau penghentian karena error, periksa dan padamkan relay dengan R701 P<n> S0.

Menyambung beban

Sebelum menyambung: periksa kemampuan relay

Kemampuan kontak (tegangan dan arus maksimum) tertulis di badan relay. Contoh yang umum untuk relay biru berkaki lima: tertera 10A 250VAC dan 10A 30VDC. Baca tulisan pada relay di papan Anda; jangan mengandalkan contoh ini. Kalau tulisan tidak terbaca, perlakukan relay sebagai beban kecil saja.

Aturan praktis:

Jenis bebanArus yang perlu diperhitungkan
Lampu, buzzer, LED Arus kerja saja
Pompa, kipas, solenoid, katup Arus kerja ditambah lonjakan saat menyala
Motor DC Arus start bisa 3–6 kali arus kerja; beri margin besar
Motor AC Lonjakan lebih besar lagi; sebaiknya lewat kontaktor (lihat Beban besar atau jala-jala)

Kalau ragu, pakai relay hanya sampai separuh dari arus tertera, dan jangan melebihi tegangan tertera.

Sambungan relay terpisah secara listrik dari papan modul: beban memakai catunya sendiri, bukan catu 12 V modul. Satu-satunya yang terhubung ke kontak relay adalah beban dan catunya.

Motor DC, pompa, kipas (12–24 V DC)

catu beban (+) ───────────────► COM (relay) NO ───────────► beban (+) catu beban (−) ──────────────────────────────── beban (−) dioda di PARALEL dengan beban (pita dioda ke sisi +)
  • Gunakan catu terpisah yang sesuai kebutuhan beban. Jangan mengambil arus beban dari catu modul atau dari robot.
  • Pasang dioda pemulih (flyback) secara paralel dengan beban induktif (motor, pompa, solenoid): sisi pita dioda ke kutub +. Tanpa dioda, saat relay memutus, motor menghasilkan lonjakan tegangan tinggi yang merusak kontak relay dan menimbulkan derau yang bisa mengganggu komunikasi RS-485 dan robot. Dioda pada papan modul hanya melindungi kumparan relay, bukan beban Anda.
  • Pasang sekering di kawat catu beban, sesuai arus beban.
  • Beban yang menimbulkan derau besar sebaiknya dijauhkan dan kabelnya dipisah dari kabel RS-485.

Katup, solenoid, lampu, buzzer

Sama seperti bagian di atas. Solenoid dan katup bersifat induktif, jadi dioda flyback tetap diperlukan. Lampu dan buzzer elektronik tidak memerlukannya.

Beban besar atau jala-jala: pakai kontaktor

Untuk motor besar atau beban AC, jangan menyambungnya langsung ke relay modul. Pakai kontaktor (atau SSR yang sesuai):

relay modul (COM + NO) ──► menyalakan KUMPARAN kontaktor ──► kontak kontaktor membawa beban besar

Relay modul hanya menyalakan kumparan kontaktor yang arusnya kecil; kontak kontaktor yang menanggung arus besar. Kumparan AC pada kontaktor juga perlu peredam (snubber RC) di kumparannya. Pekerjaan ini harus dikerjakan oleh orang yang paham instalasi listrik.

Membalik arah motor

Relay tunggal tidak bisa membalik arah. Membalik arah memakai dua relay dan harus dirancang agar kedua relay tidak pernah nyala bersamaan (hubung singkat catu). Rancangan seperti itu butuh pengunci (interlock) di rangkaian, bukan hanya di program. Tidak disarankan tanpa pengalaman; modul keluaran khusus (H-bridge) lebih aman untuk kebutuhan ini.

Memberi kontak kering ke mesin lain

Relay bisa meniru tombol yang ditekan pada mesin lain (mis. "start" conveyor atau pemicu mesin pengemas). Sambungkan COM dan NO ke dua kontak tombol mesin itu, bukan ke kutub catunya. Cek dulu tegangan kontak tombolnya.

Memerintah relay

PerintahFungsi
R701 P<n> S1 Relay nomor n nyala
R701 P<n> S0 Relay nomor n padam

n boleh 1–4 pada perintah; jumlah relay yang benar-benar ada ditentukan modulnya: modul 3 relay menerima P1–P3, modul versi ESP32 punya P1–P4. Nomor di luar yang ada ditolak modul, dan robot melaporkannya.

Contoh balasan yang benar:

>> R701 P1 S1 << R701: relay 1 -> NYALA (dikonfirmasi modul)

Robot menunggu konfirmasi dari modul. Kalau konfirmasi tidak datang, robot mengirim ulang sampai 5 kali. Kalau tetap gagal, ia melaporkan penyebabnya dan, bila sedang memutar program, menghentikan programnya. Alasannya: baris berikutnya biasanya gerakan yang mengandalkan keluaran itu sudah aktif (mis. pompa menyala sebelum lengan turun). Lebih aman berhenti daripada meneruskan dengan keluaran yang tidak jadi hidup.

BalasanArtinyaTindakan
(dikonfirmasi modul) Berhasil  
perlu N kali kirim Berhasil sesudah mengulang; jalur sempat terganggu Cek kabel RS-485
kanal rlN tidak ada atau modulnya sedang hilang Modul tidak melapor, atau nomornya tidak ada R700
TIDAK DIJAWAB modul Komunikasi putus Cek kabel dan daya modul
MODUL MENOLAK: pinnya tidak mengikuti perintah Pin keluaran modul tidak berpindah Periksa wiring pin dan papan relay
DITOLAK modul Frame rusak di jalur Cek kabel RS-485, ulangi
"Dikonfirmasi" berarti pin keluaran modul sudah berpindah. Konfirmasi itu tidak bisa membuktikan papan relay mendapat daya 12 V dan relay benar-benar berpindah. Kalau daya 12 V mati, robot tetap melaporkan "dikonfirmasi". Lihat LED kuning di dekat relay: menyala saat relay nyala. Itu bukti fisik yang perlu dicek saat pemasangan.

Memakai di program

R701 adalah baris program biasa. Contoh:

Nyalakan pompa selama pekerjaan

G0 X0.000 Y250.050 Z175.000 R701 P1 S1 ; pompa nyala G0 X0.000 Y250.050 Z25.000 ; turun, kerjakan G0 X0.000 Y250.050 Z175.000 ; naik R701 P1 S0 ; pompa padam

Hidupkan selama waktu tertentu

R701 P2 S1 ; mulai G4 P3000 ; tunggu 3000 ms R701 P2 S0 ; selesai

G4 P<ms> menunggu dalam milidetik (G4 S<detik> dalam detik).

Conveyor yang berhenti ketika sensor mendeteksi benda

>1 R701 P1 S1 ; conveyor jalan IN1 L ; tunggu sensor mendeteksi benda (IR: LOW saat ada objek) R701 P1 S0 ; conveyor berhenti G0 X0.000 Y250.050 Z25.000 ; ambil benda M10 G0 X0.000 Y250.050 Z175.000 G0 X150.000 Y200.000 Z175.000 M11 IN2 L >1 ; ulangi sampai tombol stop ditekan R701 P1 S0 ; pastikan padam di akhir

Beberapa relay bergantian

R701 P1 S1 ; katup A buka G4 P500 R701 P1 S0 R701 P2 S1 ; katup B buka G4 P500 R701 P2 S0

Catatan untuk semua contoh: relay tidak otomatis padam saat program dihentikan. Selalu akhiri dengan S0 dan jangan menggantungkan keselamatan pada program saja (lihat Keadaan awal dan keadaan aman).

Daftar pemeriksaan sebelum dipakai

  1. Daya 12 V di DCIN1 papan modul tersambung dan polaritasnya benar.
  2. R700 menampilkan modul dan kanal relay (rl1, rl2, …).
  3. R701 P1 S1: LED kuning relay 1 menyala dan terdengar bunyi klik. R701 P1 S0: padam.
  4. Ukur dengan multimeter di terminal: COM–NO terhubung saat nyala, COM–NC saat padam.
  5. Tegangan dan arus beban di bawah kemampuan yang tertulis pada relay.
  6. Beban induktif punya dioda flyback; ada sekering; ada pemutus darurat di sisi beban.
  7. Catu beban terpisah dari catu modul, dan kabel beban dijauhkan dari kabel RS-485.
  8. Uji tanpa beban dulu, lalu dengan beban, lalu di dalam program.

Pemecahan masalah

GejalaKemungkinan penyebabTindakan
R701 "dikonfirmasi" tetapi relay tidak klik dan LED padam Papan relay tidak dapat 12 V Periksa catu di DCIN1
LED menyala tetapi beban tidak hidup Beban tersambung ke terminal yang salah, atau catu beban mati Periksa COM/NO, catu beban, sekering
Beban menyala saat relay padam Beban ada di COM + NC Pindah ke COM + NO
Relay klik-klik sendiri atau robot hilang kontak saat beban menyala Derau dari beban induktif Pasang dioda flyback; pisahkan kabel; pakai catu terpisah
Program berhenti dengan error relay Konfirmasi tidak datang Lihat tabel balasan di bagian "Memerintah relay"
Relay tetap nyala sesudah program berhenti Itu perilaku normal (lihat "Keadaan awal dan keadaan aman") R701 P<n> S0
Kontak relay lengket atau berkarat Beban melebihi kemampuan, atau tanpa dioda Ganti relay, kurangi beban, pasang dioda, atau pakai kontaktor
Relay padam sendiri saat robot di-restart Modul tidak mendengar robot lebih dari 2,5 detik; ini pengaman Normal. Nyalakan lagi lewat program

Langkah berikutnya: Modul Eksternal · Sensor Digital · Gejala & Solusi

Skematik Elektronik

Intinya: Skematik papan kontroler dan modul IO tersedia sebagai gambar dan PDF.

Papan Kontroler RNV4H2

Skematik lengkap board kontroler RNV4H2 dalam 1 lembar A3: rangkaian utama ESP32-S3, driver motor X/Y/Z dan E, encoder AS5600 (lewat multiplexer I2C), power, valve & pump, SD card, kipas, LED indikator, serta pinout konektor atas dan bawah. Diambil langsung dari file desain EasyEDA — versi RNV4H2, diperbarui 2026-10-06.

Klik gambar untuk memperbesar & baca detail komponen.

Skematik elektronik RNV4H2, 1 lembar A3

Lembar 1 — Rangkaian lengkap RNV4H2 (A3)

robot-rnv4h2-schematic.pdf

PDF asli (vektor, bisa di-zoom tanpa pecah) · 1 halaman · 513 KB

Tampilan 3D PCB Papan Kontroler

Render 3D PCB papan kontroler RNV4H2 (versi RNV4H2)
Render 3D PCB papan kontroler RNV4H2 (tulisan sutra di papan: VERSI RNV4H2). Klik untuk memperbesar.

Yang terbaca pada gambar:

  • Modul ESP32-S3 (tertulis ESP32S3N16R8) dengan antena di tepi papan.
  • Terminal catu 12 V (DCIN) dengan FUSE di dekatnya.
  • Soket driver motor (satu di antaranya terpasang dengan driver berheatsink ungu), konektor encoder AS5600 dan konektor motor MTR.
  • Konektor kipas (FAN1-5V, FAN2-12V, FAN3-12V), PUMP, VALVE, SD, tombol RST, dan LED WS2812B.

Modul IO RNV4H2

Skematik dan PCB modul IO (papan masukan/keluaran untuk 3 sensor dan 3 relay; cara memasangnya ada di bagian Modul Eksternal). Skematik dibuat di EasyEDA, board IO_RNV4H2, versi V1.0, diperbarui 2026-10-15.

Klik gambar untuk memperbesar & baca detail komponen.

Skematik modul IO RNV4H2: tiga kanal relay, catu 5 V, papan Wemos D1 mini Pro, tiga sensor, dan konektor MODUL-IO
Skematik modul IO RNV4H2 (1 lembar A4). Klik gambar untuk memperbesar dan membaca nilai komponen.

robot-rnv4h2-modul-io-schematic.pdf

PDF asli (vektor, bisa di-zoom tanpa pecah) · 1 halaman · 176 KB

Isi skematik:

  • Catu: 12 V masuk lewat DCIN1 ke modul penurun tegangan MP1584EN yang menghasilkan 5 V.
  • Tiga kanal relay (RLY1–RLY3): tiap kanal dari pin papan Wemos (D5, D8, D3) lewat optocoupler PC817 dan transistor 2N2222A ke kumparan relay, dengan dioda di kumparan dan satu LED indikator (LED1–LED3) berhambatan 1 kΩ. Kontaknya keluar di terminal OUT1–OUT3.
  • Tiga masukan sensor (SENSOR1–SENSOR3) ke pin D2, D6, D0, dengan tombol uji SW-SENSOR1–3 dan resistor 10 kΩ (R145–R147) ke 3,3 V.
  • Konektor MODUL-IO 4 pin (3.3V, TX, RX, GND) ke pin TX/RX papan Wemos, tempat papan konverter RS-485 disambungkan.
  • Papan Wemos D1 mini Pro (U105) sebagai pengendali modul, dan empat lubang baut M3.

Tampilan 3D PCB Modul IO

Render 3D PCB modul IO RNV4H2: tiga relay, tiga konektor sensor, dan papan Wemos
Render 3D PCB modul IO RNV4H2: tiga relay biru, terminal OUT1–OUT3, konektor SENSOR1–3 dengan tombol ujinya, dan LED kuning indikator relay.

Langkah berikutnya: Pin & Wiring · Modul Eksternal

Command Reference

Protokol Komunikasi

Intinya: Robot menerima G/M/R-code lewat USB dan Bluetooth; balasan ok berarti perintah selesai.

Cara host (PC/app Android/AI board) berkomunikasi dengan robot lewat perintah G/M/R-code — kompatibel dengan subset Marlin G-code. Tabel perintah lengkapnya ada di 4 section di bawah.

Koneksi Fisik

AntarmukaSettingKeterangan
USB CDC (Serial) 115200 baud, 8N1 Native USB CDC — Arduino IDE Serial Monitor, Python, RNV4 Studio, dll. Satu-satunya jalur yang menerima protokol backdoor Studio (@STUDIO_HELLO, @DIAG, dst) — UART0/Bluetooth tidak pernah dapat data ini
UART0 (GPIO43/44) RS-485 (lewat konverter) Jalur modul eksternal (alamat + kanal), bukan jalur G-code. Lihat bagian Modul Eksternal
Bluetooth Low Energy (BLE) Nordic UART Service (NUS) BLE (bukan Bluetooth Classic/SPP) — perangkat/app harus mendukung BLE GATT. Setelah tersambung, wajib kirim password (bukan pairing OS) — lihat bagian Bluetooth (BLE)

Prioritas & Perilaku Multi-Channel

Firmware cek 1 command per iterasi loop, urutan prioritas (kalau beberapa channel ada data bersamaan, yang lebih prioritas diproses duluan; sisanya nunggu iterasi berikutnya):

  1. USB
  2. Bluetooth (setelah autentikasi)

Balasan (ok/error/dll) di-broadcast ke USB + Bluetooth sekaligus — bukan cuma ke channel asal command.

Bluetooth (BLE) di RNV4H2 sudah berfungsi penuh — nama perangkat unik per robot, password bisa diganti dari RNV4 Studio, dan bisa dinyalakan/dimatikan lewat R24. Detail lengkap (UUID, autentikasi, perintah, pemecahan masalah) ada di bagian Bluetooth (BLE).

Format Perintah (Host → Robot)

<ID><NUM> [PARAM...]\n
  • <ID> — huruf kode: G, M, atau R
  • <NUM> — nomor perintah integer
  • [PARAM...] — parameter opsional, huruf + nilai float, tidak perlu spasi
  • Terminator: \n (newline) atau \r (carriage return)
  • Case-insensitive: g0 x100 = G0 X100
  • Spasi opsional: G0X100Y200 = G0 X100 Y200
G0 X100 Y200 Z50 G1X50Y-30.5F300 R280 P1 S90 R22 P1 R515

Parameter yang Dikenali

HurufTipeKeterangan
X float Koordinat X (mm)
Y float Koordinat Y (mm)
Z float Koordinat Z (mm)
E float Koordinat E/rail (mm)
F float Feedrate (mm/min)
I float Arc center offset X (mm)
J float Arc center offset Y (mm)
R float Arc radius (mm), alternatif IJ
S float Speed / value general
P float Index servo / sub-command / program number
Penting: semua parameter di-reset ke NAN/0 di awal setiap perintah. Parameter yang tidak disebut tidak mewarisi nilai dari perintah sebelumnya.

Format Respons (Robot → Host)

Sukses (M/R) ok — dikirim segera setelah perintah selesai dieksekusi
Sukses (G, masuk queue) ok dikirim saat command di-pop dari queue, sesaat sebelum eksekusi — bukan langsung saat diterima
Error ERROR: <deskripsi>, contoh: ERROR: COMMAND NOT RECOGNIZED
Resend (checksum/line number salah) Resend:<nomor_baris>, diikuti ok
Output subsistem Format PREFIX:pesan — mis. WIFI:OK Terhubung!, WARN:...

Flow Control (G-code Queue)

Robot memakai FIFO queue khusus untuk perintah gerakan (G0/G1/G2/G3). Perintah M dan R dieksekusi langsung (bypass queue) — ok segera.

Host kirim G1 X100 → Robot: tidak reply ok dulu (command masuk queue) → Saat pop dari queue untuk dieksekusi: sendResponse("ok") → Host baru kirim G1 berikutnya Host kirim M400 (tunggu queue kosong) → Robot spin-wait sampai queue kosong + interpolator selesai → sendResponse("ok")
  • Tunggu ok sebelum kirim perintah G berikutnya
  • Jika ERROR: Queue is FULL! → queue dibersihkan otomatis, kirim ulang

Pesan Proaktif (Backdoor)

Selain balasan atas perintah, firmware juga mengirim pesan diagnostik tanpa diminta berformat // @TAG:{json} — dipakai RNV4 Studio untuk halaman monitoring, klaim robot, dll. Prefix // adalah konvensi komentar G-code standar, jadi parser G-code yang benar akan otomatis mengabaikannya.

Penting: pesan ini hanya dikirim ke USB, tidak pernah ke UART0 maupun Bluetooth — kalau Anda pantau lewat serial monitor biasa (bukan RNV4 Studio) di USB, semua baris ini akan terlihat apa adanya, termasuk 2 yang jalan otomatis terus-menerus (@DIAG tiap 3 detik, @RT tiap 200ms). Lihat bagian Pengembangan & Ekstensi Kustom untuk cara menghindarinya.
TagDikirim SaatIsi Singkat
@FW Saat boot, dan setiap kali host kirim @STUDIO_HELLO Versi firmware, versi protokol, ID robot, claim_secret
@STUDIO_ACK Balasan atas @STUDIO_HELLO dari host — event-driven, bukan otomatis Versi firmware, ID robot, versi protokol
@RESET Sekali setiap boot Alasan reset terakhir (normal/brownout/watchdog/panic, dst)
@DIAG Otomatis tiap 3 detik, terus-menerus selama menyala Uptime, heap/PSRAM, sisa stack task, status robot/queue/SD, suhu, WiFi
@RT Otomatis tiap 200ms (5x/detik), terus-menerus selama menyala Posisi X/Y/Z/E realtime, baris SD aktif, servo, vacuum, sensor IN1-3
@LINE Setiap kali baris program SD aktif berubah (event-driven) Nomor baris yang sedang dieksekusi
@WIFI Balasan perintah WiFi (R22) — event-driven Status scan/connect WiFi
@HWCFG_JSON Balasan perintah R93 — on-demand Seluruh nilai kalibrasi hwConfig dalam satu JSON

Error Reference

PesanPenyebabSolusi
ERROR: COMMAND NOT RECOGNIZED Kode bukan G/M/R, atau format salah Periksa format perintah
ERROR: Robot not calibrated. Send G28 first. G0/G1/G2/G3 tanpa homing Kirim G28 dulu
ERROR: Queue is FULL! Host kirim terlalu cepat tanpa tunggu ok Tunggu ok, queue di-clear otomatis
Resend:<n> Checksum salah atau nomor baris tidak urut Kirim ulang baris ke-n
WIFI:ERROR Tidak ada jaringan ditemukan Scan WiFi gagal Coba R22 lagi

Langkah berikutnya: Bluetooth (BLE) · G-code · R-code (Kontrol)

Bluetooth (BLE)

Intinya: Bluetooth BLE (profil NUS) sudah berfungsi penuh: nama unik per robot, password bawaan 1234, satu klien pada satu waktu.

Bluetooth di RNV4H2 sudah berfungsi penuh: robot bisa dikendalikan dan dipantau dari HP atau komputer lewat BLE, dengan password, dan bisa dinyalakan/dimatikan tanpa flash ulang. Berlaku untuk firmware v2.14.0 ke atas, board RNV4H2.

Ringkasan

Jenis BLE (Bluetooth Low Energy), bukan Bluetooth Classic / SPP
Profil Nordic UART Service (NUS): satu “kabel serial” lewat dua karakteristik
Nama perangkat RNV4-<nomor seri>-<8 hex MAC>, mis. RNV4-00010-8D617974 (unik per robot; sama dengan ID robot)
Autentikasi Password. Bawaan pabrik 1234
Klien bersamaan Satu. Sesudah terputus, robot otomatis mengiklankan diri lagi
Bawaan Menyala saat robot dinyalakan (bt_enabled=1)

UUID memakai standar NUS, jadi aplikasi “BLE UART” umum bisa dipakai:

Service 6E400001-B5A3-F393-E0A9-E50E24DCCA9E
RX (HP → robot, write) 6E400002-B5A3-F393-E0A9-E50E24DCCA9E
TX (robot → HP, notify) 6E400003-B5A3-F393-E0A9-E50E24DCCA9E

Menyambung dari HP / komputer

  • Pastikan Bluetooth robot menyala (R24, lihat bagian di bawah). Robot yang baru dinyalakan sudah menyala.
  • Buka aplikasi BLE UART (mis. nRF Connect, Serial Bluetooth Terminal mode BLE). Cari perangkat bernama RNV4-....
  • Sambungkan, lalu aktifkan notifikasi pada karakteristik TX.
  • Kirim satu baris apa saja (mis. hi). Robot membalas dengan permintaan password.
  • Kirim password (bawaan 1234). Jawaban ✓ Authentication successful! berarti sudah masuk.
  • Kirim perintah G/M/R seperti di serial, satu perintah per baris (diakhiri baris baru).

Baris pertama sesudah tersambung tidak diproses sebagai perintah: ia hanya memicu robot mengirim permintaan password (supaya klien dipastikan sudah siap menerima).

Autentikasi

  • Sesudah tersambung, robot meminta password. Salah 3 kali → terkunci 60 detik, lalu hitungan salah direset.
  • logout (atau exit, disconnect) mengeluarkan sesi dan meminta password lagi.
  • Putus koneksi selalu membatalkan login; sesi baru harus memasukkan password lagi.
  • Mengganti password (lihat bagian di bawah) memaksa sesi yang sedang login login ulang. Menyimpan field config lain dari Studio tidak menendang sesi yang sedang berjalan.
Soal keamanan: password dikirim sebagai teks biasa lewat BLE tanpa pairing/enkripsi tingkat link. Anggap ini pengaman dari salah sambung dan orang iseng, bukan pengaman dari penyadap yang sengaja mengintai. Jangan memakai password yang sama dengan akun penting.

Apa yang bisa dikirim dan diterima

Masuk (HP → robot): hanya baris yang diawali G, M, atau R yang diteruskan ke pemroses perintah (sama dengan USB dan UART0; semuanya masuk satu antrean). Baris lain dibuang diam-diam (mis. byte protokol dari aplikasi BLE). Tambahan khusus BLE: help menampilkan ringkasan perintah, logout keluar.

Keluar (robot → HP): balasan perintah yang dikirim lewat BLE (ok, hasil M114, dst.) dan log tingkat ERROR + INFO. Log DEBUG tidak pernah dikirim ke BLE, berapa pun nilai log_level (field 88 di hwConfig).

Batas yang perlu diketahui:

  • Hanya satu klien dan satu perintah per baris; tidak ada antrean di sisi HP.
  • Jalur BLE memakai notifikasi pendek dengan jeda kecil antar-kiriman. Balasan yang sangat panjang (mis. R90) bisa lambat tampil; ini belum diukur. Untuk diagnostik panjang, pakai USB.
  • BLE berbagi CPU dengan pembangkit pulsa motor. Kalau Anda sedang memburu bunyi atau step hilang, matikan BLE dulu.

Menyalakan, mematikan, status: R24

PerintahFungsi
R24 Status saja
R24 S1 Nyalakan BLE sekarang
R24 S0 Matikan BLE sekarang (perangkat yang tersambung langsung terputus)

Contoh balasan:

BT:ON nama=RNV4-00010-8D617974 terhubung=0 login=0 heap=118096
  • terhubung = ada klien tersambung; login = klien itu sudah memasukkan password yang benar.
  • Robot juga mengirim versi terstruktur @BT:{...} untuk RNV4 Studio.
  • Yang disimpan adalah hasilnya, bukan permintaannya. Menyalakan BLE butuh memori yang bersambung; kalau gagal (BT:ERROR Gagal menyalakan BLE) pilihannya tidak ikut tersimpan sebagai “nyala”. Pilihan tersimpan di config (field 79) dan bertahan sesudah robot dimatikan.
  • Mematikan BLE tidak mengembalikan semua memorinya ke heap (heap sesudah R24 S0 ±180 KB, sesudah R24 S1 ±118 KB pada contoh di atas). Untuk heap maksimum, matikan BLE lalu reboot.
  • Bisa dinyalakan dan dimatikan berulang kali tanpa reboot (diperbaiki di v2.14.0; versi sebelumnya macet pada R24 S1 sesudah R24 S0).

Mengganti password dan pilihan awal

Dari RNV4 Studio: menu Robot → Bluetooth.

  • Tombol Nyalakan / Matikan / Status.
  • Kolom password baru (maks 16 karakter). Kosong = tidak ada yang diubah. Berlaku langsung, tanpa restart.
  • Dialog menampilkan password bawaan (1234) sebagai pengingat, bukan password yang sedang berlaku; password yang sedang berlaku tidak pernah dikirim ke Studio (hanya panjangnya).

Dari config robot (R91, field 79 dan 80; lihat bagian hwConfig):

FieldNamaArti
79 bt_enabled 1 = BLE menyala saat robot dinyalakan, 0 = mati
80 bt_password Password BLE, maks 16 karakter. Tidak ikut cadangan ke server

Lupa password? Sambungkan lewat USB lalu setel ulang dengan R91 field 80, atau kembalikan config ke pabrik dengan R92 (password kembali 1234).

Cara kerja singkat di firmware

  • Boot: BLE dinyalakan dengan password bawaan, lalu password tersimpan (field 80) diterapkan segera setelah config terbaca. Kalau bt_enabled=0, BLE dimatikan sesudah itu.
  • R24 S1 memakai password tersimpan (bukan password bawaan). Versi sebelum v2.14.0 salah mengembalikan password ke 1234 sesudah R24 S0 lalu R24 S1; sudah diperbaiki.
  • Namanya dibentuk dari nomor seri dan MAC, jadi robot yang berdampingan tidak bentrok.

Pemecahan masalah

GejalaKemungkinan penyebabTindakan
Robot tidak muncul di daftar perangkat BLE mati, atau sudah ada klien lain tersambung R24 lewat USB; kalau OFF, R24 S1. Putuskan klien lain
Tersambung tapi tidak ada balasan Notifikasi TX belum diaktifkan, atau belum mengirim baris pertama Aktifkan notifikasi, kirim satu baris
LOCKED 3x salah password Tunggu 60 detik
Perintah tidak dijalankan, tanpa pesan Baris tidak diawali G/M/R Awali dengan G, M, atau R
BT:ERROR Gagal menyalakan BLE Heap tidak bersambung cukup Reboot robot, lalu R24 S1
Setelah R24 S0 lalu S1 macet / reset Firmware lama (< v2.14.0) Update ke v2.14.0
Bunyi motor “duk” atau step hilang Radio BLE berbagi CPU dengan pulsa motor R24 S0 untuk menguji; bandingkan

Langkah berikutnya: Protokol Komunikasi · R-code (Kontrol) · Gejala & Solusi

Pengembangan & Ekstensi Kustom

Intinya: Kembangkan dari luar robot lewat USB atau Bluetooth; UART0 dipakai jalur modul eksternal.

Firmware bawaan RNV4 bersifat tertutup (kode sumbernya tidak dipublikasikan) dan diperbarui lewat RNV4 Studio (menu Flash Firmware, lewat kabel USB) — lihat Syarat Layanan. Tapi banyak pembeli robot ini justru untuk keperluan riset, tugas kuliah, atau proyek pengembangan yang butuh menambah kemampuan robot lebih jauh dari fitur bawaan. Kabar baiknya: protokol komunikasi G/M/R-code di atas terbuka dan stabil — cukup lewat itu, robot ini sangat bisa dikembangkan lebih jauh tanpa perlu menyentuh firmware sama sekali.

Rekomendasi: kembangkan dari luar, bukan ubah firmware bawaan

Kode firmware robot ini sudah cukup kompleks (kontrol stepper real-time, kinematika lengan, kalibrasi per-unit, dst) — mengubahnya tanpa pemahaman detail berisiko memicu bug atau gerakan yang tidak stabil, dan karena kode sumbernya tertutup, Anda juga tidak mulai dari referensi yang bisa dipelajari dulu. Jauh lebih aman dan fleksibel: bangun kontroler/logic tambahan di luar robot, lalu kirim perintah G/M/R-code standar ke robot lewat USB atau Bluetooth seperti biasa. Kalau ada bug, bug-nya ada di kode Anda sendiri yang bisa dilihat & diperbaiki bebas — bukan terkubur di firmware tertutup.

Jalur 1 — Kontrol dari Komputer Lewat USB

Tulis program sendiri di komputer (mis. Python dengan library pyserial, atau bahasa apa pun yang bisa akses serial port) yang mengirim command G/M/R-code ke robot lewat USB — persis seperti RNV4 Studio, cuma logic-nya Anda yang tulis sendiri. Cocok untuk menambah kamera eksternal (computer vision, deteksi objek), logic kontrol kompleks yang lebih mudah dikembangkan di komputer daripada di firmware ESP32 langsung, atau integrasi ke sistem/aplikasi lain. Semua logic tambahan itu jalan di komputer Anda — robot cuma menerima & menjalankan command G/M/R-code standar seperti biasa, tidak ada yang perlu diubah di firmware.

Catatan soal noise di USB: selain balasan perintah, firmware juga mengirim pesan diagnostik otomatis (// @DIAG tiap 3 detik, // @RT tiap 200ms, dll — lihat tabel Pesan Proaktif (Backdoor) di bagian Protokol Komunikasi) yang khusus muncul di jalur USB ini saja. Kalau Anda pantau lewat serial monitor mentah (bukan parser G-code), baris-baris ini akan ikut terlihat. Saat ini firmware belum punya perintah untuk mematikannya saat robot menyala — cuma bisa lewat pengaturan di source firmware sebelum di-compile, yang berarti bertentangan dengan rekomendasi di atas untuk tidak menyentuh firmware. Cara paling praktis: abaikan saja baris yang diawali // di parser Anda (konvensi komentar G-code standar).

Jalur 2 — Perangkat Buatan Sendiri Lewat UART0 (RS-485)

Di RNV4H2, UART0 (GPIO43/44) sudah dipakai jalur modul eksternal lewat konverter RS-485 (lihat bagian Modul Eksternal). Perangkat buatan sendiri yang ingin disambung ke jalur ini harus memakai protokol modul yang sama: tiap perangkat punya alamat dan kanal (masukan, relay, servo) yang ia umumkan sendiri, robot yang bertanya dan perangkat yang menjawab. Jalur ini bukan jalur perintah G-code mentah, jadi jangan mengirim G0, M10, dan sejenisnya lewat UART0. Untuk mengendalikan robot dengan G/M/R-code dari komputer atau HP, pakai USB (Jalur 1) atau Bluetooth (Jalur 3).

Jalur 3 — Kontrol Wireless Jarak Dekat Lewat Bluetooth (BLE)

Kalau kebutuhan Anda cuma kontrol nirkabel jarak dekat (mis. bikin app mobile sendiri, tanpa mau repot pasang board eksternal seperti Jalur 2), robot sudah punya BLE bawaan dengan profil Nordic UART Service (NUS) yang standar — tinggal konek dari app/library BLE apa pun yang mendukung NUS, masukkan password (lihat Bluetooth (BLE)), lalu kirim command G/M/R-code sama seperti channel lain. Tidak perlu hardware tambahan sama sekali — tapi jangkauannya khas BLE (jarak dekat, beberapa meter tanpa penghalang), beda dari Jalur 2 yang bisa dipadukan WiFi/internet untuk jangkauan jauh.

Catatan: USB dan Bluetooth adalah 2 jalur input G/M/R-code yang terpisah dan bisa dipakai bersamaan tanpa saling mengganggu — lihat urutan prioritas di bagian Protokol Komunikasi di atas. UART0 dipakai jalur modul eksternal (RS-485). Daftar lengkap command yang tersedia ada di section G-code, M-code, dan R-code di bawah.

Langkah berikutnya: Protokol Komunikasi · Bluetooth (BLE) · Modul Eksternal

G-code (Gerakan & Mode)

Intinya: G-code mengatur gerak: G0/G1 untuk bergerak dan G28 untuk home; G33 sudah tidak ada.

Kirim lewat USB (Serial Monitor, 115200 baud) atau Bluetooth.

KodeFungsi
G0 / G1 Gerak rapid / linear ke koordinat X Y Z (E untuk rel)
G2 / G3 Gerak arc searah jarum jam (CW) / berlawanan (CCW), format IJ atau R
G4 Dwell (jeda), parameter P (ms) atau S (detik)
G28 Homing seluruh axis
G90 Mode koordinat absolut
G91 Mode koordinat relatif
G92 Set posisi offset (tanpa gerak fisik)
G20 Set unit ke inch — tidak didukung, robot selalu mm
G21 Set unit ke mm (default)

Langkah berikutnya: M-code · R-code (Kontrol)

M-code (Kontrol Equipment & Status)

Intinya: M-code mengatur vakum (M10/M11), motor (M17/M18), dan membaca posisi (M114).

KodeFungsi
M3 Spindle/Laser ON
M5 Spindle/Laser STOP
M10 Vacuum grip ON (pump ON, valve tutup)
M11 Vacuum release (pump OFF, valve buka sesaat lalu tutup)
M17 Enable stepper motor
M18 Disable stepper motor
M105 Report suhu (untuk Repetier-Host/OctoPrint polling)
M110 Nxx Set nomor baris saat ini (Marlin line numbering)
M114 Get posisi saat ini
M115 Info sistem/firmware
M119 Status endstop
M205 Set speed profile
M220 Set/get feedrate override (%)
M400 Tunggu semua gerakan selesai

Langkah berikutnya: R-code (Kontrol) · Contoh Penggunaan

Bukan versi Anda? Bagian ini untuk RNV4H2. Kalau robot Anda RNV4 (lama), lihat bagian yang sama untuk RNV4: R-code (Kontrol): homing dan encoder (RNV4)

R-code (Khusus Robot RNV4H2)

Intinya: R-code adalah perintah khusus robot; mulai dari 10 perintah paling berguna di bagian pertama.

10 perintah paling berguna

Mulai dari sepuluh perintah ini; sisanya ada di tabel lengkap di bawah. Tanda: ⚠ lengan bergerak, 🔒 butuh G28 dulu, 🧪 alat diagnostik.

PerintahFungsiContoh
M115 Lihat info sistem/firmware (cara cepat memeriksa robot menjawab) M115
G28 ⚠ Home: bawa semua sendi ke titik awal G28
G0 ⚠ 🔒 Gerak cepat ke koordinat X/Y/Z G0 X0 Y250.05 Z175
M10 / M11 Vakum nyala (pompa hidup, katup tutup) / lepas (pompa mati, katup terbuka sesaat) M10 lalu M11
R90 Tampilkan seluruh config hardware (kalibrasi unit) R90
R530 🧪 Cek bus driver motor; target 3/3 menjawab R530
R515 Posisi robot sekarang (aman dikirim kapan saja) R515
R24 Status Bluetooth; S1 menyalakan, S0 mematikan R24 S1
R521 Status program yang diputar tombol fisik robot; dengan nama = mendaftarkan program R521
R512 Hentikan program yang sedang berjalan R512

Daftar perintah R-code robot RNV4H2 (firmware v2.14.0 ke atas). R-code adalah perintah khusus robot untuk hal-hal di luar G-code gerak dan M-code standar: sensor, WiFi, Bluetooth, program di SD card, kalibrasi, dan diagnostik.

Cara mengirim

  • Lewat USB (115200 baud) dari RNV4 Studio atau serial monitor, atau lewat Bluetooth. Keduanya diproses bersama. Jalur serial kedua (UART0) dipakai modul eksternal, bukan untuk G-code.
  • Satu perintah per baris. Parameter dipisah spasi: huruf lalu nilai, mis. R280 P2 S90 F120.
  • Hampir semua perintah membalas ok kalau selesai. Perintah yang menunggu jawaban lanjutan (mis. R91, R22) menyebutnya di balasannya.

Tanda yang dipakai di tabel

PerintahFungsi
⚠ Gerak Perintah ini menggerakkan lengan. Pastikan ruang di sekitar lengan bebas
🔒 Butuh robot sudah di-Home (G28) dulu
🧪 Alat diagnostik/pengembangan. Aman dibaca, tapi biasanya tidak perlu dipakai sehari-hari

Masukan dan sensor

PerintahFungsi
R1 … R4 Baca satu masukan digital (IN1–IN4): membalas IN1: HIGH atau LOW. Kalau sumbernya tidak ada atau diam, balasannya TIDAK DIKETAHUI, bukan LOW — supaya kabel modul yang lepas tidak terbaca seperti sensor sehat
R5 Baca semua masukan sekaligus, beserta kesegaran tiap sumbernya

Sumber masukan (IN1–IN4) adalah modul eksternal di jalur serial kedua, bukan pin langsung di papan robot. Lihat bagian Modul eksternal di bawah.

Pen dan profil kecepatan

PerintahFungsi
R21 P<0-3> Pilih profil kecepatan: 0 trapezoid, 1 smootherstep, 2 S-curve (bawaan), 3 segitiga (uji coba; gerak lebih lama, untuk diagnosa bunyi). Berlaku sampai robot dimatikan
R30 ⚠ Pen turun ke tinggi pen_down_z (config) dengan jeda dan kecepatan khusus
R31 ⚠ Pen naik ke tinggi pen_up_z (config) dengan jeda dan kecepatan khusus

WiFi dan Bluetooth

WiFi

PerintahFungsi
R22 Setup WiFi interaktif: pindai jaringan, pilih, ketik password, simpan dan sambung. Selama menunggu jawaban, semua baris yang masuk dianggap jawaban
R22 P0 Status WiFi (jaringan, IP, kekuatan sinyal, jumlah jaringan tersimpan)
R22 P1 Daftar jaringan tersimpan
R22 P2 Putuskan WiFi
R22 P3 Hapus semua jaringan tersimpan
R22 P9 Batalkan sesi setup WiFi yang sedang menunggu jawaban
R23 Sambung WiFi satu kali tanpa interaktif: kirim R23, lalu satu baris JSON {"ssid":"...","pass":"..."}. Dipakai aplikasi/Studio, bukan untuk diketik manual

Bluetooth (BLE)

PerintahFungsi
R24 Status Bluetooth: nyala atau mati, nama, apakah ada perangkat tersambung dan sudah login
R24 S1 Nyalakan Bluetooth
R24 S0 Matikan Bluetooth

Pilihan nyala/mati tersimpan dan bertahan sesudah robot dimatikan. Matikan Bluetooth saat memburu bunyi motor atau step hilang: radio berbagi waktu CPU dengan pembangkit pulsa. Password dan nama: lihat bagian Bluetooth (BLE).

Servo dan gripper

PerintahFungsi
R280 P1 S<derajat> [F<°/s>] Servo rotasi (P1) ke sudut tertentu. F mengatur kecepatan. Tanpa F = kecepatan maksimum servo (config servo1_max_speed); F0 = loncat seketika tanpa ramp
R280 P2 S<derajat> [F<°/s>] Gripper (P2) ke sudut tertentu
R280 P2 D<mm> Gripper ke bukaan dalam milimeter (butuh kalibrasi R282)
R281 P<1|2> Baca posisi servo: sudut sekarang, target, sedang bergerak atau diam. P2 ikut menampilkan bukaan mm kalau sudah dikalibrasi
R282 Kalibrasi bukaan gripper (sudut ↔ mm). Bawa gripper ke sudut yang enak diukur, ukur jarak rahang, kirim R282 D<mm>: sudutnya ikut tercatat. 2 titik = garis lurus, titik ketiga = dua ruas, sampai 5 titik. Tanpa parameter = status. S<derajat> D<mm> mengisi titik tanpa menggerakkan servo. S0 menghapus semua titik
R516 Baca posisi servo rotasi dan gripper sekaligus

Posisi dan status

PerintahFungsi
R515 Posisi robot sekarang (X/Y/Z). RL menambah posisi rel, SR menambah servo rotasi. Ditambah kata LIMIT kalau posisi di luar ruang kerja. Aman dikirim kapan saja, termasuk saat bergerak
R50 Status lengkap robot: siap atau belum, posisi, jumlah program di SD, keadaan SD card
R99 Tampilkan nomor seri dan ID robot
R99 S<nomor> Set nomor seri (butuh password produksi; untuk pabrik)

Konfigurasi hardware (config robot)

PerintahFungsi
R90 Tampilkan seluruh config hardware
R91 Ubah satu field: robot meminta nomor field lalu nilai baru. Sebagian besar langsung berlaku. Hanya microsteps dan steps per rev yang butuh restart. Arah motor berlaku langsung tetapi robot jadi belum terkalibrasi dan perlu Home
R92 Reset semua config ke bawaan pabrik (minta mengetik YES)
R93 Ambil seluruh config sebagai satu JSON (untuk Studio)
R94 Timpa config dari satu JSON; pembaruan sebagian didukung (untuk Studio)

Daftar field: lihat bagian hwConfig. Contoh field yang bisa dipilih lewat Studio: tingkat log konsol USB (log_level: 0 error saja, 1 + info, 2 + debug).

Driver motor, homing, dan encoder

Driver motor TMC2209

PerintahFungsi
R530 🧪 Periksa bus ketiga driver motor: lapor tiap driver (X bahu, Y siku, Z rotasi base) menjawab atau tidak. Jalankan ini lebih dulu saat memasang atau memperbaiki robot. Kalau tidak ada driver yang menjawab, motor dikunci dan LED ungu kedip
R531 P<1|2|3> ⚠ 🧪 Gerakkan satu sendi sambil menyiarkan nilai beban motor (untuk menyetel deteksi mentok). Hanya valid saat motor berputar
R553 🧪 Mode kerja driver saat bergerak: S0 senyap, S1 bertenaga (bawaan), S2 F<step/detik> campuran
R558 🧪 Lihat arus motor yang sedang mengalir dan setelan arus tahan. S1 memantau perubahan terus-menerus, S0 berhenti

Homing

PerintahFungsi
G28 ⚠ Homing. Kalau acuan home encoder sudah tersimpan, tiap sendi dibawa ke titik home tanpa menyentuh stopper. Kalau belum, memakai deteksi beban motor
R548 ⚠ Paksa homing deteksi beban penuh (menabrak stopper pelan), mengabaikan acuan encoder. Sama dengan G28 F
R547 Terima acuan home encoder dari homing deteksi beban terakhir bila berbeda dari yang tersimpan. R547 S0 menghapus acuan

Encoder sendi (AS5600)

Alat bantu untuk pemasangan, kalibrasi, dan pembuktian bahwa tidak ada langkah motor yang hilang. Untuk kalibrasi penuh cukup satu perintah, R546.

PerintahFungsi
R540 🧪 Periksa bus encoder dan tiap sensor, termasuk kualitas jarak magnet. S0 mengosongkan penghitung
R541 🧪 Tampilkan sudut tiap encoder terus-menerus; putar sendi dengan tangan untuk memastikan angkanya berubah
R542 🔒 🧪 Bandingkan posisi yang diperintahkan dengan yang dibaca encoder. R542 S1 ⚠ memutar tiap motor satu per satu untuk menentukan arah encoder, lalu menyimpannya
R543 ⚠ 🔒 🧪 Gerakkan satu sendi saja (mengunci robot sampai G28 berikutnya) untuk memisahkan kopling dan skala
R544 P<1|2|3> ⚠ 🔒 🧪 Sapuan otomatis satu sendi ujung ke ujung, mengukur simpangan encoder tanpa mengubah tabel. Alat verifikasi sesudah kalibrasi
R545 P<n> 🧪 Bangun tabel koreksi encoder dari sapuan terakhir. R545 S0 mengosongkan
R546 ⚠ 🔒 Kalibrasi encoder penuh, satu perintah. Lengan bergerak banyak, sekitar 3–5 menit; kirim apa pun untuk membatalkan. S<derajat> mengubah ukuran segmen. Hasil: tidak perlu tabel, tabel disimpan, atau ditolak
R549 P<1|2|3> ⚠ 🔒 Ukur kelonggaran gigi satu sendi lewat encoder, simpan ke config, lalu jalankan G28
R550 ⚠ 🔒 Petakan lenturan lengan pada berbagai pose (grid pose bahu × siku), dipakai mengoreksi gerak otomatis. S1 tampilkan peta, S0 hapus
R551 S1|S0 🧪 Pantau encoder selama bergerak: tiap gerak dicatat, dan selisih per sendi saat tiba. Bukti kalau ada langkah yang hilang
Beberapa perintah di atas mengunci robot sampai G28 berikutnya (R543, R549, R550): posisi tidak lagi bisa dipercaya sesudah pengukuran, jadi robot menolak gerak sampai Home ulang.

Modul eksternal (sensor, relay, servo tambahan)

Modul tambahan tersambung ke jalur serial kedua robot dan melapor sendiri kanal yang dimilikinya (mis. delapan masukan, empat relay, empat servo).

Wiring, daya, dan cara memeriksa modul: lihat bagian Modul Eksternal. Menyambung beban ke relay: lihat bagian Relay Modul IO.

PerintahFungsi
R700 Daftar modul yang melapor, kanalnya, dan nilainya. Tanda [BASI] = sudah lebih dari 1,5 detik tanpa kabar. S1 meminta modul memperkenalkan diri lagi
R701 P<1-4> S<0|1> Nyalakan atau matikan relay nomor P di modul
R702 [P<1-9>] S<0-180> Gerakkan servo nomor P (bawaan 1) di modul ke sudut S. Jumlah servo yang ada ditentukan modulnya

Mode balasan

PerintahFungsi
R600 Bolak-balik mode balasan motor: tunggu gerakan selesai atau balas langsung (bawaan, disarankan untuk aplikasi pengirim)
R601 Bolak-balik mode balasan servo: tunggu servo selesai atau langsung

Diagnostik pengembangan

Hanya untuk teknisi yang memburu masalah mekanis atau bunyi. Tidak perlu dipakai biasa.

PerintahFungsi
R552 🧪 Irama pulsa motor: jeda antar-iterasi saat bergerak, lonjakan target. S0 reset
R555 S1|S0 🧪 Uji: blokir semua keluaran serial (masukan tetap jalan). Jangan lupa S0
R557 [S<persen>] [J<putaran>] ⚠ 🧪 Gerak polos langsung dari firmware untuk membedakan "jalur gerak" dari "lingkungan" saat bunyi motor

Perintah yang berubah di RNV4H2

PerintahFungsi
G33 Dihapus (probe sentuh)
R520 Dulu probe sentuh. Sekarang mode tuntun tangan
G28 Memakai encoder kalau acuan home ada; deteksi beban kalau tidak
R1–R4 Membaca masukan dari modul eksternal, bukan pin di papan
R515 / R516 Tetap perintah baca posisi murni. Titik teach dan titik gripper ada di R518 / R519

Kalau perintah tidak dikenal

Robot membalas ERROR untuk perintah yang tidak ada atau nomor yang di luar jangkauan. Perintah yang butuh Home tetapi robot belum di-Home membalas pesan yang menyebut G28.

Langkah berikutnya: R-code (Program SD) · Sensor Digital · Kalibrasi (hwConfig)

R-code (Program SD Card dan Mode Teach)

Intinya: Program gerak disimpan di SD card dan bisa diputar lagi tanpa Studio; mode teach memandu lengan dengan tangan.

Satu "program aktif" pada satu waktu. Setiap titik yang diajarkan langsung tersimpan di kartu.

Mode tuntun tangan (teach)

PerintahFungsi
R520 S1 🔒 Masuk mode teach: motor dimatikan dan lengan digerakkan dengan tangan; encoder mengikuti posisinya. Selama aktif, R515 melaporkan posisi lengan sebenarnya dan R518 menyimpannya. Gerakan G-code ditolak. Posisi di luar ruang kerja ditandai. Hati-hati: tanpa motor, lengan bisa turun sendiri di jangkauan maksimum
R520 S0 Keluar mode teach: motor menahan lagi, posisi lengan dibukukan dari encoder. Ditolak kalau lengan di luar ruang kerja (P1 memaksa)
R520 Status mode teach

Program di SD card

PerintahFungsi
R500 [nama] Buat program baru dan jadikan aktif (tanpa nama = nama otomatis)
R501 Tambahkan perintah gerak terakhir ke akhir program aktif
R502 [P<n>] Tampilkan program aktif, atau pratinjau program tersimpan nomor n
R503 P<baris> Sisipkan perintah terakhir di baris tertentu
R504 P<baris> [UP|DOWN] Hapus satu baris, atau geser ke atas/bawah
R505 CONFIRM Kosongkan program aktif (wajib mengetik CONFIRM)
R506 Tutup program aktif (tidak menghapus apa pun)
R507 Daftar semua program tersimpan
R508 P<n> [X<kali>] ⚠ Putar program nomor n. X<kali> = putar tepat sekian kali. Tanpa X mengikuti mode loop (R511)
R509 P<n> Hapus program nomor n dari SD
R510 P<n> Buka program tersimpan untuk diedit
R511 [S<0|1>] Mode loop: tanpa parameter = bolak-balik, S1 nyala, S0 mati. Boleh dikirim saat program berjalan
R512 Hentikan program yang sedang berjalan
R513 Mode tempel: baris berikutnya ditempel ke program aktif tanpa dijalankan, sampai END atau DONE
R514 Tampilkan perintah terakhir yang dijalankan
R517 [P<baris>] <teks> Tempel baris apa adanya (label, kondisi sensor) ke program aktif
R518 [S] [F<f>] [P1] Teach point: simpan posisi robot sekarang sebagai titik. S sertakan servo rotasi, F pakai gerak lurus dengan kecepatan itu, P1 sertakan rel
R519 Titik gripper: simpan posisi gripper sekarang sebagai baris di program
R521 Status program yang diputar tombol fisik robot
R521 <nama tampilan> Daftarkan program yang diputar tombol BOOT. Yang disimpan namanya, bukan nomor urut
R521 S0 Hapus pendaftaran
R521 P1 ⚠ Jalankan program terdaftar sekarang (uji tanpa ke robotnya)

Tombol BOOT punya tiga arti tekan-pendek sesuai keadaan robot: belum dikalibrasi = Home (G28), sudah dikalibrasi dan diam = putar program terdaftar, sedang memutar = hentikan.

Langkah berikutnya: Membuat Program SD Card · Sensor Digital

Bukan versi Anda? Bagian ini untuk RNV4H2. Kalau robot Anda RNV4 (lama), lihat bagian yang sama untuk RNV4: Sensor Digital (RNV4)

Sensor Digital (IN1–IN3)

Intinya: Sensor masuk lewat modul IO: TUNGGU menahan program sampai sensor terpenuhi, LOMPAT mengecek sekali lalu bercabang.

Cara memakai sensor di program SD: menunggu sensor, bercabang (jika sensor begini lompat ke sana), mengulang (loop), memakai label, dan menggabung beberapa sensor dengan AND / OR. Lengkap dengan contoh penulisan.

Sebelum memakai sensor, pastikan modul IO sudah terpasang dan terbaca (lihat bagian Modul Eksternal). Sensor di robot RNV4H2 datang dari modul itu. Modul IO standar punya 3 masukan (IN1–IN3), sama seperti di dialog RNV4 Studio; firmware juga mengenal satu masukan tambahan (IN4) untuk modul lain.

Yang perlu dipahami dulu

Robot punya empat masukan logis: IN1, IN2, IN3, IN4. Masing-masing bernilai HIGH (tinggi) atau LOW (rendah). Nilai itu datang dari sensor yang tersambung ke modul IO.

HIGH dan LOW adalah tingkat sinyal di pin, bukan "terdeteksi" atau "tidak". Sensor yang berbeda punya polaritas berbeda. Sensor penghalang IR yang umum menarik OUT ke LOW saat ada objek, sedangkan banyak saklar menjadi HIGH saat ditekan. Jangan menebak: ukur dengan R1 saat objek ada dan saat tidak ada, lalu pilih H atau L di program sesuai hasilnya.

Masukan robot dan konektor modul

MasukanSumber
IN1 Konektor SENSOR1 di modul IO
IN2 Konektor SENSOR2 di modul IO
IN3 Konektor SENSOR3 di modul IO

Di dalam program ada tiga jenis baris yang berhubungan dengan sensor:

Jenis barisContohFungsi
TUNGGU IN1 H Program berhenti di baris ini sampai IN1 HIGH
LOMPAT (percabangan) IN1 H >2 Cek sekali: kalau IN1 HIGH, lompat ke label >2; kalau tidak, lanjut ke baris berikutnya
LABEL >2 Penanda tujuan lompatan. Tidak dikerjakan, hanya penanda

Perbedaan TUNGGU dan LOMPAT hanya satu hal: ada atau tidaknya >N di ujung baris. Bagian ini yang paling sering tertukar.

Membaca sensor dengan tangan

Sebelum menulis program, lihat dulu nilai sensornya:

PerintahBalasan
R1 IN1: HIGH atau IN1: LOW
R2, R3, R4 sama, untuk IN2, IN3, IN4
R5 IN1:1 IN2:0 IN3:1 IN4:0 (1 = HIGH, 0 = LOW), plus keterangan segar atau tidak

Kalau modul tidak melapor, balasannya TIDAK DIKETAHUI, bukan LOW. Itu disengaja supaya kabel yang lepas tidak terbaca seperti sensor sehat yang sedang tidak terpicu.

RNV4 Studio juga menampilkan keadaan IN1–IN3 langsung sebagai indikator warna.

TUNGGU: berhenti sampai sensor terpenuhi

Tulis nama sensor lalu keadaan yang ditunggu, tanpa >N:

IN1 H ; tunggu sampai IN1 HIGH G0 X0.000 Y250.050 Z25.000 ; baru turun
  • Program menahan diri tanpa batas waktu sampai kondisi terpenuhi.
  • Selama menunggu, robot tetap melayani servo, Studio, dan perintah berhenti. Setiap 2 detik ia mengirim Still waiting for: IN1 H supaya jelas ia tidak hang.
  • Hentikan program yang sedang menunggu dengan R512 (atau tombol Stop di Studio).
  • Sebelum menilai sensor, robot menunggu semua gerakan yang sudah diantre selesai secara fisik. Jadi sensor dinilai berdasarkan posisi robot sungguhan, bukan posisi baris di file. Akibatnya robot berhenti sejenak di tiap baris sensor.

Cocok untuk: "tunggu benda datang", "tunggu operator menekan tombol", "tunggu mesin sebelah selesai".

LOMPAT: percabangan "jika … maka lompat ke …"

Tambahkan >N di ujung baris, dengan N nomor label tujuan:

IN1 H >3 ; jika IN1 HIGH, lompat ke label 3. Kalau tidak, lanjut baris berikutnya
  • Robot mengecek sekali, pada saat baris itu dijalankan, lalu langsung memutuskan.
  • Kalau sensornya hanya sesaat (mis. saklar yang ditekan sebentar), cabang bisa tidak terambil karena sensornya belum aktif pada saat itu. Untuk "tunggu sampai ditekan" pakai TUNGGU, bukan LOMPAT.
  • Kalau kondisi tidak terpenuhi, log menulis Jump condition FALSE - continuing. Itu bukan error: kondisinya memang belum benar pada saat dicek.

Label

Label adalah penanda tujuan lompatan. Satu baris, diawali > dan nomor:

>1 ; label nomor 1 >2 # kembali home ; boleh diberi komentar sesudah tanda #
AturanKeterangan
Nomor Bilangan bulat positif: >1, >2, >10
Batas Maksimal 20 label per program. Label ke-21 dan seterusnya diabaikan dan dicatat sebagai error
Letak Label boleh di atas (untuk mengulang) maupun di bawah (untuk melewati bagian) baris lompatnya
Dikerjakan? Tidak. Baris label hanya penanda
Label tidak ada Lompatan dibatalkan dengan pesan JUMP ERROR: Label >N not found! dan program lanjut ke baris berikutnya
Nomor ganda Jangan memakai nomor yang sama dua kali

Baris kosong dan komentar yang diawali ; tidak dihitung sebagai baris program.

Menulis dari RNV4 Studio

Di Editor Gerakan, tombol di Panel Robot menyisipkan baris-barisnya:

TombolMenghasilkanDibaca robot sebagai
+ Label @LABEL 1 >1
+ Kondisi Sensor + Jump @JUMP IN1 H 2 IN1 H >2
  @JUMP IN1 H AND IN2 L 3 IN1 H AND IN2 L >3
+ Teks Bebas baris apa saja yang Anda ketik seperti yang diketik

Dialog "Kondisi Sensor + Jump" menawarkan IN1–IN3, satu syarat, atau dua syarat dengan AND / OR. Bentuk TUNGGU (IN1 H) dan kondisi dengan lebih dari dua sensor ditulis lewat + Teks Bebas. Penulisan @LABEL dan @JUMP dari Studio dan penulisan >N langsung sama-sama diterima robot.

Menggabung sensor: AND dan OR

Satu baris boleh memuat beberapa syarat:

IN1 H AND IN2 L ; IN1 HIGH dan IN2 LOW sekaligus IN1 H OR IN3 H ; salah satu saja IN1 L OR IN2 H AND IN3 L ; campuran

Berlaku untuk bentuk TUNGGU dan bentuk LOMPAT:

IN1 H AND IN2 H ; TUNGGU sampai keduanya HIGH IN1 H AND IN2 L >4 ; LOMPAT ke >4 kalau IN1 HIGH dan IN2 LOW

Cara menulis satu syarat

DitulisArtinya
IN1 H, IN1 1, IN1=H IN1 harus HIGH
IN1 L, IN1 0, IN1=L IN1 harus LOW

Spasi bebas dan huruf besar/kecil bebas: in1 h sama dengan IN1 H.

Urutan: AND lebih kuat dari OR

IN1 L OR IN2 H AND IN3 L dibaca: IN1 L OR (IN2 H AND IN3 L)

Tanda kurung TIDAK didukung

Menulis IN1 H AND (IN2 H OR IN3 L) ditolak dan program berhenti dengan pesan yang menyebut kondisinya. Kalau Anda butuh (A OR B) AND C, pecah jadi beberapa baris lompatan (lihat pola "Dua sensor sekaligus" di bawah).

Kondisi yang tidak bisa dinilai membuat program berhenti

Kondisi yang salah tulis tidak dinilai "tidak terpenuhi". Program dihentikan dengan pesan yang menyebut kondisi aslinya. Yang ditolak: tanda kurung, sensor selain IN1–IN4, bentuk selain IN<nomor> H/L, dan keadaan selain H, 1, L, 0. Ini disengaja: kondisi yang dianggap false diam-diam akan membuat robot menunggu selamanya atau mengambil cabang yang salah tanpa ada yang tahu sebabnya.

Pola yang sering dipakai

Tunggu lalu kerjakan

IN1 H ; tunggu benda G0 X0.000 Y250.050 Z25.000 M10 ; vakum ON

Ulang terus selama sensor aktif (loop)

>1 ; awal loop G0 X0.000 Y250.050 Z175.000 G0 X0.000 Y250.050 Z25.000 IN1 H >1 ; selama IN1 HIGH, kembali ke >1 G0 X0.000 Y250.050 Z175.000 ; IN1 LOW: keluar dari loop dan lanjut

Ulang sampai ada sensor yang menghentikan

>1 G0 X100.000 Y200.000 Z175.000 G0 X-100.000 Y200.000 Z175.000 IN2 L >1 ; selama tombol stop (IN2) belum HIGH, ulangi

Jika / selain itu (if / else)

Tujuan: kalau IN3 HIGH kerjakan cabang B, kalau tidak kerjakan cabang A, lalu keduanya bertemu lagi.

IN3 H >2 ; JIKA IN3 HIGH, lompat ke cabang B ; --- cabang A (IN3 LOW) --- G0 X100.000 Y200.000 Z175.000 IN1 H OR IN1 L >3 ; lompat ke akhir (lihat catatan) >2 ; --- cabang B (IN3 HIGH) --- G0 X-100.000 Y200.000 Z175.000 >3 ; --- bertemu lagi --- M11
Catatan: robot tidak punya perintah "lompat tanpa syarat". Baris IN1 H OR IN1 L >3 adalah akal-akalan yang selalu benar (IN1 pasti HIGH atau LOW). Kalau IN1 sedang tidak melapor, program berhenti dengan pesan sumber tidak tersedia, jadi ini aman, tetapi uji dulu di robot sebelum dipakai untuk pekerjaan penting.

Dua sensor sekaligus: (A OR B) AND C tanpa kurung

Tujuan: lanjut kalau (IN1 HIGH atau IN2 HIGH) dan IN3 LOW.

IN3 H >9 ; C gagal: lompat ke akhir/penanganan lain IN1 H OR IN2 H ; C lolos: tunggu salah satu dari A atau B G0 X0.000 Y250.050 Z25.000 >9

Sortir dua jalur

>1 IN1 H ; tunggu benda G0 X0.000 Y250.050 Z25.000 M10 ; ambil G0 X0.000 Y250.050 Z175.000 IN3 H >2 ; benda jenis B? lompat ke >2 G0 X100.000 Y200.000 Z175.000 ; jenis A: jalur kiri M11 IN2 L >1 ; selama stop belum ditekan, ulangi >2 G0 X-100.000 Y200.000 Z175.000 ; jenis B: jalur kanan M11 IN2 L >1

Sensor dan relay bersama

IN1 H ; tunggu benda masuk R701 P1 S1 ; relay 1 nyala (mis. penjepit atau conveyor) G0 X0.000 Y250.050 Z25.000 R701 P1 S0 ; relay 1 mati

Perintah relay boleh jadi baris program; robot menunggu konfirmasi dari modul sebelum lanjut.

Menjalankan dan menghentikan

R507 ; daftar program, catat nomornya R508 P3 ; jalankan program nomor 3 sekali R508 P3 X10 ; jalankan tepat 10 kali R511 S1 ; nyalakan mode loop (ulang terus) R512 ; BERHENTI

R508 P3 X0 bukan "tak terbatas": X hanya dipakai kalau lebih besar dari 0. Untuk berulang, pakai X<jumlah> atau mode loop R511 S1.

Batas lompatan: satu putaran program boleh melompat paling banyak 1000 kali. Lebih dari itu program berhenti dengan pesan JUMP LIMIT EXCEEDED (pengaman dari loop tak berujung yang tidak disengaja). Hitungannya mulai dari nol di setiap putaran. Loop yang memang harus jalan terus sebaiknya memakai mode loop R511 S1, bukan lompatan tanpa akhir.

Batasan yang perlu diketahui

BatasanDampakYang dilakukan
Sensor dibaca dari modul tiap ±200 ms Pulsa yang lebih pendek dari itu bisa terlewat Untuk benda yang lewat cepat dan penting (pencacah), hitung di modul lalu laporkan sebagai angka. Atau perlambat gerakan di titik itu
Debounce 25 ms dilakukan di modul Pulsa lebih pendek dari 25 ms memang diabaikan Itu disengaja
TUNGGU tanpa batas waktu Kalau sensor tidak pernah terpenuhi, program menunggu selamanya Hentikan dengan R512
Maksimal 20 label Label berikutnya diabaikan Sederhanakan program
Tanpa tanda kurung (A OR B) AND C ditolak Pecah jadi beberapa baris (lihat pola "Dua sensor sekaligus")
Hanya IN1–IN4 Masukan lain dari modul bisa dibaca lewat R700 tetapi belum bisa dipakai di program Pakai empat pertama
Robot berhenti sejenak di tiap baris sensor Program yang banyak baris sensor lebih lambat Itu harga pembacaan yang benar
Sumber sensor diam Program dihentikan dengan pesan sensor source unavailable Periksa sambungan modul (R700)
Kenapa program berhenti ketika sumbernya diam, bukan diteruskan? Kondisi IN1 L yang membaca nilai basi akan langsung terpenuhi dan menggerakkan robot seolah sensor sudah mengonfirmasi sesuatu. Berhenti dengan pesan jelas lebih aman daripada meneruskan dengan nilai tebakan.

Pemecahan masalah

GejalaKemungkinan penyebabTindakan
R1 menjawab TIDAK DIKETAHUI Modul tidak melapor Cek daya dan kabel modul, lalu R700
Program berhenti: sensor source unavailable Modul diam saat program menunggu sensor Perbaiki sambungan, jalankan lagi
Program lanjut padahal sensor belum aktif >N ikut tertulis, jadi baris ini LOMPAT, bukan TUNGGU Hapus >N
Jump condition FALSE terus LOMPAT mengecek sesaat dan sensor belum aktif saat itu Pakai TUNGGU, atau ulangi pengecekan dalam loop
Robot menunggu selamanya Kondisi tidak pernah terpenuhi, atau polaritas terbalik (H seharusnya L) Cek nilai dengan R1, hentikan dengan R512
Program berhenti dengan pesan kondisi tidak sah Ada tanda kurung, sensor di luar IN1–IN4, atau keadaan bukan H/L Tulis ulang kondisinya (lihat "Menggabung sensor")
JUMP ERROR: Label >N not found! Label tujuan tidak ada, atau melebihi batas 20 Tambahkan label atau kurangi jumlahnya
JUMP LIMIT EXCEEDED Loop lompatan melewati 1000 kali dalam satu putaran Pakai mode loop, atau periksa kondisi keluar loop
Failed to parse command: @LABEL 1 Firmware lama Perbarui firmware ke versi RNV4H2

Rujukan cepat

Membaca: R1 .. R4 baca satu masukan -> IN1: HIGH / LOW / TIDAK DIKETAHUI R5 baca semuanya -> IN1:1 IN2:0 IN3:1 IN4:0 Di dalam program: >N label nomor N (maks 20 per program) >N # komentar label dengan komentar IN1 H TUNGGU sampai IN1 HIGH (tanpa >N) IN1 L TUNGGU sampai IN1 LOW IN1 H >N LOMPAT ke >N kalau IN1 HIGH (cek sekali) IN1 H AND IN2 L syarat majemuk (AND lebih kuat dari OR, tanpa kurung) IN1 H OR IN3 H >N LOMPAT kalau salah satu terpenuhi Dari Studio: @LABEL N = >N @JUMP IN1 H N = IN1 H >N @JUMP IN1 H AND IN2 L N = IN1 H AND IN2 L >N Menjalankan: R507 / R508 P<n> [X<kali>] / R511 S1 / R512

Langkah berikutnya: Modul Eksternal · Glosarium · Gejala & Solusi

Contoh Penggunaan (Alur Kerja Umum)

Intinya: Contoh perintah siap salin untuk home, gerak, vakum, dan program.

Rangkaian command G/M/R-code untuk beberapa alur kerja yang umum dipakai. Semua contoh mengasumsikan robot sudah selesai G28 (homing) setelah boot — wajib sebelum G0/G1/G2/G3 pertama kali.

Gerak Dasar & Homing

G28 ; wajib pertama kali setelah boot G0 X100 Y150 Z50 ; rapid move, kecepatan otomatis maksimum G1 X200 Y100 F600 ; gerak terkontrol, ≈10 mm/detik M114 ; cek posisi saat ini

Pick & Place dengan Gripper Vacuum

G0 X100 Y150 Z50 ; pindah ke atas benda G1 Z10 F300 ; turun pelan mendekati benda M10 ; vacuum ON — benda terangkat G1 Z50 F600 ; angkat G0 X250 Y100 ; pindah ke titik taruh G1 Z10 F300 M11 ; vacuum release — benda lepas G1 Z50 F600

Jeda tunggu bawaan M10/M11 diatur field vacuum_on_dwell/vacuum_off_dwell (lihat Kalibrasi Hardware) — sesuaikan lewat R91 kalau benda berat/berpori.

Menggambar/Menulis dengan Gripper Pen

G0 X100 Y100 Z50 ; ke titik awal, pen masih di atas kertas R30 ; pen DOWN — turun ke kertas G1 X150 Y100 F300 ; gambar garis G1 X150 Y150 F300 G1 X100 Y150 F300 R31 ; pen UP — angkat dari kertas

Gripper Servo Manual

R280 P2 S0 ; buka gripper (servo2 ke 0°) R280 P2 S90 F60 ; tutup pelan — kecepatan custom 60°/s R281 P2 ; cek posisi & status R280 P1 S45 ; servo1 (rotasi gripper) ke 45°, kecepatan MAX R281 P1

Untuk gerak XYZ + rotasi gripper bersamaan (bukan berurutan), pakai parameter S langsung di G0/G1 — lihat G-code.

Ajar & Mainkan Program dari SD Card

Alur "ajarkan titik satu-satu" lalu mainkan berulang — cocok untuk gerakan berulang (mis. pick & place di titik-titik tetap):

R500 pindah_kotak ; buat program baru, jadi program aktif G0 X100 Y150 Z50 ; gerak manual ke titik 1 ... R501 ; ... simpan command terakhir ke program G1 Z10 F300 R501 M10 R501 G1 Z50 F600 R501 R502 ; tampilkan isi program aktif untuk dicek R506 ; selesai — lepas program aktif (file tetap tersimpan) R507 ; lihat daftar semua program tersimpan R508 P1 ; mainkan program #1 sekali R508 P1 X5 ; mainkan program #1 persis 5 kali R512 ; hentikan playback yang sedang berjalan

R500/R501/R506 tidak membalas konfirmasi eksplisit kecuali error — gunakan R502/R507 untuk verifikasi isi.

Cek Posisi Saat Robot Sedang Bergerak

Query murni, aman dikirim kapan saja termasuk saat robot masih bergerak, tidak butuh homing:

R515 RL SR ; posisi X/Y/Z + rel (E) + servo1 R516 ; posisi servo1 & servo2 saat ini

Hubungkan WiFi

R22 untuk dipakai manual lewat serial monitor (percakapan bertahap, pilih SSID lalu ketik password):

R22 → 1 (pilih nomor SSID dari hasil scan) → passwordwifi123 (ketik password jaringan)

R23 untuk dipanggil programatik dari app/UI (satu kali kirim JSON, non-blocking):

R23 → {"ssid":"RumahWifi","pass":"passwordwifi123"}

Langkah berikutnya: R-code (Kontrol) · Membuat Program SD Card

Bukan versi Anda? Bagian ini untuk RNV4H2. Kalau robot Anda RNV4 (lama), lihat bagian yang sama untuk RNV4: Kalibrasi (hwConfig) (RNV4)

Kalibrasi (hwConfig)

Intinya: Setiap robot menyimpan kalibrasinya sendiri; lihat dengan R90, ubah satu field lewat R91 atau Config Robot di Studio.

Setiap unit robot menyimpan kalibrasi pribadinya di memori internal. Isinya faktor skala, kopling antar sendi, arus motor, acuan home encoder, batas sudut sendi, dan lain-lain. Robot membacanya saat menyala; Anda tidak perlu mem-flash ulang untuk mengubahnya.

Cara mengubah

CaraKeterangan
RNV4 Studio → Config Robot Disarankan. Field dikelompokkan per tab.
R90 Menampilkan semua field beserta nomornya.
R91 <nomor> <nilai> Mengubah satu field. Tanpa nilai, menampilkan nilai sekarang.
R92 Mengembalikan semua field ke nilai pabrik. Kalibrasi unit hilang — jangan dipakai tanpa cadangan.
R93 / R94 Ekspor / pulihkan seluruh kalibrasi (cadangan).

Catatan:

  • Field bertanda *reboot baru berlaku setelah robot dinyalakan ulang. Yang lain berlaku langsung.
  • Studio meneruskan perubahan ke server sebagai cadangan; unit baru/ganti papan bisa dipulihkan dari situ.
  • Catat nilai lama sebelum mengubah. Banyak field hasil ukur per unit dan tidak bisa ditebak ulang.

Yang berbeda dari RNV4 lama

  • Tidak dipakai lagi: field suhu dan kipas (nomor 13–16 dan 32 sengaja kosong). Kipas kini disaklar termostat di hardware, bukan firmware.
  • Ditambahkan: ambang deteksi beban (StallGuard), arah dan acuan home encoder, arus motor per sendi dan arus tahan, kompensasi backlash, batas sudut sendi, titik kalibrasi gripper, jenis gripper, Bluetooth, tingkat log, dan program pemutaran offline.
  • Nilai pabrik pada tabel di bawah adalah bawaan (bukan nilai wajib). Unit Anda mungkin sudah berbeda karena kalibrasi.

Daftar field

Skala dan kopling Kartesius (koreksi posisi ujung lengan)

Dipakai setelah geometri lengan dihitung, untuk meluruskan selisih kecil antara posisi yang diperintahkan dan posisi terukur dengan penggaris. Ubah hanya setelah mengukur.

NoKunciBawaanArti
1 cal_x_scale 0,8888 Skala sumbu X (1,0 = tanpa koreksi)
2 cal_y_scale 1,0389 Skala sumbu Y
3 cal_xy_skew_pos −0,040 mm Y per mm X, saat X bertambah
4 cal_xy_skew_neg 0,040 mm Y per mm X, saat X berkurang
5 cal_zy_coupling_pos −0,010 mm Z per mm Y, saat Y bertambah
6 cal_zy_coupling_neg −0,038 mm Z per mm Y, saat Y berkurang
7 cal_yz_coupling_pos −0,038 mm Y per mm Z, saat Z bertambah
8 cal_yz_coupling_neg 0,038 mm Y per mm Z, saat Z berkurang
44 cal_zx_coupling_pos 0,000 mm Z per mm X, saat X bertambah
45 cal_zx_coupling_neg 0,000 mm Z per mm X, saat X berkurang

Homing (acuan awal)

NoKunciBawaanArti
9 x_home_steps 3900 Langkah dari stopper bahu ke posisi awal
10 y_home_steps 4590 Langkah dari stopper siku ke posisi awal
11 z_home_steps 12550 Langkah dari stopper rotasi ke posisi awal
12 e0_home_steps 0 Langkah dari stopper rel ke posisi awal
81 e0_home_invert 0 Sisi limit switch rel: 0 = sisi bawaan, 1 = sebaliknya

Deteksi beban / tabrakan (StallGuard)

Angka lebih besar = lebih mudah terpicu = tabrakan lebih ringan. Nilai ini bergantung kecepatan dan arus motor; mengubah arus atau kecepatan homing berarti perlu diukur ulang.

NoKunciBawaanArti
46 sgthrs_x 90 Ambang homing bahu (0 = hitung otomatis)
47 sgthrs_y 80 Ambang homing siku
48 sgthrs_z 50 Ambang homing rotasi base
52 sgthrs_sweep_x 100 Ambang sapuan kalibrasi bahu (0 = ikut homing)
53 sgthrs_sweep_y 80 Ambang sapuan kalibrasi siku
54 sgthrs_sweep_z 50 Ambang sapuan kalibrasi rotasi base

Encoder AS5600

NoKunciBawaanArti
49 enc_dir_x +1 Arah hitung encoder bahu (+1 / −1)
50 enc_dir_y −1 Arah hitung encoder siku
51 enc_dir_z +1 Arah hitung encoder rotasi base
58 enc_home_x −1 Acuan home encoder bahu (hitungan; −1 = belum ada)
59 enc_home_y −1 Acuan home encoder siku
60 enc_home_z −1 Acuan home encoder rotasi base
61 enc_home_dwell_us 450 Jeda antar langkah saat G28 via encoder (µs; lebih kecil = lebih cepat, rentang 150–5000)
  • Arah encoder adalah fakta pemasangan, bukan pilihan: tergantung sisi magnet yang menghadap sensor. Jangan ditebak — G28, gerakkan sendi sedikit, lalu R542; R542 S1 menuliskan arah yang benar otomatis.
  • Acuan home diisi otomatis oleh homing; −1 berarti G28 memakai StallGuard. Bila G28 melapor acuan berbeda dari yang tersimpan, terima dengan R547.
  • Tabel koreksi encoder tidak ada di hwConfig (terlalu besar); ia disimpan terpisah dan tidak ikut R92.

Arus motor dan backlash (TMC2209)

NoKunciBawaanArti
55 tmc_current_x 600 Arus kerja bahu (mA RMS, 200–1200)
56 tmc_current_y 600 Arus kerja siku
57 tmc_current_z 700 Arus kerja rotasi base
65 tmc_hold_pct 50 Arus tahan (% dari arus kerja, 10–100; 100 = tanpa penurunan)
66 tmc_powerdown_s 3,0 Detik diam sebelum arus turun ke arus tahan
67 tmc_hold_delay 8 Kehalusan penurunan arus (0–15; 0 = seketika)
62 backlash_x 0 Kelonggaran gigi bahu (langkah motor; 0 = mati)
63 backlash_y 0 Kelonggaran gigi siku
64 backlash_z 10 Kelonggaran gigi rotasi base

Penjelasan lengkap arus: lihat bagian Motor & Driver Listrik. Backlash diukur dengan R549 P1/P2/P3 (hasilnya langsung tersimpan), lalu G28. Batas atas 2000.

Stepper (*reboot)

NoKunciBawaanArti
21 microsteps 16 Microstep (1/2/4/8/16/32)
22 steps_per_rev 200 Langkah per putaran motor
23 inverse_x_stepper false Balik arah motor bahu
24 inverse_y_stepper true Balik arah motor siku
25 inverse_z_stepper false Balik arah motor rotasi base
26 inverse_e0_stepper false Balik arah motor rel
Mengubah microstep atau arah tanpa memahami akibatnya membuat gerakan terbalik atau salah skala. Ubah hanya bila perangkat keras memang berbeda.

Rel (opsional)

NoKunciBawaanArti
27 steps_per_mm_rail 80,0 Langkah per mm (*reboot)
28 rail_length 193,0 Panjang rel (mm) (*reboot)
29 rail_enabled false Unit ini memakai rel

Batas sudut sendi

Batas ini mencegah lengan menabrak badan. Hasil ukur fisik unit pertama — unit lain bisa sedikit berbeda.

NoKunciBawaanArti
75 joint_low_min_deg −32,0 Lengan bawah paling rebah ke belakang (derajat)
76 joint_low_max_deg 82,3 Lengan bawah paling rebah ke depan
77 joint_high_min_deg 54,4 Lengan atas paling mendongak
78 joint_high_max_deg 184,0 Lengan atas paling menunduk

Servo dan gripper

NoKunciBawaanArti
33 servo1_default_pos 90 Posisi awal servo rotasi (derajat)
34 servo1_speed 330 Kecepatan servo rotasi (°/detik)
35 servo1_min_pos 0 Batas bawah servo rotasi
36 servo1_max_pos 180 Batas atas servo rotasi
40 servo1_max_speed 330 Kecepatan maksimum servo rotasi (°/detik)
74 servo1_invert 0 Balik arah servo rotasi (langsung aktif)
37 servo2_default_pos 120 Posisi awal gripper (derajat)
38 servo2_min_pos 70 Gripper menutup penuh
39 servo2_max_pos 120 Gripper membuka penuh
41 servo2_max_speed 300 Kecepatan maksimum servo gripper
82 gripper_type 0 Jenis terpasang: 0 tidak ada, 1 servo, 2 vakum, 3 pena

Titik kalibrasi bukaan gripper (sudut ↔ jarak rahang), dipakai agar bukaan dapat diperintah dalam milimeter:

NoKunciArti
68 / 69 grip_deg_a / grip_mm_a Titik A (derajat / mm); 0 = kosong
70 / 71 grip_deg_b / grip_mm_b Titik B
72 / 73 grip_deg_c / grip_mm_c Titik C (opsional)
83 / 84 grip_deg_d / grip_mm_d Titik D (opsional)
85 / 86 grip_deg_e / grip_mm_e Titik E (opsional)

Isi dengan R282: bawa gripper ke sudut yang mudah diukur, ukur jarak rahang, kirim R282 D<mm> (sudutnya ikut tercatat). Dua titik = garis lurus; titik lebih banyak = lebih teliti. R282 S0 menghapus.

Pena, vakum

NoKunciBawaanArti
17 pen_down_z 0,0 Z pena menyentuh kertas (mm)
18 pen_up_z 10,0 Z pena di udara (mm)
19 pen_down_dwell 100 Jeda sebelum turun (ms)
20 pen_down_speed 500 Kecepatan turun (mm/menit)
30 pen_up_dwell 100 Jeda sebelum naik (ms)
31 pen_up_speed 500 Kecepatan naik (mm/menit)
42 vacuum_on_dwell 500 Jeda setelah pompa dinyalakan (ms)
43 vacuum_off_dwell 1000 Waktu katup terbuka setelah pompa dimatikan (ms)

Bluetooth, log, pemutaran offline

NoKunciBawaanArti
79 bt_enabled 1 Bluetooth menyala saat boot (R24 S1/S0 mengubahnya)
80 bt_password 1234 Password Bluetooth; diubah dari Studio, tidak ditampilkan
87 offline_program kosong Nama program yang diputar tombol fisik; diisi lewat R521, bukan R91
88 log_level 2 Tingkat log USB: 0 ERROR, 1 INFO, 2 DEBUG (langsung aktif)

Aturan praktis

  1. R90 dulu, catat, baru ubah. Simpan hasil R90 (atau ekspor R93).
  2. Ubah satu field, uji, baru lanjut.
  3. Field Kartesius (lihat Skala dan kopling Kartesius) dan batas sendi (lihat Batas sudut sendi) hasil pengukuran — jangan dikarang.
  4. Arus (lihat Arus motor dan backlash) naikkan bertahap dan hanya bila ada langkah yang hilang; arus tinggi memanaskan driver.
  5. Setelah mengubah arus, ambang StallGuard, atau acuan home: jalankan G28 ulang.
  6. R92 menghapus kalibrasi unit. Jangan dipakai sembarangan.

Langkah berikutnya: Motor & Driver Listrik · Gejala & Solusi

Tutorial

Setup Akun & Token API

Intinya: Buat akun Ruskomponen lalu token API untuk dipakai Studio dan fitur AI.

Langkah pertama sebelum bisa mengontrol robot dari PC: unduh & instal RNV4 Studio, lalu hubungkan ke akun web Anda pakai Token API (bukan username/password) — token inilah yang mengizinkan Studio bicara ke server atas nama akun Anda.

Prasyarat

Komputer PC/laptop Windows 10 atau 11 (RNV4 Studio saat ini hanya tersedia untuk Windows)
Koneksi internet Diperlukan untuk membuat akun, membuat token, dan login pertama kali di RNV4 Studio
Alamat email aktif Untuk mendaftar akun baru di dashboard web
  1. 1

    Buka halaman unduhan

    Unduh installer RNV4 Studio (RNV4Studio-Setup.exe) dari halaman /download.

    Halaman unduhan RNV4 Studio
  2. 2

    Buka folder hasil unduhan

    Cari file RNV4Studio-Setup.exe, lalu jalankan.

    Folder Downloads berisi installer RNV4 Studio
  3. 3

    Kalau muncul peringatan Windows

    Windows SmartScreen menandai installer belum bersertifikat code-signing resmi — klik “More info”.

    Windows protected your PC — klik More info
  4. 4

    Klik “Run anyway”

    Installer aman, cuma belum ditandatangani sertifikat berbayar Microsoft — lanjutkan instalasi.

    Windows protected your PC — klik Run anyway
  5. 5

    Klik Install

    Klik tombol Install
  6. 6

    Klik Next

    Klik Next
  7. 7

    Klik Next lagi

    Klik Next lagi
  8. 8

    Klik Yes

    Konfirmasi izin instalasi Windows (UAC).

    Klik Yes pada konfirmasi Windows
  9. 9

    Tunggu hingga selesai

    Progress instalasi RNV4 Studio
  10. 10

    Klik Finish

    RNV4 Studio otomatis terbuka setelah instalasi selesai.

    Klik Finish — RNV4 Studio otomatis terbuka
  11. 11

    Wajib login pakai Token API

    Sejak versi terbaru, RNV4 Studio mewajibkan akun aktif — dialog “Login diperlukan” muncul otomatis saat pertama kali dibuka.

    Dialog Login RNV4 Studio — Login diperlukan
  12. 12

    Belum punya token? Klik link ke dashboard

    Klik “Belum punya token? Daftar/Masuk di ruskomponen.uk” untuk membuka dashboard akun di browser.

    Klik link Daftar/Masuk di ruskomponen.uk
  13. 13

    Daftar atau masuk

    Kalau belum punya akun, daftar dulu. Kalau sudah punya, langsung masuk.

    Halaman daftar/masuk akun
  14. 14

    Buka tab Developer

    Di dashboard web, buka tab Developer lalu klik “Buat Token Pertama” (atau “Buat Token Baru” kalau sudah pernah punya token lain).

    Tab Developer — API Keys — Buat Token Pertama
  15. 15

    Beri nama token

    Nama bebas sesuai keinginan (mis. “Laptop Kerja”) — cuma label pengingat, tidak mempengaruhi fungsi token.

    Isi nama token lalu buat
  16. 16

    Salin token

    Token cuma ditampilkan SEKALI saat dibuat — salin sekarang sebelum menutup dialog.

    Salin token API yang baru dibuat
  17. 17

    Tempel token di RNV4 Studio

    Kembali ke RNV4 Studio, tempel token di kolom yang tersedia, lalu klik Masuk.

    Tempel token di dialog login RNV4 Studio lalu klik Masuk

Troubleshooting

GejalaKemungkinan PenyebabSolusi
Peringatan Windows SmartScreen tidak muncul sama sekali Instalasi diblokir total oleh antivirus/kebijakan Windows, bukan sekadar peringatan Cek notifikasi antivirus, atau unduh ulang installer dari halaman /download (bukan sumber lain)
Dialog Login RNV4 Studio bilang token tidak valid Token salah salin (ada spasi/karakter terpotong), atau token sudah dicabut Kembali ke tab Developer, salin ulang token dengan hati-hati — atau buat token baru
Tidak menerima token setelah klik Buat Koneksi internet putus saat proses pembuatan token Cek koneksi internet, muat ulang halaman dashboard, coba lagi
Lupa menyalin token sebelum menutup dialog Token cuma ditampilkan sekali demi keamanan — tidak bisa dilihat ulang Buat token baru dari tab Developer (token lama tidak hilang/nonaktif, cuma tidak bisa dilihat lagi)

Catatan Penting

  • Token ini bersifat rahasia — jaga baik-baik seperti password, jangan bagikan ke siapa pun. Siapa saja yang memegang token ini bisa mengakses akun Anda lewat RNV4 Studio.
  • Token bisa dicabut/dibuat ulang kapan saja dari tab Developer kalau dicurigai bocor, tanpa perlu update aplikasi.
  • 1 token bisa dipakai di beberapa PC/Studio sekaligus — tidak wajib buat token baru tiap install ulang, cukup salin token yang sama.

Langkah berikutnya: Klaim Robot ke Akun · Koneksi ke RNV4 Studio

Klaim Robot ke Akun

Intinya: Klaim robot ke akun dengan kode klaim sekali pakai yang ditampilkan Studio.

Setelah RNV4 Studio terhubung ke akun (lihat Setup Akun & Token API di atas), Anda bisa "mengklaim" robot fisik ke akun itu satu kali lewat kode klaim sekali-pakai. Langkah ini opsional — bukan syarat wajib untuk mengontrol robot lewat USB/RNV4 Studio seperti biasa — tapi diperlukan kalau ingin memakai fitur yang terhubung ke akun dan bisa diakses dari jarak jauh lewat internet (mis. AI Doodle).

  1. 1

    Hubungkan robot lewat USB

    Colokkan robot ke PC, pilih Port yang sesuai lalu klik Konek — lihat detail lengkap di tutorial Koneksi ke RNV4 Studio di bawah.

    Hubungkan robot lewat USB ke RNV4 Studio
  2. 2

    Klik tombol Klaim Robot

    Tombol ada di bagian atas jendela Studio, di samping tombol Konek.

    Klik tombol Klaim Robot
  3. 3

    Klik Minta Kode Klaim

    Robot ID akan terisi otomatis sesuai robot yang sedang tersambung.

    Dialog Klaim Robot — klik Minta Kode Klaim
  4. 4

    Salin kode klaim

    Kode berlaku 10 menit sejak diminta — pastikan PC terhubung internet supaya kode berhasil diminta ke server.

    Kode klaim berhasil dibuat — Salin ke Clipboard
  5. 5

    Buka tab Robot Saya, klik Tambah Robot

    Di dashboard web (app.ruskomponen.uk), buka tab Robot Saya.

    Tab Robot Saya — klik Tambah Robot
  6. 6

    Tempel kode klaim

    Bukan Robot ID — tempel kode klaim 8 karakter yang disalin dari Studio tadi, lalu klik Tambahkan.

    Tempel kode klaim lalu klik Tambahkan
  7. 7

    Selesai — robot terdaftar

    Robot muncul di daftar Robot Saya, siap dipakai (AI Doodle, dll).

    Robot berhasil terdaftar di Robot Saya

Troubleshooting

GejalaKemungkinan PenyebabSolusi
Tombol Klaim Robot tidak muncul/redup Robot belum berhasil konek (lihat status di sebelah tombol Konek) Pastikan status menunjukkan terhubung dulu sebelum klik Klaim Robot
Kode klaim ditolak di dashboard web Kode sudah lewat 10 menit, salah ketik/salin, atau sudah pernah dipakai Kembali ke Studio, klik Minta Kode Baru, lalu tempel kode yang baru
Klik Minta Kode Klaim tapi gagal/error PC tidak terhubung internet — permintaan kode perlu ke server Cek koneksi internet PC (beda dari koneksi USB ke robot), coba lagi
Robot tidak muncul di Robot Saya walau sudah klik Tambahkan Halaman dashboard belum otomatis memuat ulang Muat ulang (refresh) halaman dashboard

Catatan Penting

  • Kode klaim cuma bisa dipakai sekali — kalau kadaluarsa (lewat 10 menit) atau salah tempel, kembali ke Studio dan klik "Minta Kode Baru".
  • Robot yang sudah diklaim akun lain tidak bisa diklaim ulang oleh akun Anda — hubungi pemilik sebelumnya atau tim support kalau ini terjadi pada robot yang seharusnya milik Anda.
  • Satu robot cuma bisa terhubung ke satu akun pada satu waktu — lepas dulu dari tab Robot Saya kalau mau pindah kepemilikan.

Langkah berikutnya: Koneksi ke RNV4 Studio · Setup Akun & Token API

Menghubungkan Robot ke RNV4 Studio

Intinya: Sambungkan Studio lewat USB, lalu pakai tab Robot 3D dan Panel Robot.

Robot terhubung ke RNV4 Studio lewat kabel USB (native USB CDC ESP32-S3) — bukan WiFi. Berikut langkah lengkapnya beserta cara mengatasi masalah umum.

Prasyarat

Kabel USB data (bukan kabel charge-only) dari PC ke port USB ESP32-S3
Driver USB Chip USB-serial ESP32-S3 (native USB CDC) — Windows biasanya otomatis mengenali sebagai COM port
Firmware Robot sudah di-flash PROGRAM_UTAMA dan dalam kondisi boot normal
Aplikasi RNV4 Studio — instal via RNV4Studio-Setup.exe (rilis resmi)
Tampilan RNV4 Studio — area Port, Baud, dan tombol Konek ditandai kotak hijau, dropdown Port menampilkan COM4 dengan ikon robot dan tag ESP32 (RNV4?)

Area yang ditandai kotak hijau (pojok kiri atas) — dropdown Port, Baud, ikon muat ulang (di antara Baud dan tombol Konek — tekan ini kalau port belum muncul), dan tombol Konek — dipakai di langkah 3–5 di bawah. Port di contoh ini terdeteksi otomatis sebagai COM4 🤖 ESP32 (RNV4?) — nomor COM di perangkat Anda bisa berbeda.

  1. 1

    Pasang kabel USB dari robot ke PC/laptop

    Tunggu Windows selesai mengenali device (biasanya muncul sebagai COMx).

  2. 2

    Buka RNV4 Studio

  3. 3

    Pilih Port robot

    Robot ESP32-S3 otomatis terdeteksi di dropdown Port dengan tanda 🤖 ESP32 (RNV4?) — tanda tanya berarti baru tebakan dari jenis chip USB-nya, belum dipastikan itu benar-benar robot RNV4 sampai berhasil konek. Kalau port belum muncul, tekan ikon muat ulang (di sebelah dropdown Port) atau lepas-pasang ulang kabel USB.

  4. 4

    Pastikan Baud = 115200

    Ini nilai default dan wajib sama dengan konfigurasi firmware — jangan diubah kecuali firmware juga diubah.

  5. 5

    Klik tombol Konek

    Tombol biru di sebelah kanan field Baud.

  6. 6

    Tunggu ±2 detik

    Tombol menampilkan animasi spinner — ini bukan hang, tapi jeda sengaja supaya ESP32-S3 selesai boot dulu sebelum mulai menerima perintah.

  7. 7

    Koneksi berhasil

    Tombol berubah jadi Putus (merah), status menunjukkan device + baud rate yang terhubung, dan label Port otomatis berganti dari tanda tanya (RNV4?) jadi ID robot sungguhan (mis. 🤖 RNV4-00004-F6D64450) — dikonfirmasi langsung dari robotnya, bukan tebakan lagi.

Auto-reconnect: kalau koneksi USB putus di tengah jalan (kabel tercabut, robot reset), Studio otomatis mencoba reconnect ke port yang sama setiap 3 detik, sampai berhasil atau Anda klik Putus/Konek manual ke port lain.

Tab Robot 3D

Tab Robot 3D di RNV4 Studio menampilkan model 3D robot yang mengikuti gerakan robot secara langsung. Panel Robot di sisi kanan berisi alat untuk menulis program gerakan.

Tampilan RNV4 Studio pada tab Robot 3D, dengan Kontrol Cepat di kiri dan Panel Robot di kanan
RNV4 Studio — tab Robot 3D (contoh tampilan saat belum terhubung ke robot).
  • Pilihan tampilan di atas model: 3D, Depan, Belakang, Atas, Samping, Lintasan, dan Bersihkan.
  • Pilihan gripper di pojok kanan atas model: Gripper Servo, Gripper Vacum, dan Gripper Pen.
  • Slider X, Y, Z, E di bawah model, dan petunjuk mouse (ikon i): Gizmo, Putar, Geser, ditambah tombol Reset Posisi.
  • Kontrol Cepat di kiri: Home G28, Set Origin G92, Feed Rate, Profile, Pen Down R30 / Pen Up R31, tombol jog, tombol Z dan E, serta tombol STOP darurat.
  • Panel Robot di kanan: isi baris untuk Editor Gerakan, Teach Point, Servo R280, Vacuum M10/M11, Teach Tunggu G4, dan Posisi Live.

Troubleshooting

GejalaKemungkinan PenyebabSolusi
Port tidak muncul di dropdown Kabel charge-only, driver USB belum terpasang, atau ESP32-S3 tidak boot Ganti kabel, cek Device Manager Windows, cek LED power robot
Klik Konek tapi gagal Port dipakai aplikasi lain (mis. Arduino Serial Monitor masih terbuka) Tutup semua aplikasi serial lain sebelum konek dari Studio
Konek sukses tapi versi firmware tidak muncul Firmware lama/custom belum support protokol komunikasi Studio Update firmware ke versi PROGRAM_UTAMA terbaru
Baud mismatch (respons acak/tidak ada) Baud di Studio ≠ baud di firmware Samakan ke 115200 di kedua sisi
Auto-reconnect terus gagal Port berubah nomor (Windows kadang assign COM baru) Klik Putus, refresh port list, pilih port baru manual

Catatan Penting

  • Fitur auto-connect WiFi (kalau ada) adalah jalur terpisah dari koneksi USB ini — dipakai untuk fitur lain (mis. pemantauan jarak jauh), bukan jalur kontrol utama G-code.
  • Untuk memasang firmware lewat USB dari Studio (menu Flash Firmware): proses akan disconnect serial dulu, flash firmware, baru reconnect otomatis — jangan cabut USB selama proses ini berlangsung.

Langkah berikutnya: Mulai dari Nol · Membuat Program SD Card

Membuat Program di SD Card

Intinya: Buat program dengan R500, ajari titiknya dengan R518, lalu putar dengan R508.

Alur kerja "teach & playback" — gerakkan robot manual (jog), simpan posisi sebagai titik program, lalu putar ulang otomatis. Setelah tersimpan di SD card, robot tidak lagi bergantung pada RNV4 Studio untuk menjalankannya — cocok untuk pemakaian mandiri di lapangan (mis. line produksi pick-and-place yang jalan terus-menerus) tanpa perlu laptop/PC tersambung sepanjang waktu. Catatan: alur ini khusus gerakan yang diajarkan manual — fitur plotter AI Doodle tetap memerlukan RNV4 Studio terhubung.

Letak slot SD card pada robot RNV4H2
Letak slot SD card: pada pelat atas dudukan robot (ditunjuk tangan).
  1. 1

    Buat program baru

    R500 PickAndPlace1

    Program baru langsung jadi "program aktif". Program lain yang sudah ada di SD tidak terpengaruh.

  2. 2

    Gerakkan robot & simpan titik

    Untuk tiap posisi yang ingin direkam: gerakkan robot ke posisi yang diinginkan (manual jog, atau kirim G0 X.. Y.. Z..), lalu simpan:

    R518 ← simpan posisi saat ini (+ servo1 kalau perlu)

    atau kalau mau menyimpan command G/M terakhir apa adanya:

    R501 ← tambahkan command terakhir ke program aktif

    Kalau perlu vacuum/gripper di titik itu, kirim M10/M11 (atau R519 untuk gripper) sebelum atau sesudah titik disimpan.

  3. 3

    Cek isi program

    R502

    Menampilkan semua baris yang sudah tersimpan di program aktif, sebelum dijalankan.

  4. 4

    Edit kalau perlu

    Sisipkan command di posisi tertentu R503 P<posisi>
    Hapus baris tertentu R504 P<line>
    Pindah baris naik/turun R504 P<line> UP / DOWN
    Kosongkan semua & mulai ulang R505 CONFIRM
    Tempel banyak baris sekaligus R513 (mode paste)
  5. 5

    Tutup program

    R506

    Melepas status "aktif" tanpa menghapus isi — program tetap tersimpan di SD.

  6. 6

    Jalankan program

    R507 ← lihat daftar semua program tersimpan (dapatkan nomornya) R508 P1 ← jalankan program nomor 1, sekali R508 P1 X5 ← jalankan program nomor 1, 5 kali loop R511 S1 ← aktifkan mode loop terus-menerus (sampai R512) R512 ← stop playback kapan saja
  7. 7

    Edit program yang sudah tersimpan

    R510 P1 ← buka program #1 untuk diedit (jadi program aktif lagi)

    Lanjutkan dengan R501/R503/R504/R518 seperti biasa, lalu R506 untuk menutup lagi.

Langkah berikutnya: R-code (Program SD) · Sensor Digital

Arti Warna LED

Intinya: LED status berkedip ungu berarti error hardware; jalankan R530 dulu.

Robot punya satu LED status (WS2812) di papan kontroler (GPIO48). Tabel ini memuat arti tanda yang sudah dipastikan.

Tanda LEDArtinyaYang dilakukan
Ungu berkedip Error hardware: driver motor tidak menjawab, SD card gagal, atau homing gagal Jalankan R530 (target 3/3 driver menjawab), cek modul TMC2209 (terpasang, VIO, alamat), cek SD card, lalu ulangi G28
Kalau tidak ada satu pun driver yang menjawab saat boot, robot menolak menyalakan motor dan LED berkedip ungu. Itu pengaman, bukan kerusakan.

Langkah berikutnya: Gejala & Solusi · Motor & Driver Listrik

Gejala & Solusi

Intinya: Cari gejalanya di tabel ini, lihat kemungkinan penyebab, lalu ikuti tautan ke bagian yang membahasnya.

GejalaKemungkinan penyebabSolusi
Robot tidak mau bergerak Belum di-Home (pesan “Robot not calibrated. Send G28 first.”), driver tidak menjawab (R530 kurang dari 3/3), mode teach aktif (R520 S1), atau motor dimatikan (M18) Kirim G28; cek R530; keluar dari teach dengan R520 S0; nyalakan motor dengan M17. Lihat Motor & Driver Listrik
LED ungu berkedip Error hardware: driver tidak menjawab, SD card gagal, atau homing gagal Jalankan R530; periksa modul TMC2209 (terpasang, VIO, alamat). Lihat Arti LED
Motor kehilangan langkah Arus terlalu rendah, driver terlalu panas, atau masalah mekanis Naikkan arus sedikit demi sedikit; pantau dengan R551 S1 (selisih encoder). Lihat Arus motor
Bunyi “duk” berulang di motor X/Y Getaran kasar saat berputar, bukan langkah yang hilang Periksa arus, kekencangan bracket/kopling motor, dan coba matikan Bluetooth (R24 S0) untuk membedakan penyebabnya
Motor panas saat diam Arus tahan terlalu tinggi Turunkan persen arus tahan. Lihat Arus motor
Bluetooth tidak terhubung Bluetooth mati, sudah ada klien lain, notifikasi TX belum aktif, atau terkunci (3 kali salah password) R24 lewat USB, kalau mati R24 S1; putuskan klien lain; aktifkan notifikasi lalu kirim satu baris; tunggu 60 detik bila terkunci. Lihat Bluetooth (BLE)
Relay tidak menyala Papan relay tidak dapat 12 V (LED padam walau “dikonfirmasi”), modul tidak menjawab, atau nomor relay tidak ada Periksa catu di DCIN1, jalankan R700, lalu coba R701 P1 S1. Lihat Relay Modul IO
Sensor tidak terbaca R1 menjawab TIDAK DIKETAHUI (modul tidak melapor) atau polaritas sensor terbalik Cek daya dan kabel modul lalu R700; ukur dengan R1 saat objek ada dan tidak ada, pilih H atau L sesuai hasil. Lihat Sensor Digital
Homing berhenti terlalu cepat/lambat Ambang StallGuard belum cocok Ukur ulang ambang dengan R531. Lihat Kalibrasi (hwConfig)

Langkah berikutnya: Mulai dari Nol · FAQ

Glosarium

Intinya: Istilah teknis yang muncul di dokumentasi ini, dijelaskan dengan bahasa sehari-hari.

IstilahArtinya
StallGuard Fitur driver TMC2209 yang mendeteksi motor tertahan (kena beban). Dipakai untuk homing dan deteksi tabrakan tanpa limit switch.
Encoder Sensor sudut (AS5600) di sendi. Membaca sudut sebenarnya sehingga robot tahu posisinya dan bisa memeriksa langkah yang hilang.
Backlash Kelonggaran gigi saat arah gerak berbalik. Bisa diukur dan dikompensasi (dalam langkah motor).
Microstep Membagi satu langkah motor menjadi langkah yang lebih kecil agar gerak halus. Bawaan: 16.
NC / COM / NO Tiga terminal relay. COM adalah poros; NC tersambung ke COM saat relay padam, NO tersambung ke COM saat relay nyala.
RS-485 Jalur komunikasi dua-kawat yang tahan derau dan bisa panjang (puluhan meter). Dipakai untuk modul eksternal lewat konverter.
hwConfig Kalibrasi pribadi tiap robot yang tersimpan di memori internal: skala, arus motor, acuan home, batas sudut, dan lain-lain.
Homing Membawa sendi ke titik awal (G28). Di RNV4H2 lewat encoder tanpa menyentuh stopper, atau lewat deteksi beban bila acuan belum tersimpan.
TUNGGU vs LOMPAT Di program, IN1 H berarti TUNGGU (berhenti sampai sensor terpenuhi); IN1 H >2 berarti LOMPAT (cek sekali, lalu lompat ke label >2 atau lanjut).

Langkah berikutnya: Sensor Digital · Kalibrasi (hwConfig)

FAQ & Troubleshooting Umum

Intinya: Jawaban cepat untuk pertanyaan yang paling sering muncul.

Kumpulan masalah paling sering ditanyakan, dirangkum dari tabel troubleshooting yang tersebar di tiap section — kalau masalah Anda tidak ada di sini, cek tabel lengkap di section yang ditautkan.

Masalah Umum

GejalaKategoriSolusi Singkat
ERROR: COMMAND NOT RECOGNIZED Protokol → Cek format G/M/R-code — lihat Error Reference lengkap
Robot menolak gerak (belum kalibrasi) Protokol → Kirim G28 dulu sebelum G0/G1/G2/G3
Sensor IN1–IN3 terbaca acak atau TIDAK DIKETAHUI Sensor → Cek daya dan kabel modul IO lalu jalankan R700; ukur dengan R1 saat objek ada dan tidak ada untuk memeriksa polaritas sensor
Robot menunggu selamanya di kondisi sensor Sensor → Kondisi tidak pernah terpenuhi — kirim R512 untuk stop
Dialog Login RNV4 Studio bilang token tidak valid Setup Akun → Salin ulang token dengan hati-hati, atau buat token baru
Instalasi diblokir total oleh Windows Setup Akun → Cek notifikasi antivirus, unduh ulang dari /download
Kode klaim ditolak di dashboard web Klaim Robot → Kode kadaluarsa/salah — minta kode klaim baru di Studio
Tombol Klaim Robot redup/tidak bisa diklik Klaim Robot → Pastikan status Studio sudah terhubung ke robot dulu
Port robot tidak muncul di dropdown Studio Koneksi Studio → Ganti kabel USB, cek Device Manager, cek LED power robot
Konek berhasil tapi respons acak/tidak ada Koneksi Studio → Baud mismatch — samakan ke 115200 di kedua sisi

Pertanyaan Umum

Harus bisa coding untuk pakai robot ini?

Tidak. Kontrol dasar — jog, teach program, ganti gripper — sepenuhnya lewat GUI RNV4 Studio. G/M/R-code hanya diperlukan kalau ingin pengembangan custom, lihat Pengembangan & Ekstensi Kustom.

Robot bisa dipakai tanpa internet sama sekali?

Bisa, untuk kontrol manual dan menjalankan program yang sudah tersimpan di SD card — lihat R-code Program SD. Fitur AI Doodle Photo butuh internet karena prosesnya real-time lewat server, bukan program tersimpan.

Kalau PC/laptop mati saat robot sedang menjalankan program dari SD, robot ikut berhenti?

Tidak, untuk program manual yang sudah tersimpan di SD card robot tetap jalan sendiri tanpa Studio terhubung. Beda dengan AI Doodle yang memang butuh Studio terhubung terus selama prosesnya.

Update firmware berisiko bikin robot rusak (brick)?

Firmware dipasang lewat RNV4 Studio dengan kabel USB (menu Flash Firmware). Tidak ada pembaruan nirkabel, jadi prosesnya tidak terganggu oleh sinyal yang terputus.

Kenapa robot saya tidak menyentuh stopper saat homing?

Itu memang benar. RNV4H2 membaca posisi sendi dari encoder dan langsung membawa lengan ke titik home tanpa perlu menabrak stopper. Cara lama (mendekat perlahan sampai mentok) masih ada sebagai cadangan dan dipakai otomatis kalau acuan posisinya belum tersimpan.

Motor terasa jauh lebih senyap dari robot saya yang lama. Normal?

Normal. Driver motor RNV4H2 (TMC2209) memang dirancang untuk itu. Mode gerak bisa diubah lewat perintah R553 bila Anda ingin lebih senyap atau lebih bertenaga.

Kipas tidak berputar walau robot panas — rusak?

Belum tentu. Di RNV4H2 kipas dikendalikan saklar suhu (termostat) di papan, bukan oleh perangkat lunak robot, dan baru berputar setelah ambang suhunya tercapai. Pastikan termostat yang dipakai varian NO (Normally Open), bukan NC.

Langkah berikutnya: Gejala & Solusi · Glosarium