Keep your Red Pitaya cool

Red Pitaya is small measurement instrument built around Xilinx' Zynq SoC integrating a dual-core Cortex-A9 CPU, peripheral devices and FPGA fabric. The chip drives two 14-bit DA converters and two 14-bit AD converters at 125MSps. Switching transistors in CMOS circuits at such speed requires quite a lot of power, which is dissipated in a form of heat. The board gets hot. Even though the SoC and the converters are cooled by a heat spreader, after several minutes the input connectors and the heat sink become too hot to touch.

Since the convective cooling is not  sufficient, I decided to improve the airflow by installing a small fan. None of the popular PC fans from my junk box was small enough to fit on the board, I needed a smaller blower. The heat sink is a 28.5mm by 28.5mm, so either 30mm or 25mm fan should work. There is a power connector on the board for a fan, but it provides only 5 volts, so 12V fans will not work well. Having the requirements set, I started to shop for a suitable device.

The best place to look for such parts is Ebay. There are many Asian sellers who have them, but I didn't want to wait several weeks for delivery, so I decided to buy form a seller in California. 4 days later I found in the mailbox an envelope with two of such beauties:

The fans came with a 0.05" plug, so I had to cut it off and crimp a standard 2-pin 0.1" connector. The on-board power connector for the fan is located between the micro-SD socket and the host USB connector. Polarity is marked on the silk screen. Black wire should be connected to negative terminal, red to positive. Twisting the wires helps to keep them tidy.

The junk box produced a pair of self-tapping screws, which fit perfectly the gaps between the fins of the heat spreader.

The fan is almost inaudible and didn't seem to move a lot of air, however the measurements showed that it was very effective. To get the measurements over a broad range of operating conditions I designed the following experiment:
  1. Board cooled down to room temperature is powered on with fan removed.
  2. After the temperature stabilizes, Spectrum Analyzer application is started.
  3. When the die temperature reaches steady state, fan is installed and powered on.
  4. For the final measurement the application is switched off and the board is allowed to cool down.
The die temperature was measured using monitor -ams command executed every 5 seconds.  With CPU load data and current date and time the results are saved to a file, for analysis.

The plot below shows the results. The red line shows the die temperature, blue - CPU load during the experiment. Strong, thick lines show data smoothed using FIR filter. Raw measurements are shown below them, using faint colors. The oscillations visible prior to sudden changes in value are artifacts produced by the filter.

With convection cooling the idle board reaches almost 68°C. Running the application causes the temperature to rise by 4.5°C. After installation of the fan the temperature drops by over 20°C. The difference between loaded and idle system is almost negligible - only about 1 degree. This shows that despite being small and quiet, the cooling fan works extremely well.

While effective, my solution is not perfect. The most obvious problem is that the fan will interfere with expansion boards. I can see two solutions for this issue:
  • Use raised headers for the expansion boards,
  • Install the fan on a side and channel the airflow to the heatsink. 
Since installation of expansion board would restrict the airflow, moving the fan to a different spot looks like the most convenient solution. Since the channel will not be airtight, the amount of air pushed through the heat sink will decrease and I will need to find a better fan, but that's a good subject for future experiments and another blog post.

Updated on 2014-04-02: corrected number of ADC bits.


  1. Pretty cool idea (please dont hit me, I couldnt resist).

    Did you observe any influence of the running fan on measurement results, considering that the one thing the Red Pitaya sorely lacks is any kind of shielding ?

    PS the ADCs are also 14bit.

    1. Thanks for noticing the mistake with number of bits. I must have been looking at the resolution of the slow ADCs in the SOC.

      I haven't seen any difference in the spectrum viewed in the Spectrum Analyzer application, haven't seen significant change in the level of noise on the scope, however I haven't done any quantitative analysis. I actually hoped to see lower level of noise as the temperature dropped, since this is my biggest complain about Red Pitaya, but nothing like that happened.

      The fan draws only 80mA and is separated form the analog front end by the massive chunk of metal, so it shouldn't be a major source of EM noise.

  2. I am looking for the red pitaya heat sink material ... can anybody help me?