# Welcome to panda ![panda tests](https://github.com/commaai/panda/workflows/tests/badge.svg) ![panda drivers](https://github.com/commaai/panda/workflows/drivers/badge.svg) [panda](http://github.com/commaai/panda) is the nicest universal car interface ever. panda speaks CAN, CAN FD, LIN, and GMLAN. panda supports [STM32F205](https://www.st.com/resource/en/reference_manual/rm0033-stm32f205xx-stm32f207xx-stm32f215xx-and-stm32f217xx-advanced-armbased-32bit-mcus-stmicroelectronics.pdf), [STM32F413](https://www.st.com/resource/en/reference_manual/rm0430-stm32f413423-advanced-armbased-32bit-mcus-stmicroelectronics.pdf), and [STM32H725](https://www.st.com/resource/en/reference_manual/rm0468-stm32h723733-stm32h725735-and-stm32h730-value-line-advanced-armbased-32bit-mcus-stmicroelectronics.pdf). ## Usage Setup dependencies: ```bash # Ubuntu sudo apt-get install dfu-util gcc-arm-none-eabi python3-pip libffi-dev git ``` ```bash # macOS brew install --cask gcc-arm-embedded brew install python3 dfu-util gcc@13 ``` Clone panda repository: ``` bash git clone https://github.com/commaai/panda.git cd panda ``` Install requirements: ```bash pip install -r requirements.txt ``` Install library: ``` bash 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 <