Calamp LMU-2630 setup problems

Bloedhond7 years ago

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:

  • Why does traccarsever not send an acknowledgement to the device?
  • Can I safely assume the port and firewall settings are correct for 5082 since the unit is able to communicate with the server if issued the command AT$APP PEG SUNRPT 255?
  • I presume I have setup the device incorrectly, as unless I specify the command AT$APP PEG SUNRPT 255 there is no activity relating to port 5082 in the traccar-server.log - what do I need to do / change?
  • Does traccar respond to the device using port 5082 as well?

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.

Anton Tananaev7 years ago

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.

Bloedhond7 years ago

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!

Rajeswary5 years ago

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

Dibbs5 years ago

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 -

Description text

The wiring is as follows,

Description text

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

  1. APN details (APN name, User & Password)
  2. Outbound Server IP & Port
  3. Local Port (for the tracker to listen to)
  4. Remote Server IP (a 32 bit integer of the IP address of the remote server - Your Server & Remote server will be the same)
  5. Set the Identifier to be the IMEI.
  6. Enable Ignition On\Off reporting (it does a little more than that).
  7. Set it up to sleep after 3 mins after ignition goes off.
  8. Set up a Time & Distance profile where it will report in every 30s (can change this) OR every 400m (can change this), whichever one comes first.

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.

Dibbs5 years ago

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.

Rajeswary5 years ago

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)?

Dibbs5 years ago

@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

  1. IF ignition on send updates every (X seconds OR Y metres) ELSE nothing
  2. IF ignition off only send updates every X seconds AND (speed above Z mph speed OR it has moved more than Y meters) ELSE nothing.

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.

Dibbs5 years ago

@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

  • time interval
  • distance interval
  • heading change

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.

Dibbs5 years ago

There's a few typos - like the description saying 400m but the parameter says 300.

Dibbs5 years ago

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?

Dibbs5 years ago

@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

  • time interval
  • distance interval
  • heading change

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!