November 12, 2013


I have been practising various Martial Arts styles for over 15 years and have always been curious about one particularly primitive part of my pugilist pastime: how hard I can punch? More than that I want to know "pound for pound' is it all about size or does the skill factor come into it? Put simply can a small guy with skill hit as hard or harder than an unskilled big guy?

This brought me to consider developing PunchBot a machine for accurately measure the power of a human punch.

I also thought this might be an interesting way to raise money for my favourite charity "Movember". After this build is complete I intend to start an online leader board and use it generate some charitable funds from a bit of health competitions between martial artists and their clubs.


First I looked into using an accelerometer to measure force but soon discovered that they have a notable downside. A quick Google search showed me that humans can generate impressive forces from a punch. I initially considered the development of an accelerometer model with high G's of 120+. I soon realised that the higher the G rating the less sensitive and more "noisy" the accelerometer signal became.

I considered that a G force measurement is relative to the weight of the object being struck, so by making a punching bag heavier it reduced the accelerometer range requirements and increased sensitivity. So a punching bag could be made heavier BUT it raised the risk probability of breaking bones in the hand.

Therefore I ruled accelerometers out.

In my research I noticed there are many existing force testing pads, bags and gloves but most seem to use a scoring system, they use a number scale that is relative only to that device. As a point of differentiation (and personal principal) I wanted to create a device that has a close to scientific validity as I can get with affordably priced electronics.

My first two requirements we established: the safety of a light punching weight and repeatable accuracy.


I finally decided to design a device that worked by measuring rotational force or Torque. In the top-most picture can be seen the thin black tube, which is a swing arm. The axis of the swing arm is connected to an optical rotary encoder, a device that can accurately measure angles on a shaft. 

The theory being that by knowing the Moment of Inertia (mass) of the swing arm, I can calculate its acceleration with the encoder and derive a power figure (Torque).

My future fund raising plans required some portability but with a heavy base for stability. Also the punching pad height had to be adjustable so it could be set to individuals shoulder heights.

I sketched out every aspect of this design in my notebook in the 90 minute journey to and from work. When I was happy with a design components sketch I added it to my Solidworks model.


The base is made out of 89mm square mild steel tube welded to 3mm plate feet. In the pictures you can see the vertical slit on the base that is used with a bicycle quick release to hold the neck very firmly in position.

All the aluminum is from The neck is aluminium not steel so that it is easy to lift when adjusting the height.

With no access to a CNC I cut out everything out by hand using drill press, hack saw, files and taps. (I actually enjoy doing it by had but I wanted the CNC's accuracy.)

The neck was particularly tricky: to get some accuracy I printed out 2D plans of the neck in 1-to-1 scale and sticky taped then to the faces of the blank neck metal. By doing that I could measure and check that each sides holes were aligned before I centre punched.

Roller bearings and bolts are from (fantastic product range, great service but their website needs some updating)

The white mounts for the rotary encoder were 3D printed at

The 12mm axis shaft is from a defunct laser printer.


In one picture you can see a blue shape with three spring contacts in wooden blocks. When the inter spring contact separates it tells the Arduino when to start logging data from the encoder.

The two outer springs are used to run power to a super-bright LED that sits atop the swing arm and is used for reaction-time measurements. I use spring contacts to power the LED because using wires would make the Moment Of Inertia calculations much harder or less accurate.

I will use my SolidWorks model and super accurate scales to determine the Moment of Inertia figure of the swing arm.

The calculations are handled by an Arduino Uno which outputs the result to an LCD display. In future models I intend to upgrade to an Arduino Mega as the Uno can only count to the nearest 4 micro-seconds. This doesn't seem like much but the acceleration of an average punch lasts less than a few milliseconds, so processor speed is quite critical to accuracy.

Its painted only in primer and the pad doesn't yet have padding but after 11 months I have finally completed the prototype. I will now begin testing and writing the mathematical formulas. More on that in the Part 2.