● Demo Mode
Voice
English Female
English Male
French Female
None (Demo Mode)
19200
38400
Diagnostics
Port Configuration
COM port speed: 19200 COM ports found: Scanning… Auto connected?
First Packet
Number of sensors: Number of outputs: First device state:
Live Data
No data — connect a device or select Demo Mode
SERIAL PACKET MONITOR 82 start · 10 end · length · sensor code,value · output type×10+state
PC → µC
µC → PC
--:--:--
ABOUT
RIGEL · Real-world Interactive Games & Electronics Link
Sister app to SMART. Educational, non-commercial use
Licence: CC BY-NC-SA 4.0
Portfolio: mikefentonnz.github.io
Author: Michael Fenton
RIGEL SENSOR DISPLAY
Click "+ Sensor Window" to open a display panel
🏠 HOME SECURITY
BEDROOM 1 BATHROOM BEDROOM 2 HALLWAY LIVING ROOM KITCHEN GARAGE RIGEL Home Security — drag sensor pins to room locations Floor plan
🫀 CPR SIMULATOR
COMPRESSION
Rate
0
CPM
Depth
0
%
Blood O₂
98
%
Assign a sensor to Compression to begin
RESPIRATION
Sensor Assignment
Compression
Drag a sensor pin here
Respiration
Drag a sensor pin here
Available Sensors
🎮 2D SENSOR GAME
SCORE0
TIME60
BEST0
SENSOR GAME
Dock sensors to the joystick zones, then start
Joystick Mapping
Y · up / down
▲ up
▼ down
Drag a sensor here
X · left / right
◀ leftright ▶
Drag a sensor here
Available Sensors
✈️ 3D FLIGHT SIMULATOR
Dock sensors to control pitch & roll
HDG000°
ALT1000 ft
SPD200 kts
PCH+0°
ROL+0°
Flight Controls
Y · pitch (climb / dive)
▲ climb
▼ dive
Drag a sensor here
X · roll (left / right)
◀ roll leftroll right ▶
Drag a sensor here
Available Sensors
🤖 ROBOT REMOTE CONTROL
Output state is sent in every serial packet automatically
Output Devices
Scanning for output devices…
Live Sensor Readings
Waiting for sensor data…
SERIAL PACKET MONITOR 82 start · 10 end · length · sensor code,value · output type×10+state
PC → µC
µC → PC
⚙️ INDUSTRIAL MEASUREMENT & CONTROL
Rules fire automatically — output state sent every serial packet
Process Monitor
Waiting for sensor data…
Actuators
No actuators detected
Control Rules
No rules defined — add one below
ADD RULE
IF
THEN
SERIAL PACKET MONITOR 82 start · 10 end · length · sensor code,value · output type×10+state
PC → µC
µC → PC
🔌 CONNECTING REAL HARDWARE
Live protocol reference — the packet monitor updates in demo mode too
The Packet — Live
SERIAL PACKET MONITOR 82 start · 10 end · length · sensor code,value · output type×10+state
PC → µC
µC → PC
RIGEL and the microcontroller exchange these frames 4 times a second. The PC sends only its output states; the microcontroller replies with every sensor reading and every output state. In demonstration mode the monitor shows the frames this exchange would use, so the protocol can be taught before any hardware is connected.
Frame Structure
ByteContent
0START — 'R' = 82
1LENGTH — payload byte count
2…N+1PAYLOAD — sensor pairs, then outputs
N+2END — newline = 10
In the payload, any byte over 90 is a sensor type code (lowercase ASCII — see the table opposite) and the byte after it is that sensor's value. Any byte under 90 is an output device, encoded type × 10 + state: 41 is a fan (type 4) ON (state 1); 80 is a valve (type 8) CLOSED (state 0).
⚠ The 90 boundary. Valve-open (type 8, state 1) encodes as 81 — safely under 90. A type 9 would encode as 90+ and be misread as a sensor, corrupting the parse. Eight output types is the ceiling.
Firmware Contract
1. Reply to the length-0 startup packet [82, 0, 10] with a full sensor + output frame — rejecting it deadlocks the link, because RIGEL can never learn your output set.
2. Report each motor's idle state inside its own range (a single motor idles at 20, a robot drive at 25) so the control profile locks correctly from the first packet.
3. Hold every output at its last commanded state until the PC sends a change — all states latch.
Link Settings
MicrocontrollerBaud rate
Picaxe 08M2 / 14M219200
ESP8266 / ESP3238400
A Chromium browser (Chrome or Edge) is required — the Web Serial API is not available elsewhere. Requests are sent at 4 Hz with a 750 ms watchdog, so one lost reply never stalls the link. On a first run the browser lists no COM ports until you click Connect and grant access in the picker — that is the permission model, not a fault.
Sensor Codes (payload bytes > 90)
CodeASCIISensorValue
97aAir pressurevalue + 900 = hPa
98bBlue light0–100
99cContact0 or 1
100dDistance0–254 cm
101eHeading1–16 → N…NNW
103gGreen light0–100
104hHumidity0–100 %
105iIR light0–100
108lAmbient light0–100
109mMagnetic field0–100
110nAlpha particles0–100
111oRespiration0–100
112pHeart rate0–100
114rRed light0–100
115sSound0–100
116tTemperature0–100 °C; >100 = negative (105 = −5 °C)
117uUV light0–100
120xTimer start
121yYellow light0–100
122zTimer stop
Codes without a table entry still work — they render with a generic Sensor [code] label.
Output Devices (payload bytes < 90)
TypeDeviceStates (encoded)
1Switch0 off · 1 on (10, 11)
2Motorsee profiles below (20–29)
3LED / RGB0 off · 4 red · 5 green · 6 blue · 7 yellow · 8 white (30–38)
4Fan0 off · 1 on (40, 41)
5Heater0 off · 1 on (50, 51)
6Vent0 closed · 1 open (60, 61)
7Pump0 off · 1 on (70, 71)
8Valve0 closed · 1 open (80, 81)
Motor Control Profiles
The state range declares, from the first packet alone, whether a motor is a plain single motor or a two-motor robot drive — RIGEL then shows the matching control surface with no configuration.
EncodedProfileAction
20Single motorStop
22Single motorForward
23Single motorReverse
25Robot driveStop
26Robot driveForward
27Robot driveReverse
28Robot driveTurn left
29Robot driveTurn right
21 and 24 are reserved (24 is the buffer between the two ranges). The profile locks for the session once detected.