A reciprocating apparatus (1 101, 301) for cardio-pulmonary resuscitation (CPR) driven by a compressed gas, comprising a housing (2, 3, 4 102, 103, 104 302, 303, 304), a piston (5 105 305) displaceable in the housing (2, 3, 4 102, 103, 104 302, 303, 304) defining an upper chamber (A) and a lower chamber (B), a valve (11 11, 11" 111 311) controlling the supply of driving gas to the upper chamber (A) during a reciprocating cycle, wherein the closure of the valve (11 11, 11 " 111 311) is controlled by a microprocessor (13 113, 313) based on the time at which the piston (5 105 305) reached a selected position, in particular its lower extreme position, in an earlier cycle stored in a memory of the microprocessor. Also disclosed are a method of controlling the amount of compressed gas used for driving a reciprocating apparatus for cardio-pulmonary resuscitation (CPR) comprising a valve for controlling the provision of driving gas comprises operation of the valve during the compression phase to stop provision of driving gas, which operation is separated in time from the venting of the driving gas from the apparatus at the end of the compression phase a method of compression depth sensing.