Most of the ELM327 OBDII scantools out there are cheap chinese ELM327 chip ripoffs.
The biggest problem with these is the board rate set from the factory is not the same setting as the genuine ELM327 chips. (So attempting to use them with a lot of software wont work out of the box).
However with a bit of dicking around, you can set the baud rate of these ripoff adaptors to get them working with a lot of software.
As for the other models, I have a OBDLink Scantool LX model (Bluetooth) model as well. This is a very good bit of gear, and comes with free software for Windows and Android.
(And the software is very very good).
The cons with this adaptor is that it uses true bluetooth serial. (Which is not supported on iOS devices).
I have gotten this adaptor to work on Windows, Linux, and Android. (However I have had no luck getting it to work with any Apple product, but to be fair, most of these adaptors you will be pushing pooh up hill getting them to work with any Apple product. (As their serial port – Bluetooth or hardwired – Apple support is rubbish).
The GoPoint BT1 device is the best option if you wish to use iOS devices.
The only downside with the GoPoint BT1 is that they do not publicly disclose the commands available, so if you wish to tinker with advanced stuff (like 29Bit or 11Bit SW Can stuff), then finding information on how to get this working with this scantool will be an uphill battle.
The main benefits with the OBDLink LX and the GoPoint BT1 is that they support the GM Lan high speed can bus lines, as well as the GM Single Wire Can 29Bit and 11Bit Can stuff).
For those wanting to know what SW Can is, the SW Can (Single Wire Can Bus Line) is used to tie all the creature comfort stuff together on VE / VF models.
(So the radio, cluster, HVAC, BCM, all talk together, and share information).
29Bit SW Can is used to broadcast information to other devices.
(So when you tune your radio to a certain frequency, the cluster will see the frequency broadcast and will display it on the cluster LCD screen).
There is a bucket load you can do with this line. Basically every single button, knob, switch (apart from power window and mirror) is broadcast on this line. (So you can tell if a button is pressed, or you can spoof a button press message).
Also every status message form these devices (Outside temp, mode setting on the radio, cluster display information, gear position, park assist info, HVAC settings, light settings, etc, are also broadcast (and can be messed with) using 29Bit Can.
For more information, seach GMLan Bible on Google for a list of 29Bit commands you can use to mess around with your car.
11Bit SW Can is used to Program convenience devices
Yep, you read this right. This is how you program a cluster, radio, HVAC, BCM, and other modules connected to the SW Can Bus. Programming includes enabling and disabling factory settings (such as police mode, TPMS, Sat Nav alerts, removing security lockouts, VIM, etc, etc).
For more information on how to mess around with the 11Bit Can stuff, search for the GM3110 white paper on google.
11Bit SW Can is not for the faint hearted. There is a LOT (and I mean a hell of a lot) of information to learn before you will be able to program a device using this method.
However once you have the hang of it, you will be hooked on what you can do