AlpakkaKapybaraMarmota
OverviewManualGalleryComponents
Alpakka manual
DIY & Hardware
Config
Common problems
Profiles
Developer
Other
Firmware development
This manual page (and the following pages) explains how to setup and use the Alpakka Firmware, and to setup a developer environment both from the software and hardware point of view.
Developer Kit
The Developer Kit is a simple DIY device that allows the developer to connect to the controller, get logs, send commands, and use a physical reset button. This is not required to hack the Alpakka, but it helps a lot.
The components for the reference developer kit are:
- USB to TTL serial cable. Like this one
- JST PH 4-pin cable. Like this one
- Mini-breadboard. Like this one
- Reset button. Like these
(Cable colors may be different in your setup)
With this setup, the reset button works as:
- Single press: Restarts the controller.
- Double press: Controller goes into Bootsel mode (ready to be flashed).
Warning: Do not push the JST connector all the way in, it may be very difficult to remove.
Running state
The Raspberry Pi Pico (and therefore the Alpakka controller) have 3 possible states:
Powered-off | If the USB cable is not connected. |
Running | Executing the code located in the memory. |
Bootsel mode | Behaving as a USB drive called RPI-RP2, ready to get new code (firmware) into memory. This is how new code is loaded into the controller, via USB cable |
Bootsel mode
There are 4 different ways to put the controller into Bootsel mode:
The Pico way | Holding the Pico small white button located under the battery bay, while connecting the USB cable. Not very convenient after the controller is assembled. |
The casual way | Performing the Bootsel button combination in the controller. For non-developer users that just want to update to a new reference firmware release. |
The reliable way | Double-clicking the physical Developer Kit reset button This will always work! |
The cool way | Sending a Bootsel request via the TTL serial session, with make bootsel or as part of other automated tooling. It requires an active session, and won't work if the previous execution failed. |
Software setup & development cycle
Check Development in Linux or Development in Windows for further instructions.