Update on handbell controllers

This is an updated article on how to make handbell controllers for use with Handbell Stadium or Handbell Manager. I now have more experience with using several different components, and I have been trying to make the software easier to use and install.

You might want to refer to the previous article for general information and pictures, but here I will try to reduce the instructions to their essentials.

The electronics (if you want to avoid soldering)

Components (for each controller)

  • An Arduino Leonardo (with headers), for example from RS for £18.36.
  • An accelerometer board with a Grove socket, for example this one from Cool Components for £3.99.
  • A cable with a Grove plug on one end and pins to connect to the Leonardo headers, for example this one from Cool Components for £2.83. You get 5 of these in a pack, so with one order you get enough for two handbell controllers, two more for a friend, and one spare.
  • A cable with a male USB micro plug at one end and a USB or USB-C plug, according to your computer's sockets, at the other end. It's worth getting a 2m cable so that you can sit comfortably back from your computer. I have been buying from a supplier on eBay - if you buy two, you get one free.


  • Plug the cable (with red, black, white and yellow wires) into the socket on the accelerometer board.
  • Plug the cable's pins into the header sockets on the Leonardo board: red to 3.3V, black to GND, white to SDA, yellow to SCL.
  • Plug the USB cable into the socket on the Leonardo board.

The electronics (if you don't mind soldering)

Components (for each controller)

  • An Arduino Leonardo Pro Micro
  • An accelerometer board, for example an Adafruit ADXL343 or a GY-521 based on an MPU6050. Make sure that the accelerometer board will take a 5V power supply, because the Pro Micro only has a 5V power output. The advantage of the MPU6050 is that it has a gyroscope as well as an accelerometer, which enables the use of more sophisticated software.
  • Wire for connection between the boards.
  • USB cable as above.


  • Usually the Leonardo Pro Micro and the accelerometer boards come with a row of header pins that you can solder in if you want to, but it's not necessary and I find that the end result is neater by soldering wires directly into the holes on the boards.
  • Connect the accelerometer to the Pro Micro as follows: VCC to VCC, GND to GND, SDA to pin 2, SCL to pin 3.
  • Plug in the USB cable.

The software

  • Install the Arduino IDE on your computer.
  • Download my UniversalHandbellController.zip. Unzip it and save the UniversalHandbellController folder somewhere.
  • Open the file UniversalHandbellController.ino. This should launch the Arduino IDE.
  • In ArduinoIDE, use Sketch -> Include Library -> Add .ZIP Library and choose the Joystick folder within the UniversalHandbellController folder. This is correct even though it's not a .ZIP file.
  • In ArduinoIDE, use Tools -> Manage Libraries and type LIS3DH into the search box (top right). When you see Adafruit LIS3DH, click on the Install button. You need to do this even if your accelerometer is not a LIS3DH.
  • Plug your Leonardo into a USB socket on your computer.
  • In ArduinoIDE, use Tools ->  Board to select Leonardo, and use Tools -> Port to select something that shows Arduino Leonardo.
  • In ArduinoIDE, press the Upload button (a right-pointing arrow, in the top-left corner of the window). You should see messages saying that the sketch (program) is being compiled and uploaded.
  • If your accelerometer is an ADXL343, an ADXL345, a LIS3DH or an MPU6050 then the UniversalHandbellController software will detect it and set up your controller. If you are using a different accelerometer then you will have to either adapt the program or contact me for help. It's only universal among the accelerometers that I have tested so far.
  • You can now start Handbell Manager or Handbell Stadium and try out your controller.
  • You might need to set the strike points. Go into the Options window (in Handbell Stadium) and look at the Input tab. First, work out which way the boards should be oriented. The UniversalHandbellController software is designed to work with the boards in a vertical plane. The electronics might be facing right or left. When holding the boards in the position corresponding to the handbell being down at backstroke, you want to see a large negative value as the input. If it is positive, turn the boards to face the other way. Set the backstroke strike to be a negative value that is not quite as large. When holding the boards in the position corresponding to the handbell pointing vertically upwards, you want to see a small positive value. Set the handstroke strike to be something close to this value. I find that the controllers work well with with a handstroke strike of 100 and a backstroke strike of -600 (with the ADXL343/345  accelerometer) or -1800 (with the MPU6050 or LIS3DH).
  • I use a Mac and for me, the controllers work easily with Handbell Stadium. On Windows we are having problems with some systems and it can take some adjustment of the software. Contact me if you need advice.

The dummy handbells

You need to fix the boards onto something that you can hold and swing like a handbell. If you are using a big Leonardo and an accelerometer with a Grove socket, then there are screw holes. With the Pro Micro and the non-socketed accelerometers, I use sticky-backed velcro (you can get it from Tesco).

Some ideas for making dummy handbells, in increasing order of sophistication:

  • A table tennis bat.
  • A wooden cut-out handbell shape.
  • A 3D-printed handbell.

Alternatively you can use a real handbell if you tie or remove the clapper.