Skip to content

Temperature Bar ​

The Temperature Bar provides a compact, single-line display of all printer temperatures with interactive controls for setting targets.

Overview ​

The temperature bar shows real-time temperatures and allows you to quickly change setpoints with simple mouse clicks.

🌡 E:210.5°/210°  🛌60.0°/60°  C:45.2°/45°  μC:42.3°  🌀75%(3500rpm)

Display Format ​

The temperature bar shows:

  • 🌡 — Temperature indicator icon
  • E: — Extruder (hotend) temperature: current°/target°
  • 🛌 — Bed temperature: current°/target°
  • C: — Chamber temperature: current°/target° (if equipped)
  • μC: — MCU (controller) temperature (if available)
  • 🌀 — Fan speed percentage and RPM (if available)

Color Coding ​

Temperatures are color-coded based on proximity to target:

Heater Colors ​

  • Green — At target (within 2°C)
  • Yellow — Approaching target (within 5°C)
  • Cyan — Heating/cooling (within 15°C)
  • White — Far from target (>15°C)
  • Dark Gray — No target set (idle)

MCU Temperature Colors ​

  • Green — Cool (<50°C)
  • Yellow — Warm (50-70°C)
  • Red — Hot (70-85°C)
  • Magenta — Very hot (>85°C)

Fan Colors ​

  • Dark Gray — Off (<1%)
  • Cyan — Low speed (1-50%)
  • Green — High speed (>50%)

Interactive Features ​

Click to Set Temperature ​

Click on any temperature setpoint to edit it:

  1. Click on the target temperature (e.g., /210° for extruder)
  2. Type the new target temperature (0-300°C)
  3. Press Enter to apply the change
  4. Press Escape to cancel

The entire temperature section is clickable for easier interaction:

  • Click anywhere in E:210.5°/210° to edit extruder
  • Click anywhere in 🛌60.0°/60° to edit bed

Example:

Click on /210° → Type "250" → Press Enter
Sends: M104 S250

Click to Set Fan Speed ​

Click on any fan speed percentage to edit it:

  1. Click on the fan speed (e.g., 🌀75%)
  2. Type the new speed percentage (0-100)
  3. Press Enter to apply the change
  4. Press Escape to cancel

Example:

Click on 🌀75% → Type "50" → Press Enter
Sends: M106 S127 (for part fan)
or SET_FAN_SPEED FAN=name SPEED=0.50 (for named fans)

The fan speed updates immediately in the UI for responsive feedback, while the command is sent to the printer.

Exclusive Editing ​

Only one temperature or fan speed can be edited at a time. Clicking on a new item automatically cancels any current edit, preventing confusion.

Keyboard Shortcuts ​

When editing a temperature:

  • 0-9 — Enter digits only (no decimals needed for setpoints)
  • Backspace — Delete last digit
  • Enter — Apply the change and send G-code
  • Escape — Cancel editing

When editing a fan speed:

  • 0-9 — Enter digits (0-100 for percentage)
  • Backspace — Delete last digit
  • Enter — Apply the change and send G-code
  • Escape — Cancel editing

Visual Feedback ​

When editing, the value is shown in brackets with yellow highlighting:

🌡 E:210.5°/[250°]  🛌60.0°/60°  🌀[50%]

Temperature Commands ​

The temperature bar uses standard G-code commands:

Extruder ​

gcode
M104 S250    # Set extruder target to 250°C (don't wait)
M109 S250    # Set extruder target to 250°C (wait)
M104 S0      # Turn off extruder

Bed ​

gcode
M140 S60     # Set bed target to 60°C (don't wait)
M190 S60     # Set bed target to 60°C (wait)
M140 S0      # Turn off bed

Check Temperatures ​

gcode
M105         # Report all temperatures

Toggle Visibility ​

Control temperature bar visibility:

  • t key — Toggle Temperature bar on/off (globally across all tabs)
  • Mouse — Click on tabs in the footer to switch views

The temperature bar appears at the top of all tabs when visible:

  • Main Dashboard
  • Console
  • Position Control
  • Jobs
  • Help

Temperature Ranges ​

The temperature bar validates temperatures:

  • Minimum: 0°C (off)
  • Maximum: 300°C (safety limit)

When you enter an invalid temperature, you'll see an error:

Error: Temperature must be between 0 and 300°C

Additional Sensors ​

MCU Temperature ​

Shows the microcontroller and additional temperature sensors (dynamically discovered):

μC:42.3°  HOST:38.5°  Chamber:45.2°

Moonriver automatically discovers and subscribes to:

  • MCU temperature sensors
  • Host (Raspberry Pi) temperature
  • Custom temperature sensors (e.g., temperature_sensor chamber)
  • Temperature fans

This is useful for monitoring:

  • Controller board temperature
  • Ambient temperature inside electronics enclosure
  • Chamber temperature for materials like ABS
  • Detecting cooling issues

Fan Status ​

Shows fan speed and RPM (if tachometer is connected):

🌀Part:75%(3500rpm)  Hotend:100%  Chamber:50%

Multiple fans are automatically discovered and displayed:

  • Part cooling fan (labeled "Part")
  • Hotend fan
  • Controller fan
  • Temperature-controlled fans
  • Custom fans

Each fan's speed is individually clickable for control.

Dynamic Sensor Discovery ​

Moonriver uses Moonraker's printer.objects.list API to automatically discover all available:

  • Temperature sensors (including custom ones)
  • Fans (part cooling, heater fans, controller fans)
  • MCU temperature sensors

No manual configuration needed - if it's in your printer.cfg, it will appear in Moonriver!

Real-Time Updates ​

The temperature bar updates automatically via WebSocket:

  • Live temperatures — Updates every 0.5-1 second
  • Target changes — Reflects immediately after setting
  • Power levels — Shows heater power percentage
  • Fan changes — Updates when fan speed changes

PID Tuning ​

Monitor temperature stability during PID tuning:

gcode
PID_CALIBRATE HEATER=extruder TARGET=250

Watch the temperature display:

  • Oscillations become smaller over time
  • Final settling shows good PID values
  • Color changes from cyan → yellow → green indicate approaching target

Preheat Profiles ​

Common temperature presets:

PLA ​

Extruder: 210°C
Bed: 60°C

PETG ​

Extruder: 240°C
Bed: 80°C

ABS ​

Extruder: 250°C
Bed: 100°C
Chamber: 50°C (if equipped)

Integration with Console ​

Temperature changes also appear in the console:

Command: M104 S250
Info: Extruder target set to 250°C

This provides a full history of temperature changes during your session.

Best Practices ​

Heating Sequence ​

  1. Heat bed first — Prevents warping during heat-up
  2. Then heat extruder — Avoid filament cooking in idle nozzle
  3. Wait for both — Use M190 and M109 in print start macros

Safety ​

  • Never exceed 300°C — Moonriver enforces this limit
  • Turn off when done — Set targets to 0°C
  • Monitor during heating — Watch for thermal runaway

Efficiency ​

  • Preheat while preparing — Save time by heating early
  • Batch prints — Keep temperatures stable between jobs
  • Cool down naturally — Don't force cooling with fans

Troubleshooting ​

Temperature Not Updating ​

  • Check Moonraker connection (header shows "Connected")
  • Verify heaters are configured in printer.cfg
  • Look for error messages in console

Can't Set Temperature ​

  • Ensure printer is not in error state
  • Check that axes are homed (required by some firmwares)
  • Verify heater is defined and working

Temperature Fluctuating ​

  • May need PID tuning
  • Check for drafts or cooling issues
  • Verify thermistor connection

Wrong Temperature Shown ​

  • Thermistor may be loose or damaged
  • Check wiring to heated bed/hotend
  • Verify thermistor type in printer.cfg

Advanced Usage ​

Temperature Curves ​

Monitor heating curves in the console by periodically checking M105:

> M105
T:45.2 /210.0 B:23.5 /60.0
> M105
T:78.3 /210.0 B:31.2 /60.0
> M105
T:124.5 /210.0 B:45.8 /60.0

Multi-Extruder Support ​

For printers with multiple extruders:

🌡 E0:210.5°/210°  E1:210.2°/210°  🛌60.0°/60°

Each extruder is clickable individually.

Temperature Wait Commands ​

Use in print start macros:

gcode
M190 S60     # Wait for bed to reach 60°C
M109 S210    # Wait for extruder to reach 210°C

The temperature bar shows progress as temperatures approach targets.

Next Steps ​

Released under the MIT License.