SentryNode Pilot
Simple help for getting started with the app and the board.
What This App Does
The app helps you connect to your board, drive it live, and build programs with blocks.
1. Connect
Find your board and start communication.
2. Teleoperate
Drive live with joystick and RGB controls.
3. Program with blocks
Build robot behavior using drag-and-drop blocks.
Board firmware (`board-core`) handles:
- Wi-Fi setup
- finding the board on the network
- motor movement
- RGB LED control
- sensor readings
The app talks to the board over Wi-Fi.
First-Time Setup
Step 1: Power on the board
Turn the board on and wait a few seconds.
If the board does not know your Wi-Fi yet, it creates:
- Network name:
ESP32_AP - Password:
ap_password
Step 2: Connect to the board Wi-Fi
Join `ESP32_AP` from your phone or computer. Usually a setup page opens by itself.
If it does not open, go to: http://192.168.4.1
Step 3: Give the board your Wi-Fi
Enter your normal Wi-Fi name and password. The board restarts and joins your network.
Step 4: Open the app
On the Home page:
- Press `Discover IP`
- Press `Connect`
Now the app should be talking to the board.
If it does not work
- your computer and board are on the same Wi-Fi
- the board finished booting
- the Wi-Fi password was typed correctly
If needed, use `Reset Network` in the app and try again.
Still stuck? You can re-flash the board firmware — see the Board Firmware guide.
The Home Page
The Home page is the best place to start. It lets you:
- discover the board IP address
- connect and disconnect
- reset board Wi-Fi settings
- see sensor data
Buttons on the Home page
Discover IP
Searches your local network for the board.
Connect
Starts communication so other pages can control the board.
Disconnect
Stops communication with the board.
Reset Network
Clears saved Wi-Fi settings so setup can start from scratch.
Sensor cards
After connecting, the app polls sensor data from the board and shows it on screen. If a sensor is missing or not ready, it may show as unavailable.
The Teleoperation Page
This page is for live control. You can:
- drive the board with the joystick
- change the RGB LED with sliders
- see live joystick values
Joystick
Move to send motion commands. Releasing sends stop.
Live Vector
x = turning, y = forward/backward
RGB Sliders
R, G, B change the LED immediately.
The Block Programming Page
Build programs by dragging blocks. The left side has available blocks; the right side is the program area.
How to build a program
- Drag blocks from the left into the program area
- Put them in the order you want
- Tap a block to change its settings
- Press `Run`
Run
Starts the program (requires board connection).
Stop
Stops the running program.
Good things to know
- If there are no blocks, the program cannot run
- You can reorder blocks by dragging them
- You can drag a block back to the block area to remove it
- `Repeat`, `While`, and `If` can hold blocks inside them
- Container blocks are currently one level deep (no loop inside another loop).
Motion Blocks
Motors
Direct control over left and right wheels.
Settings: `Left Speed (%)`, `Right Speed (%)`, `Duration (s)`
Positive and negative values move in opposite directions; `0` stops a wheel.
Example: left `50`, right `50`, duration `1` moves forward for 1 second.
Straight
Simple forward/backward movement.
Settings: `Speed`, `Duration`.
Positive speed moves forward; negative speed moves backward.
Example: speed `0.5`, duration `2` moves forward for 2 seconds.
Turn
Turns the robot in place.
Settings: `Direction`, `Speed`, `Duration`.
Choose left or right, then choose speed and duration.
Example: direction `left`, speed `0.5`, duration `0.5` makes a small left turn.
Stop
Stops the motors immediately. This block has no settings.
In the current executor, `Stop` also ends the rest of the program, so it is usually best at the end.
LED Blocks
LED Color
Sets the LED to a ready-made color (`Color`).
Available: red, green, blue, yellow, cyan, magenta, white, off.
Example: set green when the robot is ready.
RGB
Mix your own color using `Red`, `Green`, and `Blue`.
Each value is from `0` to `255`.
Examples: `255,0,0` red | `0,255,0` green | `0,0,255` blue.
Blink
Flashes the LED on and off.
Settings: `Color`, `Interval (ms)`, `Count`.
Example: blue, `500`, `3` blinks blue three times.
Control Blocks
Wait
Pauses the program. Setting: `Duration`.
Example: wait 1 second before the next action.
Repeat
Runs inside blocks repeatedly. Setting: `Count`.
Example: repeat 3 times: blink, then wait.
While
Runs inside blocks while a condition is true.
Condition parts: source, sensor, value, operator, threshold.
Sources: `Sensor value`, `Elapsed time (s)`.
If the condition stays true, it keeps running until the condition is false or you press `Stop`.
If
Checks one condition and runs inside blocks only when true.
Condition parts: source, sensor, value, operator, threshold.
Backend supports `else`, but the current UI only shows the `Then` area.
Understanding Conditions
Conditions are questions the app checks as true or false.
Examples
- Is the distance less than `100`?
- Has `3` seconds passed?
- Is the encoder angle greater than `180`?
Operators
< <= = != >= >
Condition sources
- Sensor value: react to a sensor reading.
- Elapsed time: react to time since the program started.
Sensors in `board-core`
| Slot | Sensor | Values | Status in this firmware build |
|---|---|---|---|
0 |
Environmental | temperature, humidity | mock only |
1 |
Color | red, green, blue, white | mock only |
2 |
Accelerometer | X, Y, Z | real sensor |
3 |
Distance | distance in millimeters | real sensor |
4 |
Encoder | angle in degrees | real sensor |
What `board-core` Handles
- starts Wi-Fi setup mode when needed
- creates mDNS name `esp32pcb.local`
- answers UDP discovery on port `4210`
- accepts control commands on TCP port `80`
- reads sensors
- updates motors
- updates RGB LED
Motion behavior
Firmware smooths movement and applies a deadzone so tiny joystick values do not move the robot by accident.
Sensor behavior
The app polls sensor data often. Responses include sensor id, sensor type, values, and read status.
A Good First Program
LED ColorWaitStraightStop
LED Color: color = `green`
Wait: duration = `1`
Straight: speed = `0.4`, duration = `1`
Stop: no settings
This is a great starter because it teaches lights, timing, movement, and program order.
Tips For Young Programmers
- Start with short movements
- Change one thing at a time
- Test often
- Use LED colors to show what your robot is doing
- Put `Stop` at the end of test programs
- Use `Wait` to make behavior easier to see
If something goes wrong, that is normal. Programming is a lot of trying, testing, and improving.
Short Summary
Start on the Home page and connect the board first. Use Teleoperation to test movement and lights, then build simple block programs with movement, LED, and control blocks. As you get comfortable, combine conditions and loops to create smarter behavior.
SentryNode Pilot is designed to work alongside SentryNode Edu. Check out the Edu guide for the full platform documentation.