Products > Thermal Imaging

Remote control of FLIR PM series cameras using Arduino & RS232 - a mini project

(1/5) > >>

Hi all,

I am about to embark on a little remote control project that may be of interest to others on this sub forum ?

I own several FLIR PM series industrial thermal cameras. These have a built in keypad and joystick to access functions via a menu. There is also a very rare and expensive remote control handset option that can control the camera via the 10 pin LEMO 2B 310 RS232 communications port on the side of the camera.

FLIR were kind enough to publish the full RS232 port command set for these cameras so that owners can control them from a simple RS232 terminal or PC. Thankfully no specialist communications adapters or translators are required so it is a simple RS232 cable link.

I own three of the official remote control handsets and was surprised to find a fully fledged single board computer within them. IIRC it uses a MC68000 but I would need to check that as it was a long time ago. The SBC is basically a computer running a terminal program with macro keys as the input and RS232 as the command string output.

I intend to replicate the functionality of the OEM remote using an Arduino Nano board, some buttons and a UART TTL to RS232 converter. The OEM remote has 12 buttons on it but there is no reason why I could not build a 'super' remote that can send more commands to the camera as there are masses available for the remote control of the PM series cameras.

AGEMA designed the PM series platform that was bought by FLIR and the design is well thought through, as is typical of AGEMA products. The remote control functionality is comprehensive to say the least. There is a single command string with a variable that may be set to replicate every physical button or joystick movement on the camera. This basically provides GUI menu control of the camera. Alternatively, there are also direct commands for functions such as setting emissivity, zoom,  auto focus, span, level, ISOtherm, spot metering point and other useful features. The capabilities of remote control over these cameras is limited only by the number of command buttons you want on the remote control, or within a PC software control application. These are truly versatile cameras.

One of my FLIR PM series cameras is a 'Box Camera' These are the type fitted in the gimbal mounted sphere that police helicopters etc carry. There is just one LEMO combined communications and power port, and one BNC connector for video output on the camera. It has no buttons or EVF. The camera is designed to be remote controlled from a location remote from the camera or in a lab using the PC software and video capture interface that came with it. My 'Box Cam' is new unissued stock and I have been keen to play with it on a Pan Tilt mount using a dedicated remote control and LCD monitor. Great for wildlife observation at a distance.

I now have a stack of Arduino UNO R3, MEGA and Nano boards to experiment with. This is one application for which the Arduino appears very well suited. Hopefully it will provide a means to create what I need quickly and simply. I am just starting out with Arduino so it will also serve as a self teaching project on programming these versatile little microcontrollers. I am also learning embedded C and writing code for PIC IC's, but the Arduino can do this sort of task so simply and the Nano actually comprises almost all the required parts for a remote, bar the switches and true RS232 adapter.

I shall document my progress with this little project here and share the Sketch for use by others with a similar need. The remote could control any camera that has documented serial RS232 commands. The FLIR industrial cameras always used to include a RS232 port but sadly later models are USB only.

Watch this space and any/all comments and suggestions are welcome. Let's just keep away from the Arduino Vs PIC type discussions though eh :)

The cameras that I will be controlling with the remote are listed below


Other cameras with the same remote control commands and port are:


The FLIR P series also has a serial remote control port but I cannot confirm that the commands are the same as on the PM series. Easy enough to change the commands in the Arduino Sketch though.


sounds cool, I will be following.  :-+

Every project should have at least a simple statement of requirements so here is such for this little remote control.

Project:  Remote control commander for FLIR PM series cameras

Statement of requirements

1. Format: Handheld

2. Communications type and bearer: True RS232 via cable and LEMO 2B-310 Plug

3. Input method: Push buttons. Number set by functions to be provided.
The minimum will be 8 functions.

OEM remote control handset Functions:

Camera button simulation:

Enter Button
Escape Button
Store Button
Auto Adjust Button
Navigation Up button
Navigation Down button
Navigation Left button
Navigation Right button

Additional functions on remote control:


4. Power supply : Provided by host. 11-16 V DC @<250mA

5.  Keypad type: Individual push buttons per function. No auto-repeat.

6. Output Command type: RS232 serial string in ASCII 

7. Microcontroller board: ARDUINO UNO R3 or Nano

8. RS232 settings used by the camera:

19200 baud default (options for 9600 & 38400 via RS232 commands)
1 start bit, 8 data bits, No parity, 1 stop bit
XOn/XOff flow control

9. Example output command string:

Command: button:<button ID goes here>[,<p or r>] CR

The button ID is detailed in the documentation and will be one of the following:

ent / esc/ f1 / f2 / u / r / d / l / lev / spn / emi / dst

The 'p' is to indicate button 'pressed' and the 'r' is button 'released'
If only 'button pressed' is used, the camera auto releases the button after 2 seconds.

Answer from the Camera to each command argument: OK

To send STORE function to camera, the command will look like:

button:f1,p [CR]
button:f1,r  [CR]

To send AUTO ADJUST function to the camera, the command will look like:

button:f2,p [CR]
button:f2,r  [CR]

Some notes of my thoughts regarding this project to date:

1. A simple remote with few buttons will likely use individual push buttons and no matrix. A more complex remote with many buttons will likely use either a matrix push button keypad or one of the encoded capacitive keypads, and associated library.

2. The buttons need to have contact de-bouncing incorporated into the sketch.

3. The serial commands string link uses Xon/Xoff flow control. This needs to be further investigated with regard to Arduino serial string transmission and flow control.

4. The serial output from the Arduino will need to pass through a UART to RS232 converter such as the MAX3232 for inversion and level changing.


The OEM FLIR remote control that is so rare and expensive.


[0] Message Index

[#] Next page

There was an error while thanking
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod