# Welcome to panda [panda](http://github.com/commaai/panda) is the nicest universal car interface ever. It supports 3x CAN, 2x LIN, and 1x GMLAN. It also charges a phone. On the computer side, it has USB. It uses an [STM32F413](http://www.st.com/en/microcontrollers/stm32f413-423.html?querycriteria=productId=LN2004). ![panda tests](https://github.com/commaai/panda/workflows/tests/badge.svg) ![panda drivers](https://github.com/commaai/panda/workflows/drivers/badge.svg) ## Usage Setup your dependencies: ```bash # Ubuntu sudo apt-get install dfu-util gcc-arm-none-eabi python3-pip libffi-dev pip install -r requirements.txt # macOS brew tap ArmMbed/homebrew-formulae brew install python dfu-util arm-none-eabi-gcc gcc@12 pip install -r requirements.txt ``` ### Python To install the library: ``` bash git clone https://github.com/commaai/panda.git cd panda python setup.py install ``` See [the Panda class](https://github.com/commaai/panda/blob/master/python/__init__.py) for how to interact with the panda. For example, to receive CAN messages: ``` python >>> from panda import Panda >>> panda = Panda() >>> panda.can_recv() ``` And to send one on bus 0: ``` python >>> panda.can_send(0x1aa, "message", 0) ``` Note that you may have to setup [udev rules](https://github.com/commaai/panda/tree/master/drivers/linux) for Linux, such as ``` bash sudo tee /etc/udev/rules.d/11-panda.rules <