Drove mine today to work on a mates Z3 with a duff airbag module which had put the airbag light on.
It was a salvaged car with little past history when the airbag light showed up it was due to him switching on the ignition with a seat out, being new to BMW's he binned the module and sought out a used module with the same part number of the binned one. That didn't solve the problem so he got another used module, Fitted that and still didn't solve it. I became involved and put diagnostics on the car which revealed codes for both belt pretensioners, they wouildn't clear and a further code F0 Internal error showed up. It would appear the module was from a crashed car which locks up the module and sets crash data in the internal eeprom preventing the clearance of codes. A bit of research on Real oem deduced that the binned module and both replacements were in fact the wrong part numbers for the car. Next step was to source a correct module from one of the Zroadster.org forum breakers who came up trumps with a known good module. Today we first checked the resistance on both pre tensioners, they were both in spec, wiring connections under the seats inspected and looked fine. With the seats back in the car the replacement module was fitted. Battery reconnected and a battery charger put on to maintain its voltage for coding. At this stage airbag light was still on however when codes read with INPA there were none. Hit the clear codes button and the airbag light went out. Closed INPA down and opened NCS Expert to code the replacement module to the car, read the cars data from the EWS module then wrote the file to the Airbag module. Quick check on INPA confirmed all of the system units were functioning and the module was now coded to the car. Tested the airbag light with a number of ignition cycles and the light was performing correctly. Problem solved, he can now progress with a cam cover gasket replacement, a new inlet camshaft sensor that has thrown a code and both sills to be painted and refitted, he has already cleaned and rust proofed the inner sills. With a bit more work over the winter he should have quite a decent car.