Web Performance Calendar

The speed geek's favorite time of year
2021 Edition
ABOUT THE AUTHOR
Peter Hedenskog photo

Peter Hedenskog (@soulislove) works in the performance team at the Wikimedia Foundation. Peter is one of the creators of the Open Source sitespeed.io web performance tools.

Five years ago I was trying to help Sam Smith to get his PiNC project to work. I wasn’t able to help him and the project didn’t work 100%. But I really liked his idea:

A network connection conditioner for a handful of low-end devices in my home office

It would be great to have a simple way to test different network speeds at home. Years ago I made Throttle that is command-line interface for throttling network connections on your desktop computer for Mac and Linux. But I want to be able to do the same for my phones and tablets.

That’s why I’m super happy to introduce Humble, the Raspberry Pi WiFi network link conditioner! It creates a new WiFi network that you use for your device. You then access a web page where you set the network speed (3G/4G etc) for your WiFi.

Humble uses Throttle and Throttle frontend and a configured Raspberry Pi 4. And it’s all Open Source and you can use it for free.

What do you need?

To setup your own instance of Humble you will need:

  1. A Raspberry Pi 4 with a wired connection to your router.
  2. A SD card (at least 8 GB)
  3. A computer with Raspberry Pi Imager (that you can download from https://www.raspberrypi.com/software/).

Yes that is all!

Your setup will look like this:
Humble setup

And you switch connection speed on the WiFi using a web page on the Raspberry Pi:
Humble frontend

Install using the pre made Raspberry Pi image

The easiest way to get Humble up and running is to use the pre-made Raspberry Pi image.

  1. Download the pre-made image from releases.
  2. Burn the image on a SD card using Raspberry Pi Imager.
  3. Insert the SD card into the Raspberry Pi 4.
  4. Connect your Raspberry Pi with your router through a Ethernet cable and turn on your Raspberry Pi.
  5. Join your new configurable humble WiFi network on desktop/tablet/mobile phone with the password goslowtogoFAST.
  6. Access your Raspberry Pi through HTTP and chose the WiFi speed. On Mac access http://raspberrypi.local:3001 from your web browser. On other OS you can use nmap to find your Raspberry IP address. Access that IP using port 3001 in your browser.
  7. Choose the WiFi speed.

When you verified that everything works you want to change the SSH password and the WiFi password to make it more secure.

Setup everything yourself

If you do not want to use the pre-made image, you can setup the Raspberry Pi yourself. I’ve written down detailed instructions in the README for the Humble project.

Summary

What I really like about this approach is that you as an organization or company can help project managers/testers/everyone to setup humble at home so they can get a feeling for how your web page work with slow internet speeds.

If you have questions or feedback please create an issue at GitHub.