My sympathys are with you bro'.
This is a royal PITA, but this BMW drive cycle worked for me on the first time:
http://www.bmwmotorsports.org/BMW_docs/OBDproc.pdf
There is a graph in this document showing what time at speeds that need to be maintained to clear the checks, and it works. Note that you have to start with the engine dead cold, and you cannot exceed 3000 RPM or 60 MPH, or the whole cycle is void and you have to start over.
I had to do mine on a Saturday morning at around 6:00 AM to have light enough traffic that I would not get run over doing 60 MPH on I-85! My normal shift point is about 4,000 RPM, so that was no fun either.
Good luck.