# How webMAN MOD Performs Temperature Monitoring Using the /cpursx.ps3 Web Interface

> Discover how webMAN MOD monitors PS3 CPU and RSX temperatures via the /cpursx.ps3 web interface. Access real-time thermal data directly from your console using this efficient tool.

- Repository: [Aldo Vargas/webman-mod](https://github.com/aldostools/webman-mod)
- Tags: how-to-guide
- Published: 2026-02-24

---

**webMAN MOD reads CPU and RSX temperatures through the `/cpursx.ps3` HTTP endpoint by calling the `get_cpursx()` function, which queries the PS3's thermal sensors directly and returns formatted HTML without requiring external services.**

The open-source project **aldostools/webman-mod** provides PlayStation 3 users with a lightweight web interface for system management. One of its core features is real-time **webMAN MOD temperature monitoring**, exposed through the dedicated `/cpursx.ps3` endpoint that reports CPU and RSX thermal data directly from the hardware sensors.

## Reading Hardware Sensors

### The get_cpursx Function in cpursx.h

The foundation of temperature monitoring resides in [`include/cpursx.h`](https://github.com/aldostools/webman-mod/blob/main/include/cpursx.h). The `get_cpursx(char *cpursx)` function queries the PS3's thermal subsystem using low-level system calls implemented at lines 25-33.

It invokes `get_temperature(0, &t1)` to retrieve the CPU temperature and `get_temperature(1, &t2)` for the RSX (GPU) temperature, then formats the output as a printable string:

```c
static void get_cpursx(char *cpursx)
{
    u8 t1 = 0, t2 = 0;
    get_temperature(0, &t1);          // CPU temperature
    get_temperature(1, &t2);          // RSX temperature
    sprintf(cpursx, "CPU: %i°C | RSX: %i°C", t1, t2);
}

```

This implementation performs direct hardware register access without kernel extensions or background daemons.

## Serving Data via HTTP

### The cpursx_tempc Handler

When a browser or client requests `/cpursx.ps3` or `/cpursx_ps3`, the handler defined in [`include/cmd/cpursx_tempc.h`](https://github.com/aldostools/webman-mod/blob/main/include/cmd/cpursx_tempc.h) executes. This function calls `get_cpursx()`, embeds the temperature string into an HTML response, and transmits it with a `200 OK` status header at lines 5-22.

The handler also injects JavaScript to update the parent document's temperature label dynamically:

```c
static void cpursx_tempc()
{
    char *cpursx = header, *buffer = param;
    get_cpursx(cpursx);
    _concat2(&sbuffer,
        HTML_REFRESH, "/cpursx_ps3",
        "<script>parent.document.getElementById('lbl_cpursx').innerHTML = \"%s\";</script>",
        cpursx);
    // send HTTP 200 with the generated HTML
}

```

This creates the complete request-response cycle for **webMAN MOD temperature monitoring**.

## Web Interface Integration

### UI Generation with cpu_rsx_stats

The main status page embeds this endpoint through markup generated by `cpu_rsx_stats()` in [`include/cpursx.h`](https://github.com/aldostools/webman-mod/blob/main/include/cpursx.h) (lines 607-618). This creates clickable temperature displays linking back to `/cpursx.ps3` with optional Fahrenheit conversions:

```c
sprintf(html,
    "<hr><font size=\"42px\">"
    "<b><a class=\"s\" href=\"/cpursx.ps3?up\">"
    "CPU: %i°C %s<br>"
    "RSX: %i°C</a><hr>"
    "<a class=\"s\" href=\"/cpursx.ps3?dn\">"
    "CPU: %i°F %s<br>"
    "RSX: %i°F</a><hr>",
    t1, max_temp1, t2, t1f, max_temp2, t2f);
concat(buffer, html);

```

### Page Embedding via www_page.h

Additionally, [`include/www/www_page.h`](https://github.com/aldostools/webman-mod/blob/main/include/www/www_page.h) (lines 16-19) injects the endpoint via `iframe` elements for persistent dashboard visibility across the web interface.

## Dynamic Fan Control

The `/cpursx.ps3` endpoint accepts query strings for real-time thermal management. Appending `?up` increases fan speed, `?dn` decreases it, `?mode` toggles control policies, and `?fan=` sets specific percentage values.

The `cpu_rsx_stats()` function parses these parameters in [`include/cpursx.h`](https://github.com/aldostools/webman-mod/blob/main/include/cpursx.h) and adjusts the hardware thermal policy before refreshing the temperature display. This allows users to manage cooling directly from the temperature readout page without accessing separate configuration menus.

## Summary

- webMAN MOD queries hardware sensors directly using `get_temperature()` syscalls in [`include/cpursx.h`](https://github.com/aldostools/webman-mod/blob/main/include/cpursx.h)
- The `/cpursx.ps3` endpoint serves formatted temperature data via the HTTP handler in [`include/cmd/cpursx_tempc.h`](https://github.com/aldostools/webman-mod/blob/main/include/cmd/cpursx_tempc.h)
- UI integration occurs through `cpu_rsx_stats()` in the main interface and `iframe` embeddings in [`include/www/www_page.h`](https://github.com/aldostools/webman-mod/blob/main/include/www/www_page.h)
- Query parameters enable on-the-fly fan speed adjustments without external tools

## Frequently Asked Questions

### What hardware sensors does /cpursx.ps3 monitor?

The endpoint monitors the Cell Broadband Engine (CPU) and RSX Reality Synthesizer (GPU) temperatures. The system queries these using `get_temperature(0, ...)` for the CPU and `get_temperature(1, ...)` for the RSX, as implemented in the `get_cpursx()` function at lines 25-33 of [`include/cpursx.h`](https://github.com/aldostools/webman-mod/blob/main/include/cpursx.h).

### Can I adjust fan speed through the /cpursx.ps3 interface?

Yes. The endpoint accepts query parameters including `?up` to increase speed, `?dn` to decrease, `?mode` to toggle between automatic and manual policies, and `?fan=` followed by a numeric value to set specific speeds. The `cpu_rsx_stats()` function processes these commands immediately.

### Where is the temperature data formatted in the source code?

The `get_cpursx()` function in [`include/cpursx.h`](https://github.com/aldostools/webman-mod/blob/main/include/cpursx.h) (lines 25-33) formats the raw unsigned integer sensor values into the human-readable "CPU: X°C | RSX: Y°C" string displayed in browsers.

### Does webMAN MOD require external services for temperature monitoring?

No. The implementation is entirely self-contained in C, reading hardware registers directly through system calls and serving HTTP responses without external dependencies, background services, or network APIs.