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.
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
Mekanik & Elektrik
Dimensi & Desain
Kiri: posisi awal (home). Kanan: lengan terentang ke posisi tertinggi.
Kapasitas Beban (Payload)
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 pen — menulis/menggambar.
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.
Terbuka maksimal — jarak capit ±32,55 mm.
Tertutup — posisi mencapit.
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 & 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.
Tampak depan (kiri) & 3D (kanan) dudukan gripper di ujung lengan — satuan mm.
17,80 mm
23,60 mm
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.
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.
Kardus pengiriman — dilapisi lakban FRAGILE di semua sisi.
Sisi lain kardus, lengkap simbol penanganan (fragile, lindungi dari air).
Dibungkus plastik wrap tambahan sebagai lapisan pelindung ekstra saat pengiriman.
Bagian dalam setelah dibuka — slot styrofoam terpisah untuk tiap komponen.
Robot terkunci rapat di styrofoam, lengkap kabel & aksesori dalam kantong terpisah.
Sudut lain — gripper cadangan & kelengkapan lain yang ikut dikemas.
Isi Paket
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.
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
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
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)
Motor & Driver Listrik
Board kontroler RNV4 (v4.2) — memuat ESP32-S3, 4 driver stepper DRV8825, dan rangkaian pendukung equipment/sensor.
Board kontroler RNV4 v4.2
Kondisi Aktif Sekarang
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 — Sisi Atas Bodi
Panel di sisi atas bodi, dekat pangkal lengan.
Stepper (STEP / DIR / ENABLE / MIN)
GPIO10
GPIO11
GPIO12
GPIO18
GPIO15
GPIO16
GPIO17
GPIO5
GPIO8
GPIO9
GPIO3
GPIO6
GPIO38
GPIO39
GPIO40
GPIO7
Equipment / Output
GPIO14 (LG1)
M10/M11
GPIO13 (LG2)
M10/M11
GPIO46 (LG3)
M3/M5
GPIO45 (LG4)
Auto (suhu) / manual (R10-R13) — strapping pin VDD_SPI, paling sensitif saat boot ⚠️
GPIO36
konflik fisik dengan PSRAM octal ⚠️
GPIO37
konflik fisik dengan PSRAM octal ⚠️
Spesifikasi Servo & Driver Relay
Sensor
GPIO21
GPIO47
GPIO35 ⚠️ (konflik fisik PSRAM)
GPIO4
SD Card (SPI)
GPIO1
GPIO2
GPIO42
GPIO41
Lain-lain
GPIO48
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(bukanqio_opi, lihatplatformio.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.
Halaman 1 — Rangkaian Utama (ESP32-S3, sensor, input)
Halaman 2 — Driver Motor (DRV8825) & Equipment (Pump/Valve)
Halaman 3 — Rangkaian LED
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
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):
- UART0
- USB
- 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:
RNV4_Robot
6E400001-B5A3-F393-E0A9-E50E24DCCA9E
6E400002-B5A3-F393-E0A9-E50E24DCCA9E
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, atauR<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
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
NAN/0 di awal setiap perintah. Parameter yang tidak disebut tidak mewarisi nilai dari perintah sebelumnya.
Format Respons (Robot → Host)
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
oksebelum kirim perintahGberikutnya - 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.
@DIAG tiap 3 detik, @RT
tiap 200ms). Lihat bagian Pengembangan & Ekstensi Kustom untuk cara menghindarinya.
@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
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.
// @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.
G-code (Gerakan & Mode)
Kirim lewat Serial Monitor (115200 baud), Bluetooth, atau UART0.
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)
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)
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.
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.
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:
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
GPIO21 — default dialokasikan untuk probe G33 (kalibrasi Z)
GPIO47
GPIO35 — lihat catatan PSRAM di bawah
Board RNV4 sudah lewat optoisolator PC817 — tinggal trigger
Jalur IN1–IN3 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
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/OR — AND 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
Fwajib diisi, diclamp ke batas aman probe (default 5 mm/detik) — probe harus pelan supaya titik kontak akurat.- Polaritas wajib dicek dulu: kirim
R1saat probe belum tersentuh untuk konfirmasi level trigger yang benar sebelum dipakai — kalau terbalik,G33akan "trigger" seketika begitu dikirim. - Hasil
R520dikonsumsi sekali — panggilan kedua tanpaG33baru akan membalasPROBE:NONE. - Konflik pemakaian: kalau
IN1sudah dipakai sebagai sensor benda di program produksi, jangan sekaligus dipakai sebagai probe — pindahkan sensor benda keIN2/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.
IN1HELLOdiperlakukan sebagaiIN1 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
R512kalau 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
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 R90–R94, 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
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
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.
cal_x_scale, cal_y_scale
Koreksi skala sumbu X/Y (1.0 = tanpa koreksi)
cal_xy_skew_pos/neg
mm Y per mm X, saat bergerak ke arah X+/X−
cal_zy_coupling_pos/neg
mm Z per mm Y, saat bergerak ke arah Y+/Y−
cal_yz_coupling_pos/neg
mm Y per mm Z, saat bergerak ke arah Z+/Z−
cal_zx_coupling_pos/neg
mm Z per mm X, saat bergerak ke arah X+/X− — kompensasi kemiringan sumbu putar base
x/y/z/e0_home_steps
Step dari endstop tiap axis ke posisi INITIAL
landing_x_steps
Step dari endstop X ke posisi landing HIGH_SHANK (M20/R20)
temp_fan_low/high
°C — histeresis fan AUTO mati/nyala (field 15 harus > field 14)
temp_check_interval_ms
ms — interval baca suhu
pen_down_z, pen_up_z, pen_down_dwell, pen_down_speed
Posisi Z & waktu tunda/kecepatan turunkan pen (R30)
pen_up_dwell, pen_up_speed
Waktu tunda/kecepatan naikkan pen (R31)
microsteps
Microstepping (1/2/4/8/16/32)reboot
steps_per_rev
Step per putaran motor (biasanya 200)reboot
inverse_x/y/z/e0_stepper
Balik arah motor per axis (0=normal, 1=balik)reboot
steps_per_mm_rail
Step per mm pergerakan relreboot
rail_length
Panjang maksimal rel (mm)reboot
rail_enabled
0=tanpa rel, 1=pakai relreboot
servo1_default_pos, servo1_speed, servo1_min/max_pos
Default 90,0° / 60,0°/s / 0–180° — servo1 (rotasi end-effector)
servo2_default_pos, servo2_min/max_pos
Default 90,0° / 30–120° — servo2 (gripper)
servo1_max_speed, servo2_max_speed
Default 330,0°/s / 300,0°/s — sesuaikan ke spek servo fisik
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, pakaiR94(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 olehR92.
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
- 1
-
2
Buka folder hasil unduhan
Cari file RNV4Studio-Setup.exe, lalu jalankan.
-
3
Kalau muncul peringatan Windows
Windows SmartScreen menandai installer belum bersertifikat code-signing resmi — klik “More info”.
-
4
Klik “Run anyway”
Installer aman, cuma belum ditandatangani sertifikat berbayar Microsoft — lanjutkan instalasi.
-
5
Klik Install
-
6
Klik Next
-
7
Klik Next lagi
-
8
Klik Yes
Konfirmasi izin instalasi Windows (UAC).
-
9
Tunggu hingga selesai
-
10
Klik Finish
RNV4 Studio otomatis terbuka setelah instalasi selesai.
-
11
Wajib login pakai Token API
Sejak versi terbaru, RNV4 Studio mewajibkan akun aktif — dialog “Login diperlukan” muncul otomatis saat pertama kali dibuka.
-
12
Belum punya token? Klik link ke dashboard
Klik “Belum punya token? Daftar/Masuk di ruskomponen.uk” untuk membuka dashboard akun di browser.
-
13
Daftar atau masuk
Kalau belum punya akun, daftar dulu. Kalau sudah punya, langsung masuk.
-
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).
-
15
Beri nama token
Nama bebas sesuai keinginan (mis. “Laptop Kerja”) — cuma label pengingat, tidak mempengaruhi fungsi token.
-
16
Salin token
Token cuma ditampilkan SEKALI saat dibuat — salin sekarang sebelum menutup dialog.
-
17
Tempel token di RNV4 Studio
Kembali ke RNV4 Studio, tempel token di kolom yang tersedia, lalu klik Masuk.
Troubleshooting
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
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.
-
2
Klik tombol Klaim Robot
Tombol ada di bagian atas jendela Studio, di samping tombol Konek.
-
3
Klik Minta Kode Klaim
Robot ID akan terisi otomatis sesuai robot yang sedang tersambung.
-
4
Salin kode klaim
Kode berlaku 10 menit sejak diminta — pastikan PC terhubung internet supaya kode berhasil diminta ke server.
-
5
Buka tab Robot Saya, klik Tambah Robot
Di dashboard web (app.ruskomponen.uk), buka tab Robot Saya.
-
6
Tempel kode klaim
Bukan Robot ID — tempel kode klaim 8 karakter yang disalin dari Studio tadi, lalu klik Tambahkan.
-
7
Selesai — robot terdaftar
Robot muncul di daftar Robot Saya, siap dipakai (AI Doodle, dll).
Troubleshooting
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
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
Pasang kabel USB dari robot ke PC/laptop
Tunggu Windows selesai mengenali device (biasanya muncul sebagai COMx).
-
2
Buka RNV4 Studio
-
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
Pastikan Baud = 115200
Ini nilai default dan wajib sama dengan konfigurasi firmware — jangan diubah kecuali firmware juga diubah.
-
5
Klik tombol Konek
Tombol biru di sebelah kanan field Baud.
-
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
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.
Troubleshooting
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
Buat program baru
R500 PickAndPlace1Program baru langsung jadi "program aktif". Program lain yang sudah ada di SD tidak terpengaruh.
-
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 aktifKalau perlu vacuum/gripper di titik itu, kirim
M10/M11(atauR519untuk gripper) sebelum atau sesudah titik disimpan. -
3
Cek isi program
R502Menampilkan semua baris yang sudah tersimpan di program aktif, sebelum dijalankan.
-
4
Edit kalau perlu
Sisipkan command di posisi tertentuR503 P<posisi>Hapus baris tertentuR504 P<line>Pindah baris naik/turunR504 P<line> UP / DOWNKosongkan semua & mulai ulangR505 CONFIRMTempel banyak baris sekaligusR513 (mode paste) -
5
Tutup program
R506Melepas status "aktif" tanpa menghapus isi — program tetap tersimpan di SD.
-
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
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
R506untuk 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
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.