Blog
Recent Posts
Raspberry Pi Pico CAN Bus System with Micro-Python Pre-Installed
Posted by
onThe Raspberry Pi PicoBoard is an inexpensive and versatile development board designed for the RP2040 microcontroller chip developed by Raspberry Pi. It features an RP2040 microcontroller chip with 2MB of Flash, and a micro-USB port for power, data, and programming. The 40-pin dip-style header provides 26 multi-function 3.3V GPIO, 23 digital-only GPIO, and three ADC-compatible GPIO for additional functionality. Additionally, the Pico development board includes a 3-pin Arm® serial wire debug (SWD) port for troubleshooting and monitoring.
The CANPico v2 is an improved CAN Bus module version with a Pico WH installed on a socketed board. It is shipped with Pico WH and MicroPython pre-installed.
Controller Area Network (CAN Bus) is a protocol utilized in millions of devices, including cars, trucks, buses, construction machines, ships, tractors, and even spacecraft (there is even a CAN module orbiting Mars).
The Canis Labs CANPico is a carrier board designed in a 'sock' format for a Raspberry Pi Pico. You can solder the Pico onto the board, and it will be connected to an advanced CAN controller and transceiver, ready to be linked to CAN bus wires using a simple screw terminal. Additionally, the CANPico includes an instrument header with the analog CAN H and CAN L signals and the digital RX and TX signals, which can be used with an oscilloscope or logic analyzer. Software support is provided through an open-source MicroPython SDK.
Canis Labs' open-source MicroPython SDK offers a comprehensive CAN API that includes priority-inversion-free drivers, 1μs accuracy timestamps, large buffers, and an API for triggering a logic analyzer or oscilloscope. It also supports communication with a host device over USB (via the MIN protocol) to enable applications such as bus logging or using a CANPico as a PC CAN interface.
The SDK also includes the CANHack toolkit for low-level error injection. Additionally, the SDK allows Python code to run on the Raspberry Pi Pico's dual-core RP2040 microcontroller and respond in real-time to CAN traffic with times measured in microseconds rather than milliseconds. This makes it an excellent platform for hardware-in-the-loop testing and emulation.
Main hardware features
- Microchip MCP251863T CAN controller
- Screw terminal for direct access to CAN High/Low twisted pair wiring and a common ground reference
- Jumper for a standard 120Ω CAN bus termination resistor
- Jumper for enabling and disabling transmit input to the transceiver
Interfacing
- Header pins for logic analyzer access to digital CAN signals (TX and RX pins of the transceiver)
- Header pins for oscilloscope access to the analog CAN signals (CAN High/Low, ground)
- TRIG pin for logic analyzer and oscilloscope triggering on programmable CAN events
- Direct GPIO access to CAN RX and TX pins for software error injection
- GPIO control over transceiver low-power standby
Get started with MicroPython on Raspberry Pi Pico
Microcontrollers, such as the chip at the heart of Raspberry Pi Pico, are essentially stripped-down computers. They don't require monitors or keyboards; instead, you program them using USB to take input from and send output to on-board input/output pins.
Using these programmable connections, you can illuminate LEDs, generate sounds, display text on screens, and perform many other tasks. In "Get Started with MicroPython on Raspberry Pi Pico, 2nd Edition," you will learn how to use the beginner-friendly MicroPython language to write programs.
During the course, you will learn how to connect hardware so that your Raspberry Pi Pico can interact with its surroundings. Once you've mastered these skills, you can create your own electromechanical projects, whether for fun or to make your life easier.
Fully updated for Raspberry Pi Pico W and the latest version of MicroPython, this book shows you how to:
- Get started with Raspberry Pi Pico and Pico W
- Work with various electronic components
- Create your programmable electronic contraptions
- Turn Raspberry Pi Pico W into a network-connected node for the Internet of Things
- Link your Pico W to your smartphone, tablet, or another Pico W with Bluetooth Low Energy (BLE)
Whether you’re using Raspberry Pi Pico for a home project, industrial automation, or learning (or teaching!) electronics and programming, this book will show you how. More Information...
Sensor Networks with XBee, Raspberry Pi, and Arduino: Sensing the World with Python and MicroPython
This book explains how to build sensor networks with Python and MicroPython using XBee radio modules, Raspberry Pi, and Arduino boards. This revised and updated edition will put all of these technologies together to form a sensor network and show you how to turn your Raspberry Pi into a MySQL database server to save sensor data. The reader [...]
MicroPython - Embedded IoT Programming with Microcontrollers and Python
MicroPython is an implementation of the Python 3 programming language that also includes a small subset of the Python standard libraries. MicroPython has been specifically designed for use with microcontrollers such as the ESP8266 and other small development boards. It is an exciting time to get involved with MicroPython for programming microcontrollers and embedded systems. This practical guide [...]
Embedded Programming Of Microcontrollers Using MicroPython
It’s an exciting time to get involved with MicroPython, the re-implementation of Python 3 for microcontrollers and embedded systems. This practical guide delivers the knowledge you need to roll up your sleeves and create exceptional embedded projects with this lean and efficient programming language. If you’re familiar with Python as a programmer, educator, or maker, you’re [...]
Raspberry Pi Pico W: Programming Digital Devices with MicroPython
MicroPython is a lean and efficient Python 3 programming language implementation that includes a small subset of the Python standard library and is optimized to run on microcontrollers and in constrained environments. MicroPython is packed with advanced features, such as an interactive prompt, arbitrary precision integers, closures, list comprehensions, generators, exception handling, and more. Yet, it [...]