As with most Chinese knockoff and clone devices, one can expect minor variations in hardware, numerous inconsistencies in software / firmware and a complete lack of documentation. For a device where all commands must be issued over SMS text message, figuring out how the Xexun / ZY International TK102 / TK102B / TK102-II functions without a proper manual is difficult enough, but for my “clone,” the closest to which I’ve come to identifying as a Heacent HC06A board inside a TK102 shell, in which the formatting of the commands has inexplicably been altered, the task was a miserable one.
That said, at $27.97, this type of hassle is almost expected, and for a fully functioning (once understood) GPS / GSM tracker, the lack of documentation does little to spoil the deal.
The Elusive list of Commands
For this device, the commands use “#” for padding/separations, rather than a space as on the official devices and many of the, er, “more official” clones. The commands also vary slightly. As with the original, all passwords must be numeric only, and six digits. The default is “123456.” Here is what I have gotten to work:
Function | SMS Command | SMS Response | Notes |
Initialization | #begin#123456# | begin ok | resets password |
Change Password | #123456#123456#987654# | password ok | |
Get IMEI | #imei#123456# | imei:123456789000015 | 15 digits |
Set Timezone | #timezone#123456#S0400# | time ok | S equals negative? |
Set APN | #apn#123456#epc.tmobile.com#user#pwd# | apn ok | user and pwd are optional |
Set Server IP | #adminip#123456#193.193.165.166#20751# | adminip ok | IP and port (IP can be a url) |
Remove IP | #noadminip#123456# | noadminip ok | Limit 1 IP / Domain? |
Admin Number | #admin#123456#18001234567# | admin ok | need country prefix |
Remove Number | #noadmin#123456#18001234567# | noadmin ok | Can store 5 numbers |
Admin SMS | #adminsms#123456#18001234567# | sms ok | Can store 5 numbers? |
Remove SMS | #noadminsms#123456#18001234567# | noadminsms ok | |
Check Status | #check#123456# | electricity:24.97% GPS:A gprs:open gsm :75 | A= fix ; open=online |
Google Maps link | #smslink#123456# | http://maps.google.com/?q=N41.000000,W87.000000 | |
Auto Track | #fix#030#004#123456# | set fix ok | interval (<20) # total (<255) |
Auto Track-alt | #fix#030s#004n#123456# | set fix ok | s: second, m: minute, h: hour |
Stop Auto Track | #nofix#123456# | Cancel fix time ok! | |
Listen to Microphone | #monitor#123456# | monitor ok | Call to listen to mic |
Back to default mode | #tracker#123456# | tracker ok | Switch back to normal mode |
From the various sources I pieced this together from, I still couldn’t figure out the following issues:
- Admin phone number: Requires an international prefix (eg +1 for the US). The example they list is for China (+86), which is formatted as 0086. Unsure how many zeros should precede the “1” for US. I’m also not sure a prefix is even needed unless you’re calling from out of the country.
- The “Auto Track” position updates don’t seem to be sent via SMS, only GPRS when a server is configured. Not sure if that’s because I incorrectly whitelisted my number or if I never tried with GPRS disabled.
- I tried a bunch of free android apps; none worked with this clone; they don’t like the “#”s. This app looks like it would work, but it is $10. I’ll just use Tasker.
- The :Low Battery Alert” supposedly begins to alert at 3.7V and sends you SMS in 30m intervals thereafter. In my experience, “Low” is about 60%.
- Several commands I did not mention above or test, but which should work:
Function | SMS Command | SMS Response | Notes |
Geo-fence | #stockade#123456#500#60#22. 312451#113.54376# | stockade+geo-info | radius#time#longitude#latitude |
Disable Geo-fence | #nostockade#123456# | ||
Movement alert | #move#123456# | move+geo-info | Must be still during setup |
Disable Movement alert | #nomove#123456# | move ok | |
Overspeed alert | #speed#123456#080# | speed ok | km/h; not less than 20km/h |
Disable Overspeed alert | #nospeed#123456# |
For the Geo-Fencing, apparently there’s a way to either set a coordinate and diameter, or to use two coordinates, where the first defines the top left corner of the box making up the geo-fence, and the second is the coordinate of the bottom right corner.
Now, Make it Pretty…
Finally, here is how to get the GPRS / data connection set up using GPS-Trace.com
- Register at this website: http://gps-trace.com/
- Setup your GPS with the following configurations (remember to leave the GPS tracker outdoors with clear view of the sky):
- If you have not already set up your GPS password:
- Send SMS command: #begin#123456# (you should receive an SMS saying “begin ok”)
- Make a phone call to the SIM card you put in your GPS (you should receive info such as geographic coordinates);
- Send SMS command: #imei#123456# and save your IMEI for later.
- Send SMS command: #timezone#123456#S0300# (this is the setting for GMT -3, Brazilian time);
- Send SMS command: #adminip#123456#193.193.165.166#20751#
- This is for setting the correct IP and port to work with gps-trace
- If you have not already set up your GPS password:
- On gps-trace.com, considering you’ve already registered your account, you should now add a new unit – must use “Vehicle”
- Look for the “new unit” icon placed on the bottom right side of the screen
- Fill the “unit name” field with a name of your choice
- Fill in the phone number in international format (“+1” prefix for US)
- In “device type” choose “Heacent HC06A”
- Fill the IMEI field with your device’s IMEI number (15 digits)
- Fill the “password” field with your device’s password (default is 123456)
Now both the Auto Track and individual polling options (smslink and simply calling the device) should also result in a transmission to gps-trace with your coordinates mapped and timestamped. Theoretically, the above method could be adopted with any online service, or hosted oneself with something like GPS-Gate.
Or Make it Yours
As an alternative to GPS-Trace Orange, I have actually found Traccar, and more specifically, the Traccar-Web UI modification to offer the best blend of features, simplicity and the ability to export data for use in google Earth or similar. You can either create an account and use the free demo server each of these projects maintains, or download and host your own server, which is what I did. This allowed me to watch the connection log as my tracker attempted to send data, make sure it was actually connected, and figure out which port it should use. Traccar uses ports 5000-5100 based on the format of the data the GPS tracker sends, as each is formatted differently. The HC06A / TK-102 clone, for example, sends a HEX string that converts to “#123456789000015##1#0000#AUT#01#31041001a4776d #8312.534700,W,4120.236900,N,0.00,0.00#060715#212609.000##”. It’s sending the IMEI, lat/lon, date and time as well as some other stuff I couldn’t decipher. If this is sent to Traccar on port 5016, it is able to correctly parse the data and display it on a map.
So, to adapt the above instructions for GPS Trace Orange if you prefer to use Traccar instead, simply change the IP and Port to reflect this. For the Traccar demo server, this would be: #adminip#123456#104.43.219.242#5016# or alternativly the UI-Mod server is #adminip#123456#188.166.50.6 #5016# . You can also use your own server, such as #adminip#123456#innominatethoughts.com#5016#. Using text for your domain does indeed work, rather than needing to use the IP, which is great if you’re using a dynamic IP with DDNS. Whichever version of Traccar use, you’ll need to create an account, add a device, and use the IMEI as the “unique identifier.”