![]() |
VOOZH | about |
dotnet add package nanoFramework.Iot.Device.Amg88xx --version 1.2.952
NuGet\Install-Package nanoFramework.Iot.Device.Amg88xx -Version 1.2.952
<PackageReference Include="nanoFramework.Iot.Device.Amg88xx" Version="1.2.952" />
<PackageVersion Include="nanoFramework.Iot.Device.Amg88xx" Version="1.2.952" />Directory.Packages.props
<PackageReference Include="nanoFramework.Iot.Device.Amg88xx" />Project file
paket add nanoFramework.Iot.Device.Amg88xx --version 1.2.952
#r "nuget: nanoFramework.Iot.Device.Amg88xx, 1.2.952"
#:package nanoFramework.Iot.Device.Amg88xx@1.2.952
#addin nuget:?package=nanoFramework.Iot.Device.Amg88xx&version=1.2.952Install as a Cake Addin
#tool nuget:?package=nanoFramework.Iot.Device.Amg88xx&version=1.2.952Install as a Cake Tool
The sensors of the AMG88xx family of infrared array sensors have 64 thermophile pixels arranged in an 8×8 matrix. The sensor works as a thermal infrared camera. It can detect objects (e.g. human bodies) from a distance of up 5-7m. A pixel can measure object temperatures in a range of 0 to 80°C / -20 to 100°C with a resolution of 0.25°C and an accuracy of ±2.5°C / ±4.5°C. The sensor has a view field angle of 60° and a 7.5° view angle per pixel.
The manufacturer (Panasonic) names the following applications: home appliances (microwaves and air-conditioners), building automation (people counting, air conditioning control), home automation (people detection), factory automation (fault prevention). The sensor delivers a heat image through its digital interface (I2C) at a rate of 1 or 10 frames per second. Additionally an interrupt pin can raise an event when any individual pixel goes above or below a configured threshold.
the AMG88 family consists of 4 members:
| Type | Resolution | Gain | Vcc | Obj. Temp. Range | Resolution | Accuracy |
|---|---|---|---|---|---|---|
| AMG8833 | 8x8 | High | 3V3 | 0-80°C | 0.25°C | ±2.5°C |
| AMG8834 | 8x8 | Low | 3V3 | -20-100°C | 0.25°C | ±4.5°C |
| AMG8853 | 8x8 | High | 5V0 | 0-80°C | 0.25°C | ±2.5°C |
| AMG8854 | 8x8 | Low | 5V0 | -20-100°C | 0.25°C | ±4.5°C |
The sensor is equipped with an on-chip thermistor which can be read out. The thermistor has a measurement range of -20...80°C at a resolution of 0.0625°C.
The Amg88xx binding provides a lean interface to retrieve the pixel array and to control the sensor. All sensor functions are covered. Any further processing, e.g. pattern recognition, is beyond the scope of the binding.
The temperature readings of the pixel array can be read as a thermal image with 64 pixels arranged in an 8x8 matrix. The pixel array can be read out at any time and speed. However, the sensor updates the corresponding registers depending on the configured frame rate.
The sensor has an integrated thermistor which can be readout to get the chip temperature.
Note: The chip temperature does not equal to the environmental temperature.
The current image can be read from the sensor into the binding by:
public void ReadImage()
The temperature of a pixel specified by its coordinates can be read using an indexer:
public Temperature this[int x, int y]
The whole temperature image can be read as a two-dimensional array:
public Temperature[,] TemperatureImage
The raw reading (12-bit two's complement format) of a pixel specified by its number can be read using an indexer:
public Int16 this[int n]
Note: there is no statement in the reference specification regarding the synchronization between an update of the pixel registers and the readout operation. So, you may read out pixel data from two subsequent frames in one readout operation. However, for normal application this shouldn't be relevant.
Property:
public Temperature SensorTemperature
Note: the thermistor temperature is not equivalent to the
The sensor supports four operating modes to control power consumption:
Property:
public OperatingMode OperatingMode
Note: refer to the reference specification for further details on mode transitions and sensor behavior.
The sensor supports two types of resets.
public void Reset()
public void ResetAllFlags()
Note: resetting the interrupt related flags is only required if you want to clear flags while the readings are still within the hysteresis span. See interrupts section for further details on interrupt behavior.
The sensor status indicates if any pixel or the chip internal thermistor overran the upper or lower operating range limit. It also flags on the occurrence of an interrupt. The status can be read out and reset per flag:
public bool HasTemperatureOverflow();
public void ClearTemperatureOverflow();
public bool HasThermistorOverflow();
public void ClearThermistorOverflow();
public bool HasInterrupt();
public void ClearInterrupt();
public void ClearAllFlags();
Note: resetting the interrupt flag is only required if you want to clear flags while the readings are still within the hysteresis span (but already within the lower-upper range). This method does not clear the interrupt flags of the individual pixels. See interrupts section for further details on interrupt behavior.
Note: the thermistor overflow flag is only menthioned in early versions of the reference specification. It is not clear whether this is a specification error or a change in a newer revision of the sensor.
Default: 10fps
The sensor supports frame rates of 1fps and 10fps. The frame rate defines the update interval of the pixels. This is independent from the readout interval through the I2C interface.
Property:
public FrameRate FrameRate
Default: off
The sensor supports a moving average mode. In this mode it builds the twice moving average for each pixel.
The noise per pixel will decrease to 1/sqrt2 when using the moving average mode.
Property:
public bool UseMovingAverageMode
Important: the reference specification states that the current mode can be read, but it doesn't seem to work at the time being. In this case the property is always read as false.
The sensor can raise an interrupt if any pixel passes a given value. The event is signaled by the interrupt flag of the status register. Additionally the INT pin of the sensor can be pulled low.
Properties:
public InterruptMode PixelTemperatureInterruptMode
public bool InterruptPinEnabled
The interrupt levels can be configured. The lower and upper limit as well as the hysteresis level can be set and read. Initially the register is filled with zeros. The levels apply to all pixels equally.
Properties:
public Temperature InterruptLowerLevel
public Temperature InterruptUpperLevel
public Temperature InterruptHysteresis
After the sensor raised an interrupt the triggering pixels can be readout from the interrupt table register.
public bool[,] GetInterruptFlagTable()
Interrupt levels and hysteresis
Note:
ResetAllFlags method.The sample application demonstrates the key functions of the sensor and the binding:
There are AMG88xx breakout boards available from a variety of vendors. You can use any of them as long as it provides access to the I2C interface of the sensor.
Note: There are also boards available with additional interfaces or even with an integrated Arduino or compatible circuit. You can use this binding only if the boards gives you access to the I2C interface only.
For demonstration purpose the INT-pin of the sensor is connected to a valid GPIO PIN of the MCU. Additionally an LED is connected to another valid GPIO PIN of the MCU. The LED signals the occurrence of an interrupt.
The resistor depends on the LED type; however 150R-220R is a safe choice for a standard red LED. Or precisely: R = (3,3V - U LED,forward) / I LED, forward
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET Framework | net net is compatible. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.0-preview.85 | 51 | 6/1/2026 |
| 2.0.0-preview.80 | 58 | 5/27/2026 |
| 2.0.0-preview.73 | 62 | 5/20/2026 |
| 2.0.0-preview.69 | 61 | 5/18/2026 |
| 2.0.0-preview.62 | 64 | 5/13/2026 |
| 2.0.0-preview.49 | 63 | 5/4/2026 |
| 2.0.0-preview.45 | 58 | 4/29/2026 |
| 2.0.0-preview.40 | 62 | 4/27/2026 |
| 2.0.0-preview.32 | 65 | 4/20/2026 |
| 2.0.0-preview.18 | 72 | 3/11/2026 |
| 2.0.0-preview.16 | 64 | 3/10/2026 |
| 1.2.952 | 142 | 3/4/2026 |
| 1.2.931 | 337 | 11/10/2025 |
| 1.2.907 | 292 | 10/2/2025 |
| 1.2.889 | 261 | 7/28/2025 |
| 1.2.869 | 392 | 4/2/2025 |
| 1.2.864 | 382 | 4/2/2025 |
| 1.2.852 | 357 | 3/11/2025 |
| 1.2.846 | 345 | 3/10/2025 |
| 1.2.822 | 286 | 2/26/2025 |