I recently aquired a "AXB-PT30 PosiTrack Camera Controller" from the firm AMX, basically a simple Pan/Tilt-camera head. I want it to use via the RS232-standalone-option mentioned in the manual, but it seems im to stupid to figure out the right commands, since the manual is quite sparse on command-details i think. Maybe someone here has a solution or an idea what i do wrong?
I configured the jumpers/DIP-switches to 38400 Baud 8N1 RS232-Stand-Alone-Mode and when i connect the 12V to the head, i get a startup-message:
038 002 000 000 128 168
038 002 000 001 128 169
038 002 000 002 128 170
038 002 000 003 128 171
038 002 000 007 184 231
038 002 000 008 070 118
038 002 000 002 127 169
038 002 000 003 127 170
So it seems it should be possible to use a simple command like "Get Bus Status" to request an answer from the device. Ive used this online Mod256-checksum-calculator:
https://www.scadacore.com/tools/programming-calculators/online-checksum-calculator/ to get the required checksum and tried to send the device commands like "Get Bus Status" "Channel On/Off" and "Set Level Byte". But the device does nothing and doesnt respond to any message i send. Of course i will also write a note to AMX regarding those RS232-commands, but i dont expect them to answer any time soon.
Manual:
https://trade.amx.com//assets/manuals/0482370.pdf Page 50 shows the RS232-protocol
Maybe theres a RS232-brute-force-tool which could be used?
OK, your MOD256 site agrees with the status report you received. At least the first message matches. So sending the message to get the devices you should send:
042 009 051
If possible use hex numbers, as the back and forth translation dec<->hex is a bit cumbersome ;-)
Edit: Probably you will see more messages, if you slightly push at the cam-holder. It seems to notify every time one axis change the position. The protocol you send shows that axis 2 and 3 changed slightly by one digit (both from 128 to 127).
Thanks a bunch! I got it to rotate on both axis.
Edit: Just in case someone also wants to use such a cheap pan/tilt-head:
I always thought "Set Level" means setting the absolute angle position of the pan/tilt, but it justs sets the rotation speed:
Level =
00 -> clockwise full speed
...
7E -> clockwise lowest speed
7F -> no rotation
80... -> counterclockwise lowest speed
...
FF -> counterclockwise full speed
Hallo Friends,
I have positrack PT 15 with no luck RS232 comunication. DIP switches set, BD 38400 and I have not any communication with PT in terminal program. Can You help me ? Thanks
Have you checked that you have the right direction (DTE vs. DCE)? Also a normal PC expects some handshaking. Also check the number of stop bits and so on.
Thanks for reply,
according to the manual PT needs only rx tx lines, RS232 parameters set to 38400, N-8-1.
On a terminal do you get any output after power on the head? If not check that the Rx and Tx lines are not crossed. A very common mistake. That''s the reason I mentioned DTE and DCE.
OK, you were right, I used the AMX port instead of RS232 and I see the data in the terminal. The second problem is the correct command syntax for PT from the terminal. Can you send commands as text or just like hex strings? Thank you
I sent the command data to rotate pan/tilt as hex-characters via hterm since its convenient to just think in hex without translations to decimal.
The problem is for every command you need to calculate the checksum separately. I wrote a Python-script which calculates the checksum and controls the PT30 via joystick.
You can use the website on my first post to calculate the checksum.
Also remember: Set Level means rotational speed, not absolute position. So after you command Set Level on Pan or Tilt, it will rotate in one direction till it hits the stop-position.
See the attached document for the python-script.
Thank you guys, it's working.
Thank you for the script Echo88.