Skip to content
This repository has been archived by the owner on Dec 18, 2023. It is now read-only.
/ ZumoComSystem Public archive

A shield for the Pololu 32U4 Zumo robot, used for several features, based on WiFi connection.

License

Notifications You must be signed in to change notification settings

NewTec-GmbH/ZumoComSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ZumoComSystem

Shield for the Pololu 32U4 Zumo Robot that provides it with wireless capabilities.

License Repo Status PlatformIO CI


Overview

This Shield has been developed in order to provide the possibility of uploading firmware to the Zumo Robot Over-The-Air (OTA) using Espressif's ESP32 as a wireless interface/bridge between the user and the robot.

The communication between the Shield and the Zumo is done through Maxim's MAX3421E in conjunction with the USB Host Shield 2.0 Library. Due to a bug preventing the communication with the Zumo Robot, this project uses a fork of the original library.

Additional features such as extra batteries and remote control of the robot's buttons have been also implemented.

The following diagram depicts the minimal wiring setup for the successful flashing of the Zumo Robot:

Basic MCU Overview

This setup uses an ESP32-DevKitC and an UHS Mini.


Installation

Toolchain

  1. Install Visual Studio Code.
  2. Install PlatformIO IDE according to this How-To.
  3. Close and start VSCode again.
  4. Recommended is to take a look to the quick-start guide.

Preparation

The Shield requires a RSA2048 key pair in order to verify the authenticity of the firmware the user wants to upload to the Zumo Robot. These can be generated using the gensignkeys Bash Script in the Tools Folder.

The generated Public Key must then be copied and used to overwrite the variable PUB_RSA_SIGN_KEY of the PublicSigningKey.h. The Private Key is used to sign the Firmware using the signfw Bash Script or the web interface. These methods output a ComPlatform Signed Firmware (CPSFW) File, which can be uploaded to the Zumo.

Build and Upload

After updating the Public Signing Key, build the Shield's Firmware using the PlatformIO Toolbar or the hotkey Ctrl+Alt+b.

🔑 The firmware can also be built in Debug Mode for detailed information and Logs through a Serial Monitor.

If the building process is successful, proceed to upload the firmware using the PlatformIO Toolbar or the hotkey Ctrl+Alt+u.

Booting

Press the WiFiResetKey to restart the ZumoComSystem.

Press and hold the WiFiResetKey during boot to force the Access Point (AP) mode to start. When the ZumoComSystem is started for the first time, there are no network credentials available; therefore it will automatically boot into the AP mode.

  • Default AP SSID: “ComPlatform_xxxxxxxxx”
  • Default AP Password: “21091986”
  • Default AP IP Address: 192.168.4.1
  • Web Interface: https://<IP Address>/index.html or http://complatform/index.html

🔑 In Debug Mode, the IP Address of the ZumoComSystem is logged to the serial monitor. In Release Mode, you can find your device through in your network router or user Network Scanner.


User Interface

🏠 Home Page

Upon visiting the Frontend, you are welcomed by the home page, which provides the firmware information at a glance. The different pages of the interface can be accessed through the navigation bar to the top. The upload and flash options are organized in Cards.

Home Screen

User Accounts

On the Navigation Bar is the Login/Logout Button.

There are two User Accounts available by default:

Username Password Permissions
admin 21091986 ANY
student nt2021nt DEBUG_ZUMO

☁️ Upload Card

Upload Screen

If there is no firmware in the System's memory, it facilitates the upload of the required files. There are two possibilities to upload the desired firmware:

  • Upload signed Firmware (.cpsfw)
  • Upload unsigned Firmware (.bin) and a RSA2048 signing (private) key (.pem) as mentioned in the preparation section.

The Web Interface provides the possibility of choosing which target should be controlled or flashed with the uploaded firmware: the Zumo Robot or the ZumoComSystem itself.

⚡ Flash Card

Once the Firmware is succesfully uploaded, it saved in the memory of the ZumoComPlatform and can be flashed onto the Zumo Robot.

Flash Screen

⚙️ Settings Page and Reboot

When working on the ComPlatform Target, it is possible to configure the Station (STA) Mode credentials, in order to connect to a local network.

Settings Screen

The Reboot Button affects the currently-selected target.

Documentation

For more in-depth information, see the software and hardware documentation.

Used Libraries

Name Description Licence
Arduino ESP32 Arduino framework Apache-2.0
ArduinoJson JSON handling MIT
Bootstrap Frontend Toolkit MIT
Crypto Hashing MIT
ESP32 HTTPS server HTTP server MIT
USB Host Library Rev. 2.0 SPI-USB-Adapter driver GLP

License

This project is published under the BSD 3-Clause "New" or "Revised" License. Consider the different licenses of the used third party libraries too!

About

A shield for the Pololu 32U4 Zumo robot, used for several features, based on WiFi connection.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published