Welcome to Tesla Motors Club
Discuss Tesla's Model S, Model 3, Model X, Model Y, Cybertruck, Roadster and More.

Using TM-Spy for iOS

This site may earn commission on affiliate links.
Strange, I cannot edit the first post to insert the screenshot.

So,here it is:

And, a thumbnail to the screenshot:

It appears that, in this new forum, one cannot edit the first post... a bit strange?
Cheers, Gary
Last edited:
Ok, I see the problem. Will try to fix and get it uploaded in the next hour.

Version 0.0.2 is being processed by iTunes.

The best way to get data to me is to use the Dropbox sync function in TM-Spy and then share the TM-Spy folder with [email protected]. Then I can review any traces and data files.
Last edited:
From version 0.0.1, which connected to my LELink, and took some time to show any data ... but got most everything excerpt the 12v battery info in the lower left.

The app asks for access to Location Services, and just has OK ... no No.
It also asks for Location Services for LeafSpy. Perhaps these are not intended?

Exiting the app and restarting, the app would not connect to the apparently-busy LELink without powering the dongle off and on (plugging out then in again). While watching for data, the app's green button would flash yellow occasionally, apparently to try to reconnect?

Here is a screenshot from the iPad 3:

Very good for a first shot and mostly LEAF testing... cool, Jim!

Thanks a bunch for the early test opportunity (big smile) ✌
Cheers, Gary
Last edited:
The v0.0.1 read all the data (Brick Volts, Module Temperatures, and the Total kWh charge and discharge, the Odometer, the two kWh values ...) and kept updating (at least Pack amps) without needing to re-plug the dongle.

What is a "frame", please? Perhaps one set of all of this data, where possibly the Pack Volts and Amps are handled outside of the "frame" as a special case?

I turned the A/C up to high-fan, and the amps went up to around 3.0, and then came back down after I returned the fan to low.
Last edited:
When I say "Frame" I mean frames having a specific ID number like 0x102 for pack voltage/current or 0x210 for DC-DC information. Version 0.0.1 will sit on one frame ID until you unplug/plug the LELink again. While sitting on that one ID the display will be updated reflecting the incoming data for that one ID. This is how graphing works sitting on a single ID so when I tested with the Leaf everything looked good. The problem is the app will not step to the next ID when not graphing which I currently can not test with the Leaf.
There are 3 bar-graphs supported, the Cell (Brick) Voltages, the Module Temperatures, and a histogram of the Cell Voltages, call them "charts".

The "graphing" part is the gathering of data values over time and plotting them on a horizontal time axis. These data values are extracted from the 8 (or less) data bytes that accompany each CAN message. These messages have a "name", or message identifier (msgID), which is actually a numeric identifier, from 0x000 to 0x7FF in hex, 0 to 2047 in decimal.

The TM-Spy app supports "Recipes" for specifying the msgID and how to extract the data value from the 8 bytes (D1 through D8) ... like use byte D5 and D2 as a 16-bit integer, with D5 (or D2) being the Most Significant Byte (MSB).

Using up to 4 lines of Recipe, all with the SAME msgID, one can specify extraction of up to 4 values, like 4 temperature values, from one message, and thus get a string of values that vary over time from a series of messages. This "collecting data" and displaying the data in a time-graph is what Jim calls "graphing". It works (or sometimes not) on the Android version of TM-Spy, but is still under development in the early iOS versions ... so not enabled yet.
Last edited:
Since recipes are applied after the data is captured you can update them to show additional new information within the eight bytes to create an updated graph. You can use this feature to capture Message IDs for which we do not know the function and try different recipes to try to see their function.

Version 0.0.2 is still in the automated step of "processing" so it does not look like it will get to the review step today.

Most likely I will replace it with a newer version tonight (0.0.3) with additional improvements for tomorrow.
Where are the files, like Recipes, frames, logs, etc. that we might need to see, edit, send to you, etc.? Apple seems to hide things that are not in the Documents folder. It appears that in Settings one can choose to use the Apple Cloud (which I do not use) for your output files, but how about accessing and editing the Recipe files?

Perhaps you intend to show and edit them, line by line, on one screen in the app?
Can the app access files in the Documents folder?

Thanks for this first iOS app, Gary
Got this going, thanks Jim.

Using BT LELink.

First time plugging in, was amazed how fast adapter sync'd. Much better than BT pairing nonsense. No data was exchanged with TM-spy 0.01 with app halted at "connected 20" in green at bottom right. 1 dropped frame from 2497.

Exiting app and restarting resulted in data being captured for battery and connecting cycling from 1-26/27.

Buglet: connected to old Dropbox account by mistake and cannot reset. I had stupidly backed up the settings after doing this, do restoring does not address. Can you add a "reset to default" in the settings please? ;-)

Resolution / orientation all looks good. I'd like to upload some screens, though this new forum sw appears to have taken the simple and make it too complex... 3 media albums created by me, though none accessible by me :-(
You use iTunes to access the TM-Spy Documents folder.

Startup iTunes with your iOS device plugged in. Select "Apps" just below "Summary" in the left top window. Scroll down to the "File Sharing" panel and select "TM-Spy". You will now see the folder with all the documents TM-Spy uses/creates. Unfortunately user accessible sub-folders are not supported in iTunes so everything goes together. For Dropbox TM-Spy uploads things to separate folders.