There are a variety of options when choosing to write the software for your robot. The RP2040 has a C/C++ SDK and a Python SDK for use with MicroPython. The Arduino community also supports the RP2040. These are all fine options, but some of the features of the robot design eliminate a few of the options. The primary considerations include supporting the various peripherals including the Bluetooth classic connection. The RP2040 C/C++ SDK does support Bluetooth classic HID devices. This capability is needed to connect to the DualShock 4 Controller. Finally, C and C++ are ubiquitous in embedded systems programming.
C and C++ are compiled programming languages. This means that after the code is written it needs to be translated into machine code that the processor directly understands through a process called compiling. CMake is an open-source tool that helps manage the build configuration for a project and is used in the RP2040 C/C++ SDK.
This software project uses Git as its version control system. Git allows multiple people to collaboratively work on software projects. Users can create branches when they want to create a new feature and can merge branches when they complete those features. Additionally, users mark important points in the commit history by creating tags. There are endless resources for learning Git online; so this will not be captured here!
The Git repository that this project’s software is stored in is managed by GitHub. The link is here. This repository could be downloaded using the browser; however, it is best to actually use Git to “clone” the repository so that all of the files and their dependencies are pulled into the project properly.