Alpakka manual

DIY & Hardware


Common problems

Soldering problems (soon)
Parts fitting (soon)
Touch detection (soon)


Flight (soon)
RTS (soon)


PCB development (soon)
Case mods (soon)


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:

(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-offIf the USB cable is not connected.
RunningExecuting 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.