Report by evrim, 14 February,2007

Edited by Merche Blasco, 1 March 2012

The Hitachi H48C Tri-Axis Accelerometer is an integrated module that can sense gravitational (g) force of 3g on three axes (X, Y, and Z). It is made by Hitachi Metals and available through They sell if for $39.95

Currently the sensor is no longer available for single purchase in Parallax, but it is included in the Sensor Sampler kit:


  • Tilt measurement in robotics applications
  • Multi-axis vibration measurement in transit and shipping systems
  • Multi-axis movement/lack-of-movement for alarm systems

The datasheet for H48C is found here and the documentation for the Parallax module is here .


  • Measures 3g on three axes simultaneously.
  • For most app.s doesn't need calibration due to "compensation IC".
  • Supply Voltage of +4.5V to 5.5V
  • detects static tilt as well as movement.
  • Small and breadboard friendly(YAY!): 0.7" x 0.8"
  • Built -in temperature sensor. Module operation range -25 to 75 d. Celcius
  • "Free Fall Detection" : Sends the pulse simultaneous 0g on all axes.
  • Has standby mode

The table for the pin description is pretty straight forward.

(1) CLK Synchronous clock input
(2) DIO Bi-directional data to/from host
(3) Vss ground
(4) Zero-G "Free-fall" output; active-high
(5) CS\ Chip select input; active-low
(6) Vdd +5V

How it Works

H48C provides voltage output to the built in ADC on the module. With Pics this data can be read with SHIFTOUT or in Arduino with PulseIn command. To convert that voltage value to gravitational force we can use following formula.

G=((axis-vRef)/4095)x 3.3/ 0.3663)

Here 4095 is the maximum output count from ADC channel. 3.3 is the H48C supply voltage, and 0.3663 is the H48C output voltage for 1g(when operating at 3.3)

The only thing that I don't understand is that what is the vRef. I understand that it is the reference but how do we tell the sensor to give me the reference voltage and the axis voltage. Datasheet doesn't say what message to send to get vRef.

For my test I was interested on reading the values collected form the three different axis and I used a small breadboard and arduino UNO connected like this:

1/ CLK>> PIN 10 arduino

2 /DIO >> PIN 11 arduino

3 >> Ground


5 / CS>> PIN 9 arduino

6>> 5V arduino

I took the code from kiilo for ARDUINO in this link:

and the values for three axes oscillated between -500 and 500.

Application Notes

I am using the Hitachi H48C 3-Axis Accelerometer to do a sonic interpretation of the asymmetry of the arm swing magnitude during gait. Therefore I am attaching one accelerometer to each of my wrists and measuring the angle as the excursion of the wrist with respect to the pelvis. The DATA is sent to MAX/MSP via SerialPort and from there is translated into MIDI DATA sent to Ableton Live.