Each firebox gauge shows a status label below the temperature reading:
- NORMAL — temperature within expected range. Fire is burning steadily.
- WARM — temperature rising into the working range.
- HOT — temperature high but within operating limits.
- DANGER — temperature approaching the upper limit. Check the fire immediately.
Thresholds can be adjusted in Settings & Admin → Boiler Watch if needed for different operating conditions.
Tap any firebox gauge to open the rate of change panel. It shows how quickly the fire temperature is rising or falling in °C per minute.
- RISING FAST — fire responding strongly to stoking.
- RISING — temperature climbing steadily.
- STEADY — fire in balance, holding temperature.
- FALLING — temperature dropping, fire may need attention.
- FALLING FAST — fire needs immediate attention.
The rate is calculated from the last 60 seconds of stored data on the Pi — it's meaningful immediately, no warm-up needed.
The overview page shows two large gauges — one for the aft boiler and one for the forward boiler. Each gauge shows the average temperature across that boiler's three connected fires.
Tap either gauge to drill down into the individual firebox readings for that boiler, where you can see fires 1, 3, 5 (aft) or fires 2, 4, 6 (forward) separately.
A gauge showing zero usually means the sensor has lost contact rather than a genuine zero temperature reading. Check the temperature trend chart — a gap in the line confirms a dropout rather than a real reading.
- Check the Settings cog on the hub — the Node Health panel shows which ESP32 nodes are online.
- Find the ESP32 sensor box for that boiler and confirm it has power (indicator light on).
- Check the thermocouple wires are firmly seated in the green terminal block connectors.
- If the node shows offline, a power cycle (unplug and replug USB) will reconnect it automatically.
SIM mode shows simulated data for demonstration. Tap the SIM button on the dashboard to toggle it off, or do a hard refresh of the page (pull down to refresh on mobile, or press F5 on desktop). The Pi continues recording real data regardless of SIM state.
The trend chart shows the last 2 hours by default. This is configurable in Settings & Admin → Boiler Watch → History Window. The Pi stores all readings indefinitely — the full history is available in the Fire Data Report under Settings & Admin → Reporting.
Each crew member shows four operational capability dots — green means qualified, grey means not:
- Chief — Chief Engineer qualified. Requires Expert on Boilers AND Competent or Expert on Main Engine.
- Lead — Lead Stoker capable. Requires Competent or Expert on Stoke Hold.
- Engine — Engine operator. Requires Competent or Expert on Main Engine.
- Stoker — Can stoke safely. Requires Aware or better on Stoke Hold.
The role label (e.g. "Chief Engineer") and the dots are independent. Promoting someone to Chief Engineer updates their title but not their dots — you must also update their Boilers and Main Engine competency ratings for the Chief dot to light up.
Use the live search on the Crew Register tab. You can search by name, role, or capability keyword:
- Type "chief" — shows all Chief Engineer qualified crew.
- Type "lead" — shows Lead Stoker capable crew.
- Type "engine" — shows engine operators.
- Type "stoker" — shows all crew capable of stoking.
- Type a name — jumps straight to that person.
Two things need to be updated:
- Tap the crew member's card to open their detail panel, then tap Edit.
- Change Primary Role to Chief Engineer.
- Set Boilers competency to Expert.
- Set Main Engine competency to Competent or Expert.
- Tap Save. The Chief dot will now show as green.
Tap the crew member's card, then tap Change Status. Choose Not Current. Not-current crew are hidden from the register by default — tap Show not current at the top to include them. Not-current crew also don't appear in roster assignment dropdowns.
When you set the sailing date in the Roster Builder, the three light-up day fields automatically fill with the three days prior to sailing. For a Saturday sailing this gives you Wednesday, Thursday, and Friday.
Each day has three crew dropdowns — assign up to three crew members per day. TESS prevents the same person being assigned twice on the same day.
Light-up crew and sailing crew are separate — someone can light up on Wednesday and still be Chief Engineer on sailing day.
- Build the roster and tap Save PDF — the print dialog opens. Choose Save as PDF.
- Tap Send to Crew — your email client opens with your address in To: and all crew with email addresses in BCC. The voyage details and notes are in the email body.
- Attach the saved PDF and send.
Add email addresses to crew through the Edit panel in the Crew Register. Your sender email address can be changed in Settings & Admin → Voyage Roster.
- Go to Settings & Admin → Reporting → Crew Register.
- Tap Export Crew CSV — downloads a spreadsheet with all crew and competency ratings.
- Edit the CSV in Excel — update ratings, add emails, change roles.
- Tap Import CSV and select your file. TESS merges the changes — existing crew are updated, new crew are added, anyone not in the CSV is left untouched.
Tap the event name button (e.g. Standby, Full Away) to stamp the current time automatically. You can also tap the time field directly and type a time if you need to correct it.
For engine readings, tap the TAP button in the Time column — this stamps the time AND fetches the current steam pressure from the live sensor feed simultaneously.
Enter the Start and Finish readings for each tank. TESS automatically calculates the Used figure (Start minus Finish). You don't need to enter Used manually.
Tap Save Log at the top or bottom of the page. A confirmation shows the assigned log number.
To retrieve a saved log, go to Settings & Admin → Reporting → Engine Room Log Records and tap the eye icon next to the log you want. It opens in a new tab pre-populated with all recorded data.
- Enter the voyage name and date.
- Set the base consumption rate for your fuel and boiler conditions.
- Add voyage legs — set the speed and duration for each leg.
- The calculator estimates total fuel consumption across all legs.
- Tap Save Trip to record it to the Pi database.
Saved trips appear in the History tab and in Settings & Admin → Reporting → Bunkering Trip Records.
Tap the 🔒 lock icon in the top right corner of the hub page. Enter your username and password. Once logged in the lock changes to a ⚙ cog and the additional tools appear — Bunkering Calculator, Voyage Roster, and Engine Room Log.
Your login persists across page navigations and browser restarts. You won't need to log in again on the same device unless you explicitly log out.
Tap the ⚙ cog in the top right corner to open the system status drawer. Tap Log Out at the bottom of the drawer.
- Go to Settings & Admin → Security.
- Enter your current password, then your new password twice.
- Tap Change Password. Minimum 6 characters.
- Go to Settings & Admin → Security → User Management.
- Enter a username and password in the Add New User form.
- Tap Add User. The new user can log in immediately.
All admin users have equal access to everything in TESS. The primary owner account is the only one that cannot be deleted.
If another admin user is available, they can reset your password from Settings & Admin → Security → User Management by tapping the 🔑 reset button next to your username.
If no admin accounts are accessible, the system administrator can perform an emergency reset. Contact the system administrator — the procedure is documented in the TESS technical manual.
- Confirm your device is connected to the ship's wifi network.
- Check the Pi has power — it has a small green activity LED.
- Try the direct IP address instead of the hostname — ask the Chief Engineer for the current IP.
- If no devices can connect, the Flask server may need restarting. Contact the system administrator.
- Tap the Settings cog ⚙ on the hub page — the Node Health panel shows which ESP32 sensor boxes are online and when they last reported.
- Check whether adjacent fires on the same boiler are reporting normally. If some fires report and others don't, it's likely a specific sensor connection issue.
- Locate the ESP32 sensor box for the affected boiler. Check the USB power cable is secure and the box shows a power light.
- Check the thermocouple wires are firmly clamped in the green terminal block connectors. Use a small screwdriver to tighten if necessary.
- If the node shows offline, unplug and replug its USB power. It reconnects to wifi automatically within about 10 seconds.
Do a hard refresh of the page — pull down to refresh on mobile, or press F5 on desktop. This resets the page state and returns to live data mode.
The Send to Crew button opens your device's default email app. If no email app is configured, it will appear to do nothing.
Configure a default email app on the device, or copy the crew email addresses from the briefing sheet and send the email manually.
Settings save to the Pi in real time — if the Pi isn't reachable the save will silently fail and settings will revert to defaults on the next page load.
Check node health from the hub page cog. If the server shows offline, contact the system administrator to restart the Flask server.
Crew data saves to the Pi automatically after each change. If changes disappeared, the Pi was likely unreachable at the time of saving.
Check the Pi is online and make the changes again — they will save normally once the connection is restored.