3D-Printed case for BPI-R4: wind tunnel cooling, USB serial, wall-mounting option

The extra pin of each fan is a tachometer output. You can leave those disconnected or connect them to the unused GPIO pins for RPM monitoring (check out this tool). For my build I just cut off the fan connectors, soldered on extension wires and crimped female Dupont connectors onto the ends. I also reused the sleeve that came from the factory and secured it with heat-shrink to make the harness look tidier.

wiring

1 Like

I appreciate your answer. I was able to make it work perfectly. I have a few more questions:

  • Use this script for OpenWrt which reads all temperature sensors in hwmon and adjusts the fan speed according to the highest reading; you can dial in your own temp thresholds there
  • Put the script into /opt (or any persistent directory) with the following command (if using Linux or macOS): scp -O /…/fan_pwm.sh [email protected]:/opt/
  • Make it executable: chmod +x fan_pwm.sh
  • Make it run at startup: sed -i ā€˜/^exit/i /opt/fan_pwm.sh &\n’ /etc/rc.local

For a common mortal that is approaching this from a 0-knowledge perspective, how do I do this exactly? I was capable of making the script run from ssh, but I don’t know how to save that and make it run on startup.

  • Rather than making the grounding strips by hand, order them to be laser-cut instead—it’s likely to cost less than your time spent measuring, drilling and cutting

Are there any CONS in not using the grounding strip? I installed everything without it, and it’s working decent.

Oh, BTW, just for laughing a bit, instead of soldering the EMI shielding, I used superglue :sweat_smile: :rofl:

Regardless, before I was somewhere at 78/79 noise, now I sit at around 85. It’s still progress!

For a common mortal that is approaching this from a 0-knowledge perspective, how do I do this exactly? I was capable of making the script run from ssh, but I don’t know how to save that and make it run on startup.

If you’re creating the script on the system rather than transferring over:

  1. Install a text editor with apk add nano or ipkg install nano depending on your OpenWrt release, if not already installed
  2. Run nano /opt/fan_pwm.sh
  3. Copy/paste the script code into the editor; make changes to the temperature threshold values if desired
  4. Press Ctrl+X, then Y to save
  5. Run chmod +x /opt/fan_pwm.sh to make the script executable
  6. Run sed -i ā€˜/^exit/i /opt/fan_pwm.sh &\n’ /etc/rc.local to make it run on startup
  7. Verify by running cat /etc/rc.local; you should see the line /opt/fan_pwm.sh &
  8. Run /opt/fan_pwm.sh & to launch the script without rebooting; you should hear the fans slow down
  9. For further tweaking of the temperature thresholds, go back to steps 2 and 4
  10. Install the luci-app-statistics and lm-sensors packages to track the temperature

Are there any CONS in not using the grounding strip? I installed everything without it, and it’s working decent.

In my experience, the improvement from the grounding strips and EMI shielding together was marginal, but that could change depending on how congested your Wi-Fi environment is. I also hope the BE19 will be inherently less susceptible to noise to benefit from extra grounding.

Changes in v1.1

  • Added back plates for the 2.5GbE version. Can’t test for fit, as I don’t have a 2.5GbE version to verify dimensions. Adjust the STEP file if necessary. There’s also not enough room to use the PoE module and TTL to USB adapter in the same device and I gave up on finding alternative placement for the adapter.
  • Corrected an error which made one of the baked-in support fins on the back plate disconnect from the model after slicing.
  • Revised and expanded documentation.
1 Like