Pimoroni Badger2040

The Pimoroni Badger2040 is a badge with E Ink display based on the Raspberry Pi RP2040 microcontroller.

Interfaces

Interface Hardware Supported TinyGo Support
GPIO YES YES
UART YES YES
SPI YES YES
I2C YES YES
ADC YES YES
PWM YES YES
USBDevice YES YES

Pins

Pin Hardware pin Alternative names PWM
LED GPIO25 PWM4 (channel B)
BUTTON_A GPIO12 PWM6 (channel A)
BUTTON_B GPIO13 PWM6 (channel B)
BUTTON_C GPIO14 PWM7 (channel A)
BUTTON_UP GPIO15 PWM7 (channel B)
BUTTON_DOWN GPIO11 PWM5 (channel B)
BUTTON_USER GPIO23 PWM3 (channel B)
EPD_BUSY_PIN GPIO26 ADC0 PWM5 (channel A)
EPD_RESET_PIN GPIO21 PWM2 (channel B)
EPD_DC_PIN GPIO20 PWM2 (channel A)
EPD_CS_PIN GPIO17 PWM0 (channel B)
EPD_SCK_PIN GPIO18 SPI0_SCK_PIN PWM1 (channel A)
EPD_SDO_PIN GPIO19 SPI0_SDO_PIN PWM1 (channel B)
VBUS_DETECT GPIO24 PWM4 (channel A)
BATTERY GPIO29 ADC3 PWM6 (channel B)
ENABLE_3V3 GPIO10 PWM5 (channel A)
I2C0_SDA_PIN GPIO4 PWM2 (channel A)
I2C0_SCL_PIN GPIO5 PWM2 (channel B)
SPI0_SDI_PIN GPIO16 PWM0 (channel A)
UART0_TX_PIN GPIO0 UART_TX_PIN PWM0 (channel A)
UART0_RX_PIN GPIO1 UART_RX_PIN PWM0 (channel B)
ADC1 GPIO27 PWM5 (channel B)
ADC2 GPIO28 PWM6 (channel A)

Machine Package Docs

Documentation for the machine package for the Pimoroni Badger2040

Flashing

UF2

The Badger2040 comes with the UF2 bootloader already installed.

CLI Flashing

  • Flash your TinyGo program to the board using this command:

    tinygo flash -target=badger2040 [PATH TO YOUR PROGRAM]
    
  • The Badger2040 board should restart and then begin running your program.

Troubleshooting

Any troubleshooting tips go here.

Notes

You can use the USB port to the Badger2040 as a serial port.

Last modified September 17, 2022: microcontrollers: add rp2040 boards (533fa9b)