e9x bench setup


Jul 26, 2018
bmw e92 n55 335i Sport manual
Hi SaNGRia ,

I know you, we have spoken many times before, while i have a full bench module setup, I have also been working on a Arduino solution, its not 100% finished but does work (sort of).

I can understand the guys point of view, I myself have done hundreds of hours on it trying to perfect it and get it right.

Posting on forums with working solutions normally means that others profit from your work, I too don't really mind helping other forum members out (and have done), but filling the pockets of people who just want to make a quick buck, leaves a nasty taste in the mouth, these people don't normally offer support (as they don't know what they are doing), and support falls back on the original poster (this has happened to me many many times), helping people who have paid others for your work, is not why you posted in the first place.

The code you have there will work but you need the timings to be right.

I'm more than happy to help you mate, as I know you are a proper bmw enthusiast, but only by posting you an Arduino with the code already loaded and working, you would just need to connect the wires, the MCP2515 Canbus module and a push switch and a slide switch (the E and F have different ignition codes and bus speeds) so need to be selected at Arduino start up.

I need to do some more work with the coding over the Easter break.

You will need.

2x resisters (anything that you have laying around).
1x push switch
1x slide switch
1x MCP2515 Canbus module
some wires and a solder station

You dont need a jbbr for the e series to work, but you do need a zgw for the f series. (im still working on why (i suspect thate zgw sends a command, but ive not found it yet.))

You can have a led connected to tell you when the "ignition" is on, but its not needed. (if you do you need an LED and a resister (a 330 will do).

I'll assume that you will be using the USB port from the laptop to supply the power, or you can use a 12v to 5v adapter. (for standalone bench use).

As for the Ardunio, you can either send me one or I can supply it at cost, I wont change for the coding, so that would be FOC, but just cover the postage.

If you want to have a stab at it yourself, then there are plenty of canbus sketches that get you started, something like this

This is for the F series, its an example, and if you were to load it on a ardunio it would probably work, (but needs tweaking )

// CAN Send Example

#include <mcp_can.h>
#include <SPI.h>

MCP_CAN CAN0(10); // Set CS to pin 10

void setup()

// Initialize MCP2515 running at 16MHz with a baudrate of 500kb/s and the masks and filters disabled.
if(CAN0.begin(MCP_ANY, CAN_500KBPS, MCP_16MHZ) == CAN_OK) Serial.println("MCP2515 Initialized Successfully!");
else Serial.println("Error Initializing MCP2515...");

CAN0.setMode(MCP_NORMAL); // Change to normal mode to allow messages to be transmitted

const byte Stay_alive[8] PROGMEM = {0x00, 0x00, 0x8A, 0xDD, 0xF1, 0x15, 0x30, 0x02}; // 0x130, Wake up network
const byte Ignition_1[8] PROGMEM = {0x00, 0x40, 0x7F, 0x50, 0xFF, 0xFF, 0xFF, 0xFF}; // 0x26E, Ignition stage 1
const byte Ignition_2[8] PROGMEM = {0x40, 0x40, 0x3F, 0x50, 0xFF, 0xFF, 0xFF, 0xFF}; // 0x26E, Ignition stage 2

void loop()
// send data: ID = 0x130, Standard CAN Frame, Data length = 8 bytes, 'data' = array of data bytes to send
byte sndStatWake = CAN0.sendMsgBuf(Module_Wake, 0, 5, Wake_on);
byte sndStatIgn = CAN0.sendMsgBuf(Module_Ign, 0, 8, Ignition_1);

if(sndStat == CAN_OK){
Serial.println("Message Sent Successfully!");
} else {
Serial.println("Error Sending Message...");
delay(100); // send data per 100ms


You need to load the canbus library,i can send you a link to the lib (use the one by Cory Fowler), its the best one to start with.

PM me direct if you want more info mate.


New Member
Mar 12, 2020
Bro, i am so appreciative for you. And i know what it feels like when someone who tries to take advantage from you and use your hard work for their quick hits. And believe me there is couple of people i know of made money from my very well written DIYs. But at the end i personally never lost. I win and win more win :) And i dont believe that i would have steal his biz all the way from FLorida to Germany since it is a Bench Setup meaning that if i ever try to do business out of it at least i wouldnt offer for an international service :) But anyway i am so thankful for many people in many forums who is trying and finding many solutions. Just like TokenMaster's free licence key, at the end the ones who does the job, wins! I will PM you .


Jan 23, 2021
It seems that I need supply 12V to this pin and JBBF does not turn off now (since I dont have proper CAS with matching key and so on)