Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions ESCaped.ino
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
//DNA Mode definitions
#define DNA_RACE 0x31
#define DNA_DYNAMIC 0x9
#define DNA_NEUTERED 0x1//might have swapped with A mode
#define DNA_AWFUL 0x11//might have swapped with N mode
#define DNA_NATURAL 0x1//might have swapped with A mode
#define DNA_ADVANCEDEFFICIENCY 0x11//might have swapped with N mode

#define SPI_CS_CAN 9

Expand Down Expand Up @@ -60,7 +60,7 @@ void setup()
}

void handle_tcesc_control() {
if(tcesc_buf[1] != DNA_NEUTERED && tcesc_buf[1] != DNA_DYNAMIC && tcesc_buf[1] != DNA_AWFUL && tcesc_buf[1] != DNA_RACE)
if(tcesc_buf[1] != DNA_NATURAL && tcesc_buf[1] != DNA_DYNAMIC && tcesc_buf[1] != DNA_ADVANCEDEFFICIENCY && tcesc_buf[1] != DNA_RACE)
return;//sanity check, don't want to send random shit to module if buffer corrupt/incorrect
if(tc_disable && tcesc_buf[1] != DNA_RACE)
tcesc_buf[1] = DNA_RACE;//TCESC disable from Giulia QV in race mode
Expand Down
20 changes: 13 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,23 @@
# giulia_ESCape
A fork of beaups/giulia_ESCape, but being tailored to the 2.0, non-Quadrifoglio, Giulia.

Traction Control enable/disable for the Alfa Romeo Giulia via Arduino + canbus module

This is a simple Arduino project that enables/disables traction control in any (R)DNA mode via pressing the left stalk button (LDW) for ~2 seconds.
Future enhancements may include the following:
- Disable AWD (unlock center diff/transfer case) to essentially make it RWD.
- Engine RPM output for aftermarket tach and/or shift light.

This is an Arduino project that enables/disables traction control in any (R)DNA mode via ~~pressing the left stalk button (LDW) for ~2 seconds.~~ center console MENU button and steering wheel cruise control buttons “RES”/toggle. This is an evolving configuration, so may change as development progresses.

This has been tested on my 2018 Giulia Quadrifoglio (late 2017 built). It is untested on 2.0 Giulias. It is unteted on Stelvio. It is untested on vehicles with the Secure Gateway module.
This has been tested on Beaups 2018 Giulia Quadrifoglio (late 2017 built). It is (yet) untested on 2.0 Giulias. It is untested on Stelvio. It is (yet) untested on vehicles with the Secure Gateway module.

You assume all risk for using this. You are interfacing with the stability control systems on an $80,000 car with a $10 computer. It's very possible something could go very wrong...like loss of critical safety functions. Seriously, this code is provided for informational purposes only. You should not use it on an actual car.
You assume all risk for using this. You are interfacing with the stability control systems on a $50,000 car with a $50 computer. It's very possible something could go very wrong...like loss of critical safety functions. Seriously, this code is provided for informational purposes only. You should not use it on an actual car.

You will need a few items:

1.) An Arduino Uno
2.) A CAN-BUS Shield V2 https://www.amazon.com/seeed-studio-CAN-BUS-Shield-V2/dp/B076DSQFXH
3.) A way to access the CAN-CH bus. This is not the primary can bus. There are various places to access the CAN-CH bus (I'm using a connector in the trunk), but the most convenient place to access is is via pins 12 and 13 at the OBD port. If you've bought an OBD cable set for your Alfa, you will want to use the gray adapter cable. Additionally you will need an OBD->DB9 cable. I purchased this one: https://www.amazon.com/gp/product/B01ETRINYO/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1
4.) Power - The canbus shield has an option for you to power the entire setup via the power provided by the OBD port. This seems to work fine for testing, but automotive voltage is a bit higher than optimum for the Arduino. Also, it's possible to drain your car's battery if you choose to power the arduino via OBD port.
1. An Arduino Uno
2. A CAN-BUS Shield V2 https://www.amazon.com/seeed-studio-CAN-BUS-Shield-V2/dp/B076DSQFXH
3. A way to access the CAN-CH bus. This is not the primary can bus. There are various places to access the CAN-CH bus (I'm using a connector in the trunk), but the most convenient place to access is is via pins 12 and 13 at the OBD port. If you've bought an OBD cable set for your Alfa, you will want to use the gray adapter cable. Additionally you will need an OBD->DB9 cable. I purchased this one: https://www.amazon.com/gp/product/B01ETRINYO/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1
4. Voltage regulator for a permanent installation - https://smile.amazon.com/gp/product/B07WQJ2GD6/ The canbus shield has an option for you to power the entire setup via the power provided by the OBD port. This seems to work fine for testing, but automotive voltage is a bit higher than optimum for the Arduino. Also, it's possible to drain your car's battery if you choose to power the arduino via OBD port.

You'll need the CAN-BUS Shield Library. ***IMPORTANT*** There seems to be a bug in this library, or some implementation issue. As the library ships, setting masks and filters is very hit or miss. I've solved it by adding a small delay (100ms) after the controller switches into config mode via mcp2515_setCANCTRL_Mode(MODE_CONFIG) in both the init_Mask() and init_Filt() functions. If you do not make these two changes, the application is going to be working on a *lot* more packets than it needs to. It could cause the packets we want to be filtered out erroneously.