If you see HEX data from your device then firewall is not an issue.
Traccar acknowledges CalAmp messages if device requests acknowledgement. I guess in your case it doesn't.
I can't answer questions about device configuration. I would recommend contacting CalAmp support.
A quick update,
Thanks to jhutch2342 for the help.
AT$APP PEG SUNRPT 255 sends an unacknowledged report, it does not request the server to respond with an ACK
Also, the calamp default to use the ESN nr as the mobile identifier, use ATS145? to confirm what identifier is being used.
AT$APP PEG ACTION 1 1 sends message requesting ACK from traccar, and I did receive a ACK. Problem with the setup / PEG scripts then!
Hi Bloedhond,
I am having the same issue that unless I specify the command AT$APP PEG SUNRPT 255 there is no activity relating to port 5082 in the traccar-server.log..
Is this issue resolved for you? May i know how? Thanks
I've spent a fair bit of time recently getting to grips with Calamp devices. Setting GPRS and similar settings won't actually get the device to communicate with Traccar or anything else to be honest.
I used a cheap USB to FTDI converter adapter to connect to a the device - known as a "CH340G USB TTL Serial Adapter". It's the sort as shown below -
The wiring is as follows,
Key pins are:
14 - 12v +
15 - Ground (power)
8 - Ignition Live (in the default setting)
At this point it should power up and green & orange light will start flashing and probably stay that way.
To hook up the programmer (USB adapter):
1 - to GND on the adapter.
13 - Serial Out of LMU to RXD on the USB adapter
3 - Serial In to TXD on the USB adapter.
Fire up Putty or Hyperterminal -
Baud - 115200
Data Bits - 8
Stop Bits - 0
Parity - None (N)
Assuming you've installed your drivers (Windows or otherwise) if you type
AT
in the Putty (I used that) window you should get an
OK
response. Which means you are good to go.
Setting up your Tracker - type the following commands and press enter. In a few places, where shown, you'll need to type in the double quotes. The correct response will be OK. You can't correct spelling mistakes and some mistakes will erase a setting or 2. The commands are in bold.
AT#FACTORY - This will do a factory reset
AT$APP PARAM 2306,0,"APN_NAME" - The APN in double qoutes.
AT$APP PARAM 2306,1,"" - Just double qoutes.
AT$APP PARAM 2314,0,"YOUR_APN_USER" - THE APN User in double quotes
AT$APP PARAM 2314,1,"" - Just double quotes
AT$APP PARAM 2315,0,"YOUR_APN_PASSWORD" - THE APN Password in double quotes
AT$APP PARAM 2315,1,"" - Just double quotes
AT$APP PARAM 2319,0,"YOUR_SERVER_IP" - Your Server IP in double quotes.
AT$APP PARAM 2319,0,"" - Last value is just 2 double quotes. This will wipe the 2nd entry if there is one
AT$APP PARAM 769,0,5082 - Your setting the Comm Port here.
AT$APP PARAM 768,0,A_NUMBER_HERE - A_NUMBER_HERE, this is your server IP has a 32 bit integer. Google for online converters.
ATS145? - This will ideally return 1 or 2. 1 means it's using the ESN on the case as the Identifier to Traccar & 2 means it's using the modem's IMEI number. You can set it to either - I prefer the IMEI number just to stay consistent with some other devices. To change it
ATS145=2 - setting the indetifier to the IMEI. 1 is the ESN (the 10 digit nbr on the case).
At this point it won't actually send any messages to your server. So here's a good starting setup.
#Ignition on/of
AT$APP PARAM 512,0,15,0,0,0,1,0,0,0
AT$APP PARAM 512,1,16,0,0,0,1,1,0,0
#timers required for sleep.
AT$APP PARAM 265,0,180 - sleep count down 3mins
AT$APP PARAM 265,1,0 - sleep duration - infinite
#Sleep - Basically waits' 3 mins after ignition has gone off and then puts unit into a deep sleep.
AT$APP PARAM 512,2,16,0,0,0,13,0,0,0
AT$APP PARAM 512,3,15,0,0,0,30,0,0,0
AT$APP PARAM 512,4,18,0,2,0,22,1,0,0
AT$APP PARAM 512,5,3,0,2,0,13,0,0,0
Time OR Distance reporting. These trackers will send a message when a certain time has elapsed or a certain distance has elapsed. Both are configurable.
#params for time & distance
AT$APP PARAM 263,0,400 - distance 400m
AT$APP PARAM 262,0,30 - time=30 secs
AT$APP PARAM 264,0,60 - heading=60 degrees
#Time Distance enabling
AT$APP PARAM 512,6,3,0,0,0,7,0,0,0
AT$APP PARAM 512,7,17,0,0,0,1,50,0,0
At this point - you've configured
At this point
Type
AT$APP PEG ACTION 70 0 - which will cause a reboot
Then go put it somewhere in clear line of site of the sky, i.e. outside and both the Orange light (GPRS) and Green (GPS) should go solid green. If you watch your server log - you should see the messages coming and going.
HIH folk get their Calamp devices up & running.
For those interested - these devices have PEG's, Programmable Event Generators. That's the PARAM 512 entries - these are what cause the messages to be sent etc. Quite impressive in terms of what can be done with them but bloody annoying when you realise that Calamp release nothing to the public domain.
The following commands can also be issued
AT$APP PARAM 2320,0,"" -- that's 2 double quotes on the end
AT$APP PARAM 2310,0,0
AT$APP PARAM 2311,0,0
AT$APP PARAM 2322,0,0
These basically relate to the default Maintenance URL, IP, Port & message frequency. The URL is set to
maint-vehicle-location.com
and it's dead. Wiping those entries stops the tracker trying to send it 122byte messages that go unanswered and will just increase the data consumption for nothing.
HIH.
Hey Dibbs..
Thats really very detailed and helpful.. Let me try it out. Thanks so much ..:)
Hi,
Dibbs thank you for you work; I successfully managed to re-programme my LMU26G3001-RAM01.
If I set up: AT$APP PARAM 265,1,3600 - sleep duration - is this means that when vehicle stationary LMU will send position every 3600 sec (1 hour)?
@Sobek
AT$APP PARAM 265,0,180 that is the counter for it to countdown to sleep once it has woken up (that can be configured - default is either ignition on or accelerometer senses movement)
These units have a Time\Distance way of sending positions - so either 60s (adjustable) or 500m (adjustable) which ever comes first. If you want it to send a position update every 3600s if it is stationary then follow my "script" but change
#params for time & distance
AT$APP PARAM 263,0,400 - distance 400m
AT$APP PARAM 262,0,30 - time=30 secs
AT$APP PARAM 264,0,60 - heading=60 degrees
To
#params for time & distance
AT$APP PARAM 263,0,500 - distance 500m
AT$APP PARAM 262,0,3600 - time=3600 secs
AT$APP PARAM 264,0,60 - heading=60 degrees
That will result in sending a position update every 500m or 3600s - whichever comes first.
If you are wanting something like the following - i.e. both of them
Then that's more complex to program and without the documentation (which is bloody hard to get hold of) it isn't really an option.
HIH
Dibbs
Thank You, Dibbs!
I was looking for setup exactly as you wrote on the end of your post above (different updates intervals depends on Ignition status).
My Teltonika device does this perfectly.
I will revert to yours initial parms for for time & distance.
@Sobek
Only because I'm still on the learning curve on these - ;) and I'm not guaranteeing it. LOL
No need to wipe the unit or factory reset.
AT$APP PARAM 512,2,
AT$APP PARAM 512,3,
AT$APP PARAM 512,4,
AT$APP PARAM 512,5,
AT$APP PARAM 512,6,
AT$APP PARAM 512,7,
That should wipe the 7 PEG entries.
Let's wipe your Time\Distance Profile too
#params for time & distance
AT$APP PARAM 263,0,
AT$APP PARAM 262,0,
AT$APP PARAM 264,0,
Let's break it down:
Assuming you want it every 30s OR 300m or 60 degree heading change IF ignition is on, let's put a time\distance profile in for this:
#params for time & distance Profile 0
AT$APP PARAM 263,0,400 - distance 300m
AT$APP PARAM 262,0,30 - time=30 secs
AT$APP PARAM 264,0,60 - heading=60 degrees
You can change the 300m, 30s & 60 degrees to suit. I would advise you to check to make sure you are happy with the combination of time & distance. If you prefer to just use distance - don't put in the time entry and vice versa. A Time\Distance profile requires at least one of the following
Moving on - we've got the 1st Time\Distance profile set up, Profile 0. This we will use for when the ignition is on. Let's create a 2nd profile (Profile 1) for when the ignition is off. The same rules I've mentioned also apply to Profile 1. For the sake of completeness, I'm going to stick to all 3 parameters.
#params for time & distance Profile 1
AT$APP PARAM 263,0,400 - distance 300m
AT$APP PARAM 262,0,3600 - time=3600 secs
AT$APP PARAM 264,0,60 - heading=60 degrees
That's both profiles set up, so lets' get them working.
#Ignition on/of - same as before. We want an alert when the ignition goes on or off.
AT$APP PARAM 512,0,15,0,0,0,1,0,0,0
AT$APP PARAM 512,1,16,0,0,0,1,1,0,0
#timers required for sleep. Still require both these counters\timers to put the unit to sleep when we need to.
AT$APP PARAM 265,0,180 - sleep count down 3mins [You can change 180s to another number to put it to sleep earlier\later]
AT$APP PARAM 265,1,0 - sleep duration - infinite [Do not change this.]
#Parameter for moving speed (THIS IS SPEED X)
AT$APP PARAM 257,1,224 -- 224 is 224cms: you need to convert your mph or kmh to cms. 224 is 5m/h
#Sleep - Basically waits 3 mins after ignition has gone off and then puts unit into a deep sleep OR IF ignition is OFF & it isn't moving.
AT$APP PARAM 512,2,16,0,4,0,13,0,0,0 - (Re\start countdown to sleep if ignition OFF)
AT$APP PARAM 512,3,15,0,0,0,30,0,0,0 - (Stop sleep countdown if Ignition goes ON)
AT$APP PARAM 512,4,7,0,0,0,30,0,0,0 - (Stop sleep countdown if speed goes beyond X)
AT$APP PARAM 512,5,18,0,2,0,22,1,0,0 - (Sleep countdown finished - go to sleep)
AT$APP PARAM 512,6,3,0,2,0,13,0,0,0 - (Wake up if powered on or movement detected)
#Time Distance enabling on Profile 0 - i.e. ignition ON.
AT$APP PARAM 512,7,1,0,0,0,6,1,0,0 -- Stop Profile 1
AT$APP PARAM 512,8,1,0,0,0,7,0,0,0 -- Start Profile 0
#Time Distance enabling on Profile 1 - i.e. ignition OFF BUT it's moving
AT$APP PARAM 1035,0,224 -- 224 is 224cms: you need to convert your mph or kmh to cms.
AT$APP PARAM 512,9,2,0,0,0,6,0,0,0 - Stop Profile 0
AT$APP PARAM 512,10,2,0,0,0,7,1,0,0 - Start Profile 1
#Only one profile will be active at a time, so send the position update as per the Profile.
AT$APP PARAM 512,11,17,0,0,0,1,50,0,0
Do a reboot
AT$APP PEG ACTION 70 0
and see how it goes.
There's a few typos - like the description saying 400m but the parameter says 300.
Just looking at my last "script" - I'm not sure it does what you want for the 2nd bit - i.e. send a position update every 3600s if it's stationary. If it's stops moving - the sleep countdown (300 secs) will start and it will go to sleep and you won't see the position update at 3600s.
This stationary bit - would that be stationary AND ignition OFF? Or stationary (don't care about ignition)? Or stationary & ignition ON?
@Sobek
After a bit more thinking - this might get you closer to what you want. Ignore the earlier "script" today.
No need to wipe the unit or factory reset.
AT$APP PARAM 512,2,
AT$APP PARAM 512,3,
AT$APP PARAM 512,4,
AT$APP PARAM 512,5,
AT$APP PARAM 512,6,
AT$APP PARAM 512,7,
That should wipe the 7 PEG entries.
Let's wipe your Time\Distance Profile too
#params for time & distance Profile 0 (clear them)
AT$APP PARAM 263,0,
AT$APP PARAM 262,0,
AT$APP PARAM 264,0,
Let's break it down:
Assuming you want it every 30s OR 300m or 60 degree heading change IF ignition is on, let's put a time\distance profile in for this:
#params for time & distance Profile 0
AT$APP PARAM 263,0,400 - distance 300m
AT$APP PARAM 262,0,30 - time=30 secs
AT$APP PARAM 264,0,60 - heading=60 degrees
You can change the 300m, 30s & 60 degrees to suit. I would advise you to check to make sure you are happy with the combination of time & distance. If you prefer to just use distance - don't put in the time entry and vice versa. A Time\Distance profile requires at least one of the following
Moving on - we've got the 1st Time\Distance profile set up, Profile 0. This we will use for when the ignition is on.
Let's create a 2nd profile (Profile 1) for when the ignition is off. Here it will send a position update every 120s after it wakes up for 300s (which is after 3600s) but only if ignition is OFF and then goes to sleep. The 120s in 300s will make sure you get 1 position update.
#params for time & distance Profile 1
AT$APP PARAM 263,0,0 - distance 0m, i.e. not used
AT$APP PARAM 262,0,120 - time=120 secs
AT$APP PARAM 264,0,0 - heading=0 degrees, i.e. not used
That's both profiles set up, so lets' get them working.
#Ignition on/of - same as before. We want an alert when the ignition goes on or off.
AT$APP PARAM 512,0,15,0,0,0,1,0,0,0 - Get position update when ignition goes from OFF to ON.
AT$APP PARAM 512,1,16,0,0,0,1,1,0,0 - Get position update when ignition goes from ON to OFF.
#timers required for sleep. Still require both these counters\timers to put the unit to sleep when we need to.
AT$APP PARAM 265,0,180 - sleep count down 3mins [You can change 180s to another number to put it to sleep earlier\later]
AT$APP PARAM 265,1,3600 - sleep duration - goes to sleep for 1hr.]
#Sleep - Basically waits 3 mins after ignition has gone off and then puts unit into sleep.
AT$APP PARAM 512,2,16,0,4,0,13,0,0,0 - (Re\start countdown to sleep if ignition OFF whether was turned off or already off.)
AT$APP PARAM 512,3,15,0,0,0,30,0,0,0 - (Stop sleep countdown if Ignition goes ON)
AT$APP PARAM 512,4,18,0,2,0,22,1,0,0 - (Sleep countdown finished - go to sleep)
AT$APP PARAM 512,5,3,0,2,0,13,0,0,0 - (Wake up if powered on or movement detected. It will also wake up after 3600s)
#Time Distance enabling on Profile 0 - i.e. ignition ON.
AT$APP PARAM 512,6,1,0,0,0,6,1,0,0 -- Stop Profile 1
AT$APP PARAM 512,7,1,0,0,0,7,0,0,0 -- Start Profile 0
#Time Distance enabling on Profile 1 - i.e. ignition OFF
AT$APP PARAM 512,8,2,0,0,0,6,0,0,0 - Stop Profile 0
AT$APP PARAM 512,9,2,0,0,0,7,1,0,0 - Start Profile 1
#Only one profile will be active at a time, so send the position update as per the Profile.
AT$APP PARAM 512,10,17,0,0,0,1,50,0,0
I think this might get you 99% of the way there. The extra thing it will do is if movement is detected - i.e. vehicle gets towed, lifted, pushed etc - then it will wake up with ignition OFF and stay awake for 180s and send you a position update at 120s once it wakes up. If someone is towing the vehicle - then you'll get position updates every 120s or so. Given no one tows a vehicle at high speed (with a sane mind), that should be OK for frequency.
With detecting movement - if movement #1 is detected, it wakes up for 180s and after 120s sends a position update and then goes to sleep. If during that 180s it detects another movement - the sleep timer "extends" but the position update timer isn't affected.
HIH
Dibbs
WOW, Dibbs!
You are very persistent :). Thank you very much!
I don't have access to vehicles/trackers now, but I will follow your instructions and I check effects on Monday.
Thank you again!
Good day,
I have been struggling for a number of days now to get a Calamp unit connected to the traccar server and I have studied all documentation available to me. I could get traccar client and a i-Track A1X (H02 protocol) set up with the traccar server succesfully.
At the moment I do not have access to LMU-Manager or PULS, but I am in the process of arranging this.
The unit is a Calamp LMU-2630 I believe, the full model name printe on the bottom of the unit:
P/N: LMU26G3001-G1000
Below I have stated the complete procedure followed, which may not be of interest to you if you are not familiar with the Calamp LMU units. My questions are as follows:
Am I missing something?
Any help would be greatly appreciated!
Below is my setup procedure:
AT$APP DEBUG ON
allow the serial interface to be verbose
AT#FACTORY
factory reset the device
AT$APP VER?
query the version. Response:
APP:LMU,044 V5.0j (Feb 17 2017 17:06:45)
PIC:STM S/N 4634282692
GPS:UBLOX-00070000 -1.00 (59842)
Radio:Cinterion BGS2-W-03.001/01.000.11
AT$APP PARAM 768,0,ppp.ppp.ppp.ppp
AT$APP PARAM 769,0,5082
AT$APP PARAM 2319,0,""
set the ip address and the port, actual ip address is specified
some guides advise that PARAM 2319,0 must be empty if IP address is specified, others say the ip or the url can be specified in PARAM 2319,0
AT$APP GPRS CONTEXT 0 "internet"
AT$APP PARAM 2314,0,""
AT$APP PARAM 2315,0,""
AT$APP GPRS CONTEXT 1 "internet"
AT$APP PARAM 2314,1,""
AT$APP PARAM 2315,1,""
set the APN name, username and password
AT$APP PARAM 1024,35,1,1
Disable auto-provisioning of the APN as my network APN settings is not pre-defined by the LMU unit
AT$APP PARAM 774,0,5082
set the listening port - is this the correct setting for traccar?
AT$APP TIME OFFSET 2
set local GMT time offset
AT$APP PEG ACTION 70 0
reboot device and wait for device to come online
AT$APP PEG ACTION 49 129
Download PEG script from PULS server. This step I am unsure about. What should the success response be? 10.64.13.121 is a private ip address??
Response:
app[16:31:40] Event 255:255 Action: Send ID Report via 129
app[16:31:40] LMPORT: SendPkt Directed Dest Address
app[16:31:40] LMD: Send UnAck #0 to 216.177.93.246:20500, len=101
app[16:31:40] ID Rpt
app[16:31:40] OTA:1|0;0,1,9,11,15
app[16:31:40] OTASTAT:0,0,0,0,0,""
app[16:31:40] LMPORT: SendPkt route=0 sock=1 addr=10.64.13.121
OK
Verify settings:
AT$APP GPS?
Lat=-2607184, Lon=2825124, Alt=1642
Hdg=170 Spd=1 3D-RTIME HDOP=153 nSats=5
OK
AT$APP INBOUND?
INBOUND LMD
INBOUND 0 ADDR ppp.ppp.ppp.ppp:5082 *
INBOUND 0 URL *
INBOUND 1 ADDR 0.0.0.0:20500
INBOUND 1 URL
INBOUND 2 ADDR 0.0.0.0:20500
INBOUND 3 ADDR 0.0.0.0:20500
OK
note:actual ip address is reported, not ppp.ppp.ppp.pppp
ATI1
ESN: 4634282692
IMEI: 35-----------16
IMSI: 655103409489533
ICC-ID: 8927000004766893026
OK
*the IMEI is used as the identifier, but look at server log below, for some or other reason when communicating with traccar server a "f" is appended after the IMEI number ??
ATI3
APP:044 5.0j
COM:-69 D.. internet
GPS:3D-RTIME 5
INP:0000000010011110 13.5V
MID:35-----------16 IMEI
INB:ppp.ppp.ppp.ppp:5082 LMD
OK
ATIC
Channel : 97
Cell ID : 59652
Base Station ID : 51
Local Area Code : 31524
Network Code : 10
Country Code : 655
IMEI (Modem S/N): 35-----------16
IMSI (SIM ID) : 65-----------33
ICC-ID (SIM S/N): 8927000004766893026
Phone Number :
GPRS APN : internet
Maint. Server : maint.vehicle-location.com(216.177.93.246):20500
Inbound Server : (ppp.ppp.ppp.ppp):5082
Comm Route : route=0, log=0, modem=32, inbnd_index=0, mode=0
ATS120?
32
OK
ATS150?
32
OK
ATS128?
0
OK
At this point there is stil no communication with traccar server or any log entries. The only command that affects any communication the the traccar server is:
AT$APP PEG SUNRPT 255
app[16:56:39] Event 255:255 Action: Send UnAck'd Event Report
app[16:56:39] LMPORT: SendPkt Inbound Dest Address
app[16:56:39] LMD: Send UnAck #4 to ppp.ppp.ppp.ppp:5082, len=44
app[16:56:39] Event Rpt (Indx255,Code255,Acc0:0)
app[16:56:39] LMPORT: SendPkt route=0 sock=1 addr=10.64.13.121
app[16:56:39] SLEEP: FSM State=0, Event=3
OK
The corresponding traccar-server.log entry:
2018-01-13 18:56:40 DEBUG: [796048A4: 5082 < 41.114.43.38] HEX:830835-----------16f0102000200045a5a3a475a5a3a47f075c23710d6ccb500027f4d0000004501580500000affbd0f119e00ffff0000
2018-01-13 18:56:40 WARN: Geocoding failed - Empty address - GeocoderException (JsonGeocoder:74 < ...)
2018-01-13 18:56:40 INFO: [796048A4] id: 35-----------16f, time: 2018-01-13 18:56:39, lat: -26.07180, lon: 28.25126, speed: 1.3, course: 344.0
Note the "f" appended to the IMEI nr, I already corrected this in the treaccar GUI as the device identifier.