Neofox serial interface, Overview, Settings – Ocean Optics NeoFox Engineering Note User Manual
Page 3: Writing data to the neofox
NeoFox Communication Interfaces
013-20000-010-04-201211 3
NeoFox Serial Interface
Overview
The NeoFox serial protocol can be used for a number of purposes. Most significantly, future versions of the
NeoFox hardware may have an RS232 serial output that will directly expose this protocol. Additionally,
knowledge of the serial protocol can be used in conjunction with knowledge of the FTDI USB protocol to create
custom USB drivers for the NeoFox, which are necessary for embedded host applications or non-windows based
PC host applications.
From the perspective of the embedded microcontroller, the serial protocol essentially has only two functions: to
read and write parameters and variables.
Settings
Setting
Value
Baud Rate:
750,000 baud (default)
Stop Bits:
1
Parity:
None
Flow Control:
None
Byte Order:
Little endian
Integer Size:
4 bytes
Float Size:
4 bytes
The following settings represent the default settings of the UART when used in through the USB interface. The
default settings for the UART when it is communicating through the RS232 interface are listed in
Writing Data to the NeoFox
All of the writable parameters on the NeoFox fall into two categories: floating point types and integer types
(including char, short, etc). Regardless of type, all parameters accept the same command frame structure to set
their values. This structure is documented below. There are two fields in this command that require detailed
explanation.
First, bytes 8 through 11 hold the ParamType field. This field contains a code that indicates which parameter is
to be set by the command. A list of parameters and codes is available at the end of this document.
The ParamValue field (bytes 12 through 15) contains the actual value that is to be set by the command. This
field does not have an explicit type listed in the table below. The type is determined by the type of the parameter
value (also listed in the table at the end of this document). If the parameter is an integer type (short, char, long,
etc), then these four bytes are interpreted as a 4 byte signed integer (little endian) and then cast to the actual
type. If the parameter is a floating point type, then the four bytes are explicitly interpreted as a little endian
floating point value.