Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions hardware/raspberrypi/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Raspberry Pi Hardware
# Raspberry Pi hardware

The hardware in the Raspberry Pi

Expand All @@ -12,7 +12,7 @@ The hardware in the Raspberry Pi
- The Broadcom processor used in Raspberry Pi 3 (and later Raspberry Pi 2)
- [Bootmodes](bootmodes/README.md)
- A description of the BCM2835/6/7 bootmodes available
- [Mechanical Drawings](mechanical/README.md)
- [Mechanical drawings](mechanical/README.md)
- Mechanical drawings of the Raspberry Pi
- [Power](power/README.md)
- Powering the Raspberry Pi
Expand All @@ -24,9 +24,11 @@ The hardware in the Raspberry Pi
- SPI on the Raspberry Pi
- [DPI (Parallel/RGB Display)](dpi/README.md)
- DPI on the Raspberry Pi
- [Peripheral Addresses](peripheral_addresses.md)
- [Peripheral addresses](peripheral_addresses.md)
- How to access peripheral addresses using the bcm_host helpers
- [Standard Conformity Documentation](conformity.md)
- [Standard conformity documentation](conformity.md)
- Conformance documentation for the various standards bodies
- [Revision codes](revision-codes/README.md)
- Raspberry Pi revision code reference
- [Processor frequency and thermal management](frequency-management.md)
- Information on how the Raspberry Pi manages CPU frequencies and heat dissipation
17 changes: 17 additions & 0 deletions hardware/raspberrypi/frequency-management.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
## Frequency management and thermal control

All Raspberry Pi models perform a degree of thermal management to avoid overheating under heavy load. The SoCs have an internal temperature sensor, which software on the GPU polls to ensure that temperatures do not exceed a predefined limit; this is 85°C on all models. It is possible to set this to a lower value, but not to a higher one. As the device approaches the limit, various frequencies and sometimes voltages used on the chip (ARM, GPU) are reduced. This reduces the amount of heat generated, keeping the temperature under control.

With firmware from 12 September 2016 or later, when the core temperature is between 80°C and 85°C, a warning icon showing a red half-filled thermometer will be displayed, and the ARM cores will be progressively throttled back. If the temperature reaches 85°C, an icon showing a fully-filled thermometer will be displayed, and both the ARM cores and the GPU will be throttled back. See the page on [warning icons](../../configuration/warning-icons.md) for images of the icons.

For Raspberry Pi 3 Model B+, the PCB technology has been changed to provide better heat dissipation and increased thermal mass. In addition, a soft temperature limit has been introduced, with the goal of maximising the time for which a device can "sprint" before reaching the hard limit at 85'C. When the soft limit is reached, the clock speed is reduced from 1.4GHz to 1.2GHz, and the operating voltage is reduced slightly. This reduces the rate of temperature increase: we trade a short period at 1.4GHz for a longer period at 1.2GHz. By default, the soft limit is 60°C, and this can be changed via the `temp_soft_limit` setting in [config.txt](../../configuration/config-txt/overclocking.md).

### Heatsinks

Whilst heatsinks are not necessary to prevent overheating damage to the SoC (the thermal throttling mechanism handles that), a heatsink or small fan will help if you wish to reduce the amount of thermal throttling that takes place. Depending on the exact circumstances, mounting the Pi vertically can also help with heat dissipation, as doing so can improve air flow.

### Measuring temperature

Due to the architecture of the SoCs used on the Raspberry Pi range, and the use of the upstream temperature monitoring code in the Raspbian distribtution, Linux-based temperature measurements can be inaccurate. There is a `gencmd` that can provide an accurate and instantaneous reading of the current SoC temperature, as it communicates with the GPU directly:

```vcgencmd measure_temp```