diff --git a/devices/geiger/gqgmc.go b/devices/geiger/gqgmc.go
index aca8f425b27863fd78f2a64d991f1ff220c1be37..1058bdaf82232773b9fc18c2671f1f372bd57808 100644
--- a/devices/geiger/gqgmc.go
+++ b/devices/geiger/gqgmc.go
@@ -112,7 +112,7 @@ const (
 	cmdTurnOnCPS    = "<HEARTBEAT1>>"   // GMC-280, GMC-300  Re.2.10
 	cmdTurnOffCPS   = "<HEARTBEAT0>>"   // Re.2.10
 	cmdTurnOffPwr   = "<POWEROFF>>"     // GMC-280, GMC-300 Re.2.11
-	cmdTurnOn       = "<POWERON>>"      // GMC-280, GMC-300 Re.3.10
+	cmdTurnOnPwr    = "<POWERON>>"      // GMC-280, GMC-300 Re.3.10
 	cmdFactoryReset = "<FACTORYRESET>>" // GMC-280, GMC-300 Re.3.00
 	cmdReboot       = "<REBOOT>>"       // GMC-280, GMC-300 Re.3.00
 	cmdGetTime      = "<GETDATETIME>>"  // GMC-280, GMC-300 Re.3.00
@@ -273,6 +273,12 @@ func (gc *GQGMCCounter) GetAutoCPS() (uint16, error) {
 	return cps, nil
 }
 
+// TurnOnPower turns the device on
+func (gc *GQGMCCounter) TurnOnPower() {
+	gc.sendCmd(cmdTurnOnPwr)
+	return
+}
+
 // TurnOffPower turns the device off
 func (gc *GQGMCCounter) TurnOffPower() {
 	gc.sendCmd(cmdTurnOffPwr)
@@ -335,7 +341,7 @@ func (gc *GQGMCCounter) GetTime() (time.Time, error) {
 	return t, nil
 }
 
-// GetTemp gets the time
+// GetTemp gets the temp
 func (gc *GQGMCCounter) GetTemp() (float64, error) {
 	t, err := gc.communicate(cmdGetTemp, 4)
 	if err != nil {
@@ -353,7 +359,20 @@ func (gc *GQGMCCounter) GetTemp() (float64, error) {
 	return temp, nil
 }
 
-//	cmdGetGyro      = "<GETGYRO>>"      // GMC-320 Re.3.01
+// GetGyro gets the position in space
+func (gc *GQGMCCounter) GetGyro() (int16, int16, int16, error) {
+	buf, err := gc.communicate(cmdGetGyro, 7)
+	if err != nil {
+		return 0, 0, 0, err
+	}
+	x := (int16(buf[0]) << 8)
+	x |= (int16(buf[1]) & 0x00ff)
+	y := (int16(buf[0]) << 8)
+	y |= (int16(buf[1]) & 0x00ff)
+	z := (int16(buf[0]) << 8)
+	z |= (int16(buf[1]) & 0x00ff)
+	return x, y, z, nil
+}
 
 // FactoryReset does a factory reset
 func (gc *GQGMCCounter) FactoryReset() {