06-10-2019, 04:45 PM | #2223 | |
Major
1084
Rep 1,048
Posts |
Quote:
Edit: my main issue is that it does not load directly into the Anbdroid BMW GUI, its showing a lockscreen when it does start. sincerely Chri Last edited by Kri; 06-10-2019 at 04:54 PM.. |
|
Appreciate
0
|
06-11-2019, 12:15 AM | #2224 | |
Private
8
Rep 67
Posts |
Quote:
Download the update, copy the px6.zip to a clean FAT32 formatted USB stick and insert it on the usb connector from the device. Wait a moment then will pop up a window for starting the update. Last edited by Svenson; 06-11-2019 at 01:46 AM.. |
|
Appreciate
0
|
06-11-2019, 03:14 AM | #2225 | |
Major
1084
Rep 1,048
Posts |
Quote:
sincerely Chri |
|
Appreciate
0
|
06-11-2019, 04:14 AM | #2226 |
Private First Class
50
Rep 139
Posts
Drives: BMW 5 series E60, Mercedes S
Join Date: Apr 2019
Location: Amsterdam, Netherlands
|
So I patched the unit in my car today using the original firmware update procedure and it does not dim anymore.
I talked about the car type that is encoded in the flash file as the last 10 bytes of the file and is also in flash memory and that the bootloader checks wether they match. If they don't, the update process will hang on the "waiting to become ready". This is a signal that the firmware is NOT compatible with your device. Don't try to flash it then. However my car type id was corrupt in memory: Code:
06-11 08:52:19.555 8472 8472 I UpdateMcuService: onReceive: action: com.choiceway.eventcenter.EventUtils.KSW_ZXW_MCUUPGRADE_MCU_ARM_EVT 06-11 08:52:19.572 8472 8498 I UpdateMcuService: --->>> KSW mcu_upgrade byRecvdata[i] = 0x41; fileData[fileData.length - 10 + i] = 0x41 06-11 08:52:19.573 8472 8498 I UpdateMcuService: --->>> KSW mcu_upgrade byRecvdata[i] = 0x51; fileData[fileData.length - 10 + i] = 0x51 06-11 08:52:19.573 8472 8498 I UpdateMcuService: --->>> KSW mcu_upgrade byRecvdata[i] = 0x44; fileData[fileData.length - 10 + i] = 0x42 06-11 08:52:19.573 8472 8498 I UpdateMcuService: --->>> KSW mcu_upgrade byRecvdata[i] = 0x0; fileData[fileData.length - 10 + i] = 0x0 06-11 08:52:19.573 8472 8498 I UpdateMcuService: --->>> KSW mcu_upgrade byRecvdata[i] = 0x4f; fileData[fileData.length - 10 + i] = 0x4d 06-11 08:52:19.573 8472 8498 I UpdateMcuService: --->>> KSW mcu_upgrade byRecvdata[i] = 0x0; fileData[fileData.length - 10 + i] = 0x0 06-11 08:52:19.573 8472 8498 I UpdateMcuService: --->>> KSW mcu_upgrade byRecvdata[i] = 0x59; fileData[fileData.length - 10 + i] = 0x57 06-11 08:52:19.573 8472 8498 I UpdateMcuService: --->>> KSW mcu_upgrade byRecvdata[i] = 0x0; fileData[fileData.length - 10 + i] = 0x0 06-11 08:52:19.573 8472 8498 I UpdateMcuService: --->>> KSW mcu_upgrade byRecvdata[i] = 0x15; fileData[fileData.length - 10 + i] = 0x15 06-11 08:52:19.574 8472 8498 I UpdateMcuService: --->>> KSW mcu_upgrade byRecvdata[i] = 0x14; fileData[fileData.length - 10 + i] = 0x14 06-11 08:52:19.574 8472 8498 I UpdateMcuService: --->>> KSW 车型匹配失败 "车型匹配失败" translates to "Model Matching Failed". Unfortunately the UI is not updated then. It's only visible in the log. Note that the B M W characters in the firmware file are D(B+2) O(M+2) Y(W+2) in my memory. These seem corrupt. All other numbers match. So I took a chance and updated the firmware bytes in the update file and it flashed without issues. What I will do is start patching MCU updates and placing links on the wiki to the patched binaries. I'll also update the wiki with this knowledge. And last: nomorebigideas If you can send me either a picture of your MCU string from the settings info screen or the update file from the unit in your car: Then I'll patch yours first, you sent me the test unit after all. |
Appreciate
0
|
06-11-2019, 04:15 AM | #2227 |
Private First Class
50
Rep 139
Posts
Drives: BMW 5 series E60, Mercedes S
Join Date: Apr 2019
Location: Amsterdam, Netherlands
|
You also need to set the partition table type to MBR. A Guid partition table isn't understood. Also, make sure your USB drive does not exceed 32GB.
|
Appreciate
0
|
06-11-2019, 04:31 AM | #2228 | |
Private First Class
31
Rep 190
Posts |
Quote:
Have you seen in your disassembly process if there are timing options for shutting down the unit? For now is 30sec . Is there code for that? |
|
Appreciate
0
|
06-11-2019, 04:36 AM | #2229 |
Private First Class
50
Rep 139
Posts
Drives: BMW 5 series E60, Mercedes S
Join Date: Apr 2019
Location: Amsterdam, Netherlands
|
I still have to look at that. I found some shutdown code, but it seems to send the shutdown command immediately. It might be that it takes android 30 seconds to do a graceful shutdown though and that that is the 30 seconds you measure.
|
Appreciate
0
|
06-11-2019, 04:43 AM | #2230 | |
Private First Class
31
Rep 190
Posts |
Quote:
It sends the shutdown command immediately after the key is off ? It reads that through CAN BUS i guess . If that can be altered it will be very nice . I am trying to think why there isn`t an option for this. Maybe the consumption is too much and drain the battery ? Have you measured the current consumption with the unit in standby or even when a navigation app is running? We could then have a thought about if that is possible without draining the car battery so much , although i do not think that a battery can have any problem with that because the CCC is working for 8 minutes if i am correct without the key on ignition in the OEM system and powers the screen also. Another thing is that although the sound from radio is working without the ignition key why the screen does not power up? Maybe that can be solved with rewiring ??? |
|
Appreciate
0
|
06-11-2019, 05:24 AM | #2231 |
New Member
0
Rep 21
Posts |
Dear Fred, what do You think - is it possible to reassign actions on idrive buttons or to make actions for idrive buttons which are not used by default for some reason? Thx
|
Appreciate
0
|
06-11-2019, 05:46 AM | #2232 | |
Private
6
Rep 63
Posts |
Quote:
You may have to tell people with non 10.35" screens how to update the MCU, as 8.8" users don't have an onboard SD card reader. The USB method just hangs constantly. |
|
Appreciate
0
|
06-11-2019, 06:43 AM | #2233 | |
Private First Class
50
Rep 139
Posts
Drives: BMW 5 series E60, Mercedes S
Join Date: Apr 2019
Location: Amsterdam, Netherlands
|
Quote:
|
|
Appreciate
0
|
06-11-2019, 06:44 AM | #2234 |
Private First Class
50
Rep 139
Posts
Drives: BMW 5 series E60, Mercedes S
Join Date: Apr 2019
Location: Amsterdam, Netherlands
|
This is something I will be working on next. After I've cleaned up and patched al the MCU's around.
|
Appreciate
0
|
06-11-2019, 08:52 AM | #2235 |
Private First Class
50
Rep 139
Posts
Drives: BMW 5 series E60, Mercedes S
Join Date: Apr 2019
Location: Amsterdam, Netherlands
|
OK, patches are here:
https://github.com/chinesebmwheadunits/mcu In case anyone has another MCU update (different hardware string), i'd be very interested. |
Appreciate
0
|
06-11-2019, 09:35 AM | #2236 | |
Private
27
Rep 87
Posts |
Quote:
I have the MCU version on the photo (AVIN USA PX6 bought last month). If I do the MCU update you published what can I expect new from my unit? It doesn't dims anymore, is that so? Thanks, and sorry for the question! |
|
Appreciate
0
|
06-11-2019, 09:40 AM | #2237 | |
Private First Class
50
Rep 139
Posts
Drives: BMW 5 series E60, Mercedes S
Join Date: Apr 2019
Location: Amsterdam, Netherlands
|
Quote:
Let me know if it works BTW. Last edited by __fred__; 06-11-2019 at 09:47 AM.. |
|
Appreciate
2
antonius201827.00 amfgray0.00 |
06-11-2019, 09:49 AM | #2238 | |
Private
27
Rep 87
Posts |
Quote:
Thank you! I'm a little afraid I'll do something wrong, but let's see if get the courage to do it. Last edited by antonius2018; 06-11-2019 at 10:50 AM.. |
|
Appreciate
0
|
06-11-2019, 10:17 AM | #2239 | |
Private First Class
31
Rep 190
Posts |
Quote:
How you managed to install the new MCU file since it compares with that id? My unit has in the MCU field 035243bYC-CCC-HW8-180921 Can i use any of these MCU files or it will not install??? |
|
Appreciate
0
|
06-11-2019, 10:19 AM | #2240 | |
New Member
0
Rep 21
Posts |
Quote:
As I understand You are dealing with MCU of android 7 HU, will it be suitable to use with HU8? |
|
Appreciate
0
|
06-11-2019, 10:22 AM | #2241 |
Private First Class
50
Rep 139
Posts
Drives: BMW 5 series E60, Mercedes S
Join Date: Apr 2019
Location: Amsterdam, Netherlands
|
I found something in the firmware that is interesting and unusual. Almost all development of embedded microcontrollers is done in good old C. A C compiler is almost always available and in case the chip does not run a full OS, the toolchain of the microcontroller manufacturer or something similar is used. It's almost always an assembler and C toolchain.
Almost all C compilers use null terminated strings. You can recognize a function like strlen (which calculates the length of a string) in assembly from a mile away because it needs to look for a NULL character in the string to find its length. When strings are passed between functions, the stack can be used in C as well. In the firmware from these units, the compiled code uses length prefixed strings where the length of the string is stored before the first character. These are called Pascal-strings because Pascal is a major language that stores it's strings in Length-prefixed format. They are also always pointers to the heap. Never stack allocated. So I started looking for Pascal compilers that are available for STM32 microcontrollers and it turns out that there is only ONE compiler (apart from open source) available: https://www.mikroe.com/mikropascal-arm I'm pretty sure that this is the IDE + toolkit that was used to assemble our firmware. I'm planning on downloading and installing the IDE as it has more than 1200 library functions. It might be that it's easier to recognize functions based on the source code. It seemed strange to me that I could not really recognize any of the initialization code in the firmware, based on the initialization code that ST provides itself. When you compile the example code from ST to initialize the clock etc. it's really different from our MCU code). This could be a logical explanation. TBC.... |
Appreciate
1
antonius201827.00 |
06-11-2019, 10:24 AM | #2242 | |
Private First Class
50
Rep 139
Posts
Drives: BMW 5 series E60, Mercedes S
Join Date: Apr 2019
Location: Amsterdam, Netherlands
|
Quote:
To be safe, only install 2019 version in the MCU repository. These come from PX6, android 8 units. |
|
Appreciate
1
amfgray0.00 |
06-11-2019, 11:07 AM | #2243 |
New Member
0
Rep 21
Posts |
Thx, and what do You think about different manufacturers: mine is 045247bXHCN, and Your is 023042bGS. Looks completely different Your thought about interchangeability
|
Appreciate
0
|
Post Reply |
Bookmarks |
|
|