From 0a3ee688025bdb3cd2ce279c47378aa46ae691df Mon Sep 17 00:00:00 2001 From: Matthew Richardson Date: Tue, 12 Dec 2017 15:51:21 -0500 Subject: [PATCH 1/2] Update C++ drivers for FW version 1.0.0 --- Software/C/GoPiGo3.cpp | 2 +- Software/C/GoPiGo3.h | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Software/C/GoPiGo3.cpp b/Software/C/GoPiGo3.cpp index 7aa553f3..8de226e9 100644 --- a/Software/C/GoPiGo3.cpp +++ b/Software/C/GoPiGo3.cpp @@ -163,7 +163,7 @@ int GoPiGo3::get_version_hardware(char *str){ if(int error = spi_read_32(GPGSPI_MESSAGE_GET_HARDWARE_VERSION, value)){ return error; } - sprintf(str, "%d.%d.%d", (value / 1000000), ((value / 1000) % 1000), (value % 1000)); + sprintf(str, "%d.x.x", (value / 1000000)); } int GoPiGo3::get_version_firmware(char *str){ diff --git a/Software/C/GoPiGo3.h b/Software/C/GoPiGo3.h index 12a86910..74729aa8 100644 --- a/Software/C/GoPiGo3.h +++ b/Software/C/GoPiGo3.h @@ -12,10 +12,10 @@ #ifndef GoPiGo3_h_ #define GoPiGo3_h_ -#define FIRMWARE_VERSION_REQUIRED "0.3." // Firmware version needs to start with this +#define FIRMWARE_VERSION_REQUIRED "1.0." // Firmware version needs to start with this -#define LONGEST_I2C_TRANSFER 16 // longest possible I2C read/write -#define LONGEST_SPI_TRANSFER 24 // spi_read_string 20 chars (LONGEST_I2C_TRANSFER + 6) // longest possible message for configuring for an I2C sensor +#define LONGEST_I2C_TRANSFER 32 // longest possible I2C read/write +#define LONGEST_SPI_TRANSFER (LONGEST_I2C_TRANSFER + 6) // at least 24 for spi_read_string 20 chars, and at least LONGEST_I2C_TRANSFER + 6 for I2C transactions #define SPI_TARGET_SPEED 500000 // SPI target speed of 500kbps From eeddd8f091f3cd265be6bd1dded65a8e511e0ed6 Mon Sep 17 00:00:00 2001 From: Matthew Richardson Date: Thu, 8 Mar 2018 10:30:14 -0500 Subject: [PATCH 2/2] Add reset method Add reset_motor_encoder as a simpler way to reset one or both motors' encoders to 0. --- Software/Python/gopigo3.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Software/Python/gopigo3.py b/Software/Python/gopigo3.py index 0bcd040a..67c95cef 100644 --- a/Software/Python/gopigo3.py +++ b/Software/Python/gopigo3.py @@ -583,6 +583,19 @@ def offset_motor_encoder(self, port, offset): ((offset >> 24) & 0xFF), ((offset >> 16) & 0xFF), ((offset >> 8) & 0xFF), (offset & 0xFF)] self.spi_transfer_array(outArray) + def reset_motor_encoder(self, port): + """ + Reset a motor encoder to 0 + + Keyword arguments: + port -- The motor port(s). MOTOR_LEFT and/or MOTOR_RIGHT. + """ + if port & self.MOTOR_LEFT: + self.offset_motor_encoder(self.MOTOR_LEFT, self.get_motor_encoder(self.MOTOR_LEFT)) + + if port & self.MOTOR_RIGHT: + self.offset_motor_encoder(self.MOTOR_RIGHT, self.get_motor_encoder(self.MOTOR_RIGHT)) + def set_grove_type(self, port, type): """ Set grove type