Friday, December 27, 2013

Frequently Asked Question (FAQ)

Here are some of the most common questions I've been answering quite lately:

Q: The instructions I read in the PDF says I need to delete 2 files and then replace with the 2 files. Where are those files?
A: Those files are from another developer. My solution does not use patched files and no files should be removed or deleted. If you did, you need to restore those files or reinstall the application to restore them before you can use my token.

Q: I got a token for my 3.23.4 version. Now I got hold of 3.24.2, can I get an updated file?
A: You already have it. My solution works on versions 3.22.5 up to 3.24.3 and everything in between.

Q: If I get a token, will you provide the patch as well?
A: It depends on what patch you're talking about. If you meant the two patched files, then, No. I don't use patched files (see Q#1). I provide everything you need to use the token except the application itself. It comes with less than 20kb file, PDF instruction and the token. Just install the application, then proceed with my instructions.

Q: Will this token work with new version of the application?
A: It works up to 3.24.3. There's no way for me to tell if it works on unreleased version until I get hold of it.

Q: I sent you a PM a few days ago and have yet to receive a response. What gives?
A: Just complying with the forum rules. Most BMW forum prohibit the use of PM system for commercial use unless you're a sponsor of the site/forum. I am not a sponsor, so I'm prohibited to use the PM system. Contact me at fxxtokenmaster[at]Gmail_dot_com instead and I'm likely to respond within the hour, if I'm up and about.

Not a question but...

Q: I'd like to get 3 year...
A: 3-year token is the 2nd most popular request next to 1-year token. Before asking for 2 or 3 years token, understand that it's only guaranteed to work from versions 3.22.5 up to 3.24.3 and everything in between. It's always a possibility that the token will not work with newer versions.

The app requires PSdZ and this gets released all the time with new security feature so, it may require newer version. Most notably, PSdZ 49.x will not work with 3.18, thus, the release of 3.22.x. 3.22.5 won't work with PSdZ 51.0, hence, the release of 3.23.x.

If you get, say, 3-year token now, and your car gets updated that would necessitate using new PSdZ and new app and I can't come up with a solution, multi-year token would now be essentially "useless"

Wednesday, November 27, 2013

Code Default Values

I've heard numerous stories about the dreaded "Code Default Values" and the effect is always the same: The car will not start. In extreme cases, the car needs to be towed..oops, towing is not allowed on BMW cars, the car needs to be hauled away on a flatbed truck. Some gets lucky and were able to recover. It happens to the best of us, and I've had quite a few close calls as well, myself.

I wrote something in Bimmerfest. Maybe it will help, even for a bit. Here's the original post:

And here it is again:

Backup e-sys.jar first before you do anything else

1) Use WinZip or 7Zip to open \lib\E-sys.jar
2) Extract (for Deutsch, You can find this in com\bmw.esys\gui
3) Use Notepad to open the file
4) Search for CodingView.AZC=Code Default Values and change as you see fit and save. Ensure notepad does not add ".txt" to the filename (In the Save File dialog, in the Save As type, select "All Files").
5) Replace the file in E-sys.jar. Same location. Extract it again and check to be sure

Of course, the above will not prevent you from accidentally pressing it still

Wednesday, November 20, 2013

NCD / CAFD Tool V0.2.2 Alpha is out

NcdCafdTool V0.2.2 Alpha just released. This version fully supports PSdZ 51.1 with the new storage format. Also, if you're getting "Data at the root level is invalid...", try this version.

language.en.xml is a separate download now so as not to overwrite your local copy. If you don't have a local db yet, you can download language.en.xml and place a copy where the tool is

If you have customized the settings, don't overwrite "NcdCafdTool.exe.Config" or your settings will be replaced. Open "NcdCafdTool.exe.Config" with Notepad, copy the value of signatureKey node, then open the application, go to Settings and replace the Signature Key. You can also edit your config file with Notepad.

NcdCafdToo V0.2.2

Saturday, November 16, 2013

CodeMyBimmer on Azure

Update: Due to the work of some sick mind, Codemybimmer.NET was snatched right under my nose. I can't fathom what's going on in  his mind and why he'd do something like that. I highly suggest you stay away from codemybimmer domain.

CodeMyBimmer is only on Azure. Not anywhere else.

Just Launched: CodeMyBimmer.NET on Azure.

It's open, free and you can go offline as soon as you open the first page. You can filter by car series and searching/Filtering can be done offline.

Registration is required to vote, add and edit entries though. Email address is not needed, just username and password. You can use your Google and Windows Live account. Facebook and other SN sites that requires SSL is not yet supported.

To Add or Edit, just select the applicable car series, add Description, ECU, Daten, then add 1 or more functions.

 You can only vote once per item, you can switch between +1 or -1. This should help those new in coding to see which are the most popular code.

Link to Bimmerfest and a couple of other BMW forum are added.

For Developers who wants to tap into it, the site uses compressed JSON. No authentication required to pull the data.

There's only a few items to start with, so please feel free to add or edit. The ones already in there are tag to F30 only, so if you know that they're applicable to other series, please feel free to edit as you see fit. 

You can add Option (ex: KOMFORT_SCHLIESSEN), Werte value (ex: 0A), or both. If the Werte changes due to the option change, leave the Werte value empty. For example, if changing aktiv to nicht_aktiv changes Werte from 00 to 01, you can leave the Werte field empty. The idea is, to only change what is needed, thus keeping it simple and less confusing for those very new in coding.

If anyone is interested, I can make this open source, maybe post it in Github. I haven't use Git -if anyone is handy with Git, let me know.
Technology used: VS.NET 2013, .NET Framework 4.5, MVC5, EF, LINQ, HTML5, CSS 3.0, JSON, AJAX, jQuery, jQuery UI, Bootstrap 3.0, KnockoutJS  


Tuesday, November 5, 2013

Banned from F30Post

I learned today that I am banned from F30Post and looks like all my posts are now gone. It was unfortunate, but I guess, it's my fault for not following the rules. I hope the owners and moderators of F30Post reconsider. I am an enthusiast-first, so I'd hate to lose access to F30Post. Bimmerfest and F30Post are the only two forum I frequent the most, almost on a daily basis. And I can say that most of the time, my posts are somewhat useful. I sent the webmaster an email, I'll wait and see what happens. This just leaves a bad taste in the mouth...

Update: 11/20/2013

I sent an appeal email to Bimmerpost admin 5 days ago, but it has gone unanswered. Oh, well...

Sunday, October 27, 2013

NCD / CAFD Tool V0.2.1 Alpha

Just realeased a new version of NCD/CAFD Tool, now with search function added on FA/FP Viewer.
 No pictures this time.

Enjoy: NCD/CAFD Tool V0.2.1

Friday, October 25, 2013

FDL Coding on my BMW F30

FDL Coding Demonstration using my EST Software Token, done on my BMW F30. The video is meant to help those who are quite new to coding their BMW F-Series cars. This is how I do it, of course, I learned from people in the forum too.

Check it out, let me know what you think:


If you're interested in obtaining a software token, send me an email: fxxtokenmaster(at)Gmail

Wednesday, October 23, 2013

NCD / CAFD Tool V0.1.3.0 Alpha Just Release

NCD / CAFD Tool V0.1.3.0 Alpha now available. I added an FA and FP Viewer. See what your car's options and what you've missed :)

FA Viewer

FP Viewer

Enjoy! NcdCafdTool V0.1.3.0

Thursday, October 17, 2013

Got Bullied...

OK, as most of you know, or didn't know, I'm a late-comer to the world of BMW Coding, but I'm no stranger to hacking. I did encounter a few rude PMs, most of them I just ignored. If only these guys (or gals) knew what I did in the past :)

The most obnoxious, rudest, most annoying PM I received was from someone at F30Post. The guy got an F10 and asked if he could code this and that, a bunch of features I haven't even heard of. I don't have an F10, nor an expert at coding so I wasn't about to pretend I am. I told him to head over at Bimmerfest since it's the one site I knew discusses F10 in details. I told him about the cheatsheet as well.

And what do you know, the guy exploded with his reply. His exact words were "why do you think, with 5 post here, a new member going to buy a token from you without answer my questions". Obviously not a native English speaker, but that didn't made it any less annoying.

Ugh, some people get so stuck up to post counts as if it's the only thing that matters.


As some of you may already know, I made a tool for NCD and CAFD files, named....wait for it...NcdCafdTool!!! Tada, yeah, can't think of a better name but what's in a name anyway?

Latest version has translation, so, if you want to know more what's in your NCD or CAFD, go grab the tool. It's in, and

Yeah, I know. "Decryt" right?!?

NCD/CAFD Tool V0.1.2.1

TokenMaster's EST Software Token Demo

I made a video showing how my EST Software token works. Check it out and let me know what you think :)

If you're interested in obtaining a software token, send me an email: fxxtokenmaster(at)Gmail

Sunday, October 13, 2013

EST Software Token

As any other software architect/developer, I always crave for new version of a software. I'm excited to learn of its new feature, and E-Sys is no exception. Only caveat, I needed a new PSdZ and a new software token. I learned that somebody was selling a token for some amount and I thought it was exorbitant compared to what it can do. It's relatively cheap, don't get me wrong, but I wasn't ready to pay for something that cost that much and does very little. So, I looked into it and there are probably a hundred ways I could have done it but I settled on one method, which I think would be the best and would give me the greatest flexibility. The result? An EST Software token that doesn't require modifying any of the stock files. A Software token that can be used without modification across several versions. One file, that isn't version-specific.

So, I went and ventured. By mid of August, I was ready with my file. I tested it with my own car. I wasn't worried because I know, the token is only necessary in allowing FDL coding. The token have nothing to do with the actual programming. And I made sure to not change anything I didn't have too. I love my car and which is why it's hard for me to trust somebody else's work. I can never trust something without me fully understanding what it actually does, or what has been done with it and what it's weaknesses are, if any.

The day I was about to release my token, I came across a posting at Bimmerfest that claims to be selling a token for a cheaper price. It was a guy from Korea. I was lucky enough to be able to check it out and downloaded the file. One look at it and I knew I was never going to use it. It is patched, and the certificate was custom generated using his own CA. This was one of the method I thought about and had I been too lazy, would have implemented the same. The method that was used entailed modifying the Crypto module that will render signature and hashing matching unnecessary. I knew it will work but I crossed this method out early on. With it, it's possible to modify a CAFD, distribute it and before you know it, we'd end up with lots of dead car. Why? Because somebody will exploit this and I guarantee, distribute it maliciously with the intent of spreading harm. Color me paranoid, but I worked in the security industry for too long to trust a seemingly innocent file. BMW thought a great deal on securing their files and I wasn't willing to start ignoring the benefit of a signed and secured document.

Back to the software token. While I'm confident that my token works, I was also late in the game and I needed a leverage. I asked for testers and I chose the testers carefully. I made sure they all belong to different continents to cover as much timezones available, and I was lucky to achieve this goal. All testers were great and some actually did more than I expected and I really appreciated that.

So anyway, it was a huge success for me -and for the coding community -although a lot of people will never realize this.

Oh, and that other guy who also sell tokens? That's not the end of it. I'll get back to him in another post.


I bought my BMW 328i in February of 2013. I love the car and it became my ultimate daily driver. While it didn't feel lacking in any department, I feel the car is can do more, I feel it's hiding some sort of secret, just waiting to be discovered. And this started my journey into some unchartered territory.

I dig and I search what can be done with the car and I stumbled upon the world of coding. Thus, begun mu journey into unchartered world. I searched hard for E-Sys and it took me days to find out, it's only a PM away. I read all documents, practiced in my head, and just when I think it's as easy as a pie, I decided on actually pulling the trigger. Hit up eBay and local electronic stores for parts. After about a week, I'm ready to build my own ENET cable. And one Saturday, plugged it in, and I started reading coding data. And as a seasoned system architect, I knew I the first thing to do was to create a backup. 2nd thing was to create a backup of the backup.

I modified one NCD offline. Then attached my laptop again to the car. I was sweating and trembling, and it wasn't due to the weather. I ran this scenario in my head at least a dozen times, yet, it was never enough. I hit "Code FDL" and closed my eyes for what seemed an eternity. I opened them and I was greeted by a small window. YAY! It was a success. Damn, I can do a lot of things with this car.

I love my 328i and I love coding it to death.