License

Public Domain

Recommend Projects

E39-EV-Dashboard

1 year ago 162
  • Description
  • Documents
  • BOM
  • Attachments
  • Members
  • Comments

Description

As Part of my BMW E39 (5-Series) EV Conversion.

Replaces the circuit board in the IKE instrument cluster with a digital equivelent.

This board is controlled from another board serially (for LEDs) and via I2C (for the 240x160 LCD Screen)

The good.

  1. The footprint is now OK and fits perfect
  2. The LED placement is good
  3. Powers on, all LEDs seem to work (resistor changes may be required to achieve correct intensity range and balance between LEDs but a lot can be done in formware)

the bad

  1. Wrong pins for MPU/I2C to RTC and DAC so will need to bit-bang to use
  2. Wrong footprint for LCD cable, slightly too wide, can just be made to fit though
  3. Bad assumption that Open-Drain MPU pins can be used above 3.6V. works for now but 5VB adjustable voltage line should not go above 3.6V without external MOSFETS driving them. Because of this the blue and green LEDs too dim
  4. Also driving too many LEDS (31) so current limit resistor needs to be 1000 hours // SAVED TO EEPROM when ign goes off

uint8 MSG[16] = "----------------"; // #M=HELLO WORLD

uint8 HVBAT = 0; // #B=255 will be mapped to 16 segment graph display value can be from 0 (Empty) to 255 (Full) uint8 LHInd = 0; // #LHI=3 will flash 3 times counting down each flash and stop at 0 uint8 RHInd = 0; // #RHI=3 will flash 3 times counting down each flash and stop at 0 uint8 HB = 0; // #HB=1 will turn high beam LED on for 1 second uint8 PX = 0; // #PX=5 will turn proximity LED on for 5 seconds set MSB to flash uint8 HL = 0; // #HL=1 will turn headlight LED on, HL=0 will turn headlight LED Off uint8 TL = 0; // #TL=1 will turn tamper LED on, TL=0 will turn tamper LED Off uint8 EF = 0; // #EF=1 will turn engine fault LED on, EF=0 will turn engine fault LED Off uint8 CG = 0; // #CG=1 will turn charge LED on, CG=0 will turn charge LED Off uint8 TC = 0; // #TC=1 will turn traction control LED on, TC=0 will turn LED Off uint8 HBR = 0; // #HBR=1 will turn handbrake LED on, HBR=0 will turn LED Off uint8 WARP = 0; // #WARP=1 will turn Warp LED on, WARP=0 will turn LED Off uint8 CRU = 0; // #CRU=1 will turn CRUISE LED on, CRU=0 will turn LED Off uint8 SB = 0; // #SB=1 will turn SEATBELT LED on, SB=0 will turn LED Off uint8 AB = 0; // #AB=1 will turn AIRBAG LED on, AB=0 will turn LED Off uint8 ABS = 0; // #ABS=1 will turn ABS RED LED on, ABS=2 will turn ABS Green LED On, MSB=Flash, ABS=0 Will turn LEDs OFF uint8 BF = 0; // #BF=1 will turn BRAKE FAULT RED LED on, BF=2 will turn BRAKE FAULT GREEN LED On, MSB=Flash, BF=0 Will turn LEDs OFF uint8 BAT = 0; // #BL=0-7 Bit 0 is Blue LED, Bit 1 is Green LED, bit 2 is Red LED, any combintation of bits, MSB=Flash, BL=0 Will turn LEDs OFF uint8 INV = 0; // #INV=0-7 Bit 0 is Blue LED, Bit 1 is Green LED, bit 2 is Red LED, any combintation of bits, MSB=Flash, INV=0 Will turn LEDs OFF uint8 MTR = 0; // #MTR=0-7 Bit 0 is Blue LED, Bit 1 is Green LED, bit 2 is Red LED, any combintation of bits, MSB=Flash, INV=0 Will turn LEDs OFF

void attribute((interrupt, no_auto_psv)) _T1Interrupt(void) // 1mS tick interrupt { counter1++; counter2++; IFS0bits.T1IF = 0; // Clear Timer1 interrupt flag }

void attribute ((interrupt, no_auto_psv)) _U1RXInterrupt(void) // RX UART Data { RXBuffer[RXBufPtr] = U1RXREG; if (RXBufPtr2000) { OutNUM(n); if(n++>11) n=0; counter2=0; }

}

}

Documents

E39 digital Instrument Panel

Alpha-Numeric

E39 Double Din Plate

BOM

None

Attachments

None

Members

Success
The owner does not allow comments in this project now

Comments (0)

goToTop
你现在访问的是EasyEDA海外版,使用建立访问速度更快的国内版 https://lceda.cn(需要重新注册)
如果需要转移工程请在个人中心 - 工程 - 工程高级设置 - 下载工程,下载后在https://lceda.cn/editor 打开保存即可。
有问题联系QQ 3001956291 不再提醒
svg-battery svg-battery-wifi svg-books svg-more svg-paste svg-pencil svg-plant svg-ruler svg-share svg-user svg-logo-cn svg-double-arrow
We use cookies to offer you a better experience. Detailed information on the use of cookies on this website is provided in our Privacy Policy. By using this site, you consent to the use of our cookies.