NAV200 Introduction

Contents: 

The SICK NAV200 is a 360-degree scanning LIDAR with a range of about 4m unless retroreflectors are used. It is sold as a navigation sensor for autonomous ground vehicles in factories. In its intended application, retroreflectors are positioned around the factory and their locations are given to the sensor. The sensor then calculates its position in the environment from the observed positions of the reflectors.

My friends and I acquired several of an old model of these sensors (NAV200-1111). The current model is NAV200-1132. The 1111 has a similar appearance and probably uses similar electronics, but the communications protocol is entirely different.

The 1111 has an RS-232 port which is not used by the standard firmware (the application firmware in flash may use it, but this code is not executed by default). The firmware expects to communicate over an RS-422 INMOS link, which is an obsolete 10Mbps serial interface. The interface in the NAV200 is implemented with an IMSC012 link adapter and a DS89C21 RS-422 line driver/receiver.

To make use of this sensor, I first had to understand the old communication protocol. As with the 66102a project, I dumped the EPROM, disassembled it, and connected a logic analyzer to the EPROM to watch execution. Since the IMSC012 datasheet describes the operation of the INMOS link in detail, I could build a matching interface with an FPGA development board. I sent data to the NAV200 and observed what code was executed as it was received. By studying code execution and the disassembly, I determined which code handled commands and the format of command and response packets.

I designed and built a USB interface board which uses a Xilinx XC9572XL CPLD to implement the INMOS link. A AT90USB162 microcontroller provides the connection between the USB host and the CPLD. This board provides a convenient interface between the sensor and a modern computer. It can be connected without modifying the sensor, but if the IP65 rating is not required, it's possible to remove the sealed connectors and place the USB interface inside the sensor. There are mounting holes for a missing circuit board which can be used to attach the USB interface.

The sensor spews about 64kB of data from flash on power-on. I don't know the significance of this data, but it is not necessary for using the sensor. The USB interface ignores it.

This sensor was originally the IBEO OWS 6. The datasheet is available here. This datasheet gives the connector pinouts and part numbers. The NAV200-1111 does not have the safety relay outputs.

More information: