Getting Started
Setting up P1 and sending/reading CAN messages.
This page shows how to set up P1 and interface with your car's OBD port.

Parts:

    ​P1 (consists of PocketBeagle, Adapter board and Interface board) Note: the Interface board is same as used on M2.
The following parts are common and can be found from many sources/manufacturers.
    microSD card (included in kit)
    WIFI dongle (included in kit)
    ​USB cable​

Adapter board:

The adapter board plugs directly into the M2 Interface board and provides:
1. Routing of power and signals from M2 Interface board to PocketBeagle.
2. Battery connector for standard 2-Pin JST battery connector and single cell lithium battery. (Optional)
3. USB A host port with ESD protection.
4. Voltage scaling for 6 Analog inputs.
5. Several 0 ohm jumpers to route signals as needed.
​
Adapter PCB files are found at these links:

P1 Setup:

Step 1: Hook stuff up.

The adapter PCB is pre-installed onto the M2 interface board. The PocketBeagle is also pre-installed onto the adapter board. Since the PocketBeagle is not keyed, if you remove, be sure to plug it in so that the USB ports are on the same side.
A USB wireless adapter can be plugged directly into the board, no powered USB hub required.
​

Step 2: Create a bootable SD card

Follow instructions here to create a bootable SD card. Once you have a bootable SD card, plug it into the PocketBeagle. Latest images are found here.
Note: The P1 kit ships with pre-installed image on SD card!
Plug a microUSB cable into the PocketBeagle and your computer. After a minute or so, use your favorite terminal to ssh to beagle.local or 192.168.7.2:
Login: debian Password: temppwd
We want to make sure that others wont be able to access your device to do this the main thing we are going to do is change the root password.
1
sudo passwd root
Copied!

Step 3: Connect to internet.

First thing we'll want to do is connect to the internet to be able to download the latest packages. To do that, we'll use WIFI. Type the commands as shown below
1
sudo connmanctl
2
connmanctl> disable wifi
3
Disabled wifi
4
connmanctl> enable wifi
5
Enabled wifi
6
connmanctl> scan wifi
7
Scan completed for wifi
8
connmanctl> services
Copied!
All of the hotspots that your setup can see will be listed here, and look something like this:
wifi_xxxxxx_xxxxxx_managed_psk
Run these commands to connect:
1
connmanctl> agent on
2
​
3
connmanctl> connect wifi_xxxxxx_xxxxxx_managed_psk
4
​
5
Passphrase? xxxxxxxxxxx
6
​
7
connected wifi_xxxxxx_xxxxxx_managed_psk
8
​
9
connmanctl> quit
Copied!
You should now be connected to your local WiFi. You can check that you have an IP address by typing the following in the terminal window:
1
ifconfig
Copied!
You should now see an IP address under wlan0 and you can now connect to this IP address in the future to program your PocketBeagle.
If you have trouble with the WiFi connection after initial setup, then ssh over the USB cable to the BeagleBone and run:
1
sudo connmanctl disable wifi
2
sudo connmanctl enable wifi
3
iwconfig wlan0
4
ifconfig wlan0
Copied!

Step 4: Update

After connecting to internet, we can update the PocketBeagle by running these two commands, this should take a few minutes.
1
sudo apt update
2
sudo apt upgrade
Copied!

Step 5: Set up pins

Next we make sure the pins on the PocketBeagle are set up correctly as shown at this link:
The following steps only need to be performed once. The correct pin configuration will then persist across reboots. Verify that that these files exist:
1
ls -lt /lib/firmware/PB-CAN0-00A0.dtbo
2
ls -la /lib/firmware/PB-CAN1-00A0.dtbo
Copied!
Edit the boot configuration so the CAN0 and CAN1 pins will be configured automatically:
1
sudo nano /boot/uEnv.txt
Copied!
replace these lines:
1
#uboot_overlay_addr4=/lib/firmware/<file4>.dtbo
2
#uboot_overlay_addr5=/lib/firmware/<file5>.dtbo
Copied!
with these lines:
1
uboot_overlay_addr4=/lib/firmware/PB-CAN0-00A0.dtbo
2
uboot_overlay_addr5=/lib/firmware/PB-CAN1-00A0.dtbo
Copied!
save the file (ctrl-o) and exit (ctrl-x) and then reboot:
1
sudo reboot
Copied!
Next, we set up the CAN interface and turn it on. Note that we are setting rate at 250Kb/s here. Your car might be a different BAUD rate.
P1 is now set up! Step 6 and beyond are for testing and becoming more familiar with CAN on P1, try them if you'd like, or check out the P1 Mini-Projects.

Step 6: print out CAN messages

1
sudo ip link set can0 type can bitrate 250000 listen-only on
2
​
3
sudo ifconfig can0 up
Copied!
To see actual data, we need to do 2 things: 1. Plug M2/PocketBeagle into your car or an emulator (No need for hub, and WIFI dongle anymore - those can be unplugged) and 2. enter this command to print output to terminal screen:
1
candump -cae can0,0:0,#FFFFFFFF
Copied!
If everything is set up correctly, you should see something like this:
While this looks pretty cool, it is hard to see what is going on. Press CTRL+C to end output to terminal.
Logging CAN data to a file makes it easier to analyze the data. To do that, use this command to log data to current working directory:
1
candump -l any,0:0,#FFFFFFFF
Copied!
Optional:
Run these commands to enable the CAN1 interface and print anything received to the terminal:
1
sudo ip link set can1 type can bitrate 250000 listen-only on
2
​
3
sudo ifconfig can1 up
4
​
5
candump -cae can1,0:0,#FFFFFFFF
Copied!

Step 7: Sending CAN messages

This should be used for testing purposes only and caution should be taken before sending messages to a real car. Here are instructions on how to send CAN messages on the CAN0 interface.
1
sudo ip link set can0 type can bitrate 250000
2
​
3
sudo ip link set up can0
4
​
5
cansend can0 01a#11223344AABBCCDD
Copied!

Step 8: Going further.

You can test sending and receiving CAN a couple ways:
Last modified 3mo ago