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:

  1. Press `Discover IP`
  2. 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

  1. Drag blocks from the left into the program area
  2. Put them in the order you want
  3. Tap a block to change its settings
  4. 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

  1. LED Color
  2. Wait
  3. Straight
  4. Stop

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.