https://github.com/jakka351/barra-in-a-beamer
Barra in a 7 Series BMW
https://github.com/jakka351/barra-in-a-beamer
bmw can-interfacing car-hacking ford spanishoak
Last synced: 3 months ago
JSON representation
Barra in a 7 Series BMW
- Host: GitHub
- URL: https://github.com/jakka351/barra-in-a-beamer
- Owner: jakka351
- Created: 2023-10-09T15:12:43.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-20T04:37:06.000Z (3 months ago)
- Last Synced: 2025-02-20T05:28:54.771Z (3 months ago)
- Topics: bmw, can-interfacing, car-hacking, ford, spanishoak
- Language: C++
- Homepage: https://testerpresent.com.au/
- Size: 15.2 MB
- Stars: 11
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

Installing a Ford Falcon Barra engine into a 2009 BMW F01 7 Series 730D.
Arduino Script in `main` folder, CAN Data in `logs` folder.

## Summary
Using a dual CAN interface to recieve data from both the Barra CANbus and the BMW CANbus, and to transfer it between the buses. The two buses are to be isolated from each other, with data being transferred via the interface.## Checklist Items
- Decode Barra CAN Messages & Convert for BMW Cluster
- `Implement checksum algo and counter for BMW data bytes 0 and 1 for sent messages`
- Decode BMW DME CAN Messages that need to be emulated `emulator almost finished`
- Malfunction Indicator Lamps from Barra PCM > BMW cluster
- Set Vehicle Speed Source to be `ABS via CAN` in Barra PCM - 6HP26 TCM can provide speed source to PCM.
- Emulate CAN Message for Vehicle Speed Source input on CAN ID 0x4B0 (Emulating the Falcon ABS Module using the BMW ABS Data)
- What is needed to get BMW factory ABS functional?
- Emulate missing DME CAN messages due to removal of DME & TCM modules
- Disable Passive Anti-theft System in Barra PCM
- Fit a second OBD port for Barra PCM diagnostics (4 GND, 5 GND, 16 12V, 6 CAN H, 14 CAN L, FEPS Pin 13) `Wiring Harness finished`
- Install interface board into vehicle
- Throttle / Accelerator pedal input into PCM `BMW Accelerator pedal should function with Barra PCM`
- HVAC and compressor control needs to be thought out `BMW Compressor mounted on Barra with custom mounts, controlled by factory HVAC`
- Brake Status input into PCM
- Cruise control neede to be thought out > `Auto Electrician`
- BMW shifter to run Ford 6HP26 `Gear Selector should function wired up to Ford 6HP26 Transmission`
- Engine Start/Stop Button > `Auto Electrician`
- Tyre/Wheel/final drive needs to be set in PCM
- `Deutche plug kit to make up adaptor wiring harness for accelerator pedal assembly`
## Software Required
![]()
![]()
![]()
- `PCMTEC`
For programming and configuring the Barra Powertraim Control Module.
- `FORscan`
For diagnostics and fault finding.
- `Arduino IDE`
For flashing the microcontroller used as the CAN interface.
- `Sublime Text`
My preferred text editor for coding.
- `Putty`
Used to SSH into the Raspberry Pi and and sniff CAN Data
- `SocketCAN`
Used to pull raw CAN data from the vehicle.
- `Libreoffice Calc`
Interpreting CAN data## Hardware Required
- Raspberry Pi 4 with PiCAN3 hat
- Longan Labs CANbed development board
- OBD power isolator & various adaptors
- Multimeter
- J2534 Tool
## CAN data from the BMW PT-CAN
Pulling Data from the car with a Raspberry Pi + SPI-MCP2515, wired up to PT-CAN_1 at Kombi connector, powered via OBD port


Isolating individual ECUs to determine CAN frame origin by pulling ECU power fuses.


Prototype interface board

2nd OBD port wiring harness ready to be installed, with FEPS wiring and CAN High, CAN Low to enable diagnostics and programming of the barra PCM.
## Calculating Checksums & Counters
Each CAN Message that is sent out onto the PT-CAN contains both a checksum and a counter byte, the checksum is at byte[0] and the counter is byte [1].
Here we are emulating the BMW checksum and counter byte on socketcan virtual interface. This has now been implemented into the Arduino code using a CRC8 checksum calculation.
## Driving the Kombi (Instrument Cluster)
Wiring the Kombi up to 12 Volts power, Ground and PT-CAN Hi & Low.
## Wiring Diagrams
DDE:

EGS:

KOMBI:

## Relevant Information
[`FG Falcon Git Repo`](https://github.com/jakka351/FG-Falcon)
[`Notes on Stand Alone PCM Setup`](https://forum.pcmtec.com/topic/32-howto-run-pcm-standalone-eg-engine-swap-pats-disable-and-speed-source-setup/)
[`Notes on ABS Module config`](https://forum.pcmtec.com/topic/872-howto-abs-reprogramming/)
[`BMW Kombi Pin out`](https://www.bimmerfest.com/threads/730d-instrument-cluster-pinout.1459534/#post-13880013)## Based Upon
[`Original ECU HSCAN Interface `](https://github.com/jakka351/FG-Falcon/blob/master/resources/software/arduino/ECU_HS_CAN_Interface.ino)[`by Mitchell H`](https://www.fordforums.com.au/member.php?u=2315299)## Documentation
Relevant BMW and Ford documents are in the Docs folder.
***
