Project tutorial
Wireless Bagpipe

Wireless Bagpipe © CC BY

Convert a 3D-printed bagpipe chanter into a BLE MIDI instrument.

  • 9 respects

Components and supplies

OpenPipe Breakout
Cutout cortado grande
Punch Through LightBlue Bean
Or a LightBlue Bean+ or one of the other parts listed below. A sketch for each of these boards is included.
Adafruit Feather nRF52
OPTION: Can be used instead of LightBlue Bean.
13990 01
SparkFun nRF52832 Breakout
OPTION: Can be used instead of LightBlue Bean.
Ardgen 101
Arduino 101 & Genuino 101
OPTION: Can be used instead of LightBlue Bean.

Apps and online services

About this project

The OpenPipe Breakout from is a 3D-printed bagpipe chanter with capacitive finger sensors. This project joins the OpenPipe Breakout with the BLE MIDI capable LightBlue Bean to create wireless bagpipes.

Assembly is Trivial

Begin by connecting the wires from the pipe cable to pins A0, A1, D0 and D1 on the LightBlue Bean. In the image above, the wires are connected to an 8-pin female header soldered to the bean.

  • RED => D0 (VCC)
  • BLACK => D1 (GND)
  • WHITE => A0 (SDA)
  • GREEN => A1 (SCL)

The four short wires shown below serve to connect the wires from the pipe cable to their destination on the bean. The half braid swaps the left pair of wires with the right pair.

Remaining Steps

The remaining steps are to upload the sketch, establish a BLE MIDI connection to the pipe from your favorite music app, and then start playing!

To upload the sketch you'll need the standalone Arduino IDE and Punch Through Design's CLI Loader. These tools are used instead of the more convenient web-based ones because there is currently no way to import OpenPipe's custom library into Punch Through Design's compiler in the cloud.

For playing the pipe I recommend using ThumbJam or Universal Piper on an iOS device. ThumbJam supports BLE MIDI connections. For apps such as Universal Piper that do not, the midimittr app can act as the intermediary.

Connecting to other boards

To use the OpenPipe Breakout with a different board, follow the connection guide for your board below and upload the matching sketch.

Adafruit Feather nRF52

  • RED => 27 (VCC)
  • BLACK => 30 (GND)
  • WHITE => 25 (SDA)
  • GREEN => 26 (SCL)

NOTE: The Adafruit Feather nRF52 needs external pull-up resistors (4k7) on SDA and SCL, as shown in the photo below.

Arduino 101

  • RED => A2 (VCC)
  • BLACK => A3 (GND)
  • WHITE => A4 (SDA)
  • GREEN => A5 (SCL)

LightBlue Bean+

On the LightBlue Bean+ you can use pins A2 through A5, same as Arduino 101 above.

Another option shown below is to use the I2C Grove connector. This provides a sturdy, low profile connection that frees up pins A2 and A3 for some other use.

The left two pins of the I2C Grove connector are GND and VCC, and the right two pins are A4 and A5. Since the connector already provides power, the line of code that configures power and ground on A2 and A3 can be commented out:

//OpenPipe.power(A2, A3);

SparkFun nRF52 Breakout

  • RED => 22 (VCC)
  • BLACK => 23 (GND)
  • WHITE => 24 (SDA)
  • GREEN => 25 (SCL)

NOTE: The SDA and SCL assignments must be redefined in the SparkFun variants.h file. For more details see this hookup guide discussion.


Upload to the LightBlue Bean or Bean+
OPTION: Use with an nRF52-based board from Adafruit or SparkFun
OPTION: Use this sketch with an Arduino 101


Connecting OpenPipe cable to LightBlue Bean
Connecting OpenPipe to Adafruit Feather nRF52


Similar projects you might like

USB-BLE Wireless MIDI Adapters

Project tutorial by Joe Bowbeer

  • 3 respects

Programmable Wireless Room Thermostat (Bluetooth Accessible)

Project tutorial by Tamer Savaşcı

  • 8 respects

Gesture Based Wireless Gaming Console

Project tutorial by Team Xolcano Technologies

  • 1 respect

Arduino101 / tinyTILE BLE: Match-Making Sunglasses

Project tutorial by Kitty Yeung

  • 35 respects

Variations on a Theme

Project tutorial by Gregory O. Voronin and Phil V

  • 10 respects
Add projectSign up / Login