There are 2 main categories of Bluetooth OBD adapters that work with scan my tesla:
ELM327-based adapters
STN1110-based adapters
Also, there are the currently supported 'Panda' devices:
JWardell CanServer
Enhauto/S3XY Commander
ELM327 are your standard cheap adapters. They do a great job on older ICE cars, but in the Tesla they can't swallow all the data the car gives. They mostly work acceptably well with scan my tesla, but my biggest problem with them is that the more rare packets from the car drown in faster packets, and the app will never recieve them. One such packet is the Battery Odometer packet, which I need for the Trips functions to work. I have done some workarounds for the Trips to work with ELM327-adapters, the compromize is that the AC/DC charge packets in trip tabs will not update 'live', but only once when you switch tabs. You can paste other packets into a Trip tab, but the result will most likely be that the Trip distance value will stop updating (except when you switch tabs).
STN1110 are more expensive. OBDLink has several, and recently the vLinker FS Bluetooth. The latter is highly reccommended, especially if you want fast and detailed logs, or wide logs (for instance logging ALL items), with less data corruption.Â
The Panda devices are equally fast, but they are using UDP over wifi, which means your phone must be connected to their wifi, without internet. This works nicely along with mobile data on IOS, but on Android, different devices behave differently, you can't use internet at the same time, and making it work the first time can be a bit fiddly. In some devices you need to turn off mobile data for the app to connect to the adapter. In some cases the phone has stopped receiving UDP packets and needs a reboot.
As for on-screen responsiveness, there is a huge difference between slow and fast adapters. The fast adapters makes the app look as smooth as the Tesla instrument panel, while an ELM327 adapter looks a bit more jagged.
With the fast adapters you don't need to worry about how many packets you log, it will log all packets that scan my tesla can decode, recording all packets as fast as the car sends them, as long as your phone can keep up. The hardware filters work so that the app tells the adapter which packets it wants, and all others are filtered out in the adapter hardware, never bothering the app.
With an ELM327 adapter, the filters are bitmask based. This means that with one or a few packets it will be able to filter out most unwanted packets, but when you start getting into a page full of different packets, the filters are no longer working and the adapter is overwhelmed with the entire Tesla canbus, and the app does the job of skipping the ones it doesn't know or want. The ELM327 adapters starts missing packets, and the app never recieves some of them.
With an ELM327 you need to pick which packets you need to log, if you want a speedy log. When you click a value twice in a tab, it will select all the values in that same packet. If you delete all those, that means you freed up a bit of the filter, because they all come from the same canbus packet id. If you delete only one of them, that doesn't help you at all, because the other values from the same packet id will still take up the bit in the filter, and your speed will not improve.
See the video below from youtube channel Dyno Mode to see visually the difference between an OBDLINK (STN1110 chip on the left) and a regular ELM327 (on the right):