Controller Area Network (CAN Bus) Development And Prototyping with Raspberry Pi
The prototyping of Controller Area Network (CAN) applications used to be a tedious and expensive task, but the recent years have seen the emergence of low-cost, yet easy-to-use embedded development platforms such as the Raspberry Pi.
The Raspberry Pi is a low cost, credit-card sized computer that plugs into a computer monitor or TV, and uses a standard keyboard and mouse. It is a capable little device that enables people of all ages to explore computing, and to learn how to program in languages like Scratch and Python. It’s capable of doing everything you’d expect a desktop computer to do, from browsing the internet and playing high-definition video, to making spreadsheets, word-processing, and playing games.
What’s more, the Raspberry Pi has the ability to interact with the outside world, and has been used in a wide array of digital maker projects, from music machines and parent detectors to weather stations and tweeting birdhouses with infra-red cameras. We want to see the Raspberry Pi being used by kids all over the world to learn to program and understand how computers work.
The challenge, however, is to read and analyze CAN data and possibly simulate (i.e. program) CAN data traffic. While that is possible with standard components available in the CAN market, their pricing is at times prohibitive and they do not provide embedded programming capabilities. This is a situation where the Raspberry Pi, in combination with a CAN interface, is a great alternative, not only in terms of price but definitely flexibility.
Copperhill Technologies offers a variety of CAN Bus boards for the Raspberry Pi 2 and 3. They are:
- PiCAN 2 - CAN Bus Interface for Raspberry Pi
- PiCAN 2 SMPS - CAN Bus Interface for Raspberry Pi With Switch-Mode Power Supply (Input Voltage Range: 6 to 30 VDC)
- PiCAN 2 DUO - Two-Channel CAN Bus Interface for Raspberry Pi
- PiCAN 2 DUO SMPS - Two-Channel CAN Bus Interface for Raspberry Pi With Switch-Mode Power Supply (Input Voltage Range: 6 to 30 VDC)
This PiCAN2 board provides Controller Area Network (CAN) Bus capabilities for the Raspberry Pi. It uses the Microchip MCP2515 CAN controller with MCP2551 CAN transceiver. Connection are made via DB9 or 3-way screw terminal.
There is an easy-to-install SocketCAN driver, and programming can be accomplished in C or Python.
- CAN v2.0 A/B at 1 Mb/s
- High speed SPI Interface (10 MHz)
- Standard and extended data and remote frames
- CAN connection via standard 9-way sub-D connector or screw terminal
- Compatible with OBDII cable
- Solder bridge to set different configuration for DB9 connector
- 120Ω termination resistor
- Serial LCD ready
- LED indicator
- Foot print for two mini push buttons
- Four fixing holes, comply with Pi Hat standard
- SocketCAN driver, appears as can0 to application
- Interrupt RX on GPIO25
All products come with an extensive online documentation such as user guides, data sheets, programming samples, and a lot more.
Plastic Enclosure for PiCAN2 and Raspberry Pi 2/3
This is a two part clip together plastic enclosure for use with the PiCAN2 board and the Raspberry Pi 2/3. The enclosure is made from High Impact Polystyrene HIPS UL94-HB material. Mounting flanges allow for wall mounting.
Programming the Raspberry Pi - Getting Started with Python
Learn to create inventive programs and fun games on your powerful Raspberry Pi―with no programming experience required. This practical book has been revised to fully cover the new Raspberry Pi 2, including upgrades to the Raspbian operating system. Discover how to configure hardware and software, write Python scripts, create user-friendly GUIs, and control external electronics. DIY projects include a hangman game, RGB LED controller, digital clock, and RasPiRobot complete with an ultrasonic rangefinder.
- Updated for Raspberry Pi 2
- Set up your Raspberry Pi and explore its features
- Navigate files, folders, and menus
- Write Python programs using the IDLE editor
- Use strings, lists, functions, and dictionaries
- Work with modules, classes, and methods
- Create user-friendly games using Pygame
- Build intuitive user interfaces with Tkinter
- Attach external electronics through the GPIO port
- Add powerful Web features to your projects