MARLIN Controller
MARLIN is PolyMate's hands-on robotics platform: students write Python
scripts that drive real robots, from first motor spins to full competition
matches. This extension turns VS Code into the MARLIN control station.
What it does
- Run your robot code — start your program straight from the match
controls; the MARLIN Python API ships with the extension, so there is
nothing to install.
- Talk to your robot — the extension bridges your script to the MARLIN
Controller over USB, so your code just imports
marlin and drives.
- Run a match — autonomous and driver phases, E-Stop, and a console that
shows what your program and the robot are doing.
- Compete — connect to the MARLIN field server for matches: team
registration, alliance and station assignment, and radio beacon channels
are handled for you.
Getting started
- Install this extension.
- Click the MARLIN icon in the activity bar to open the control station.
- Press Create New Project and pick a template. MARLIN makes the folder,
writes
src/main.py, and opens it. Your code needs to live in a MARLIN
project — that is how the extension knows what to run.
- Plug the MARLIN Controller into a USB port, then in the Controller
card press Refresh Ports and Connect.
- In the Robot Brain card, pick your brain from the list and press
Connect. The panel scans for nearby MARLIN brains as it opens; if
yours is not listed you can type its name instead. The Controller makes
the Bluetooth link, so connect it first.
- Write your code in
src/main.py, then press Auton or Driver.
Full tutorials and classroom guides are in
MARLIN docs.
Running your program
Auton and Driver start your program for you if it is not already
running, and wait for the robot to accept its configuration before the phase
begins. The same buttons sit in the editor title bar while a MARLIN project
is open.
- Auton runs for 20 seconds, then the match pauses.
- Driver keeps going until you change the phase, so you can test for as
long as you like.
- Pause idles the robot but leaves your program running, so Auton or
Driver picks straight back up.
- Stop Script ends the program. Use it when you want to start over, or if
your code is stuck in a loop that ignores the phase.
- E-STOP cuts the robot's outputs and stays latched until you press
Clear E-Stop.
Edit src/main.py and press Auton or Driver again — MARLIN notices the file
changed and restarts your program, so you are never running yesterday's code.
Press Open MARLIN Console to see your program's output alongside messages
from the extension, the Controller, and the field. The console can filter by
source, and while your program is running you can type into it to answer an
input() call.
Calibrate Sticks measures the joysticks in two steps. Let go of the whole
panel first and it records where the sticks rest, so centre reads zero. It then
takes one joystick at a time — left, then right — asking you to push that one
all the way over and roll it clockwise around its edge while leaving the other
alone. One lap measures both of that joystick's axes, so their ends read a full
-100 and 100 even when the stick stops short of its electrical limit. Skip
either joystick, or Cancel to stop after the one already done; a joystick that
is skipped keeps its old full-range scaling. The result is saved in your
project.
Settings
| Setting |
What it's for |
marlin-controller.pythonPath |
Python executable to use. Leave blank to follow the interpreter you picked with "Python: Select Interpreter". |
The remaining marlin-controller.* settings are set for you by the control
panel and the field, and are listed in the Settings editor if you need them.
Support
Questions or issues? Ask your instructor, or reach the PolyMate team through
MARLIN docs.