Crate amg88[][src]

Expand description

Identifying pixels

The Grid-EYE has an 8x8 resolution, with the pixels numbered 1 through 64. When looking at the sensor head-on, vertically oriented with the lens window on top, pixel 1 is on your lower left. Pixels are then counted left to right, bottom to top.


A bitfield for controlling interrupts on the device.

A bitfield for the status flags of the device. This value is read from Register::Status and written to Register::StatusClear.


The I2C address for the Grid-EYE sensor.

Value for Register::Average, controlling whether or not the values presented by the sensor are processed as a moving average of previous frames or not. Frankly the documentation of this feature is lacking, and it’s unclear to me what it actually does while the different frame rates are set.

The frame rate of the camera. Internally, the sensor always runs at 10 FPS, but in 1 FPS mode it is averaging the frames internally to reduce noise. The names are slightly different from those used in the datasheet to conform to Rust’s identifier rules.

How interrupts should be triggered.

On power on, the device is in normal mode. There are no restrictions for leaving normal mode. In sleep mode, the only valid mode to change to is normal mode. When leaving sleep mode the value of other registers are undefined, and must be reset with this procedure:

The registers used to access the Grid-EYE.

There are two kinds of soft reset available by writing to Register::Reset. Only use ResetValue::Initial when changing from sleep to normal mode. The datasheet emphasizes that other values are not to be used.