farmduino_monitor – a developer console for Farmduino diagnostics
Hi everyone,
I’ve been having issues with my motors on Genesis v1.6 and needed a way to talk directly to the Farmduino over USB – without FarmBot OS in the way – so I could test individual motors, read driver status and debug my own custom firmware.
I ended up writing a small terminal tool and thought it might be useful to others, so I’m sharing it here.
What it does
farmduino_monitor is an interactive serial console for Farmduino. It connects over USB and gives you a full-screen terminal UI (think mc or htop) with:
- Real-time status line – position, encoder values, endstops, motor load, stall detection
- Scrolling event log – all firmware responses decoded and colour-coded
- Built-in shortcuts –
approve,pos,home,unlock,lock,ver,paramsand more - Raw command input – type any G/F-code directly (
F22 P36 V63 Q0etc.) - Command annotations – type
annto toggle inline descriptions from the firmware README next to every command and response - Scripts – put a
.txtfile inscripts/, one command per line, run it by name; inline#comments supported - Session log – everything saved to
logs/with kernel-style timestamps
Tested against firmware v6.6.26 (52053ec8, FARMDUINO_V32 + K16) on Genesis v1.6.
Why I built it
FarmBot OS does a great job but when something goes wrong at the hardware level – a driver not responding, a motor with no torque, endstops reading wrong – it’s hard to isolate the problem through the web UI. I needed to:
- send commands to a single motor without the others connected
- read TMC2130 driver status (DRV_STATUS via the patched firmware)
- iterate quickly on parameter changes without restarting FBOS
This tool fills that gap. It’s essentially a smarter minicom that speaks Farmduino’s R/F/G-code protocol.
Requirements
pip install pyserial
python3 farmduino_monitor.py /dev/ttyACM0
Python 3.8+, Linux/macOS.
Happy to hear if anyone finds it useful or has suggestions. If you’re debugging motor or driver issues on Genesis v1.5/1.6 (TMC2130 boards) it might save you some time.
