diff --git a/libraries/AP_HAL_Linux/GPIO_RPI.cpp b/libraries/AP_HAL_Linux/GPIO_RPI.cpp
index 6c89e6a513bf2c1c3bc5cc6c7ab9227916f267c2..59b33b4fbce558b83b0f902da231ef2564aafe43 100644
--- a/libraries/AP_HAL_Linux/GPIO_RPI.cpp
+++ b/libraries/AP_HAL_Linux/GPIO_RPI.cpp
@@ -62,7 +62,8 @@ int8_t LinuxGPIO_RPI::analogPinToDigitalPin(uint8_t pin)
 
 uint8_t LinuxGPIO_RPI::read(uint8_t pin)
 {
-    return GPIO_GET(pin);
+    uint32_t value = GPIO_GET(pin);
+    return value ? 1: 0;
 }
 
 void LinuxGPIO_RPI::write(uint8_t pin, uint8_t value)