I’m trying to understand the technical architecture of the gopigo3. THere’s a Raspi and a GpG3 board. What software is on each one? Or does the GpG3 board itself have no software on it? Is there an explanation of this somewhere?
1 Like
There is no official “theory of operation” doc. This is what I have gathered from the schematic, the gopigo3.py and using Raspbian For Robots.
- The GoPiGo3 hardware board contains an ATMEL SAMC20J processor
- The ATMEL firmware is proprietary and no firmware documentation is released
- The GoPiGo3 board receives commands from and returns data to the Raspberry Pi via SPI interface
- The command set is enumerated in the SPI_MESSAGE_TYPE in gopigo3.py
- The GoPiGo3 firmware monitors battery level, manages servo PWM, motor PID control, encoders
- The GoPiGo3 board firmware manages the programmable “Grove” connectors
- A2D is 12-bit with 2.048v ± 0.041v Vref
- Analog Input on pin A or B
- Digital Input or Output on pin A or B
- Software I2C clock and data
- The Raspberry Pi based user software and Dexter software
- Dexter software consists of
- a large library of drivers / examples for 3rd party “Grove” Analog, Digital, and I2C based sensors
- drivers and examples for Dexter Industries sensors
- VL53L0X I2C Time Of Flight Distance Sensor
- BNO055 Inertial Measurement Sensor (Software I2C for clock stretching that RPi does not)
- Temp/Humidity/Pressure Sensor, light color sensor, line follower, …
- Phenomenal robot examples (/home/pi/Dexter/GoPiGo3/Projects)
- Dexter software consists of
- Raspbian For Robots (Supports several DI products. Only listing GoPiGo3 stuff)
- service providing landing page to desktop and web based command shell
- power button handler (/home/pi/Dexter/GoPiGo3/install/gpg3_power.sh)
- GoPiGo3 Custom Desktop widgets
- Software Update
- Shutdown
- GoPiGo3 Control Panel
- Line Follower Calibration
- Scratch For Robots
- Advanced Communications applet
- GoPiGo3 Folder shortcut to docs, all software
- Version applet lists Raspbian For Robots version
- Test and Troubleshoot Applet
- Services
- Customized Apache server
- noVNC (in stretch version - I think real VNC in the buster version)
- antenna_wifi.service to manage the multi-color WiFi LED
The schematic (and all software) is on github:
Processor Family Data:
https://www.microchip.com/design-centers/32-bit/sam-32-bit-mcus/sam-c-mcus
The RPi GPIO pin usage: