See CanBus
The [CAN Dash] was originally manufactured with STM32 microcontroller.
The 25pin version is more featureful, with
- more IO-s. HW has
- 20+ analog inputs
- temperature measurements
- multiple frequency/speed inputs
- and capable of input capacitive measurements for activation input buttons/switches
Firmware utilizes some of these, with more possibilities in the future.
See CanBus, 3 different firmware versions:
- BMW
- VAG (Audi)
- AIM see AimCanBusMessages (most data of these 3 versions)
Download firmware and tool from
- http://vems.hu/aim2can/
- small aim2can_DB25_v0.zip with
- roundloader.exe and 3 firmware files for the different CAN formats:
- aim2can_DB25_BMW.chex
- aim2can_DB25_VAG.chex
- aim2can_DB25_AIM.chex
Uploading (-c write) a different version (normally NOT necessary, if ordered with the desired version) takes only a few seconds
- verify takes appr 1 second
Important NOTE and commands:
- use VemsTune "Tools/Round emergency revive S-Flood" (disconnect or exit from VT)
- or send SSSSSSFlood.txt file with a few thousand "S" characters (min 80/line) from TerminalProgram 19200,8n1 when powering up aim2can HW (until response "AVR2.7" or similar) to enter bootloader before roundloader could overwrite (or verify) firmware:
- roundloader.exe -p COM3 -s 19200 -f aim2can_DB25_BMW.chex -c verify
- roundloader.exe -p COM3 -s 19200 -f aim2can_DB25_BMW.chex -c write
- COM7 was actually used for writing and verifying (currently 55 pages for BMW...chex), according to the actual FTDI USB-RS232 serial adapter in the actual PC
- see "PC => Manage HW => COM/Serial ports" or verify what worked with VemsTune
NOTE for the qurious: Normally the Round emergency revive S-Flood is only required if the FW upgrade was interrupted. However, it is currently needed (because the old roundloader cannot send special command to kick the new aim2can application into bootloader).
Commands to upload
Analog inputs: See AimToCanBusPinout
DSUB25 male pinout (analog/digital inputs/outputs)
- 1 - Analog 20 (with 5V pullup, PC4)
- 2 - Rx
- 3 - Analog 21 (5V pullup not populated by default, PC5)
- usable as 200mA low side output
- 4 - GND
- 5 - +5V (VCC in)
- 6 - Analog 23 (PC7)
- 7 - Analog 0 (PA0) Frequency/wheelspeed input_A
- 8 - Analog 17 (PC1)
- 9 - Analog 1 (PA1) Frequency/wheelspeed input_B
- 10 - Analog 2 (PA2)
- 11 - Analog 3 (PA3)
- 12 - Analog 4 (PA4)
- 13 - Analog 5 (PA5)
- 14 - Tx
- 15 - Analog 26 (with 5V pullup, PD2)
- 16 - Analog 15 (with 5V pullup, PB7)
- 17 - Analog 14 (with 5V pullup, PB6) +17V input range
- 18 - Analog 13 (with 5V pullup, PB5)
- 19 - Analog 12 (PB4)
- 20 - Analog 11 (PB3)
- 21 - Analog 10 (PB2)
- 22 - Analog 9 (PB1)
- 23 - Analog 8 (PB0)
- 24 - Analog 7 (PA7)
- 25 - Analog 6 (PA6)
ADCMUX_ADC0_PA0, = > 0k
ADCMUX_ADC1_PA1, = > 0k
ADCMUX_ADC2_PA2, = > 0k
ADCMUX_ADC3_PA3, = > 0k
ADCMUX_ADC4_PA4, = > 0k
ADCMUX_ADC5_PA5, = > 0k
ADCMUX_ADC6_PA6, = > 0k
ADCMUX_ADC7_PA7, = > 0k
ADCMUX_ADC8_PB0, = > 0k
ADCMUX_ADC9_PB1, = > 0k
ADCMUX_ADC10_PB2, = > 0k
ADCMUX_ADC11_PB3, = > 0k
ADCMUX_ADC12_PB4, = > 0k
ADCMUX_ADC13_PB5, = > 0k
ADCMUX_ADC14_PB6, = > 0k (but lower readings, because of )
ADCMUX_ADC17_PC1, = > 0k
ADCMUX_ADC20_PC4, = > 0k
ADCMUX_ADC21_PC5, = > 0k
ADCMUX_ADC23_PC7, = > 0k
ADCMUX_ADC26_PD2 }; => !! ONLY WORKS WITH RESET disabled FUSE set !!
Hi, I'm currently trying to flash one unit to bwm specifications, I managed to get it into boot mode by sending file with loads of SSSS