{"id":11664,"date":"2016-09-07T23:19:59","date_gmt":"2016-09-08T03:19:59","guid":{"rendered":"http:\/\/embedded-lab.com\/blog\/?p=11664"},"modified":"2016-10-10T22:11:01","modified_gmt":"2016-10-11T02:11:01","slug":"using-easy-pulse-mikro-with-mplab-xpress-board","status":"publish","type":"post","link":"https:\/\/embedded-lab.com\/blog\/using-easy-pulse-mikro-with-mplab-xpress-board\/","title":{"rendered":"Using Easy Pulse mikro with MPLAB Xpress board"},"content":{"rendered":"<p><a href=\"http:\/\/embedded-lab.com\/blog\/easy-pulse-mikro\/\" target=\"_blank\"><strong>Easy Pulse mikro<\/strong><\/a> is our new educational pulse sensor in a <strong><a href=\"http:\/\/www.mikroe.com\/mikrobus\/\">mikroBus<\/a><\/strong> form factor. Like our previous Easy Pulse sensors (<a href=\"http:\/\/embedded-lab.com\/blog\/?p=7336\" target=\"_blank\">Easy Pulse<\/a> and <a href=\"http:\/\/embedded-lab.com\/blog\/introducing-easy-pulse-plugin-breadboard-friendly-arduinochipkit-compatible-pulse-sensor\/\" target=\"_blank\">Easy Pulse Plugin<\/a>), it is also based on the principle of transmittance photoplethysmography (PPG) applied to a fingertip. The sensor consists of a pair of IR LED and photodiode to detect the cardiovascular pulse signal from the fingertip. The output of the sensor is passed through a\u00a0necessary instrumentation amplifier to derive\u00a0a nice and clean analog PPG waveform. The analog output is routed to the AN pin of the mikroBus connector. In this article, I will describe how to use\u00a0the Easy Pulse mikro sensor with Microchip&#8217;s latest <strong><a href=\"http:\/\/www.microchip.com\/mplab\/mplab-xpress\" target=\"_blank\">MPLAB Xpress<\/a><\/strong> development board for uniform ADC sampling of the analog PPG signal and sending the samples to a PC for post digital\u00a0processing in order to retrieve the heart-beat rate. Currently, you can buy this sensor from our <strong><a href=\"https:\/\/www.tindie.com\/products\/rajbex\/easy-pulse-mikro\/\" target=\"_blank\">Tindie Store<\/a><\/strong> in United States and\u00a0<a href=\"http:\/\/www.elecrow.com\/cooperated-designers-embedded-lab-c-127_128.html\" target=\"_blank\"><strong>Elecrow\u00a0Store<\/strong><\/a>\u00a0in China.<\/p>\n<div id=\"attachment_11521\" style=\"width: 590px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/07\/EasyPulseMikro10.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-11521\" class=\"wp-image-11521 size-medium\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/07\/EasyPulseMikro10-580x446.jpg\" alt=\"aa\" width=\"580\" height=\"446\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/07\/EasyPulseMikro10-580x446.jpg 580w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/07\/EasyPulseMikro10-1024x787.jpg 1024w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/07\/EasyPulseMikro10.jpg 1200w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/a><p id=\"caption-attachment-11521\" class=\"wp-caption-text\">Easy Pulse mikro<\/p><\/div>\n<p><!--more-->The following figure highlights the basic features of the Easy Pulse mikro instrumentation board. For more details, read the <strong><a href=\"http:\/\/embedded-lab.com\/blog\/easy-pulse-mikro\/\" target=\"_blank\">documentation<\/a><\/strong>\u00a0page.<\/p>\n<div id=\"attachment_11531\" style=\"width: 590px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/07\/EasyPulseFeatures.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-11531\" class=\"size-medium wp-image-11531\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/07\/EasyPulseFeatures-580x285.jpg\" alt=\"Easy Pulse mikro features\" width=\"580\" height=\"285\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/07\/EasyPulseFeatures-580x285.jpg 580w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/07\/EasyPulseFeatures.jpg 945w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/a><p id=\"caption-attachment-11531\" class=\"wp-caption-text\">Easy Pulse mikro features<\/p><\/div>\n<h5>MPLAB Xpress Board<\/h5>\n<p>In this section, I will provide a brief overview of MPLAB Xpress board and its features.<\/p>\n<p><em><strong>Features<\/strong><\/em><\/p>\n<p>The MPLAB Xpress Evaluation Board features <strong><a href=\"http:\/\/ww1.microchip.com\/downloads\/en\/DeviceDoc\/400001802C.pdf\" target=\"_blank\">PIC16F18855<\/a><\/strong>, an 8-bit PIC processor with <a href=\"http:\/\/www.microchip.com\/design-centers\/8-bit\/peripherals\/core-independent\/overview\" target=\"_blank\">Core Independent Peripherals<\/a> (CIPs) combined with eXtreme Low Power (XLP) technology suitable for a wide range of general purpose and low-power applications. CIPs in PIC MCUs, once initialized, can handle their tasks with zero intervention from the core (or CPU), thereby simplifying the design of embedded systems. During CIP operations, the CPU is free to perform other system tasks, if available, or can be idled and put into sleep mode to save system power. For the details of the available CIPs on PIC16F18855, refer the <a href=\"http:\/\/ww1.microchip.com\/downloads\/en\/DeviceDoc\/400001802C.pdf\" target=\"_blank\">datasheet<\/a>.\u00a0The <a href=\"http:\/\/www.microchip.com\/wwwproducts\/Devices.aspx?product=PIC16F18855\" target=\"_blank\">PIC16F18855<\/a>\u00a0features 14 KB of program memory, 1024 bytes of RAM, and a configurable (up to 32MHz) internal oscillator. The I\/O pins are brought to two rows of blank headers (0.1&#8243; pitch) on opposite edges of the board. There are four red LEDs (with current limiting resistors) connected to I\/O pins RA0 through RA3 and the\u00a0<a href=\"http:\/\/ww1.microchip.com\/downloads\/en\/DeviceDoc\/20005411A.pdf\" target=\"_blank\">EMC1001<\/a> I2C temperature sensor pre-installed on the board. A 10K potentiometer is also available (potentiometer output goes to RA4\/ANA4 pin) for a quick analog-to-digital conversion demo. The availability of a\u00a0mikroBus socket on board\u00a0allows a simple Plug-and-Play solution for connecting mikroElektronika\u2019s accessory boards (called <a href=\"http:\/\/www.mikroe.com\/click\/\" target=\"_blank\">Click Boards<\/a>) that would greatly enhance the\u00a0capability of MPLAB Xpress board.<\/p>\n<div id=\"attachment_11678\" style=\"width: 600px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/08\/MPlabXpress2.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-11678\" class=\"size-full wp-image-11678\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/08\/MPlabXpress2.jpg\" alt=\"MPLAB Xpress Evaluation Board\" width=\"590\" height=\"536\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/08\/MPlabXpress2.jpg 590w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/08\/MPlabXpress2-580x527.jpg 580w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><\/a><p id=\"caption-attachment-11678\" class=\"wp-caption-text\">MPLAB Xpress Evaluation Board<\/p><\/div>\n<p><em><strong>On-board Programmer<\/strong><\/em><\/p>\n<p>The MPLAB Xpress board also carries an onboard programmer using the PIC1825K50 microcontroller that emulates as a USB storage device, thereby offering a driver-free plug and play USB interface. The HEX file can be uploaded to the target PIC16F18855 MCU through a simple drag and drop operation.<\/p>\n<p><em><strong>Power supply<\/strong><\/em><\/p>\n<p>The MPLAB Xpress board is receives a\u00a05V power supply through the micro USB connector. There is a 3.3V regulator circuit on-board to provide VCC supply to both PIC MCUs. The un-regulated 5V from the USB port and the regulated 3.3V\u00a0output are also accessible\u00a0at the blank headers and the mikroBus socket pins. The board also allows\u00a0an external power supply (VIN) that goes to the input of the 3.3V regulator circuit. Because there is no 5V regulator on board, the VIN supply goes directly to all the pins that are marked as 5V. So you should be careful in case\u00a0you would like to power the Xpress board with an external power source. <span style=\"color: #ff0000;\"><strong>Make sure VIN is a regulated +5V<\/strong>.<\/span><\/p>\n<p><em>Thanks to\u00a0<b>Jason Wellman <\/b>from Microchip for providing a free sample of MPLAB Xpress board.<\/em><\/p>\n<h5>Experimental Setup<\/h5>\n<p>For this experiment, the Easy Pulse mikro is inserted into the mikroBus socket on the Xpress board as shown below. Make sure that the AN pin on the sensor board plugs into the AN pin of the mikroBus socket on the Xpress board. The potentiometer on the sensor board controls the gain of the instrumentation amplifier and can be adjusted to somewhere close to the middle position.<\/p>\n<div id=\"attachment_11666\" style=\"width: 590px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/08\/SetUp1.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-11666\" class=\"wp-image-11666 size-medium\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/08\/SetUp1-580x404.jpg\" alt=\"SetUp1\" width=\"580\" height=\"404\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/08\/SetUp1-580x404.jpg 580w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/08\/SetUp1.jpg 800w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/a><p id=\"caption-attachment-11666\" class=\"wp-caption-text\">Experimental setup<\/p><\/div>\n<h5>Software<\/h5>\n<p>The PIC16F18855 MCU on the MPLAB Xpress board is programmed to acquire 10-bit ADC samples of the PPG signal. The sampling is done at a uniform rate of 1 sample per 5 millisecond. The ADC samples are then sent to the host PC through the USB connection. The PIC16F18855 sends the ADC samples over its EUSART peripheral to the\u00a0PIC18LF25K50, which is configured to operate as a CDC USB device to translate the EUSART message for transmission over the USB protocol to a\u00a0host computer serial COM Port. You can find more details about Serial Communication using MPLAB Xpress Board <strong><a href=\"http:\/\/microchip.wikidot.com\/xpress:xpressexample\" target=\"_blank\">Microchip Wiki page<\/a><\/strong>. A PC application was developed using Processing language to receive the ADC samples from the COM port and process the data for extracting the heart beat rate.\u00a0The firmware for PIC16F18855 is written and compiled using <strong><a href=\"http:\/\/gcbasic.sourceforge.net\/\">Great Cow BASIC<\/a><\/strong>, which is an\u00a0open-source BASIC compiler for PIC and AVR microcontrollers. The key challenge was to achieve a precise 5 milliseconds sampling interval. Using a built-in Delay function between ADC sampling\u00a0is not recommended because that is not accurate enough for this project. Besides, the finite time involved in EUSART communication must also be considered for precise timing of 5 millisecond interval between samplings.<\/p>\n<p>This project achieves accurate 5 millisecond duration using the Timer0 module built inside the PIC16F18855. The\u00a0Timer0 module\u00a0can operate as either an 8-bit timer\/counter or a 16-bit timer\/counter. The mode of operation is selected with the T016BIT bit of the T0CON register. Here, it is used as an 8-bit timer. The Timer0 output\u00a0consists of 8-bit\u00a0TMR0H and 8-bit\u00a0TMR0L registers.\u00a0It is interesting that in 8-bit mode, the Timer0 interrupt flag bit (TMR0IF) is set when the 8-bit TMR0L matches the TMR0H value. This is different than the operation of Timer0 module in mid-range 8-bit PIC MCUs, where the TMR0 register is only 8-bit and the\u00a0Timer0 interrupt flag is set every time\u00a0the TMR0 register overflows. I have also covered Timer0 topic before in <strong><a href=\"http:\/\/embedded-lab.com\/blog\/lab-7-timers-and-counters-part-1\/\" target=\"_blank\">Lab 7: PIC Timers<\/a><\/strong> article. The operation of Timer0 in PIC16F18855 puzzled me for a while.\u00a0Many thanks to <strong>Evan Venn<\/strong> from Great Cow BASIC for explaining to me the secrets of Timer0 inside PIC16F18855. You can find his explanation at this <strong><a href=\"http:\/\/groove.tumblr.com\/post\/147488557732\/timers-the-puzzlement-of-the-16f188xx-8-bit\" target=\"_blank\">Tumblr post<\/a><\/strong>.<\/p>\n<p>My BASIC code goes like the following:<\/p>\n\n<div class=\"wp_syntax\"><table><tr><td class=\"line_numbers\"><pre>1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n<\/pre><\/td><td class=\"code\"><pre class=\"basic\" style=\"font-family:monospace;\"> 'Chip Settings.\r\n #chip 16f18855,32\r\n #Config FEXTOSC_OFF, RSTOSC_HFINT32\r\n #Config WRT_OFF, CPD_ON, MCLRE_ON\r\n 'Set the PPS of the PWM and the RS232 ports.\r\n UNLOCKPPS\r\n RC0PPS = 0x0010 'RC0-&amp;gt;EUSART:TX;\r\n RXPPS = 0x0011 'RC1-&amp;gt;EUSART:RX;\r\n LOCKPPS\r\n&nbsp;\n 'Setup the timer.\r\n 'params Source, Prescaler , Postscaler\r\n InitTimer0 Osc, PRE0_4096 + TMR0_HFINTOSC, POST0_1\r\n ' Here source is selected to be internal oscillator.\r\n ' Timer0 input clock is 32MHz followed by a 4096 prescaler\r\n ' So, the actual clock frequency of Timer0 input is 32000000\/4096\r\n ' = 7812.5 Hz. Time period = 1\/7812.5=0.128 milliseconds\r\n ' Now, 5 ms duration = 5\/0.128=39 (or 0x27) clock pulses.\r\n&nbsp;\n ' Start the Timer by writing to TMR0ON bit\r\n StartTimer 0\r\n ' Set the Timer start value TMR0H =0x26 and TMR0L=00\r\n ' Timer0 interrupt occurs when 8-bit TMR0L matches the TMR0H value\r\n ' That will occur on the arrival of 39th pulse. This will give\r\n ' a precise 5ms duration for ADC sampling.\r\n SetTimer ( 0, 0x2600 )\r\n #define USART_BAUD_RATE 115200\r\n #define USART_TX_BLOCKING\r\n&nbsp;\n&nbsp;\n dir portb.0 in\r\n dim adc_value as Integer\r\n&nbsp;\n&nbsp;\n do\r\n wait while TMR0IF = 0\r\n ' Clearing IF flag.\r\n TMR0IF = 0\r\n 'Set timer to 5ms before the next event occurs.\r\n SetTimer ( 0, 0x2600 )\r\n adc_value = readAD10(AN8)\r\n hserprint adc_value\r\n HSerSend 10\r\n loop<\/pre><\/td><\/tr><\/table><\/div>\n\n<p>The comments explain the settings for Timer0. The 32MHz internal clock is selected as source for the Timer0 input. It is prescaled to 1\/4096 to convert it to\u00a0a 7812.5 Hz clock, which has a time duration of 0.128 milliseconds. A 5 ms duration is achieved in 5\/0.128=39 clock pulses.<\/p>\n<p><strong><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/09\/Send_PPG_GCB.zip\">Download Great Cow BASIC program<\/a><\/strong><\/p>\n<p>The PC application is developed using Processing. It uses\u00a0Andreas Schlegel&#8217;s <a href=\"http:\/\/www.sojamo.de\/libraries\/controlP5\/\" target=\"_blank\"><strong>controlP5<\/strong> <\/a>libraries for graphical interface. When you connect the MPLAB Xpress Board to PC with an USB cable, it will appear as a COM port. The Processing app allows you to chose the right COM port from a drop-down list, as shown below.<\/p>\n<div id=\"attachment_11742\" style=\"width: 590px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/09\/GUI1.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-11742\" class=\"size-medium wp-image-11742\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/09\/GUI1-580x405.jpg\" alt=\"Select right COM port your MPLAB board is connected to\" width=\"580\" height=\"405\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/09\/GUI1-580x405.jpg 580w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/09\/GUI1.jpg 646w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/a><p id=\"caption-attachment-11742\" class=\"wp-caption-text\">Select right COM port your MPLAB board is connected to<\/p><\/div>\n<p>After you click on the COM port, the App is connected to it and starts receiving the ADC samples from the board. The App receives 1000 samples and processes to compute the heart beat rate. The algorithm for computing heart beat rate from PPG peaks is described in my <strong><a href=\"http:\/\/embedded-lab.com\/blog\/pc-based-heart-rate-monitor-using-arduino-and-easy-pulse-sensor\/\" target=\"_blank\">PC based heart rate meter<\/a><\/strong> project. The program detects four consecutive peaks and computes the time differences between peaks to derive heart beat rate in <em>beats per minute<\/em> (BPM). The computed heart beat rate and PPG waveform are displayed on the screen.<\/p>\n<div id=\"attachment_11743\" style=\"width: 590px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/09\/GUI2.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-11743\" class=\"size-medium wp-image-11743\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/09\/GUI2-580x407.jpg\" alt=\"PPG waveform and heart beat rate in BPM\" width=\"580\" height=\"407\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/09\/GUI2-580x407.jpg 580w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/09\/GUI2.jpg 644w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/a><p id=\"caption-attachment-11743\" class=\"wp-caption-text\">PPG waveform and heart beat rate in BPM<\/p><\/div>\n<div id=\"attachment_11667\" style=\"width: 590px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/08\/SetUp2.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-11667\" class=\"wp-image-11667 size-medium\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/08\/SetUp2-580x366.jpg\" alt=\"SetUp2\" width=\"580\" height=\"366\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/08\/SetUp2-580x366.jpg 580w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/08\/SetUp2.jpg 748w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/a><p id=\"caption-attachment-11667\" class=\"wp-caption-text\">MPLAB Xpress board sends ADC samples to PC over USB-UART bridge<\/p><\/div>\n<p><strong><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/09\/Easy_Pulse_PPG_Analyzer_Rev1.zip\">Download Easy_pulse_ppg_analyzer_rev1<\/a>\u00a0<\/strong>Processing code<\/p>\n<h4><a href=\"http:\/\/www.elecrow.com\/cooperated-designers-embedded-lab-c-127_128.html\" target=\"_blank\">Buy Easy Pulse mikro<\/a>\u00a0from our Chinese store<\/h4>\n<h4><a href=\"http:\/\/buy%20easy%20pulse%20mikro\/\" target=\"_blank\">Buy Easy Pulse mikro<\/a>\u00a0from our US store<\/h4>\n<h5>Conclusion<\/h5>\n<p>A PC-based PPG analyzer project using MPLAB Xpress Board and Easy Pulse mikro sensor was discussed in this article. The PPG waveform from the sensor board was digitized by the Xpress board and the ADC samples were sent to a host PC through a USB-UART bridge. A Processing-based PC App was also developed to process\u00a0the ADC data samples to\u00a0re-construct the PPG waveform. The heart beat rate was computed from the identification of peaks of PPG waveform and the temporal separation between the peaks.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Easy Pulse mikro is our new educational pulse sensor in a mikroBus form factor. Like our previous Easy Pulse sensors (Easy Pulse and Easy Pulse Plugin), it is also based on the principle of transmittance photoplethysmography (PPG) applied to a fingertip. The sensor consists of a pair of IR LED and photodiode to detect the cardiovascular pulse signal from the fingertip. The output of the sensor is passed through a\u00a0necessary instrumentation amplifier to derive\u00a0a nice and clean analog PPG waveform. The analog output is routed to the AN pin of the mikroBus connector. In this article, I will describe how<\/p>\n","protected":false},"author":1,"featured_media":11668,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29,1464,367,4],"tags":[1420,1438,563],"class_list":["post-11664","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-embedded-lessons","category-featured","category-mcu-develeopment-tools","category-pic-projects","tag-easy-pulse-mikro","tag-mplab-xpress-board","tag-ppg"],"_links":{"self":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts\/11664","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/comments?post=11664"}],"version-history":[{"count":30,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts\/11664\/revisions"}],"predecessor-version":[{"id":12113,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts\/11664\/revisions\/12113"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/media\/11668"}],"wp:attachment":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/media?parent=11664"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/categories?post=11664"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/tags?post=11664"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}