{"id":2630,"date":"2023-12-03T01:15:38","date_gmt":"2023-12-03T00:15:38","guid":{"rendered":"https:\/\/www.nico-maas.de\/?p=2630"},"modified":"2023-12-03T01:42:37","modified_gmt":"2023-12-03T00:42:37","slug":"building-a-mlx90640-thermal-camera","status":"publish","type":"post","link":"https:\/\/www.nico-maas.de\/?p=2630","title":{"rendered":"Building a MLX90640 Thermal Camera"},"content":{"rendered":"<h2>Intro<\/h2>\n<p>Thermal Cameras are neat tools, especially in electronics: You can quickly diagnose short circuits, identify misbehaving components or quantify if subsystems get too hot. However, thermal cameras are still a luxury item which can quickly costs hunderds of euros. Sometimes - however - you do not need the accurarcy of a FLIR or similar system, somtimes its just enough to see which part of a PCB is heating up quicker than others. Enter MLX90640: A 32x24 pixel sensor in two different FoVs, exposing its data via i2c. These sensors can be had on different websites for as low as 25 euros during sale.<\/p>\n<h2>Components\/BoM<\/h2>\n<ul>\n<li>1x MLX90640 Thermal Sensor<\/li>\n<li>1x Waveshare RP2040 Zero<\/li>\n<li>1x HT7333 LDO<\/li>\n<li>2x SMD Capacitor 10 uF<\/li>\n<li>2x SMD Resistor 2.2k Ohm<\/li>\n<\/ul>\n<p>All in all about 30 Euros<\/p>\n<h2>Schematic<\/h2>\n<p><a href=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/thermalCameraSchematic.png?ssl=1\"><img data-recalc-dims=\"1\" height=\"524\" width=\"1024\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/thermalCameraSchematic.png?resize=1024%2C524&#038;ssl=1\" alt=\"\" \/><\/a><\/p>\n<p>Nothing really surprising - a HT7333 with some filter caps to allow for a clean power source, two pull-up resistors to allow for the high-speed, 1 MHz communication via the i2c bus. Keep the i2c wires between RP2040 Zero and the sensor as short as possible and pull-up the i2c SDA\/SCL lines directly at the sensor.<\/p>\n<h2>Operation modes<\/h2>\n<p>There are two operation modes here, you can either choose to use the sensor with the Adafruit and Sparkfun example, which will just write a (very long) ASCII line consiting of 768 comma seperated float values per frame, delimited by \\n. This will also work with a Processing example to showcase the picture (about 4 FPS).<br \/>\nThe alternative to that, would be using another approach, packing the 768 temperature values not in a data intensive ASCII line, but send them via SLIP protocol to the computer. The processing example is not available for that, but I got some other Python code in the making (about 7.5 FPS).<\/p>\n<h3>Serial<\/h3>\n<h4>Firmware (Serial)<\/h4>\n<p>Programmed via Arduino using the Arduino-Pico framework, using the Adafruit_MLX90640 library ( <a href=\"https:\/\/github.com\/adafruit\/Adafruit_MLX90640\">https:\/\/github.com\/adafruit\/Adafruit_MLX90640<\/a> ) - please be aware that 1 MHz I2C operations and mlx.setRefreshRate(MLX90640_32_HZ) will only work with extremely short wires!<\/p>\n<pre><code>#include <Adafruit_MLX90640.h>\n\nAdafruit_MLX90640 mlx;\nfloat frame[32*24]; \/\/ buffer for full frame of temperatures\n\n\/\/ uncomment *one* of the below\n#define PRINT_TEMPERATURES\n\/\/#define PRINT_ASCIIART\n\nvoid setup() {\n  while (!Serial) delay(10);\n  Serial.begin(115200);\n  delay(100);\n\n  \/\/Serial.println(\"Adafruit MLX90640 Simple Test\");\n  if (! mlx.begin(MLX90640_I2CADDR_DEFAULT, &Wire)) {\n    Serial.println(\"MLX90640 not found!\");\n    while (1) delay(10);\n  }\n  \/*\n  Serial.println(\"Found Adafruit MLX90640\");\n\n  Serial.print(\"Serial number: \");\n  Serial.print(mlx.serialNumber[0], HEX);\n  Serial.print(mlx.serialNumber[1], HEX);\n  Serial.println(mlx.serialNumber[2], HEX);\n  *\/\n\n  \/\/mlx.setMode(MLX90640_INTERLEAVED);\n  mlx.setMode(MLX90640_CHESS);\n\/*\n  Serial.print(\"Current mode: \");\n  if (mlx.getMode() == MLX90640_CHESS) {\n    Serial.println(\"Chess\");\n  } else {\n    Serial.println(\"Interleave\");    \n  }\n*\/\n\n\/\/  mlx.setResolution(MLX90640_ADC_18BIT); \/\/default\n  mlx.setResolution(MLX90640_ADC_19BIT);\n  \/*Serial.print(\"Current resolution: \");\n  mlx90640_resolution_t res = mlx.getResolution();\n  switch (res) {\n    case MLX90640_ADC_16BIT: Serial.println(\"16 bit\"); break;\n    case MLX90640_ADC_17BIT: Serial.println(\"17 bit\"); break;\n    case MLX90640_ADC_18BIT: Serial.println(\"18 bit\"); break;\n    case MLX90640_ADC_19BIT: Serial.println(\"19 bit\"); break;\n  }\n*\/\n\n  \/\/mlx.setRefreshRate(MLX90640_2_HZ);\n  \/\/mlx.setRefreshRate(MLX90640_8_HZ);\n  mlx.setRefreshRate(MLX90640_32_HZ);\n\n  \/*Serial.print(\"Current frame rate: \");\n  mlx90640_refreshrate_t rate = mlx.getRefreshRate();\n  switch (rate) {\n    case MLX90640_0_5_HZ: Serial.println(\"0.5 Hz\"); break;\n    case MLX90640_1_HZ: Serial.println(\"1 Hz\"); break; \n    case MLX90640_2_HZ: Serial.println(\"2 Hz\"); break;\n    case MLX90640_4_HZ: Serial.println(\"4 Hz\"); break;\n    case MLX90640_8_HZ: Serial.println(\"8 Hz\"); break;\n    case MLX90640_16_HZ: Serial.println(\"16 Hz\"); break;\n    case MLX90640_32_HZ: Serial.println(\"32 Hz\"); break;\n    case MLX90640_64_HZ: Serial.println(\"64 Hz\"); break;\n  }\n  *\/\n\n  \/\/Wire.setClock(400000); \/\/ max 1 MHz\nWire.setClock(1000000); \/\/ max 1 MHz\n\/\/  Wire.setClock(3400000); \/\/ max 1 MHz\n\n}\n\nvoid loop() {\n  \/\/delay(500);\n\n  if (mlx.getFrame(frame) != 0) {\n    \/\/Serial.println(\"Failed\");\n    return;\n  }\n\n  \/\/Serial.println();\n  \/\/Serial.println();\n  for (uint8_t h=0; h<24; h++) {\n    for (uint8_t w=0; w<32; w++) {\n      float t = frame[h*32 + w];\n#ifdef PRINT_TEMPERATURES\n      Serial.print(t, 1);\n      Serial.print(\",\");\n#endif\n#ifdef PRINT_ASCIIART\n      char c = '&';\n      if (t < 20) c = ' ';\n      else if (t < 23) c = '.';\n      else if (t < 25) c = '-';\n      else if (t < 27) c = '*';\n      else if (t < 29) c = '+';\n      else if (t < 31) c = 'x';\n      else if (t < 33) c = '%';\n      else if (t < 35) c = '#';\n      else if (t < 37) c = 'X';\n      Serial.print(c);\n#endif\n    }\n    \/\/Serial.println();\n  }\n  Serial.println();\n  \/\/Serial.write('\\n'); \/\/10\n}<\/code><\/pre>\n<h4>Software (Serial)<\/h4>\n<p>To read the data from the sensor, the SparkFun Processing example ( <a href=\"https:\/\/learn.sparkfun.com\/tutorials\/qwiic-ir-array-mlx90640-hookup-guide\/all#example-code\">https:\/\/learn.sparkfun.com\/tutorials\/qwiic-ir-array-mlx90640-hookup-guide\/all#example-code<\/a> ) can be used.<br \/>\nAlternatively, you can use Python 3.x and pyserial, giving back a list of thermal readings which can then be drawn into pictures.<\/p>\n<pre><code>import serial\nimport re\nser = serial.Serial('COM12', 115200, timeout=2)\nwhile True:\n    line = ser.readline().decode('ascii')   # read a '\\n' terminated line\n    thermalData = re.split('\\,', line[:-3]) # last ,\\n needs to go!\n    print(thermalData)<\/code><\/pre>\n<h3>SLIP<\/h3>\n<h4>Firmware (SLIP)<\/h4>\n<p>Programmed via Arduino using the Arduino-Pico framework, using the Adafruit_MLX90640 library ( <a href=\"https:\/\/github.com\/adafruit\/Adafruit_MLX90640\">https:\/\/github.com\/adafruit\/Adafruit_MLX90640<\/a> ) as well as PacketSerial ( <a href=\"https:\/\/github.com\/bakercp\/PacketSerial\">https:\/\/github.com\/bakercp\/PacketSerial<\/a> ) - please be aware that 1 MHz I2C operations and mlx.setRefreshRate(MLX90640_32_HZ) will only work with extremely short wires!<\/p>\n<pre><code>#include <PacketSerial.h>\nSLIPPacketSerial packetSerial;\n\n#include <Adafruit_MLX90640.h>\nAdafruit_MLX90640 mlx;\nfloat frame[32*24]; \/\/ buffer for full frame of temperatures\n\nvoid setup() {\n  while (!Serial) delay(10);\n  Serial.begin(460800);\n  Serial.setTimeout(100);\n  packetSerial.setStream(&Serial); \n  delay(100);\n\n  if (! mlx.begin(MLX90640_I2CADDR_DEFAULT, &Wire)) {\n    \/\/Serial.println(\"MLX90640 not found!\");\n    while (1) delay(10);\n  }\n  \/*\n  Serial.println(\"Found Adafruit MLX90640\");\n  Serial.print(\"Serial number: \");\n  Serial.print(mlx.serialNumber[0], HEX);\n  Serial.print(mlx.serialNumber[1], HEX);\n  Serial.println(mlx.serialNumber[2], HEX);\n  *\/\n\n  \/\/mlx.setMode(MLX90640_INTERLEAVED);\n  mlx.setMode(MLX90640_CHESS);\n\n\/\/  mlx.setResolution(MLX90640_ADC_18BIT); \/\/default\n  mlx.setResolution(MLX90640_ADC_19BIT);\n\n  \/\/mlx.setRefreshRate(MLX90640_2_HZ);\n  \/\/mlx.setRefreshRate(MLX90640_8_HZ);\n  mlx.setRefreshRate(MLX90640_32_HZ);\n\n  \/\/Wire.setClock(400000);\n  Wire.setClock(1000000); \/\/ max 1 MHz\n}\n\nvoid loop() {\n  packetSerial.update();\n  if (mlx.getFrame(frame) != 0) {\n    \/\/Serial.println(\"Failed\");\n    return;\n  } else {\n    packetSerial.send((uint8_t*)&frame, sizeof(frame));   \n  }\n}<\/code><\/pre>\n<h4>Software (SLIP)<\/h4>\n<p>Using Python 3.x, pyserial and sliplib, giving back a list of thermal readings which can then be drawn into pictures<\/p>\n<pre><code>import serial\nimport sliplib\nimport time\nimport struct\nser = serial.Serial('COM12', 115200, timeout=2)\nwhile True:\n    bytesToRead = ser.inWaiting()\n    if (bytesToRead!=0):\n        readData = ser.read(bytesToRead)\n        decodedData = sliplib.decode(readData)\n        if decodedData != b'':\n            thermalData = []\n            for i in range(0, len(decodedData), 4):\n                thermalData.append(struct.unpack('f', decodedData[i:i+4])[0])\n            print(thermalData)\n            # ca. 7.41 Frames raw\n    else:\n        time.sleep(0.07)<\/code><\/pre>\n<h2>Finishing up<\/h2>\n<p>After connecting everything, I finished the build up by printing a small PLA housing and even printed a TPU cap for the lense itself, so that (via friction fit) the sensor could be just thrown into the toolbox and still would be protected from dust and other issues. Could the finish be gotten more pretty? Yes. Did this hinder its function? Not at all, it already helped me fix up a defective turingPi2 \ud83d\ude42 (maybe something for the next post).<\/p>\n<h2>Optimisation<\/h2>\n<p>As usual in engineering, some problems can be solved by throwing money at them. In this case, a Teensy 4.x as a processor could significantly increase the data throughput. However, I did not want to pair a 40 Euro MCU with a 25 Euro Sensor - be it for costs and footprints sake - and opted in for the 2.5 Euro RP2040 Zero. Still, performance can be improved over my first optimisation using SLIP - by just using the second core of the RP2040. Ideally you would multi-thread the application, having the first core always retriving new data, while the second core packs it into SLIP packets and sends them on their way. This should be fairly easy and might result in more fps :).<\/p>\n<h2>Photos<\/h2>\n<p><a href=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/thermalCamera1.jpg?ssl=1\"><img data-recalc-dims=\"1\" height=\"864\" width=\"1024\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/thermalCamera1.jpg?resize=1024%2C864&#038;ssl=1\" alt=\"\" \/><\/a><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/thermalCamera2.jpg?ssl=1\"><img data-recalc-dims=\"1\" height=\"697\" width=\"1024\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/thermalCamera2.jpg?resize=1024%2C697&#038;ssl=1\" alt=\"\" \/><\/a><\/p>\n<div class=\"shariff shariff-align-left shariff-widget-align-left\"><ul class=\"shariff-buttons theme-round orientation-horizontal buttonsize-small\"><li class=\"shariff-button printer shariff-nocustomcolor\" style=\"background-color:#a8a8a8\"><a href=\"javascript:window.print()\" title=\"print\" aria-label=\"print\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#999; color:#fff\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 30 32\"><path fill=\"#999\" d=\"M6.8 27.4h16v-4.6h-16v4.6zM6.8 16h16v-6.8h-2.8q-0.7 0-1.2-0.5t-0.5-1.2v-2.8h-11.4v11.4zM27.4 17.2q0-0.5-0.3-0.8t-0.8-0.4-0.8 0.4-0.3 0.8 0.3 0.8 0.8 0.3 0.8-0.3 0.3-0.8zM29.7 17.2v7.4q0 0.2-0.2 0.4t-0.4 0.2h-4v2.8q0 0.7-0.5 1.2t-1.2 0.5h-17.2q-0.7 0-1.2-0.5t-0.5-1.2v-2.8h-4q-0.2 0-0.4-0.2t-0.2-0.4v-7.4q0-1.4 1-2.4t2.4-1h1.2v-9.7q0-0.7 0.5-1.2t1.2-0.5h12q0.7 0 1.6 0.4t1.3 0.8l2.7 2.7q0.5 0.5 0.9 1.4t0.4 1.6v4.6h1.1q1.4 0 2.4 1t1 2.4z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button mailto shariff-nocustomcolor\" style=\"background-color:#a8a8a8\"><a href=\"mailto:?body=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2630&subject=Building%20a%20MLX90640%20Thermal%20Camera\" title=\"Send by email\" aria-label=\"Send by email\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#999; color:#fff\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 32 32\"><path fill=\"#999\" d=\"M32 12.7v14.2q0 1.2-0.8 2t-2 0.9h-26.3q-1.2 0-2-0.9t-0.8-2v-14.2q0.8 0.9 1.8 1.6 6.5 4.4 8.9 6.1 1 0.8 1.6 1.2t1.7 0.9 2 0.4h0.1q0.9 0 2-0.4t1.7-0.9 1.6-1.2q3-2.2 8.9-6.1 1-0.7 1.8-1.6zM32 7.4q0 1.4-0.9 2.7t-2.2 2.2q-6.7 4.7-8.4 5.8-0.2 0.1-0.7 0.5t-1 0.7-0.9 0.6-1.1 0.5-0.9 0.2h-0.1q-0.4 0-0.9-0.2t-1.1-0.5-0.9-0.6-1-0.7-0.7-0.5q-1.6-1.1-4.7-3.2t-3.6-2.6q-1.1-0.7-2.1-2t-1-2.5q0-1.4 0.7-2.3t2.1-0.9h26.3q1.2 0 2 0.8t0.9 2z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button twitter shariff-nocustomcolor\" style=\"background-color:#595959\"><a href=\"https:\/\/twitter.com\/share?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2630&text=Building%20a%20MLX90640%20Thermal%20Camera\" title=\"Share on X\" aria-label=\"Share on X\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#000; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path fill=\"#000\" d=\"M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button facebook shariff-nocustomcolor\" style=\"background-color:#4273c8\"><a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2630\" title=\"Share on Facebook\" aria-label=\"Share on Facebook\" role=\"button\" rel=\"nofollow\" class=\"shariff-link\" style=\"; background-color:#3b5998; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 18 32\"><path fill=\"#3b5998\" d=\"M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button linkedin shariff-nocustomcolor\" style=\"background-color:#1488bf\"><a href=\"https:\/\/www.linkedin.com\/sharing\/share-offsite\/?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2630\" title=\"Share on LinkedIn\" aria-label=\"Share on LinkedIn\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#0077b5; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 27 32\"><path fill=\"#0077b5\" d=\"M6.2 11.2v17.7h-5.9v-17.7h5.9zM6.6 5.7q0 1.3-0.9 2.2t-2.4 0.9h0q-1.5 0-2.4-0.9t-0.9-2.2 0.9-2.2 2.4-0.9 2.4 0.9 0.9 2.2zM27.4 18.7v10.1h-5.9v-9.5q0-1.9-0.7-2.9t-2.3-1.1q-1.1 0-1.9 0.6t-1.2 1.5q-0.2 0.5-0.2 1.4v9.9h-5.9q0-7.1 0-11.6t0-5.3l0-0.9h5.9v2.6h0q0.4-0.6 0.7-1t1-0.9 1.6-0.8 2-0.3q3 0 4.9 2t1.9 6z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button reddit shariff-nocustomcolor\" style=\"background-color:#ff5700\"><a href=\"https:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2630\" title=\"Share on Reddit\" aria-label=\"Share on Reddit\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#ff4500; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\"><path fill=\"#ff4500\" d=\"M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button pinterest shariff-nocustomcolor\" style=\"background-color:#e70f18\"><a href=\"https:\/\/www.pinterest.com\/pin\/create\/link\/?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2630&media=https%3A%2F%2Fwww.nico-maas.de%2Fwordpress%2Fwp-content%2Fuploads%2FthermalCameraSchematic-1024x524.png&description=Building%20a%20MLX90640%20Thermal%20Camera\" title=\"Pin it on Pinterest\" aria-label=\"Pin it on Pinterest\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#cb2027; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 27 32\"><path fill=\"#cb2027\" d=\"M27.4 16q0 3.7-1.8 6.9t-5 5-6.9 1.9q-2 0-3.9-0.6 1.1-1.7 1.4-2.9 0.2-0.6 1-3.8 0.4 0.7 1.3 1.2t2 0.5q2.1 0 3.8-1.2t2.7-3.4 0.9-4.8q0-2-1.1-3.8t-3.1-2.9-4.5-1.2q-1.9 0-3.5 0.5t-2.8 1.4-2 2-1.2 2.3-0.4 2.4q0 1.9 0.7 3.3t2.1 2q0.5 0.2 0.7-0.4 0-0.1 0.1-0.5t0.2-0.5q0.1-0.4-0.2-0.8-0.9-1.1-0.9-2.7 0-2.7 1.9-4.6t4.9-2q2.7 0 4.2 1.5t1.5 3.8q0 3-1.2 5.2t-3.1 2.1q-1.1 0-1.7-0.8t-0.4-1.9q0.1-0.6 0.5-1.7t0.5-1.8 0.2-1.4q0-0.9-0.5-1.5t-1.4-0.6q-1.1 0-1.9 1t-0.8 2.6q0 1.3 0.4 2.2l-1.8 7.5q-0.3 1.2-0.2 3.2-3.7-1.6-6-5t-2.3-7.6q0-3.7 1.9-6.9t5-5 6.9-1.9 6.9 1.9 5 5 1.8 6.9z\"\/><\/svg><\/span><\/a><\/li><\/ul><\/div>","protected":false},"excerpt":{"rendered":"<p>Intro Thermal Cameras are neat tools, especially in electronics: You can quickly diagnose short circuits, identify misbehaving components or quantify if subsystems get too hot. However, thermal cameras are still a luxury item which can quickly costs hunderds of euros. Sometimes - however - you do not need the accurarcy of a FLIR or similar &hellip; <a href=\"https:\/\/www.nico-maas.de\/?p=2630\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Building a MLX90640 Thermal Camera<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n<div class=\"shariff shariff-align-left shariff-widget-align-left\"><ul class=\"shariff-buttons theme-round orientation-horizontal buttonsize-small\"><li class=\"shariff-button printer shariff-nocustomcolor\" style=\"background-color:#a8a8a8\"><a href=\"javascript:window.print()\" title=\"print\" aria-label=\"print\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#999; color:#fff\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 30 32\"><path fill=\"#999\" d=\"M6.8 27.4h16v-4.6h-16v4.6zM6.8 16h16v-6.8h-2.8q-0.7 0-1.2-0.5t-0.5-1.2v-2.8h-11.4v11.4zM27.4 17.2q0-0.5-0.3-0.8t-0.8-0.4-0.8 0.4-0.3 0.8 0.3 0.8 0.8 0.3 0.8-0.3 0.3-0.8zM29.7 17.2v7.4q0 0.2-0.2 0.4t-0.4 0.2h-4v2.8q0 0.7-0.5 1.2t-1.2 0.5h-17.2q-0.7 0-1.2-0.5t-0.5-1.2v-2.8h-4q-0.2 0-0.4-0.2t-0.2-0.4v-7.4q0-1.4 1-2.4t2.4-1h1.2v-9.7q0-0.7 0.5-1.2t1.2-0.5h12q0.7 0 1.6 0.4t1.3 0.8l2.7 2.7q0.5 0.5 0.9 1.4t0.4 1.6v4.6h1.1q1.4 0 2.4 1t1 2.4z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button mailto shariff-nocustomcolor\" style=\"background-color:#a8a8a8\"><a href=\"mailto:?body=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2630&subject=Building%20a%20MLX90640%20Thermal%20Camera\" title=\"Send by email\" aria-label=\"Send by email\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#999; color:#fff\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 32 32\"><path fill=\"#999\" d=\"M32 12.7v14.2q0 1.2-0.8 2t-2 0.9h-26.3q-1.2 0-2-0.9t-0.8-2v-14.2q0.8 0.9 1.8 1.6 6.5 4.4 8.9 6.1 1 0.8 1.6 1.2t1.7 0.9 2 0.4h0.1q0.9 0 2-0.4t1.7-0.9 1.6-1.2q3-2.2 8.9-6.1 1-0.7 1.8-1.6zM32 7.4q0 1.4-0.9 2.7t-2.2 2.2q-6.7 4.7-8.4 5.8-0.2 0.1-0.7 0.5t-1 0.7-0.9 0.6-1.1 0.5-0.9 0.2h-0.1q-0.4 0-0.9-0.2t-1.1-0.5-0.9-0.6-1-0.7-0.7-0.5q-1.6-1.1-4.7-3.2t-3.6-2.6q-1.1-0.7-2.1-2t-1-2.5q0-1.4 0.7-2.3t2.1-0.9h26.3q1.2 0 2 0.8t0.9 2z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button twitter shariff-nocustomcolor\" style=\"background-color:#595959\"><a href=\"https:\/\/twitter.com\/share?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2630&text=Building%20a%20MLX90640%20Thermal%20Camera\" title=\"Share on X\" aria-label=\"Share on X\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#000; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path fill=\"#000\" d=\"M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button facebook shariff-nocustomcolor\" style=\"background-color:#4273c8\"><a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2630\" title=\"Share on Facebook\" aria-label=\"Share on Facebook\" role=\"button\" rel=\"nofollow\" class=\"shariff-link\" style=\"; background-color:#3b5998; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 18 32\"><path fill=\"#3b5998\" d=\"M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button linkedin shariff-nocustomcolor\" style=\"background-color:#1488bf\"><a href=\"https:\/\/www.linkedin.com\/sharing\/share-offsite\/?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2630\" title=\"Share on LinkedIn\" aria-label=\"Share on LinkedIn\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#0077b5; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 27 32\"><path fill=\"#0077b5\" d=\"M6.2 11.2v17.7h-5.9v-17.7h5.9zM6.6 5.7q0 1.3-0.9 2.2t-2.4 0.9h0q-1.5 0-2.4-0.9t-0.9-2.2 0.9-2.2 2.4-0.9 2.4 0.9 0.9 2.2zM27.4 18.7v10.1h-5.9v-9.5q0-1.9-0.7-2.9t-2.3-1.1q-1.1 0-1.9 0.6t-1.2 1.5q-0.2 0.5-0.2 1.4v9.9h-5.9q0-7.1 0-11.6t0-5.3l0-0.9h5.9v2.6h0q0.4-0.6 0.7-1t1-0.9 1.6-0.8 2-0.3q3 0 4.9 2t1.9 6z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button reddit shariff-nocustomcolor\" style=\"background-color:#ff5700\"><a href=\"https:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2630\" title=\"Share on Reddit\" aria-label=\"Share on Reddit\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#ff4500; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\"><path fill=\"#ff4500\" d=\"M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button pinterest shariff-nocustomcolor\" style=\"background-color:#e70f18\"><a href=\"https:\/\/www.pinterest.com\/pin\/create\/link\/?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2630&media=https%3A%2F%2Fwww.nico-maas.de%2Fwordpress%2Fwp-content%2Fuploads%2FthermalCameraSchematic-1024x524.png&description=Building%20a%20MLX90640%20Thermal%20Camera\" title=\"Pin it on Pinterest\" aria-label=\"Pin it on Pinterest\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#cb2027; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 27 32\"><path fill=\"#cb2027\" d=\"M27.4 16q0 3.7-1.8 6.9t-5 5-6.9 1.9q-2 0-3.9-0.6 1.1-1.7 1.4-2.9 0.2-0.6 1-3.8 0.4 0.7 1.3 1.2t2 0.5q2.1 0 3.8-1.2t2.7-3.4 0.9-4.8q0-2-1.1-3.8t-3.1-2.9-4.5-1.2q-1.9 0-3.5 0.5t-2.8 1.4-2 2-1.2 2.3-0.4 2.4q0 1.9 0.7 3.3t2.1 2q0.5 0.2 0.7-0.4 0-0.1 0.1-0.5t0.2-0.5q0.1-0.4-0.2-0.8-0.9-1.1-0.9-2.7 0-2.7 1.9-4.6t4.9-2q2.7 0 4.2 1.5t1.5 3.8q0 3-1.2 5.2t-3.1 2.1q-1.1 0-1.7-0.8t-0.4-1.9q0.1-0.6 0.5-1.7t0.5-1.8 0.2-1.4q0-0.9-0.5-1.5t-1.4-0.6q-1.1 0-1.9 1t-0.8 2.6q0 1.3 0.4 2.2l-1.8 7.5q-0.3 1.2-0.2 3.2-3.7-1.6-6-5t-2.3-7.6q0-3.7 1.9-6.9t5-5 6.9-1.9 6.9 1.9 5 5 1.8 6.9z\"\/><\/svg><\/span><\/a><\/li><\/ul><\/div>","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[4,11,23],"tags":[],"class_list":["post-2630","post","type-post","status-publish","format-standard","hentry","category-computer","category-hardware","category-projects"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/piXYf-Gq","jetpack-related-posts":[{"id":2637,"url":"https:\/\/www.nico-maas.de\/?p=2637","url_meta":{"origin":2630,"position":0},"title":"Repairing a Turing Pi 2","author":"Nico Maas","date":"3. December 2023","format":false,"excerpt":"Intro In April 2023 I finally got my Turing Pi 2 - happy to finally got it into my hands I plugged it in, headed over to the Turing Pi 2 Github ( https:\/\/github.com\/turing-machines\/BMC-Firmware ) got myself the latest BMC firmware and started to flash it. Thats when things got\u2026","rel":"","context":"In &quot;Computer&quot;","block_context":{"text":"Computer","link":"https:\/\/www.nico-maas.de\/?cat=4"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/turingPi2-0001-1024x768.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/turingPi2-0001-1024x768.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/turingPi2-0001-1024x768.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/turingPi2-0001-1024x768.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":2516,"url":"https:\/\/www.nico-maas.de\/?p=2516","url_meta":{"origin":2630,"position":1},"title":"An active GNSS antenna for the CAM-M8Q\u00a0breakout","author":"Nico Maas","date":"14. October 2022","format":false,"excerpt":"I have been using multiple CAM-M8Q breakouts by Watterott and really am loving these units. They are small, reasonable priced and have the advantage of an integrated chip antenna. However, this also their small shortcoming: While the antenna is good enough for most outdoor jobs, you can run into sensitivity\u2026","rel":"","context":"In &quot;Computer&quot;","block_context":{"text":"Computer","link":"https:\/\/www.nico-maas.de\/?cat=4"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/LNuWu.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/LNuWu.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/LNuWu.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/LNuWu.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":2500,"url":"https:\/\/www.nico-maas.de\/?p=2500","url_meta":{"origin":2630,"position":2},"title":"Advantech AIR-020X Review","author":"Nico Maas","date":"5. March 2023","format":false,"excerpt":"Normally, I am not getting review units. This is due to the fact that I am only hosting this small weblog, along some conference talks - and most companies would probably be better off to send their units along someone with a reach of Linus Tech Tips, or similar. On\u2026","rel":"","context":"In &quot;Computer&quot;","block_context":{"text":"Computer","link":"https:\/\/www.nico-maas.de\/?cat=4"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/air020_001.jpg?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/air020_001.jpg?resize=350%2C200 1x, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/air020_001.jpg?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/air020_001.jpg?resize=700%2C400 2x, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/air020_001.jpg?resize=1050%2C600 3x"},"classes":[]},{"id":2556,"url":"https:\/\/www.nico-maas.de\/?p=2556","url_meta":{"origin":2630,"position":3},"title":"100 Euro External 13,5'' \/ 2256x1504 Display with 2x Mini HDMI Input","author":"Nico Maas","date":"7. December 2022","format":false,"excerpt":"Working with telemetry, scientific data, programming, writing papers or just casually hacking the Gibson requires one thing: A lot of screen real estate. To allow for that \"bit of extra space\", I built myself an external 13,5'' \/ 2256x1504 display. It comes with 2x Mini HDMI Inputs and is powered\u2026","rel":"","context":"In &quot;Computer&quot;","block_context":{"text":"Computer","link":"https:\/\/www.nico-maas.de\/?cat=4"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/disp01.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/disp01.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/disp01.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/disp01.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/disp01.jpg?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":906,"url":"https:\/\/www.nico-maas.de\/?p=906","url_meta":{"origin":2630,"position":4},"title":"[RaspPi] Really poor mans DS18B20 Temperature Sensor","author":"Nico Maas","date":"29. March 2014","format":false,"excerpt":"As I had to quickly come up with two DS18B20 Sensors for the Raspberry Pi, I decided to built them \"quick and dirty\" without any breadboard. It is not the most beautiful nor the best way, but it works out quite well. With one exception: It seems like the sensor\u2026","rel":"","context":"In &quot;Hardware&quot;","block_context":{"text":"Hardware","link":"https:\/\/www.nico-maas.de\/?cat=11"},"img":{"alt_text":"2014-03-24 15.22.32","src":"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/2014-03-24-15.22.32-300x225.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1432,"url":"https:\/\/www.nico-maas.de\/?p=1432","url_meta":{"origin":2630,"position":5},"title":"Cisco RAM Problem (Phone\/Linecard)","author":"Nico Maas","date":"16. January 2017","format":false,"excerpt":"As a matter of fact, I've been working for more than 8 years with Cisco equipment and continue to do so. I really like Ciscos products, especially in the router \/ switch sector and had the pleasure to work with products in the range of Switching, Routing, Communications \/ Phones,\u2026","rel":"","context":"In &quot;Cisco&quot;","block_context":{"text":"Cisco","link":"https:\/\/www.nico-maas.de\/?cat=33"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/Cisco_7975G.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/Cisco_7975G.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/Cisco_7975G.jpg?resize=525%2C300&ssl=1 1.5x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=\/wp\/v2\/posts\/2630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2630"}],"version-history":[{"count":3,"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=\/wp\/v2\/posts\/2630\/revisions"}],"predecessor-version":[{"id":2636,"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=\/wp\/v2\/posts\/2630\/revisions\/2636"}],"wp:attachment":[{"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2630"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2630"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}