{"id":57105,"date":"2021-11-28T22:56:08","date_gmt":"2021-11-28T14:56:08","guid":{"rendered":"https:\/\/www.seeedstudio.com\/blog\/?p=57105"},"modified":"2024-06-07T03:09:46","modified_gmt":"2024-06-07T03:09:46","slug":"learn-tinyml-using-wio-terminal-and-arduino-ide-7-machine-learning-on-arm-cortex-m0-mcu-seeeduino-xiao-and-xiao-rp2040","status":"publish","type":"post","link":"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/28\/learn-tinyml-using-wio-terminal-and-arduino-ide-7-machine-learning-on-arm-cortex-m0-mcu-seeeduino-xiao-and-xiao-rp2040\/","title":{"rendered":"Learn TinyML using Wio Terminal and Arduino IDE #7 Machine Learning on ARM Cortex M0+ MCU Seeed Studio XIAO SAMD21 and XIAO RP2040"},"content":{"rendered":"\n<p><strong>Updated on Feb 28th, 2024<\/strong><\/p>\n\n\n\n<p>This is the last article of the TinyML course series &#8211; in the previous articles we have discussed how to train and deploy machine learning models for <a href=\"https:\/\/www.seeedstudio.com\/blog\/2021\/02\/03\/learn-tinyml-using-wio-terminal-and-arduino-ide-2-audio-scene-recognition-and-mobile-notifications\/\" target=\"_blank\" rel=\"noreferrer noopener\">audio scene classification<\/a>, <a href=\"https:\/\/www.seeedstudio.com\/blog\/2021\/05\/30\/learn-tinyml-using-wio-terminal-and-arduino-ide-5-anomaly-detection-for-predictive-maintenance-with-new-blynk-iot-platform-release\/\" target=\"_blank\" rel=\"noreferrer noopener\">anomaly detection<\/a>, <a href=\"https:\/\/www.seeedstudio.com\/blog\/2021\/10\/10\/learn-tinyml-using-wio-terminal-and-arduino-ide-6-speech-recognition-on-mcu-speech-to-intent\/\" target=\"_blank\" rel=\"noreferrer noopener\">speech recognition<\/a> and other tasks to Wio Terminal, a compact production-ready development board from Seeed studio. All of the articles were published on Seeed blog and for videos, you can have a look at TinyML course with Wio Terminal playlist on YouTube.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"TinyML Course with Wio Terminal &amp; Edge Impulse\/Arduino IDE\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/videoseries?list=PL5efXgSvwk9UCtJ6JKTyWAccSVfTXSlA3\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Wio Terminal while being convenient for experiments due to the presence of multiple built-in sensors and a case, might be a bit too bulky for some applications for example, wearables. In the last project we\u2019ll go even Tinier and use <a href=\"https:\/\/www.seeedstudio.com\/xiao-series-page\" target=\"_blank\" rel=\"noreferrer noopener\">Seeed Studio XIAO boards<\/a> &#8211; namely the <a href=\"https:\/\/www.seeedstudio.com\/Seeeduino-XIAO-Arduino-Microcontroller-SAMD21-Cortex-M0+-p-4426.html\" target=\"_blank\" rel=\"noreferrer noopener\">original XIAO SAMD21 <\/a>(which used to be named Seeeduino XIAO) and newer <a href=\"https:\/\/www.seeedstudio.com\/XIAO-RP2040-v1-0-p-5026.html\" target=\"_blank\" rel=\"noreferrer noopener\">XIAO RP2040<\/a> and will briefly mention soon-to-be-released XIAO BLE.<\/p>\n\n\n\n<p>For more details, watch the video version of the tutorial!<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"Wio Terminal TinyML Course #7 Machine Learning on ARM Cortex M0+ MCU Seeeduino XIAO and XIAO RP2040\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/04_7U8MzVKg?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Specks-wise, the XIAO SAMD21 at the time of launch was likely the smallest M0 development board available and was packing quite a punch for its size with ARM\u00ae Cortex\u00ae-M0+ 48MHz microcontroller(SAMD21G18) and 256KB Flash, 32KB SRAM. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/i.ibb.co\/NL53LdX\/102010328-004.jpg\" alt=\"Seeeduino SAMD21 Cortex M0 - Arduino Ready - Micro Robotics\"\/><figcaption class=\"wp-element-caption\">Original XIAO SAMD21 &#8211; as you can see it is a bit larger than a thumb nail.<\/figcaption><\/figure><\/div>\n\n\n<p>Later RP2040 chip arrived and delivered even better specs Cortex M0+ design. Both are quite capable of running the tiny neural network we will have for this project, but if you have some more demanding applications it does make sense to choose XIAO RP2040 over the original XIAO. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1030\" height=\"701\" src=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Seeedstudio-Seeeduino-XIAO-RP2040-Microcontroller-Board-Pinout-Diagram-1-1030x701.jpg\" alt=\"\" class=\"wp-image-57109\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Seeedstudio-Seeeduino-XIAO-RP2040-Microcontroller-Board-Pinout-Diagram-1-1030x701.jpg 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Seeedstudio-Seeeduino-XIAO-RP2040-Microcontroller-Board-Pinout-Diagram-1-300x204.jpg 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Seeedstudio-Seeeduino-XIAO-RP2040-Microcontroller-Board-Pinout-Diagram-1-768x523.jpg 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Seeedstudio-Seeeduino-XIAO-RP2040-Microcontroller-Board-Pinout-Diagram-1-1536x1046.jpg 1536w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Seeedstudio-Seeeduino-XIAO-RP2040-Microcontroller-Board-Pinout-Diagram-1-1024x697.jpg 1024w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Seeedstudio-Seeeduino-XIAO-RP2040-Microcontroller-Board-Pinout-Diagram-1.jpg 2000w\" sizes=\"(max-width: 1030px) 100vw, 1030px\" \/><\/figure>\n\n\n\n<p>As a software engineer I, like many of you I\u2019m sure, spend a lot of time in front of the glowing screen on my chair. And later in the day it becomes difficult to maintain a proper pose.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/utxkrcg5yss61.png\" alt=\"\" class=\"wp-image-57110\" width=\"-99\" height=\"-153\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/utxkrcg5yss61.png 382w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/utxkrcg5yss61-194x300.png 194w\" sizes=\"(max-width: 382px) 100vw, 382px\" \/><\/figure><\/div>\n\n\n<p> If only there was a way to make a device that could learn your specific body position for proper and wrong poses and warn you when you slouch too much or go into \u201cPython pose\u201d&#8230; Wait a moment, there is!<\/p>\n\n\n\n<p>The best sensor for the task that will provide the data for machine learning model is obviously accelerometer. All of the XIAO series boards, being very small do not come equipped with accelerometer sensor. While we could use a <a href=\"https:\/\/www.seeedstudio.com\/Seeeduino-XIAO-Expansion-board-p-4746.html\" target=\"_blank\" rel=\"noreferrer noopener\">XIAO expansion board<\/a> for development and testing, it eliminates the low-footprint advantage XIAO boards have. If you are going to create your own product, the better option would be to create your own custom PCB board for the chip or SoM. I asked our hardware engineer to design a simple carrier board for XIAO, that would include LIS3DH accelerometer, a buzzer and a battery connector with a power switch.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"661\" height=\"1030\" src=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/6c57150172538b3d516994efd6c3e8c7-661x1030.jpg\" alt=\"\" class=\"wp-image-57111\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/6c57150172538b3d516994efd6c3e8c7-661x1030.jpg 661w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/6c57150172538b3d516994efd6c3e8c7-193x300.jpg 193w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/6c57150172538b3d516994efd6c3e8c7-768x1196.jpg 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/6c57150172538b3d516994efd6c3e8c7-986x1536.jpg 986w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/6c57150172538b3d516994efd6c3e8c7-1315x2048.jpg 1315w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/6c57150172538b3d516994efd6c3e8c7-1024x1595.jpg 1024w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/6c57150172538b3d516994efd6c3e8c7.jpg 1644w\" sizes=\"(max-width: 661px) 100vw, 661px\" \/><\/figure><\/div>\n\n\n<p>Then we used Seeed studio Fusion service to print some PCBA samples &#8211; for that go to <a href=\"https:\/\/www.seeedstudio.com\/fusion_pcb.html\"><u>https:\/\/www.seeedstudio.com\/fusion_pcb.html<\/u><\/a>&nbsp;and upload Gerber files, which contain the PCB design and choose the proper parameters for the board, such as number of layers, base material, minimum drill hole size and so on. We can see that a simple 2-layer board is approximated to cost 4.9 USD for 10 pieces plus shipping cost.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1030\" height=\"572\" src=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-30-1030x572.png\" alt=\"\" class=\"wp-image-57112\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-30-1030x572.png 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-30-300x167.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-30-768x426.png 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-30-1536x853.png 1536w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-30-1024x569.png 1024w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-30.png 1783w\" sizes=\"(max-width: 1030px) 100vw, 1030px\" \/><\/figure>\n\n\n\n<p>If you\u2019d like to repeat the experiment without custom PCB, you can connect <a href=\"https:\/\/wiki.seeedstudio.com\/Grove-3-Axis-Digital-Accelerometer-LIS3DHTR\/\" target=\"_blank\" rel=\"noreferrer noopener\">Grove LIS3DH<\/a> accelerometer module to XIAO expansion board and start collecting the data. I collected 3 data samples for each posture, 60 seconds each with device attached to t-shirt on my back.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1030\" height=\"576\" src=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-31-1030x576.png\" alt=\"\" class=\"wp-image-57113\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-31-1030x576.png 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-31-300x168.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-31-768x430.png 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-31-1536x859.png 1536w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-31-1024x573.png 1024w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-31.png 1782w\" sizes=\"(max-width: 1030px) 100vw, 1030px\" \/><\/figure>\n\n\n\n<p>For each sample, I maintained the same pose, but included some arm, head and torso movements to simulate normal activity.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1030\" height=\"693\" src=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-32-1030x693.png\" alt=\"\" class=\"wp-image-57114\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-32-1030x693.png 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-32-300x202.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-32-768x517.png 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-32-1024x689.png 1024w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-32.png 1345w\" sizes=\"(max-width: 1030px) 100vw, 1030px\" \/><\/figure>\n\n\n\n<p>I have chosen 5 seconds time window with window shift of 1 second and Flatten processing block, since we are dealing with very slow moving data. A very plain fully connected network provided a good accuracy. <a href=\"https:\/\/studio.edgeimpulse.com\/public\/20025\/latest\" target=\"_blank\" rel=\"noreferrer noopener\">Here is the link<\/a> to public version of the Edge Impulse project.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1030\" height=\"665\" src=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-33-1030x665.png\" alt=\"\" class=\"wp-image-57115\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-33-1030x665.png 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-33-300x194.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-33-768x496.png 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-33-1024x661.png 1024w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/image-33.png 1463w\" sizes=\"(max-width: 1030px) 100vw, 1030px\" \/><\/figure>\n\n\n\n<p>Some improvement can be made by collecting more data and making sure proper and improper postures can be recognized with some variations in device positioning on the clothes. Since the device is thought to be individual usage device it does not need to generalize to different people\u2019s postures and can be easily re-trained. You can check how well it detects your postures after training in Live classification tab.<\/p>\n\n\n\n<p>After you\u2019re satisfied with accuracy download the resulting model as Arduino library and copy it to your Arduino sketches\/libraries folder. You can download <a href=\"https:\/\/github.com\/Seeed-Studio\/Seeed_Arduino_Sketchbook\/tree\/master\/examples\/SeeeduinoXIAO_TinyML_7_Posture_Detection\" target=\"_blank\" rel=\"noreferrer noopener\">sample code<\/a>, that would collect 5 second sample, performs the inference and turn on the buzzer if one of the improper poses are detected. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>void loop()\n{\n\n    ei_printf(\"Sampling...\\n\");\n\n    \/\/ Allocate a buffer here for the values we'll read from the IMU\n    float buffer&#91;EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE] = { 0 };\n\n    for (size_t ix = 0; ix &lt; EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE; ix += 3) {\n        \/\/ Determine the next tick (and then sleep later)\n        uint64_t next_tick = micros() + (EI_CLASSIFIER_INTERVAL_MS * 1000);\n\n        lis.getAcceleration(&amp;buffer&#91;ix], &amp;buffer&#91;ix+1], &amp;buffer&#91;ix + 2]);\n        buffer&#91;ix + 0] *= CONVERT_G_TO_MS2;\n        buffer&#91;ix + 1] *= CONVERT_G_TO_MS2;\n        buffer&#91;ix + 2] *= CONVERT_G_TO_MS2;\n\n        delayMicroseconds(next_tick - micros());\n    }\n\n    \/\/ Turn the raw buffer in a signal which we can the classify\n    signal_t signal;\n    int err = numpy::signal_from_buffer(buffer, EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE, &amp;signal);\n    if (err != 0) {\n        ei_printf(\"Failed to create signal from buffer (%d)\\n\", err);\n        return;\n    }\n\n    \/\/ Run the classifier\n    ei_impulse_result_t result = { 0 };\n\n    err = run_classifier(&amp;signal, &amp;result, debug_nn);\n    if (err != EI_IMPULSE_OK) {\n        ei_printf(\"ERR: Failed to run classifier (%d)\\n\", err);\n        return;\n    }\n\n    \/\/ print the predictions\n    ei_printf(\"Predictions \");\n    ei_printf(\"(DSP: %d ms., Classification: %d ms., Anomaly: %d ms.)\",\n        result.timing.dsp, result.timing.classification, result.timing.anomaly);\n    ei_printf(\": \\n\");\n    for (size_t ix = 0; ix &lt; EI_CLASSIFIER_LABEL_COUNT; ix++) {\n        ei_printf(\"    %s: %.5f\\n\", result.classification&#91;ix].label, result.classification&#91;ix].value);\n    }\n#if EI_CLASSIFIER_HAS_ANOMALY == 1\n    ei_printf(\"    anomaly score: %.3f\\n\", result.anomaly);\n#endif\n    \n  if (result.classification&#91;1].value &gt; ALARM_THRESHOLD || result.classification&#91;2].value &gt; ALARM_THRESHOLD)\n  {     \n  tone(BUZZER_PIN, 523, 250);\n  delay(250);\n  noTone(BUZZER_PIN);\n  delay(250);  \n  tone(BUZZER_PIN, 523, 250);\n  delay(250);  \n  noTone(BUZZER_PIN);    \n  }\n\n}<\/code><\/pre>\n\n\n\n<p>Since it is relatively slowly changing data and we do not need fast response times, normal sequential inference pipeline suits this application well.<\/p>\n\n\n\n<p>A step above would be to use the newest <a href=\"https:\/\/www.seeedstudio.com\/Seeed-XIAO-BLE-Sense-nRF52840-p-5253.html\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>XIAO nRF52840 Sense<\/strong><\/a> and connect the device to user\u2019s smartphone, which would allow for better alerts, statistics, and so on.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Choose the best tool for your TinyML project<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong><a href=\"https:\/\/www.seeedstudio.com\/Grove-Vision-AI-V2-Kit-p-5852.html\">Grove \u2013 Vision AI Module V2<\/a><\/strong><\/h3>\n\n\n\n<p>It\u2019s an MCU-based vision AI module powered by Himax WiseEye2 HX6538 processor, featuring rm Cortex-M55 and Ethos-U55. It integrates Arm Helium technology, which is finely optimized for&nbsp;<strong>vector data processing<\/strong>, enables:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Award-winning low power consumption<\/li>\n\n\n\n<li>Significant uplift in DSP and ML capabilities<\/li>\n\n\n\n<li>Designed for battery-powered endpoint AI applications<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2024\/02\/5-101021112-Grove-Vision-AI-Module-V2-feature-1030x773.jpg\" alt=\"\" class=\"wp-image-91983\" width=\"463\" height=\"347\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2024\/02\/5-101021112-Grove-Vision-AI-Module-V2-feature-1030x773.jpg 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2024\/02\/5-101021112-Grove-Vision-AI-Module-V2-feature-300x225.jpg 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2024\/02\/5-101021112-Grove-Vision-AI-Module-V2-feature-768x576.jpg 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2024\/02\/5-101021112-Grove-Vision-AI-Module-V2-feature-1024x768.jpg 1024w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2024\/02\/5-101021112-Grove-Vision-AI-Module-V2-feature.jpg 1400w\" sizes=\"(max-width: 463px) 100vw, 463px\" \/><\/figure><\/div>\n\n\n<p>With support for&nbsp;<strong>Tensorflow&nbsp;<\/strong>and&nbsp;<strong>Pytorch&nbsp;<\/strong>frameworks, it allows users to deploy both off-the-shelf and custom AI models from Seeed Studio&nbsp;<a href=\"https:\/\/sensecraft.seeed.cc\/ai\/#\/model\">SenseCraft AI<\/a>. Additionally, the module features a range of interfaces, including IIC, UART, SPI, and Type-C, allowing easy integration with popular products like Seeed Studio XIAO, Grove, Raspberry Pi, BeagleBoard, and ESP-based products for further development.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong><a href=\"https:\/\/www.seeedstudio.com\/XIAO-ESP32S3-Sense-p-5639.html\">Seeed Studio XIAO ESP32S3 Sense<\/a><\/strong>&nbsp;&amp;&nbsp;<strong><a href=\"https:\/\/www.seeedstudio.com\/Seeed-XIAO-BLE-Sense-nRF52840-p-5253.html\">Seeed Studio XIAO nRF52840 Sense<\/a><\/strong><\/h3>\n\n\n\n<p>Seeed Studio XIAO Series are diminutive development boards, sharing a similar hardware structure, where the size is literally thumb-sized. The code name \u201cXIAO\u201d here represents its half feature \u201cTiny\u201d, and the other half will be \u201cPuissant\u201d.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1030\" height=\"773\" data-id=\"91985\" src=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2024\/02\/\u4f01\u4e1a\u5fae\u4fe1\u622a\u56fe_17072058195881-1030x773.png\" alt=\"\" class=\"wp-image-91985\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2024\/02\/\u4f01\u4e1a\u5fae\u4fe1\u622a\u56fe_17072058195881-1030x773.png 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2024\/02\/\u4f01\u4e1a\u5fae\u4fe1\u622a\u56fe_17072058195881-300x225.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2024\/02\/\u4f01\u4e1a\u5fae\u4fe1\u622a\u56fe_17072058195881-768x576.png 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2024\/02\/\u4f01\u4e1a\u5fae\u4fe1\u622a\u56fe_17072058195881-1024x768.png 1024w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2024\/02\/\u4f01\u4e1a\u5fae\u4fe1\u622a\u56fe_17072058195881.png 1400w\" sizes=\"(max-width: 1030px) 100vw, 1030px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1030\" height=\"773\" data-id=\"91984\" src=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2024\/02\/\u4f01\u4e1a\u5fae\u4fe1\u622a\u56fe_17072046576630-1030x773.png\" alt=\"\" class=\"wp-image-91984\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2024\/02\/\u4f01\u4e1a\u5fae\u4fe1\u622a\u56fe_17072046576630-1030x773.png 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2024\/02\/\u4f01\u4e1a\u5fae\u4fe1\u622a\u56fe_17072046576630-300x225.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2024\/02\/\u4f01\u4e1a\u5fae\u4fe1\u622a\u56fe_17072046576630-768x576.png 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2024\/02\/\u4f01\u4e1a\u5fae\u4fe1\u622a\u56fe_17072046576630-1024x768.png 1024w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2024\/02\/\u4f01\u4e1a\u5fae\u4fe1\u622a\u56fe_17072046576630.png 1400w\" sizes=\"(max-width: 1030px) 100vw, 1030px\" \/><\/figure>\n<\/figure>\n\n\n\n<p>Seeed Studio XIAO ESP32S3 Sense integrates an OV2640 camera sensor, digital microphone, and SD card support. Combining embedded ML computing power and photography capability, this development board can be your great tool to get started with intelligent voice and vision AI.<\/p>\n\n\n\n<p>Seeed Studio XIAO nRF52840 Sense is carrying Bluetooth 5.0 wireless capability and is able to operate with low power consumption. Featuring onboard IMU and PDM, it can be your best tool for embedded Machine Learning projects.<\/p>\n\n\n\n<p>Click here\u00a0to learn more about the\u00a0<a href=\"https:\/\/www.seeedstudio.com\/xiao-series-page\">XIAO family<\/a>!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>SenseCraft AI<\/strong><\/h3>\n\n\n\n<p><a href=\"https:\/\/sensecraft.seeed.cc\/ai\/#\/model\" target=\"_blank\" rel=\"noreferrer noopener\">SenseCraft AI<\/a>&nbsp;is a platform that enables easy AI model training and deployment with no-code\/low-code. It supports Seeed products natively, ensuring complete adaptability of the trained models to Seeed products. Moreover, deploying models through this platform offers immediate visualization of identification results on the website, enabling prompt assessment of model performance.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/06\/%E4%BC%81%E4%B8%9A%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_17072049675606-1030x637.png\" alt=\"\" class=\"wp-image-91977\" width=\"573\" height=\"354\"\/><\/figure><\/div>\n\n\n<p>Ideal for tinyML applications, it allows you to effortlessly deploy off-the-shelf or custom AI models by connecting the device, selecting a model, and viewing identification results.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<p>Hope you enjoyed my TinyML course video series and learned a lot about Machine Learning on microcontrollers. Tinkering with Machine Learning on smallest of devices has been truly an eye-opening experience for me, after executing much larger ML models on SBCs and servers. If you would like to continue learning on that topic, have a look at <a href=\"https:\/\/www.coursera.org\/edgeimpulse\" target=\"_blank\" rel=\"noreferrer noopener\">free courses by Coursera and Edge impulse<\/a> and also <a href=\"https:\/\/ide.tinkergen.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Codecraft<\/a>, a graphical programming environment that allows creating TinyML application and deploying them to Wio Terminal. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Updated on Feb 28th, 2024 This is the last article of the TinyML course series<\/p>\n","protected":false},"author":3505,"featured_media":57119,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","_price":"","_stock":"","_tribe_ticket_header":"","_tribe_default_ticket_provider":"","_tribe_ticket_capacity":"0","_ticket_start_date":"","_ticket_end_date":"","_tribe_ticket_show_description":"","_tribe_ticket_show_not_going":false,"_tribe_ticket_use_global_stock":"","_tribe_ticket_global_stock_level":"","_global_stock_mode":"","_global_stock_cap":"","_tribe_rsvp_for_event":"","_tribe_ticket_going_count":"","_tribe_ticket_not_going_count":"","_tribe_tickets_list":"[]","_tribe_ticket_has_attendee_info_fields":false,"iawp_total_views":0,"footnotes":""},"categories":[1],"tags":[1608,132,12,2982,3682,3003,3678],"class_list":["post-57105","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news","tag-machine-learning","tag-fusion","tag-seeeduino","tag-seeeduino-xiao","tag-seeeduino-xiao-projects","tag-wio-terminal","tag-wio-terminal-project"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Learn TinyML using Wio Terminal and Arduino IDE #7 Machine Learning on ARM Cortex M0+ MCU Seeed Studio XIAO SAMD21 and XIAO RP2040 - Latest News from Seeed Studio<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/28\/learn-tinyml-using-wio-terminal-and-arduino-ide-7-machine-learning-on-arm-cortex-m0-mcu-seeeduino-xiao-and-xiao-rp2040\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Learn TinyML using Wio Terminal and Arduino IDE #7 Machine Learning on ARM Cortex M0+ MCU Seeed Studio XIAO SAMD21 and XIAO RP2040 - Latest News from Seeed Studio\" \/>\n<meta property=\"og:description\" content=\"Updated on Feb 28th, 2024 This is the last article of the TinyML course series\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/28\/learn-tinyml-using-wio-terminal-and-arduino-ide-7-machine-learning-on-arm-cortex-m0-mcu-seeeduino-xiao-and-xiao-rp2040\/\" \/>\n<meta property=\"og:site_name\" content=\"Latest News from Seeed Studio\" \/>\n<meta property=\"article:published_time\" content=\"2021-11-28T14:56:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-07T03:09:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Presentation1-e1638111356134.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"950\" \/>\n\t<meta property=\"og:image:height\" content=\"899\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Dmitry Maslov\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dmitry Maslov\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/28\/learn-tinyml-using-wio-terminal-and-arduino-ide-7-machine-learning-on-arm-cortex-m0-mcu-seeeduino-xiao-and-xiao-rp2040\/\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/28\/learn-tinyml-using-wio-terminal-and-arduino-ide-7-machine-learning-on-arm-cortex-m0-mcu-seeeduino-xiao-and-xiao-rp2040\/\",\"name\":\"Learn TinyML using Wio Terminal and Arduino IDE #7 Machine Learning on ARM Cortex M0+ MCU Seeed Studio XIAO SAMD21 and XIAO RP2040 - Latest News from Seeed Studio\",\"isPartOf\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/28\/learn-tinyml-using-wio-terminal-and-arduino-ide-7-machine-learning-on-arm-cortex-m0-mcu-seeeduino-xiao-and-xiao-rp2040\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/28\/learn-tinyml-using-wio-terminal-and-arduino-ide-7-machine-learning-on-arm-cortex-m0-mcu-seeeduino-xiao-and-xiao-rp2040\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Presentation1-e1638111356134.jpg\",\"datePublished\":\"2021-11-28T14:56:08+00:00\",\"dateModified\":\"2024-06-07T03:09:46+00:00\",\"author\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/be44021cef50367de429a4d5f613ed2f\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/28\/learn-tinyml-using-wio-terminal-and-arduino-ide-7-machine-learning-on-arm-cortex-m0-mcu-seeeduino-xiao-and-xiao-rp2040\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/28\/learn-tinyml-using-wio-terminal-and-arduino-ide-7-machine-learning-on-arm-cortex-m0-mcu-seeeduino-xiao-and-xiao-rp2040\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/28\/learn-tinyml-using-wio-terminal-and-arduino-ide-7-machine-learning-on-arm-cortex-m0-mcu-seeeduino-xiao-and-xiao-rp2040\/#primaryimage\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Presentation1-e1638111356134.jpg\",\"contentUrl\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Presentation1-e1638111356134.jpg\",\"width\":950,\"height\":899},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/28\/learn-tinyml-using-wio-terminal-and-arduino-ide-7-machine-learning-on-arm-cortex-m0-mcu-seeeduino-xiao-and-xiao-rp2040\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.seeedstudio.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Learn TinyML using Wio Terminal and Arduino IDE #7 Machine Learning on ARM Cortex M0+ MCU Seeed Studio XIAO SAMD21 and XIAO RP2040\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#website\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/\",\"name\":\"Latest News from Seeed Studio\",\"description\":\"Emerging IoT, AI and Autonomous Applications on the Edge\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.seeedstudio.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/be44021cef50367de429a4d5f613ed2f\",\"name\":\"Dmitry Maslov\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b60714970fdc7dfa4a5d9915477bdd24?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b60714970fdc7dfa4a5d9915477bdd24?s=96&r=g\",\"caption\":\"Dmitry Maslov\"},\"url\":\"https:\/\/www.seeedstudio.com\/blog\/author\/dmitry-maslov\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Learn TinyML using Wio Terminal and Arduino IDE #7 Machine Learning on ARM Cortex M0+ MCU Seeed Studio XIAO SAMD21 and XIAO RP2040 - Latest News from Seeed Studio","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/28\/learn-tinyml-using-wio-terminal-and-arduino-ide-7-machine-learning-on-arm-cortex-m0-mcu-seeeduino-xiao-and-xiao-rp2040\/","og_locale":"en_US","og_type":"article","og_title":"Learn TinyML using Wio Terminal and Arduino IDE #7 Machine Learning on ARM Cortex M0+ MCU Seeed Studio XIAO SAMD21 and XIAO RP2040 - Latest News from Seeed Studio","og_description":"Updated on Feb 28th, 2024 This is the last article of the TinyML course series","og_url":"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/28\/learn-tinyml-using-wio-terminal-and-arduino-ide-7-machine-learning-on-arm-cortex-m0-mcu-seeeduino-xiao-and-xiao-rp2040\/","og_site_name":"Latest News from Seeed Studio","article_published_time":"2021-11-28T14:56:08+00:00","article_modified_time":"2024-06-07T03:09:46+00:00","og_image":[{"width":950,"height":899,"url":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Presentation1-e1638111356134.jpg","type":"image\/jpeg"}],"author":"Dmitry Maslov","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Dmitry Maslov","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/28\/learn-tinyml-using-wio-terminal-and-arduino-ide-7-machine-learning-on-arm-cortex-m0-mcu-seeeduino-xiao-and-xiao-rp2040\/","url":"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/28\/learn-tinyml-using-wio-terminal-and-arduino-ide-7-machine-learning-on-arm-cortex-m0-mcu-seeeduino-xiao-and-xiao-rp2040\/","name":"Learn TinyML using Wio Terminal and Arduino IDE #7 Machine Learning on ARM Cortex M0+ MCU Seeed Studio XIAO SAMD21 and XIAO RP2040 - Latest News from Seeed Studio","isPartOf":{"@id":"https:\/\/www.seeedstudio.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/28\/learn-tinyml-using-wio-terminal-and-arduino-ide-7-machine-learning-on-arm-cortex-m0-mcu-seeeduino-xiao-and-xiao-rp2040\/#primaryimage"},"image":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/28\/learn-tinyml-using-wio-terminal-and-arduino-ide-7-machine-learning-on-arm-cortex-m0-mcu-seeeduino-xiao-and-xiao-rp2040\/#primaryimage"},"thumbnailUrl":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Presentation1-e1638111356134.jpg","datePublished":"2021-11-28T14:56:08+00:00","dateModified":"2024-06-07T03:09:46+00:00","author":{"@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/be44021cef50367de429a4d5f613ed2f"},"breadcrumb":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/28\/learn-tinyml-using-wio-terminal-and-arduino-ide-7-machine-learning-on-arm-cortex-m0-mcu-seeeduino-xiao-and-xiao-rp2040\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.seeedstudio.com\/blog\/2021\/11\/28\/learn-tinyml-using-wio-terminal-and-arduino-ide-7-machine-learning-on-arm-cortex-m0-mcu-seeeduino-xiao-and-xiao-rp2040\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/28\/learn-tinyml-using-wio-terminal-and-arduino-ide-7-machine-learning-on-arm-cortex-m0-mcu-seeeduino-xiao-and-xiao-rp2040\/#primaryimage","url":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Presentation1-e1638111356134.jpg","contentUrl":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Presentation1-e1638111356134.jpg","width":950,"height":899},{"@type":"BreadcrumbList","@id":"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/28\/learn-tinyml-using-wio-terminal-and-arduino-ide-7-machine-learning-on-arm-cortex-m0-mcu-seeeduino-xiao-and-xiao-rp2040\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.seeedstudio.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Learn TinyML using Wio Terminal and Arduino IDE #7 Machine Learning on ARM Cortex M0+ MCU Seeed Studio XIAO SAMD21 and XIAO RP2040"}]},{"@type":"WebSite","@id":"https:\/\/www.seeedstudio.com\/blog\/#website","url":"https:\/\/www.seeedstudio.com\/blog\/","name":"Latest News from Seeed Studio","description":"Emerging IoT, AI and Autonomous Applications on the Edge","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.seeedstudio.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/be44021cef50367de429a4d5f613ed2f","name":"Dmitry Maslov","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/b60714970fdc7dfa4a5d9915477bdd24?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b60714970fdc7dfa4a5d9915477bdd24?s=96&r=g","caption":"Dmitry Maslov"},"url":"https:\/\/www.seeedstudio.com\/blog\/author\/dmitry-maslov\/"}]}},"modified_by":"Lily","views":9744,"featured_image_urls":{"full":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Presentation1-e1638111356134.jpg",950,899,false],"thumbnail":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Presentation1-e1638111356134-80x80.jpg",80,80,true],"medium":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Presentation1-e1638111356134-300x284.jpg",300,284,true],"medium_large":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Presentation1-e1638111356134-768x727.jpg",640,606,true],"large":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Presentation1-1030x579.jpg",640,360,true],"1536x1536":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Presentation1-1536x864.jpg",1536,864,true],"2048x2048":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Presentation1-e1638111356134.jpg",950,899,false],"visody_icon":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Presentation1-e1638111356134.jpg",32,30,false],"magazine-7-slider-full":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Presentation1-1536x900.jpg",1536,900,true],"magazine-7-slider-center":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Presentation1-e1638111356134-936x897.jpg",936,897,true],"magazine-7-featured":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Presentation1-1024x576.jpg",1024,576,true],"magazine-7-medium":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Presentation1-e1638111356134-720x380.jpg",720,380,true],"magazine-7-medium-square":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/Presentation1-e1638111356134-675x450.jpg",675,450,true]},"author_info":{"display_name":"Dmitry Maslov","author_link":"https:\/\/www.seeedstudio.com\/blog\/author\/dmitry-maslov\/"},"category_info":"<a href=\"https:\/\/www.seeedstudio.com\/blog\/category\/news\/\" rel=\"category tag\">News<\/a>","tag_info":"News","comment_count":"0","_links":{"self":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/57105","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/users\/3505"}],"replies":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/comments?post=57105"}],"version-history":[{"count":10,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/57105\/revisions"}],"predecessor-version":[{"id":97080,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/57105\/revisions\/97080"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/media\/57119"}],"wp:attachment":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/media?parent=57105"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/categories?post=57105"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/tags?post=57105"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}