Revtor, are you planing any new releases?
ZetaTre
2003 BMW Z4 2.5i
2009 BMW X5 xDrive35d
2006 Ducati 999S
2012 Ram 2500 Laramie Longhorn 6.7 Cummins
LPCapital: Definitely yes! The current development version has several exciting new features. I had hoped to release a new version months ago already, but work has kept me from finishing up...
Great writeup Revtor
I finally decided to do some research on the functions and use of NCS Expert and saw your writeup. I would like to ask the following as i am running NCS Expert v 3.0.8 and do not know if this is the cause of the situation i am encountering.
In the C:NCSEXPER/work folder. i do not have the two files FSW_PSW.TRC" and "NETTODAT.TRC . My NCS work folder has the following files
ABLAUF.TRC
ASW1.TRC
ASW2.TRC
SYSDATEN.TRC
EMPTY DATA FOLDER
I added the revtor profile without any problems and added the file ravtor mentions in the NCS/work folder. When i access the NCS actual program, i can select the revtor profile and select the specific chassis code.
What could be wrong? Is an upgrade to v3.1 the problem? If so, what do i need? I saw there is BMW standard tools v2.4 and v2.5. I used version 2.5 to install the good working version of WinkFP and before doing so, i backed up my inpa.ediabas folders and repasted them once the v2.5 standard tools installed.
INPA, SSS, GT1 DIS V57 are all functional. I have not yet used WinKFP, but appears to be in perfect working order after i finally had the assembly data imported and the ecu and SGDAT folders updated as well. Thanks to TerraPhantm for the help getting this setup.
UPDATE
I just found the NCS V3.1 posted by Terraphantm and thus will do the upgrade and see if those files now appear in the work folder of the NCS
Did the update and now the files are present in the work folder. All is the way it should be.
Regards,
Mark
Last edited by se93; 06-02-2011 at 12:52 AM.
Months and months overdue, but it's finally here: NCS Dummy 0.5.0.0!
What was set out to be a small update to version 0.4.0.0 turned out into a complete rewrite of the application. Along the way several new features were implemented, like a graphical trace editor, a disassembly/assembly tool for NCS Expert data files and the ability to perform cross references between the parameters and the order options. The new version should also finally support all nettodata trace file types.
I just finished a massive overhaul of the opening post of this topic. You can find the download link in there. I suggest to read the whole post to familiarize yourself with the new features.
I hope you will all like the new version! Enjoy!
you have been busy... wow!
Cool. Thks Rev.
95 840Ci, Calypso Red/Silver, 83k - 99 740i, Black/Black, 185k, Alpina Mods - 01 740i, Titanium/Silver, 40k, Sport Pkg
Complete Turnkey Diagnostic/Programming systems available...PM for details.
http://www.8Coupe.com - Please register, spot, and help the project.
Amazing job revtor, the app is so much better now.
Sorry i didn't reply any sooner, russiane39, but I only noticed your message after re-reading the whole thread...
Just like you I have absolutely no idea what the "OPERATION" field is used for and what data it represents. I couldn't find any relation to other data fields. In my own disassembly/assembly tool (which is now included in the new NCS Dummy 0.5.0.0) the field is simply displayed as a byte array due to lack of a better, more meaningful presentation. Did you in the mean time find out what the field is for?
Update: I figured it out. Scroll down to my next post.
Last edited by revtor; 06-27-2011 at 02:46 AM.
I am a newbye I met NCSdummy and got the idea to start studying it but I realized was missing capability to operate with E83...today I went throug this post and downloaded version 5. Well I have to say, even being not an expert, it is a big step ahead...I will now study very hard to get into this amazing world.
Great job mate!
I could show my german car but I prefer to show an italian product ...my wife's boobs
I took another look at this and I think I found the meaning and use of the "OPERATION" field. I parsed all module files and it caught my attention the operation is always used on the same functions. Almost all occurences of the operation are on function FAHRGESTELL_NR. In a few cases it also occurs on FAHRGESTELL_NR_KOMPL, GM_SCHLUESSEL, SA_SCHLUESSEL, VN_SCHLUESSEL, AM_SCHLUESSEL and CODIERDATUM. The first byte represents an ASCII character as you already figured out. Only four characters occur over all files:These are all clearly operator symbols and the field name already implies it's an operation... but on what? Simple: the nettodata.
- 21h: ! (exclamation mark)
- 2Bh: + (plus)
- 2Dh: - (minus)
- 3Eh: > (greater than)
! is an inversion operator, + and - addition and subtraction operators, and > a bitwise right shift operator. The inversion operator takes only one operand (the nettodata) and the others take two (the nettodata and the byte following the operator character). I'm not sure why the OPERATION field has 4 bytes following the operator because only one (or perhaps 2 in case of word values) is ever used. Maybe this is for future functionality? Multiple operations per function are possible (for example a subtraction and right shift). Listed below are the operations found in all modules (unused bytes are in grey):! only occurs in the E31 EKM module on FAHRGESTELL_NR_KOMPL (inverted vehicle identification number). An excerpt:
- ! 00 00 00 00 (invert nettodata)
- + 00 00 00 00 (add 00h to nettodata - a bit pointless in my opinion)
- + 02 00 00 00 (add 02h to nettodata)
- - 30 00 00 00 (subtract 30h from nettodata)
- > 01 00 00 00 (bitwise right shift 1 bit)
- > 02 00 00 00 (bitwise right shift 2 bits)
- > 04 00 00 00 (bitwise right shift 4 bits)
For some reason, the VIN is stored inverted in this module. This car's VIN starts with "CC61" which translates to 43,43,36,31 in hexadecimal bytes. Inverting 43,43,36,31 returns BC,BC,C9,CE as seen in the excerpt above.Code:FUNCTION KEYWORD ADDRESS (LENGTH) MASK PARAMETER KEYWORD DATA MASKED ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ FAHRGESTELL_NR_KOMPL[1] 000000EF (01) FF <tatsächlich> BC BC FAHRGESTELL_NR_KOMPL[2] 000000F0 (01) FF <tatsächlich> BC BC FAHRGESTELL_NR_KOMPL[3] 000000F1 (01) FF <tatsächlich> C9 C9 FAHRGESTELL_NR_KOMPL[4] 000000F2 (01) FF <tatsächlich> CE CE
original 43 = 01000011 | 43 = 01000011 | 36 = 00110110 | 31 = 00110001
inverted BC = 10111100 | BC = 10111100 | C9 = 11001001 | CE = 11001110
The E31 VIN is always two letters succeeded by 5 digits. In a way to save bits, the ZAE2 module in the same car stores the VIN differently. The first two letters are stored as one-byte ASCII characters, while the following digits are stored in nibbles (half bytes) as binary numbers. An excerpt:
In order for the applications to know how to interpret the VIN, the OPERATION field for the numeric FAHRGESTELL_NR functions is -30 (subtract 30h). The VIN starting with "CC61", 43,43,36,31 in bytes, gets the digits subtracted by 30h to 43,43,06,01. Because the digits share a byte per pair, this is actually stored as 43,43,61 in the module.Code:FUNCTION KEYWORD ADDRESS (LENGTH) MASK PARAMETER KEYWORD DATA MASKED ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ FAHRGESTELL_NR[11] 00000D00 (01) FF <tatsächlich> 43 43 FAHRGESTELL_NR[12] 00000D01 (01) FF <tatsächlich> 43 43 FAHRGESTELL_NR[13] 00000D02 (01) F0 <tatsächlich> 06 60 FAHRGESTELL_NR[14] 00000D02 (01) 0F <tatsächlich> 01 01
The > bitwise right shift only occurs in the KMB_E32.C25, KMB_E34.C25, KMB_E34.C27, KMB_E36.C25 and KMB_E36.C27 modules of which I sadly do not have any example nettodata trace files. Here's an excerpt from the module traces of the KMB_E34.C25 module:
The ZCS keys are nothing but hexadecimal values (0h..Fh). In the nettodata each byte is shared by two values. The checksums however (last positions) are not hexadecimal values but characters from A-Z or 0-9. In order to store the checksums, the 4-bit nibbles as used for the hexadecimal values are not enough. 6 bits are required. Once again in order to save bits, BMW squeezed four 6-bit values in three bytes. This means two functions (SA_SCHLUESSEL[17] and VN_SCHLUESSEL[11]) are spread over two bytes (2 bits in one byte, 4 in the other) and that complicates things a bit.Code:FUNCTION KEYWORD ADDRESS (LENGTH) MASK PARAMETER KEYWORD DATA MASKED ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ GM_SCHLUESSEL[9] 000000FD (01) FC SA_SCHLUESSEL[17] 000000FD (01) 03 SA_SCHLUESSEL[17] 000000FE (01) F0 VN_SCHLUESSEL[11] 000000FE (01) 0F VN_SCHLUESSEL[11] 000000FF (01) C0 AM_SCHLUESSEL[11] 000000FF (01) 3FThe applications using this module need to know how to format the data to cope with these cross-byte values. In comes the bitwise right shift operator...Code:ADDRESS MASK FUNCTION KEYWORD ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ 000000FD FC (6-bit 11111100) - GM_SCHLUESSEL[9] 03 (2-bit 00000011) > SA_SCHLUESSEL[17] 000000FE F0 (4-bit 11110000) 0F (4-bit 00001111) > VN_SCHLUESSEL[11] 000000FF C0 (2-bit 11000000) 3F (6-bit 00111111) - AM_SCHLUESSEL[11]SA_SCHLUESSEL[17] needs to contain a 6-bit value distributed over two address locations (000000FDh and 000000FEh). The application pushes the 6-bit value to both addresses and the operation makes sure the bits are correctly distributed. Address 000000FEh can only store 4 bits, so 2 bits will be truncated. Address 000000FDh can only store 2 bits, so 4 will be truncated, but by right shifting 4 bits the system makes sure the two bits that were truncated from the other address are now in 000000FDh. The same goes for VN_SCHLUESSEL[11] but the split point is in a different position.Code:FUNCTION KEYWORD ADDRESS MASK OPERATION ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ SA_SCHLUESSEL[17] 000000FD 03 (2-bit) > right shift 4 SA_SCHLUESSEL[17] 000000FE F0 (4-bit) VN_SCHLUESSEL[11] 000000FE 0F (4-bit) > right shift 2 VN_SCHLUESSEL[11] 000000FF 3F (2-bit)
It seems that all operations, apart from the ! inversion, are meant to save bit-space in the module's coding memory. There's no other use for the operations. I'm not sure I will update NCS Dummy to reflect this new information. The operations have very little value (from a user's perspective) and it doesn't make any sense to make changes to them...
Last edited by revtor; 06-17-2011 at 03:14 AM.
So this nice software (NCSDummy) will NOT run on my T30 under XP sp3?
ANy workaround? Keep getting the error "The application failed to initialize properly (0xc0000135). Click OK to terminate the application"
...on the gas
Shled
Charter Member, BMW e38 Real Beef Club
2001 Dinan 740i (stage 3) Supercharger, High Flow Throttle Body, HF Mass Air Meter, Free Flow Intake Manifold, Stage 3 Suspension (matched set performance tuned springs, camber plates, front struts and rear shocks), Stage 2 Front & Rear Big Brake Conversion, Stage 5 Supercharger Engine & Trans Software, Quaife LSD (from M5), HF Cold Air intake, Dinan Free Flow Exhaust, e60 M5 bi-xenon HIDs; BMW e46 ///M3 flappy paddle 3-spoke sport wheel: aspheric, electrochromic, power fold mirrors: factory hydraulic trunk: BM53 Radio: BMW TCU: iPhone integration audio, video to AUX w/USB charging: M5 large body diff w/QUAIFE internals: (sig limit reache...
shled: You do not have the Microsoft .NET Framework 3.5 installed.
Last edited by revtor; 06-13-2012 at 01:34 AM.
OK, switched threads and installed .net
Works now.
Thank you for the help.
Wow this is GURU level contribution thx
REVTOR
very very nice...!!
It seems I called this field "operation" because there was usage like "!US" etc somewhere (car and region specific text formulas). Actually now I'm not quite sure because working under object files (prg and grp like, parser and almost 50% working execution, and best1 assembler boiling my brains).
I did data2txt for russiane39, so if you have questions about details you can pm me.
I think you are mixing up the operation and order options. The order options, described in the "<chassis>CVT.000" files, indeed use exclamation marks as logical operator. For example: !(E63,E64)+!S85B50+!(ALPINA+KMBI_CI_06). The operation field however is something completely different and is named by BMW in the header of the CDB module files themselves. Below is the definition description of the "PARZUWEISUNG_DIR" field found in every CDB module file:
3A,00,05,42,4C,4F,43,4B,4E,52,2C,57,4F,52,54,41,44 ,52,2C,42,59,54,45,41,44,52,2C,46,53,57,2C,49,4E,4 4,45,58,2C,4D,41,53,4B,45,2C,4F,50,45,52,41,54,49,4F,4E,2C,45,49,4E,48,45,49,54,00,18
Which translates to:
BLOCKNR,WORTADR,BYTEADR,FSW,INDEX,MASKE,OPERATION,EINHEIT.
This operation field has nothing to do with the order options, but is used as described in my previous message.
Actually I don't remember why, but I put once "OPERATION" in sources
Doesn't matter, word "operation" missleading here and probably left from earlier versions, while 'A' suppose to be "Array" or "string".'A': begin //OPERATION byte=count + count of bytes
count:= data[arr_pos];
inc(arr_pos);
i := 0;
while i < count do begin
tchar:= char(PByte(@data[arr_pos])^);
if tchar = 'S' then begin
...
Latest stuff instead of data2txt was data2tbl (3 areas instead of plane text: data types, navigation tree and actually data). If interesting I put it at http://filebeam.com/7585b38b4914d879abfeae3575d78cc1
a search-function for the trace-editor would be very nice
to search the wanted parameter without scrolling like hell
ypoc: Good point. I'll add it to the to do list. For the time being you can search in the treeview by typing the first letters of the function or parameter keyword (focus must be on the treeview).
yes i tried this already
with a real search function you will never need to open a FSW_PSW.TRC with a texteditor...you can do ALL coding-modifications with the trace-editor...ok you can do this already but if you want to search a specified parameter a text editor is the better choice :P
i LOVE this program!!
A new version has been released: NCS Dummy 0.5.0.1! Refer to the first post in this topic for the download link. What's new since the last release?
0.5.0.1 (2011-08-27)The new "Find in Trace Editor" window:
- Find functionality for the trace editor. You can search on keyword, hexadecimal data, address or order option in the currently loaded trace file. Use shortcut key CTRL+F to open the find window.
- Small changes to the disassembly output. Please note that even though the changes are subtle, files disassembled with previous versions are not compatible with this version.
Press CTRL+F on the "Trace Editor" tab to open the find window. The find window offers four search modes: search on keyword, data, address or order option, each with specific options to maximize the search functionality. Each search mode remembers the last 10 search items. Use the dropdown to select a previous search item or type the first letters to get a suggestion. Find the next matching item by clicking the "Find next" button or pressing the ENTER or F3 key on the keyboard.
The other change in NCS Dummy is a subtle change in the disassembly output. The "EINHEIT" field of "PARZUWEISUNG_DIR" and "PARZUWEISUNG_FSW" now shows as a character instead of a byte, and the "OPERATION" field now correctly shows the operators ! (invert), + (add), - (subtract) and > (bitwise right shift) as determined in this post. Due to these changes, the output is not compatible with that of previous versions.
I hope you will all like the new version! Enjoy!
outstanding
Best Tool ever
I edited the keywords in my E60 SWTPSW05.dat file and used those new keywords in my LM2_E6X.C35 file, re-assembled them both and placed bak in the daten/E60 folder.
When I try to read the LM2_E6X.C35 file with NCSDummy I get an unknown parameter error where the parameter is the first one in the file:
error:
An error occurred while reading "C:\NCSEXPER\DATEN\E60\LM2_E6X.C35": Unknown parameter keyword (0885).
I created a parameter entry in the .dat file like this:
SWT_EINTRAG : 0867 "10"
SWT_EINTRAG : 0885 "10s"
SWT_EINTRAG : 06A9 "10_kanal"
Also,
with NCSDummy, I do a export parameter keywords under Chassi Functions. When I look at the list of parameters, none of the ones I created are listed. So that explains the error.
What am I missing to get the newly addedd parameters to be recognized?
Bookmarks