A system comprising an auto injector for administering a medicament and a cartridge assembly; wherein the cartridge assembly comprises a cartridge and a cartridge code feature, the cartridge comprises a cartridge compartment containing the medicament, and a cartridge outlet; and wherein the auto injector comprises: • a housing; • a cartridge receiver configured to receive the cartridge assembly; • a code sensor configured to read the cartridge code feature; • a drive module coupled to move a plunger rod; • an ejection sensor configured to provide an ejection sensor signal indicative of the position of the plunger rod; and • a processing unit coupled to the code sensor; the drive module and the ejection sensor; wherein the processing unit is configured to: - receive from the code sensor a code signal indicative of the cartridge code feature; - receive from the ejection sensor an ejection sensor signal indicative of the position of the plunger rod; and - control the drive module to move the plunger rod to a first plunger rod position based on the ejection sensor signal, the first plunger rod position being based on the code signal; wherein air is expelled from the cartridge upon movement of the plunger rod to the first plunger rod position, wherein by expelling air from the cartridge, the air in the cartridge compartment is reduced to an amount appropriate for injection, and wherein the plunger rod is only moved to the first plunger rod position if the cartridge outlet is pointing upwards. wherein the cartridge assembly comprises a cartridge and a cartridge code feature, the cartridge comprises a cartridge compartment containing the medicament, and a cartridge outlet; and wherein the auto injector comprises: • a housing; • a cartridge receiver configured to receive the cartridge assembly; • a code sensor configured to read the cartridge code feature; • a drive module coupled to move a plunger rod; • an ejection sensor configured to provide an ejection sensor signal indicative of the position of the plunger rod; and • a processing unit coupled to the code sensor; the drive module and the ejection sensor; wherein the processing unit is configured to: - receive from the code sensor a code signal indicative of the cartridge code feature; - receive from the ejection sensor an ejection sensor signal indicative of the position of the plunger rod; and - control the drive module to move the plunger rod to a first plunger rod position based on the ejection sensor signal, the first plunger rod position being based on the code signal; • a housing; • a cartridge receiver configured to receive the cartridge assembly; • a code sensor configured to read the cartridge code feature; • a drive module coupled to move a plunger rod; • an ejection sensor configured to provide an ejection sensor signal indicative of the position of the plunger rod; and • a processing unit coupled to the code sensor; the drive module and the ejection sensor; - receive from the code sensor a code signal indicative of the cartridge code feature; - receive from the ejection sensor an ejection sensor signal indicative of the position of the plunger rod; and - control the drive module to move the plunger rod to a first plunger rod position based on the ejection sensor signal, the first plunger rod position being based on the code signal; wherein air is expelled from the cartridge upon movement of the plunger rod to the first plunger rod position, wherein by expelling air from the cartridge, the air in the cartridge compartment is reduced to an amount appropriate for injection, and wherein the plunger rod is only moved to the first plunger rod position if the cartridge outlet is pointing upwards.