Party Button: Button Box

The button box is the most visible part of the party button system. Sometimes I would leave it on a counter top or side table as a conversation piece, but it can be easily hidden away if needed. The mobility of the button box is great as it can be passed around to party goers. When we first started dating I had my girlfriend (now wife!) press the button to start a New Year's Eve party. Needless to say, she was impressed! (But no warranty or guarantee expressed or implied that the Party Button results in matrimony.)

This post is the second in a four part series:

  1. Party Button: Overview
  2. Party Button: Button Box
  3. Party Button: PC setup
  4. Party Button: Peripherals

The party button box is fairly simple. Technically, all the button box does is transmit a start and stop pattern. The party button box consists of the casing, a PIC microcontroller, an industrial button, a battery, and a ZigBee wireless transceiver.

Parts List

Mechanical On/Off Switch

Red Industrial Button

Plastic Box


I used a breadboard for this project, but using a CCA spin could have make it more durable. I chose not to because the breadboard never had an issue with the wires coming loose and a CCA spin would nearly double the total cost of the button box.


Originally I had selected a classy metal box. However, a metal box acts as a Farraday cage and effectively blocks the wireless signal. The plastic box that I settled on wasn't the best looking, but it got the job done. I had to drill two holes, one for the industrial button and the other for the power switch.


One of the versatile things about this setup is that the XBee wireless module can be repurposed to control any ZigBee products you have at home like Philips Hue lights.  You just have to know and use the the right commands.


The PIC Microcontroller has a really basic routine that polls for a button press and then issues a byte command. The Button Box code is fairly monosyllabic as the same command is transmitted every time. The PC software will determine if the command is suppose to be an "on" or "off" command, and the party begins!