Shield for the Pololu 32U4 Zumo Robot that provides it with wireless capabilities.
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:
This setup uses an ESP32-DevKitC and an UHS Mini.
- Install Visual Studio Code.
- Install PlatformIO IDE according to this How-To.
- Close and start VSCode again.
- Recommended is to take a look to the quick-start guide.
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.
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
.
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.
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.
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 |
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.
Once the Firmware is succesfully uploaded, it saved in the memory of the ZumoComPlatform and can be flashed onto the Zumo Robot.
When working on the ComPlatform Target, it is possible to configure the Station (STA) Mode credentials, in order to connect to a local network.
The Reboot Button affects the currently-selected target.
For more in-depth information, see the software and hardware documentation.
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 |
This project is published under the BSD 3-Clause "New" or "Revised" License. Consider the different licenses of the used third party libraries too!