This time: G20, 330i with B48 engine. The car is relatively new – a model of the Year 2019 with a mileage of only 36’000 km.
10.000 km before, the spark plugs were replaced, but after 5.000 km (now already 5.000 km ago), the problems with misfires started.
The engine tends to shiver harshly, on a regular base – in idle too. Not considering clearly visible and sensible symptoms, BMW dealer claims – everything is fine. There are no error messages reading DME – it means, there are no problems. 
But what is the reality? The customer may imagine a problem where there is none.
The owner sent me all the necessary data: misfire counters; Rough run (Expert mode)  data.
Let’s start with the misfire counters. The engine is warmed up, and it runs idle. Here, I will put some screenshots from the video:

At first – a short note regarding these counters, reported by ISTA. The counter of each cylinder is reset after some time. These reset intervals are different for each cylinder and are not predictable. Typical reset intervals are 1 ..10 seconds.
This reset of the counters creates several problems:
a. if the problem was 10+ seconds ago, with a guarantee – all counters are 0, and there is no information, which cylinder is guilty;
b. as each cylinder is reset in a separate time moment (and these reset intervals are unpredictable and change in a wide range), even by checking the misfire counters, it is not clear which cylinder is the culprit. It is possible that the counter of the cylinder, which has the largest number of misfires, has just been reset. Or – even when observing for a longer time: although cylinder X misfires the most, as its counters are reset more often, it accordingly indicates lower counter values;
c. it is a serious challenge for Bosch DME to identify the misfires in idle (in my blog, I have mentioned the patent war between Siemens and Bosch several times), which makes the identification of misfires even more problematic. DME identifies the culprit cylinder very poorly. 
BMW AG – I have a question for your engineers. Why have misfire counters for the actual session been cleared regularly? What is the reason for it? Please delete these several lines in the code (and all code related to the time counting of deleting intervals is actually useless) – don’t delete these counters! It would make the identification of misfires much easier! Now you have introduced the functionality which only made the identification of the problem harder!
Returning to this exact case – as we see, the problem is identified for all (!) cylinders. Yes, the 1st and especially the 3rd ones are as “healthier”, but still – they are misfiring regularly!
Can we identify some especially defective cylinders? More probably, the cylinder No.2 has the “poorest health”. But, maybe, it’s the cylinder No.4? What could have happened to all cylinders (and for two of them – more pronounced)?
In addition, there are no error messages in the DME error message memory, and we also can assume that the fuel mixture is more or less correct (at least by the understanding of the DME).
At this moment, I will turn to the claim of the BMW AG dealer that everything is fine. Really? A strong shivering (according to the owner of the car) of the engine is confirmed by the misfire counters, which indicate several tens of misfires for each cylinder in less than one minute. The engine shivers permanently! There is no doubt of it! How can you tell the customer that “everything is ok”? Obviously, your “specialists” are not only not familiar with the call-up functions and/or live data but have never driven a correctly working BMW! It’s pathetic!
Let’s see Expert mode. Rough run data. 

With red, the actual misfires are marked. Without any options for interpretation, it is one cylinder, and its graph is green. It’s cylinder No.2!

It is also evident that the cylinder with the blue graph had increased mechanical energy, especially at the moment when cylinder No.2 failed the most often. This one is cylinder No.1. Why so? DME sees that the average mechanical energy of cylinder No.2 is reduced (because in the moment of misfires, this energy is 0) and tries to compensate for this problem with the next cylinder (by firing order). The firing order for the B48 engine is 1/3/4/2, accordingly – after cylinder No.2, cylinder No.1 follows. DME increases the fuel amount injected in the 1st cylinder and tries to compensate for the “weakness” of the previous cylinder. 
And the continuation of this video:

Without any surprises – cylinder No.2 continues to misfire. All other cylinders are performing perfectly!
What conclusions can we make? The culprit is cylinder No.2 and only cylinder No.2. And, without surprise – Bosch DME has serious problems identifying the defective cylinder in idle. 
With a probability of 99.9% – exactly the ignition system has some problems. Why such a verdict? There are regular, long enough moments when cylinder No.2 performs correctly, for example, from the 8th to the 13th second. During five seconds, there are 25 .. 30 ignition cycles. It is enough to make sure that this cylinder can perform stably, with correct mechanical efficiency. So, there is no mechanical defect and no (with a large probability) – injector problems. In my experience, I have not met the injectors of these engines, which beams would be (sporadically) so incorrect to cause such problems.
It’s sad that (also/not for the first time) this time, the BMW AG dealer turned out to be completely helpless, and the owner of the car had to drive 5.000 km with the car that shivers. But even more important – such misfires are damaging the catalytic converter! The exhaust element costs several thousands of EUR! Will the dealer compensate for the damage to the catalytic converter if it happens? I doubt. Most probably, a “natural wear” or any other aspect will be to blame. And in the end, the customer will pay for everything…