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:

Tinggi (Posisi Awal)

369,89 mm

Tinggi (Maksimum)

446,57 mm

Lebar

445,60 mm

Beban Maksimal

500 gram

Catu Daya

12V DC, 10A (maks)

Konektivitas

USB / UART / Bluetooth / WiFi

Model RNV4
Tipe Lengan robot SCARA 2-link + rotasi base + rel linear (E0)
Mikrokontroler ESP32-S3 N16R8 (16MB Flash, 8MB PSRAM)
Axis X (lengan atas), Y (lengan bawah), Z (rotasi base), E0 (rel)
Driver Motor (aktif) A4988 / DRV8825, STEP/DIR/ENABLE, tanpa UART
Motor NEMA17 (X/Y/Z pakai gearbox 15:1; E0 tanpa gearbox tambahan)
Kontrol Gerak G-code (Marlin-like) + perintah kustom R-code
Penyimpanan Program SD card (teach & playback)
Update Firmware OTA (Over-The-Air) otomatis lewat internet
Dimensi Kemasan (Pengiriman) 50 × 50 × 20 cm

Mekanik & Elektrik

Dimensi & Desain

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

Kapasitas Beban (Payload)

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.

Gripper & End-Effector

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.

Kemasan & Styrofoam Pelindung

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.

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.

Kinematika & Geometri Lengan

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)

Gearbox & Transmisi

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

Motor & Driver Listrik

Board kontroler RNV4 (v4.2) — memuat ESP32-S3, 4 driver stepper DRV8825, dan rangkaian pendukung equipment/sensor.

Render 3D PCB kontroler RNV4 (v4.2)

Board kontroler RNV4 v4.2

Kondisi Aktif Sekarang

Motor NEMA17 stepper, 200 step/rev (1,8°/step)
Driver A4988 / DRV8825 (RAMPS-compatible), STEP/DIR/ENABLE, tanpa UART
Microstepping 1/16 (MICROSTEPS=16 di hwConfigDefaults.h)
Current limit (Vref) Diatur manual via trimpot di board driver — formula umum board RAMPS-style (Rsense≈0,1Ω): Ilimit(A) = Vref × 2
Step pulse width 5µs (STEP_PULSE_WIDTH)
Step interval (speed tinggi) 5µs (STEP_INTERVAL), maks ±200.000 step/detik
Catu daya (power in) 12V DC, 10A — rating maksimum adaptor/PSU yang dibutuhkan, bukan konsumsi daya aktual robot saat beroperasi (belum diukur)
Catatan penting: current limit driver (Vref) TIDAK diatur lewat firmware — itu setting fisik di board. Kalau torsi motor terasa kurang, cek Vref dulu sebelum mengubah desain mekanis.

Pin & Wiring

Kondisi aktif — pinout.h, MCU ESP32-S3 N16R8.

Panel Konektor Fisik — Bodi Robot

Label yang tertera langsung di panel bodi robot (belakang/bawah) — untuk pemetaan ke pin mikrokontroler (GPIO), lihat tabel-tabel di bawah.

Panel konektor fisik bodi robot RNV4 — label port & tombol
Power IN 12V Barrel jack, input catu daya 12V DC
Power ON/OFF Tombol utama (illuminated)
Reset Tombol reset sistem
Homing all axes Tombol fisik pemicu homing seluruh axis
Motor Rail Konektor kabel motor rel (axis E0)
USB USB-B — sama dengan interface USB CDC di section Command Reference
UART0 Konektor UART0 (Serial0), alternatif dari USB — paralel satu jalur listrik yang sama dengan breakout UART0 di panel atas (5V·TX·RX·GND), bukan UART terpisah
Potensiometer Pump Trimpot kalibrasi pump
Terminal blok 12V / GND Breakout daya 12V
Terminal blok 3.3V / 5V Breakout daya 3.3V & 5V
Terminal blok OUT / GND (LG3) Output Spindle/Laser — sama dengan GPIO46 (LG3) di tabel Equipment/Output
Terminal blok GND / DATA (IN3) Sensor input IN3 — sama dengan GPIO35 di tabel Sensor
Terminal blok GND / DATA (IN2) Sensor input IN2 — sama dengan GPIO47 di tabel Sensor
Konektor DATA/GND/VCC (IN1) Sensor input IN1 — sama dengan GPIO21 di tabel Sensor

Panel Konektor Fisik — Sisi Atas Bodi

Panel di sisi atas bodi, dekat pangkal lengan.

Panel konektor fisik sisi atas bodi robot RNV4
Pump Konektor selang/kabel pump
5V · LG3 · IN2 · GND Breakout sinyal yang sama dengan LG3 & IN2 di panel bodi, diakses dari sisi atas
5V · TX · RX · GND Breakout serial UART0 + daya 5V — paralel satu jalur listrik yang sama dengan konektor UART0 di panel bodi (belakang/bawah), bukan UART terpisah; sambungkan salah satu saja, jangan dua-duanya bersamaan
Gripper Servo Konektor servo gripper (end-effector)

Stepper (STEP / DIR / ENABLE / MIN)

AxisSTEPDIRENABLEMIN (limit switch)
X (lengan atas) GPIO10 GPIO11 GPIO12 GPIO18
Y (lengan bawah) GPIO15 GPIO16 GPIO17 GPIO5
Z (rotasi base) GPIO8 GPIO9 GPIO3 GPIO6
E0 (rel) GPIO38 GPIO39 GPIO40 GPIO7

Equipment / Output

FungsiPinKeterangan
Pump (vacuum) GPIO14 (LG1) M10/M11
Valve GPIO13 (LG2) M10/M11
Spindle/Laser GPIO46 (LG3) M3/M5
Fan (cooling) GPIO45 (LG4) Auto (suhu) / manual (R10-R13) — strapping pin VDD_SPI, paling sensitif saat boot ⚠️
Servo 1 (rotate) GPIO36 konflik fisik dengan PSRAM octal ⚠️
Servo 2 (gripper) GPIO37 konflik fisik dengan PSRAM octal ⚠️

Spesifikasi Servo & Driver Relay

Servo 1 (rotate) — rentang 0° – 180°, posisi default 90°
Servo 1 (rotate) — kecepatan Default 60°/s, maksimum 330°/s (via R280 F<speed> atau R91 field 40)
Servo 2 (gripper) — rentang 30° (tutup penuh) – 120° (buka penuh), posisi default 90°
Servo 2 (gripper) — kecepatan Maksimum 300°/s (via R280 F<speed> atau R91 field 41)
Referensi servo terpasang Kelas torsi tinggi ~20KG (mis. TD-8120MG) — batas kecepatan firmware sengaja konservatif (sisi tegangan 4,8V), naikkan via kalibrasi kalau suplai servo lebih tinggi
Driver MOSFET pump/valve AO4300 (rating 5A, 5–12V, aktif saat logic GND)

Sensor

FungsiPin
IN1 GPIO21
IN2 GPIO47
IN3 GPIO35 ⚠️ (konflik fisik PSRAM)
Temp sensor (DS18B20) GPIO4

SD Card (SPI)

Posisi slot SD card pada bodi robot RNV4
FungsiPin
CS GPIO1
SCK GPIO2
MOSI GPIO42
MISO GPIO41

Lain-lain

FungsiPin
LED status (WS2812) GPIO48
Tombol BOOT GPIO0

Peringatan GPIO ESP32-S3 N16R8

  • GPIO33-37: fisik terhubung ke chip PSRAM octal di dalam modul — normalnya TIDAK BOLEH dipakai GPIO biasa apa pun. Pinout aktif memakai GPIO35/36/37 untuk IN3/Servo1/Servo2 — ini aman selama board dikonfigurasi mode PSRAM qio_qspi (bukan qio_opi, lihat platformio.ini), yang memang sengaja dipilih firmware untuk menghindari bug watchdog reset di mode OPI. Kalau konfigurasi PSRAM ini pernah diubah ke OPI di masa depan, GPIO35/36/37 akan berhenti berfungsi sebagai GPIO biasa.
  • GPIO45: strapping VDD_SPI, paling berbahaya — kalau tertarik rangkaian eksternal saat reset bisa gagal boot/rusak hardware. Saat ini dipakai untuk FAN_PIN.
  • GPIO19, GPIO20: USB D-/D+ native, jangan dipakai GPIO biasa.
  • GPIO43, GPIO44: UART0 (Serial0), dipakai komunikasi utama robot.

Skematik Elektronik

Skematik lengkap board kontroler RNV4 (4 halaman: rangkaian utama ESP32-S3, driver motor DRV8825, rangkaian LED, dan jumper/konektor tambahan). Diambil langsung dari file desain EasyEDA — versi RN4.2.2, diperbarui 2026-04-20.

Klik gambar untuk memperbesar & baca detail komponen.

Skematik RNV4 Halaman 1 — Rangkaian Utama (ESP32-S3, sensor, input)

Halaman 1 — Rangkaian Utama (ESP32-S3, sensor, input)

Skematik RNV4 Halaman 2 — Driver Motor (DRV8825) & Equipment (Pump/Valve)

Halaman 2 — Driver Motor (DRV8825) & Equipment (Pump/Valve)

Skematik RNV4 Halaman 3 — Rangkaian LED

Halaman 3 — Rangkaian LED

Skematik RNV4 Halaman 4 — Jumper & Konektor Tambahan

Halaman 4 — Jumper & Konektor Tambahan

robot-rnv4-schematic.pdf

PDF asli (vektor, bisa di-zoom tanpa pecah) · 4 halaman · 639 KB

Command Reference

Protokol Komunikasi

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) 115200 baud, 8N1 Alternatif UART hardware fisik
Bluetooth Low Energy (BLE) Nordic UART Service (NUS) BUKAN Bluetooth Classic/SPP — perangkat/app harus mendukung BLE GATT. Setelah koneksi BLE tersambung, wajib kirim password aplikasi (bukan pairing OS) — lihat sub-bagian Autentikasi Bluetooth di bawah

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. UART0
  2. USB
  3. Bluetooth (setelah autentikasi)

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

⚠ Bluetooth masih dalam proses pengembangan

Konektivitas BLE ada di firmware, tapi provisioning password per-unit di sisi hardware belum sepenuhnya siap untuk pemakaian produksi — perlakukan info di bawah sebagai referensi teknis, bukan jaminan siap pakai langsung di semua unit saat ini. Tutorial koneksi step-by-step akan menyusul setelah proses ini rampung.

Detail Teknis BLE — untuk Bikin Klien/App Sendiri

Robot memancarkan nama RNV4_Robot dan mengimplementasikan profil Nordic UART Service (NUS) — profil BLE standar yang sudah didukung banyak library/app generik (mis. nRF Connect, Serial Bluetooth Terminal), jadi tidak perlu app khusus buatan Ruskomponen untuk mulai coba-coba:

Nama device (advertising) RNV4_Robot
Service UUID 6E400001-B5A3-F393-E0A9-E50E24DCCA9E
Characteristic RX (App → Robot) 6E400002-B5A3-F393-E0A9-E50E24DCCA9E
Characteristic TX (Robot → App) 6E400003-B5A3-F393-E0A9-E50E24DCCA9E

Autentikasi Bluetooth

Terpisah dari pairing Bluetooth level OS — setelah koneksi BLE tersambung, robot minta password lewat teks biasa di channel yang sama (bukan mekanisme bonding BLE standar):

  • Klien kirim password sebagai baris teks pertama setelah connect
  • Batas waktu 30 detik sejak baris pertama dikirim
  • Maksimum 3 percobaan salah, lalu terkunci 60 detik sebelum bisa coba lagi
  • Perintah G/M/R baru diterima setelah autentikasi berhasil
  • Password default diset di firmware (config.h) — sama untuk semua unit selama belum diganti (bukan per-robot seperti token API Studio), hanya bisa diubah lewat compile ulang firmware — perlakukan sebagai bukan rahasia, ganti sebelum unit dipakai di lingkungan yang butuh keamanan BLE lebih ketat

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!, OTA:START, 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

Pengembangan & Ekstensi Kustom

Firmware bawaan RNV4 bersifat tertutup (kode sumbernya tidak dipublikasikan) dan diperbarui lewat RNV4 Studio/OTA — 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 UART0 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) — atau pakai Jalur 2 (UART0) di bawah, yang memang sudah bersih dari pesan ini sejak awal.

Jalur 2 — Kontrol Jarak Jauh Kustom Lewat UART0

Kalau Anda butuh robot bisa dikendalikan dari jarak jauh dengan cara sendiri (mis. lewat WiFi/jaringan custom, bukan lewat RNV4 Studio), sambungkan mikrokontroler eksternal milik Anda sendiri (mis. board ESP32 terpisah) ke pin UART0 (GPIO43/44) — lihat tabel Koneksi Fisik di atas. Board eksternal itu yang menjalankan kode dan logic koneksi jarak jauh Anda sendiri sepenuhnya (WiFi, cloud, apa pun), lalu cukup kirim command G/M/R-code standar ke robot lewat UART0. Pendekatan ini sepenuhnya independen dari firmware bawaan robot — bisa dikembangkan bebas tanpa risiko mengubah atau mengganggu kode yang sudah ada.

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

⚠ Masih dalam proses pengembangan — lihat catatan di section Protokol Komunikasi.

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, otentikasi pakai password (lihat Autentikasi Bluetooth di atas), 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, UART0, dan Bluetooth adalah 3 jalur input terpisah dan bisa dipakai bersamaan tanpa saling mengganggu — lihat urutan prioritas di bagian Protokol Komunikasi di atas. Daftar lengkap command yang tersedia ada di section G-code, M-code, dan R-code di bawah.

G-code (Gerakan & Mode)

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

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)
G33 Probe move — gerak sampai sensor IN1 kontak (kalibrasi Z), wajib parameter F. Eksperimental, belum diuji di robot fisik — lihat section Sensor Digital

M-code (Kontrol Equipment & Status)

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

R-code (Khusus Robot RNV4)

KodeFungsi
R1 / R2 / R3 Cek sensor IN1 / IN2 / IN3
R4 Baca suhu DS18B20
R5 Cek semua sensor + suhu sekaligus
R6 Diagnostic test sensor suhu
R10 / R11 Mode fan: manual / auto
R12 / R13 Fan ON / OFF (manual)
R20 Safe landing sequence (parkir aman)
R21 Set speed profile (runtime)
R22 WiFi manager interaktif
R23 WiFi auto-connect sekali (non-interaktif)
R30 / R31 Pen DOWN / Pen UP
R50 Query status lengkap (sinkronisasi dengan aplikasi eksternal)
R90 Tampilkan konfigurasi hardware
R91 Edit satu field konfigurasi hardware
R92 Reset konfigurasi hardware ke default (wajib R92 CONFIRM)
R93 Ambil seluruh hwConfig sebagai JSON
R94 Timpa hwConfig dari JSON (bulk set)
R99 Baca/set nomor seri robot
R280 P<n> S<deg> F<f> Set posisi servo n (P1=rotasi, P2=gripper). Tanpa F = gerak instan, dengan F = kecepatan custom (°/s)
R281 P<n> Get posisi servo n
R515 Get posisi robot (X/Y/Z) saat ini
R516 Get posisi servo 1 & 2 saat ini
R520 Get hasil probe G33 terakhir (trigger/tidak + posisi berhenti) — dikonsumsi sekali
R600 / R601 Toggle mode balasan stepper / servo (instant vs tunggu selesai)

Profil Kecepatan Gerak (R21)

Menentukan bentuk kurva kecepatan tiap gerakan (percepatan → konstan → perlambatan), bisa diganti kapan saja tanpa reboot lewat R21.

0 — Trapezoidal Mode streaming: sensor/suhu dilewati saat bergerak, transisi kecepatan paling tajam (paling cepat, tapi ada sentakan di awal/akhir gerak)
1 — Smootherstep Kurva S-curve (6t⁵−15t⁴+10t³) — kecepatan DAN akselerasi = 0 di awal/akhir gerak, transisi paling halus
2 — Cosine Smooth-Stop (default) Kombinasi cosine + smootherstep — kecepatan & akselerasi = 0 di awal/akhir tanpa jerk, cocok untuk pick & place

R-code (Manajemen Program SD Card)

Program yang tersimpan lewat command di bawah ada langsung di SD card robot, bukan di RNV4 Studio — begitu tersimpan, robot bisa memutar ulang programnya sendiri lewat R508 tanpa Studio perlu terhubung sama sekali. RNV4 Studio cuma alat bantu untuk mengajarkan gerakan lewat jog manual (mis. urutan pick-and-place: ambil benda di titik A, taruh di titik B) — bukan syarat robot bisa berjalan setelah program itu jadi. Catatan: ini khusus gerakan yang diajarkan manual — fitur plotter AI Doodle tetap butuh RNV4 Studio terhubung karena prosesnya real-time, bukan program tersimpan.

KodeFungsi
R500 <nama> Buat program baru, jadi aktif
R501 Tambahkan command terakhir ke akhir program aktif
R502 / R502 P<n> Tampilkan program aktif / preview program tersimpan #n
R503 P<pos> Sisipkan command terakhir di posisi tertentu
R504 P<line> [UP/DOWN] Hapus atau pindah baris tertentu
R505 CONFIRM Kosongkan program aktif
R506 Tutup program aktif (tanpa hapus)
R507 Daftar semua program tersimpan
R508 P<num> X<loop> Play program nomor tertentu, opsional jumlah loop
R509 P<num> Hapus program tersimpan
R510 P<num> Buka program tersimpan untuk diedit
R511 / R511 S<1/0> Toggle mode loop playback
R512 Stop playback
R513 Masuk mode paste (input multi-baris langsung ke program aktif)
R514 Tampilkan command terakhir yang dieksekusi
R517 Tempel satu baris teks apa adanya ke program aktif
R518 Teach point — simpan posisi robot saat ini (+ servo1 opsional)
R519 Gripper point — simpan posisi servo2 (gripper) saat ini

Sensor Digital (IN1–IN3)

Robot punya 3 input digital (IN1, IN2, IN3) untuk membaca status manual, menunggu kondisi di tengah program SD, dan membuat percabangan/loop bersyarat. IN1 secara default dialokasikan untuk probe sentuh G33 (kalibrasi Z) — lihat catatan status fitur ini di bawah sebelum dipakai untuk produksi.

Istilah & Singkatan

Dipakai berulang di seluruh section ini — cek di sini kalau lupa artinya:

IstilahKeterangan
IN1 Sensor 1 — input digital pertama (GPIO21)
IN2 Sensor 2 — input digital kedua (GPIO47)
IN3 Sensor 3 — input digital ketiga (GPIO35)
H HIGH — logika 1 / tegangan tinggi (sensor ter-trigger, tergantung polaritas wiring)
L LOW — logika 0 / tegangan rendah (sensor tidak ter-trigger, tergantung polaritas wiring)
>N Label nomor N di program SD — titik tujuan lompatan (mis. >1, >2)
AND / OR Operator logika untuk menggabungkan 2 kondisi sensor atau lebih dalam satu baris
G33 Perintah probe sentuh — gerak sampai IN1 kontak (kalibrasi Z)
R1 / R2 / R3 Baca status IN1 / IN2 / IN3 sekali (balasan HIGH/LOW)
R5 Baca IN1, IN2, IN3, dan suhu sekaligus (balasan format 1/0)
R520 Ambil hasil probe G33 terakhir (sekali pakai)

Hardware & Pemasangan

IN1 GPIO21 — default dialokasikan untuk probe G33 (kalibrasi Z)
IN2 GPIO47
IN3 GPIO35 — lihat catatan PSRAM di bawah

Board RNV4 sudah lewat optoisolator PC817 — tinggal trigger

Jalur IN1IN3 di board RNV4 masing-masing sudah lewat optoisolator PC817 (galvanically isolated dari domain 3.3V ESP32), dengan LED indikator + resistor 1kΩ di sisi katoda PC817 sudah terpasang di board — bukan sesuatu yang perlu Anda tambahkan sendiri. Sisi keluaran (fototransistor) sudah di-pull-up ke logika 3V3L dan langsung dibaca firmware sebagai IN1/IN2/IN3.

Untuk trigger: cukup beri tegangan di sisi input terminal (anoda +, katoda ke GND) — lewat saklar mekanis polos maupun output sensor aktif (proximity NPN/PNP, photoelectric, dll), tanpa perlu resistor/level-shifter tambahan dari Anda.

Rangkaian lengkap (nilai komponen persis, penomoran U93-U95/R91-R97/LED15-17) ada di Skematik Elektronik halaman 1 (Rangkaian Utama), kotak "INPUT 1/2/3".

Catatan GPIO35 (IN3): GPIO35 berbagi jalur dengan PSRAM mode OPI, tapi board ini dikonfigurasi qio_qspi (bukan qio_opi) — sengaja dipilih untuk menghindari bug watchdog reset di IDF 4.4.x saat mode OPI aktif, jadi GPIO35 aman dipakai IN3 selama konfigurasi ini dipertahankan.

Membaca Sensor Manual

KodeFungsiContoh Balasan
R1 / R2 / R3 Baca IN1 / IN2 / IN3 IN1: HIGH
R5 Baca ketiganya + suhu IN1:1 IN2:0 IN3:1

R1/R2/R3 membalas HIGH/LOW; R5 membalas 1/0 — beda format, jangan tertukar saat menulis parser.

Status live tanpa polling: ketiga sensor juga disiarkan otomatis di payload backdoor @RT (tiap 200ms) sebagai field in1/in2/in3 — RNV4 Studio memakai ini untuk indikator warna, tidak perlu kirim R1 berulang-ulang.

Sensor di Program SD — Dua Bentuk yang Berbeda

Bagian paling sering disalahpahami — ada dua sintaks dengan arti sangat berbeda:

IN1 H (tanpa >N) TUNGGU — program berhenti di baris ini sampai kondisi terpenuhi
IN1 H >1 (pakai >N) CEK SEKALI — kalau benar lompat ke label >1, kalau salah lanjut baris berikutnya

Bentuk TUNGGU — menahan program tanpa batas waktu sampai kondisi terpenuhi, cocok untuk "tunggu benda datang"/"tunggu operator tekan tombol". Robot tetap melayani suhu/kipas/servo/telemetri selama menunggu, dan bisa dibatalkan dengan R512/M18/M84:

IN1 H G0 X0.000 Y223.590 Z25.000 G0 X0.000 Y223.590 Z175.000

Bentuk LOMPAT (percabangan/loop) — pengecekannya sesaat, cocok untuk sensor yang levelnya bertahan (bukan tombol momentary):

>1 G0 X0.000 Y223.590 Z175.000 G0 X0.000 Y223.590 Z25.000 IN1 H >1

Label & Kondisi Majemuk

Label adalah penanda tujuan lompatan (maksimal 20 per program). Sintaks RNV4 Studio otomatis diterjemahkan:

@LABEL 1 → >1
@JUMP IN1 H 2 → IN1 H >2
@JUMP IN1 H AND IN2 L 3 → IN1 H AND IN2 L >3

Kondisi majemuk pakai AND/ORAND lebih kuat dari OR (sama seperti bahasa pemrograman umum), dan tanda kurung tidak didukung:

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

Probe Sentuh (G33 / R520)

⚠ Belum diuji di robot fisik

Fitur G33/R520 ada di firmware dan IN1 secara default dialokasikan untuknya (kalibrasi Z), tapi pemakaiannya sepenuhnya belum diuji di hardware nyata. Perlakukan sebagai eksperimental — jangan diandalkan untuk kalibrasi produksi sebelum diverifikasi sendiri, dan selalu cek polaritas trigger (lihat poin di bawah) sebelum mencoba.

IN1 punya fungsi kedua: probe kontak untuk kalibrasi kinematik.

G33 Z-20 F100 ; turun pelan sampai IN1 kontak, lalu berhenti seketika M400 ; tunggu gerakan benar-benar selesai R520 ; ambil hasilnya
  • F wajib diisi, diclamp ke batas aman probe (default 5 mm/detik) — probe harus pelan supaya titik kontak akurat.
  • Polaritas wajib dicek dulu: kirim R1 saat probe belum tersentuh untuk konfirmasi level trigger yang benar sebelum dipakai — kalau terbalik, G33 akan "trigger" seketika begitu dikirim.
  • Hasil R520 dikonsumsi sekali — panggilan kedua tanpa G33 baru akan membalas PROBE:NONE.
  • Konflik pemakaian: kalau IN1 sudah dipakai sebagai sensor benda di program produksi, jangan sekaligus dipakai sebagai probe — pindahkan sensor benda ke IN2/IN3.

Batasan & Jebakan

  • Tidak ada debounce pada kondisi program — kondisi sensor di program SD membaca pin langsung tanpa debounce. Saklar mekanis yang memantul bisa memicu kondisi secara palsu; tambahkan kapasitor 100nF paralel dengan saklar, atau pakai sensor elektronik.
  • Pulsa lebih pendek dari 50ms bisa terlewat — bentuk TUNGGU memeriksa sensor tiap 50ms.
  • Bentuk lompat membaca sesaat — untuk "tunggu sampai ditekan", pakai bentuk TUNGGU, bukan bentuk lompat.
  • Kondisi salah ketik diterima diam-diam — mis. IN1HELLO diperlakukan sebagai IN1 H, sisanya diabaikan tanpa peringatan.
  • Sensor dibaca setelah gerakan selesai (disengaja) — robot berhenti sejenak di tiap baris sensor supaya kondisi dinilai berdasarkan posisi fisik robot, bukan posisi file.
  • Menunggu tanpa batas waktu — bentuk TUNGGU tidak punya timeout, hentikan dengan R512 kalau perlu.

Contoh — Pick & Place dengan Sensor

>1 IN1 H ; tunggu benda terdeteksi G0 X0.000 Y223.590 Z25.000 ; turun ke benda M10 ; vacuum ON G0 X0.000 Y223.590 Z175.000 ; angkat G0 X150.000 Y200.000 Z175.000 ; pindah ke tujuan G0 X150.000 Y200.000 Z25.000 ; turun M11 ; vacuum OFF (lepas) G0 X150.000 Y200.000 Z175.000 ; naik IN2 L >1 ; selama tombol stop belum ditekan, ulangi

Diagnosa Cepat

GejalaPeriksa
Pembacaan acak/berubah sendiri Cek sambungan ke terminal IN (sudah lewat optoisolator PC817 di board), atau pastikan output sensor aktif benar-benar mendorong HIGH/LOW
"Jump condition FALSE" terus Bentuk lompat membaca sesaat — pakai bentuk TUNGGU
Program lanjut padahal sensor belum aktif Salah pakai >N — hapus >N untuk menunggu
Sensor terdeteksi tapi telat Polling 50ms + robot menunggu gerakan selesai dulu
G33 langsung trigger Level trigger probe terbalik — cek dulu dengan R1
Robot menunggu selamanya Kondisi tidak pernah terpenuhi — kirim R512 untuk stop
Suhu -127.0°C Itu sensor DS18B20 (bukan IN1-3) — cek wiring & pull-up 4.7kΩ (R6)

Contoh Penggunaan (Alur Kerja Umum)

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"}

Kalibrasi Hardware (hwConfig)

Perintah R90R94, R99 membaca, mengedit, mereset, dan mengekspor/impor nilai kalibrasi per-unit yang tersimpan di flash internal (/hwconfig.json) — tidak perlu flash ulang firmware untuk mengubahnya.

Konsep Dasar

Factory default hwConfigDefaults.h — aktif saat unit baru / setelah R92
Nilai aktif /hwconfig.json di flash — dibaca saat robot boot
Edit runtime via R91 — tanpa flash ulang firmware

Nilai di hwConfigDefaults.h hanya aktif jika /hwconfig.json belum ada. Setelah R90 pertama kali dijalankan, nilai default disalin ke flash — selanjutnya yang terbaca saat boot adalah nilai dari flash.

Perintah

KodeFungsi
R90 Tampilkan semua nilai konfigurasi aktif (inisialisasi flash kalau belum ada)
R91 Edit satu field — alur interaktif: pilih nomor field → ketik nilai baru (timeout 30 detik/langkah)
R92 Reset semua ke factory default — wajib konfirmasi ketik YES
R93 Ekspor seluruh hwConfig sebagai JSON compact (untuk RNV4 Studio/GUI eksternal)
R94 Impor hwConfig dari JSON (bulk set) — partial update didukung, field yang tidak disebut tetap nilai lama
R99 Baca/set nomor seri robot — BUKAN bagian hwConfig, disimpan terpisah, butuh password produksi untuk diubah

Daftar Field (R91)

44 field aktif (bernomor 1–45 — nomor 32 sengaja kosong, bekas blynk_auth_token yang dihapus bersama modul Blynk dari firmware, nomor lain sengaja tidak digeser), dikelompokkan per kategori. Field bertanda reboot baru aktif setelah robot restart — sisanya efek langsung.

NoFieldKeterangan
1–2 cal_x_scale, cal_y_scale Koreksi skala sumbu X/Y (1.0 = tanpa koreksi)
3–4 cal_xy_skew_pos/neg mm Y per mm X, saat bergerak ke arah X+/X−
5–6 cal_zy_coupling_pos/neg mm Z per mm Y, saat bergerak ke arah Y+/Y−
7–8 cal_yz_coupling_pos/neg mm Y per mm Z, saat bergerak ke arah Z+/Z−
44–45 cal_zx_coupling_pos/neg mm Z per mm X, saat bergerak ke arah X+/X− — kompensasi kemiringan sumbu putar base
9–12 x/y/z/e0_home_steps Step dari endstop tiap axis ke posisi INITIAL
13 landing_x_steps Step dari endstop X ke posisi landing HIGH_SHANK (M20/R20)
14–15 temp_fan_low/high °C — histeresis fan AUTO mati/nyala (field 15 harus > field 14)
16 temp_check_interval_ms ms — interval baca suhu
17–20 pen_down_z, pen_up_z, pen_down_dwell, pen_down_speed Posisi Z & waktu tunda/kecepatan turunkan pen (R30)
30–31 pen_up_dwell, pen_up_speed Waktu tunda/kecepatan naikkan pen (R31)
21 microsteps Microstepping (1/2/4/8/16/32)reboot
22 steps_per_rev Step per putaran motor (biasanya 200)reboot
23–26 inverse_x/y/z/e0_stepper Balik arah motor per axis (0=normal, 1=balik)reboot
27 steps_per_mm_rail Step per mm pergerakan relreboot
28 rail_length Panjang maksimal rel (mm)reboot
29 rail_enabled 0=tanpa rel, 1=pakai relreboot
33–36 servo1_default_pos, servo1_speed, servo1_min/max_pos Default 90,0° / 60,0°/s / 0–180° — servo1 (rotasi end-effector)
37–39 servo2_default_pos, servo2_min/max_pos Default 90,0° / 30–120° — servo2 (gripper)
40–41 servo1_max_speed, servo2_max_speed Default 330,0°/s / 300,0°/s — sesuaikan ke spek servo fisik
42–43 vacuum_on_dwell, vacuum_off_dwell ms — jeda tunggu bawaan M10 (hisap) / M11 (lepas) sebelum command berikutnya dieksekusi

Contoh — Kalibrasi Ulang Skala Sumbu X

Kirim G2 I50 J0, ukur diameter hasil di sumbu X (misal terukur 102mm, harusnya 100mm):

cal_x_scale_baru = 100 / 102 = 0.9804 R91 → 1 (pilih field cal_x_scale) → 0.9804 (nilai baru, aktif langsung)

Catatan Penting

  • Satu field per sesi R91 — untuk ubah banyak field sekaligus, pakai R94 (JSON bulk set).
  • Timeout 30 detik berlaku di tiap langkah input (R91/R92/R94/R99) — kalau timeout, tidak ada perubahan.
  • R99 (nomor seri) terpisah dari hwConfig — tidak ikut ter-reset oleh R92.

Tutorial

Setup Akun & Token API

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.

Klaim Robot ke Akun

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.

Menghubungkan Robot ke RNV4 Studio

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, OTA)
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.

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. OTA/monitoring jarak jauh), bukan jalur kontrol utama G-code.
  • Untuk update firmware via OTA/esptool dari Studio: proses akan disconnect serial dulu, flash firmware, baru reconnect otomatis — jangan cabut USB selama proses ini berlangsung.

Membuat Program di SD Card

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.

  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.

FAQ & Troubleshooting Umum

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-3 pembacaan acak/berubah sendiri Sensor → Cek sambungan ke terminal IN, atau output sensor aktif
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)?

Update dilakukan lewat RNV4 Studio via kabel USB langsung (esptool) — bukan OTA wireless yang rawan gagal di tengah proses karena sinyal terputus, jadi jauh lebih stabil.