Is there software/firmware on the gopigo3 board itself?

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)
  • 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
         
        GoPiGo3_Board
         
        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: