i've already buyed two ELM320, (One SMT and one TH),
but in the net i've found this:

http://www.sterntech.com/obdii_pic.php

it's an:
" Open source hand held OBDII code reader and scanner "

" PIC 18F8680 based open source code reader. "

there you can find the source, also.

maybe it's useful!