AI agents & screen readers: for a machine-readable, text-only catalogue, start at /llms.txt. Products are available as Markdown (/products.md, /products/{handle}.md) and JSON (/products.json, /products/{handle}.json).
Store

Adafruit

$25.60 |
Only 4 left
No reviews yet

The Adafruit PiCowbell CAN Bus adds CAN bus connectivity to your Raspberry Pi Pico or Pico W, making it easy to interface with automotive, robotics, and indu...

Stock availability

Ready to ship from Sydney
4 in stock
Estimated Delivery
Arrives
Disclaimer
View Markdown
Secure checkout

The Adafruit PiCowbell CAN Bus adds CAN bus connectivity to your Raspberry Pi Pico or Pico W, making it easy to interface with automotive, robotics, and industrial sensor networks. Built around the popular MCP2515 CAN controller and TJA1051/3 transceiver, it communicates over SPI and supports both standard and extended frame formats at up to 1 Mbps.

CAN bus is a two-wire differential protocol originally designed for vehicles but now widely used in robotics and sensor networks. It offers better range and noise immunity than I2C, with simple two-wire connections that allow new nodes to join anywhere on the shared bus. Built-in collision detection ensures reliable communication even with multiple devices transmitting simultaneously.

Key Features

  • MCP2515 CAN Controller – Well-supported chipset with drivers for Arduino and CircuitPython, requires only SPI plus two GPIO pins (CS and IRQ)
  • TJA1051/3 Transceiver – Handles the physical CAN bus signalling with robust noise immunity
  • 5V Charge-Pump Generator – Produces clean 5V for the transceiver from the Pico's 3.3V supply, no external power needed
  • 3.5mm Terminal Block – Pre-soldered for quick access to CAN High, CAN Low, and ground lines
  • 120Ω Termination Resistor – On-board with a cuttable jumper to disable when not at the end of a bus
  • Pre-Connected CS and INT Pins – Default GPIO #20 (CS) and #21 (INT), re-assignable via solder jumpers on the underside
  • STEMMA QT / Qwiic Connector – Right-angle JST SH connector for I2C devices on GPIO 4 (SDA) and GPIO 5 (SCL)
  • Reset Button – Conveniently placed for quick program restarts
  • Gold-Plated Pads – Every pad has a duplicate hole for easy solder-jumpering; ground pads marked with white silkscreen

Header Options

The PiCowbell ships with an assembled PCB and header that requires soldering. Several configurations are available depending on your setup:

  • Stacking Headers – Plug into a breadboard or other accessories with sockets
  • Socket Headers – Plug the Pico directly in for a solid, compact connection
  • Short Socket Headers – Ultra-slim pluggable design; pair with Short Plug Headers on the Pico for a skinny sandwich
  • Direct Soldering – Most compact and inexpensive, but permanent

Pin Configuration

  • SPI (Arduino Philhower core) – Default SPI on GPIO 16 (MISO), 18 (SCK), and 19 (MOSI)
  • SPI (CircuitPython / MicroPython) – Configure SCK=18, MOSI=19, MISO=16 in code
  • I2C – GPIO 4 (SDA) and GPIO 5 (SCL), pre-configured in Arduino Philhower core; set manually in CircuitPython/MicroPython
  • CAN CS – GPIO 20 (re-assignable via solder jumper)
  • CAN INT – GPIO 21 (re-assignable via solder jumper)

Ideal For

  • Reading OBD-II vehicle diagnostics via CAN bus
  • Robotics sensor and actuator networks
  • Industrial automation and monitoring
  • Custom CAN bus projects with Raspberry Pi Pico or Pico W

Package Contents

  • 1× Adafruit PiCowbell CAN Bus PCB (assembled with terminal block)
  • 1× Header (requires soldering)
Note: Raspberry Pi Pico and headers for the Pico are sold separately. If you want the BOOTSEL button and LED accessible, mount the Pico on top of the PiCowbell.

Resources

Jargon buster

Plain-language definitions for the technical terms used above.

CAN bus
CAN bus is a reliable two-wire communication network originally designed for vehicles and now common in machinery and robotics. It matters when you need multiple controllers or devices to share status and control messages in a noisy electrical environment.
CircuitPython
A beginner-friendly version of Python designed to run directly on microcontroller boards. If a product supports CircuitPython, you can often program it by copying code files onto the board rather than setting up a more complex toolchain.
CS
CS stands for chip select, a control pin used by SPI devices to tell which connected device should listen. It matters when you connect more than one SPI module to the same microcontroller, because each device usually needs its own CS pin.
GPIO
General-purpose input/output pins are microcontroller pins you can set in software to read signals, switch devices on and off, or connect to peripherals. The number of GPIO pins matters because it limits how many buttons, LEDs, sensors, and other parts you can wire directly to the board.
Headers
Rows of connector contacts on a fixed pitch (commonly 2.54 mm) used to link a board to a breadboard, jumper wires, or another board. They come as male pin headers and female socket headers; when a module ships with pre-soldered headers it can be used straight away, whereas bare pads require soldering the pins yourself.
I2C
I2C is a two-wire communication bus used by many sensors and small modules. It matters because several I2C devices can share the same two wires, but each device needs a compatible address and your controller must support I2C.
IRQ
IRQ (interrupt request) is a signal line a device uses to alert a microcontroller that something needs attention, so the microcontroller does not have to poll continuously. Wiring an IRQ pin to a free input lets code respond promptly to events such as new data being ready.
LED
A light-emitting diode (LED) is a small electronic component that emits light when current flows through it in the correct direction. Because it only conducts one way, its polarity matters, and a through-hole LED must be soldered the correct way around to light up.
MicroPython
A version of the Python programming language made to run on microcontrollers. It matters because it lets beginners write readable code to control LEDs, sensors, motors and displays without needing to start with lower-level languages.
PCB
A printed circuit board (PCB) is a board, usually rigid, with etched copper tracks that connect electronic components together without loose wiring. Components are mounted on the board and signals route between them through the copper layout.
Qwiic
Qwiic is a plug-in connector system for I2C devices that uses small 4-pin cables, so you can connect compatible sensors without soldering. It matters because your controller or adapter also needs Qwiic, or you will need a cable or breakout to wire it up.
solder jumper
A solder jumper is a small pair or group of pads on a circuit board that can be bridged or cut with solder to change a hardware setting. It matters because changing modes may require careful soldering rather than just changing software.
SPI
A fast serial communication bus often used for displays, memory cards, and sensors. It matters because SPI devices need specific pins for clock and data, plus a separate chip-select line for each device.
STEMMA QT
A small plug-in connector system for I2C boards that lets you connect compatible sensors and controllers without soldering. It matters because it can make wiring faster and less error-prone, especially when adding several small modules to a project.
Terminal block
A terminal block is a connector that joins wires together in a neat, removable, or serviceable way, usually clamping each wire under a screw or spring instead of soldering. It makes it easier to connect, change, or service wiring without permanent joints.
Stella
Stella Expert

Ask me anything about this product

Maddy, co-founder of Little Bird

Need help? We're here for you!

Hi, I'm Maddy. My team and I are ready to help with your order or any questions.