{"id":303,"date":"2023-03-24T04:02:41","date_gmt":"2023-03-24T04:02:41","guid":{"rendered":"https:\/\/danlacroix.a2hosted.com\/wordpress\/?p=303"},"modified":"2023-04-05T05:25:23","modified_gmt":"2023-04-05T05:25:23","slug":"light-source-non-uniformity-mapper","status":"publish","type":"post","link":"https:\/\/danlacroix.a2hosted.com\/?p=303","title":{"rendered":"Light source non-uniformity mapper"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"880\" height=\"796\" src=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_3008_comp_e.jpg\" alt=\"\" class=\"wp-image-200\" srcset=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_3008_comp_e.jpg 880w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_3008_comp_e-300x271.jpg 300w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_3008_comp_e-768x695.jpg 768w\" sizes=\"auto, (max-width: 880px) 100vw, 880px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">The problem<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The previous method of evaluating non-uniformity was a very well calibrated photovoltaic cell that would sweep under the light source, measure the intensity at individual grid points and output a graph. This was accurate but slow &#8211; at least a couple minutes per test. Between each sweep you would make tiny adjustments to the light source that had unintuitive effects on the output. This was very frustrating and led to almost superstitious adjustment technique: &#8220;sometimes if you start at the right side and sweep slowly towards the middle, you&#8217;ll get better uniformity, but only if you have &#8216;the touch'&#8221;, etc.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This non-uniformity mapper was designed to make that process easier. It would close the feedback loop of measurement and adjustment and allow for continuous sampling of the light profile.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Goal<\/strong> &#8211; Make a test fixture that instantly measures the spatial non-uniformity of a light source.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sensor selection<\/h2>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"613\" height=\"550\" src=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/TSL2561-sensor.png\" alt=\"\" class=\"wp-image-250\" srcset=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/TSL2561-sensor.png 613w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/TSL2561-sensor-300x269.png 300w\" sizes=\"auto, (max-width: 613px) 100vw, 613px\" \/><figcaption class=\"wp-element-caption\">TSL2561 light-to-digital converter<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"423\" src=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/TSL2561-sensor-breakout-board.png\" alt=\"\" class=\"wp-image-251\" srcset=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/TSL2561-sensor-breakout-board.png 600w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/TSL2561-sensor-breakout-board-300x212.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><figcaption class=\"wp-element-caption\">Sparkfun TSL2561 breakout board<\/figcaption><\/figure>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">For simplicity, I wanted something that could convert illuminance to a digital signal. I started with a few of the breakout boards shown above from Sparkfun and this tutorial (<a href=\"https:\/\/learn.sparkfun.com\/tutorials\/tsl2561-luminosity-sensor-hookup-guide\/all\">Let There Be Light!<\/a>) as a proof of concept. Starting with this breakout board also allowed me to use the Arduino library written for this sensor which was a huge help. The sensor itself was the TSL2561 (a light-to-digital converter).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The initial results were decent and were immediately helpful with some troubleshooting. This initial testing also allowed me to test whether addressing multiple sensors through an Arduino would work. It <em>didn&#8217;t <\/em>work so I had to multiplex all the signals using a separate MUX chip which I was able to quickly incorporate into the test setup.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">PCB<\/h2>\n\n\n\n<div class=\"wp-block-group is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-d05cb3ef wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2257_comp_e-1024x768.jpg\" alt=\"\" class=\"wp-image-176\" srcset=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2257_comp_e-1024x768.jpg 1024w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2257_comp_e-300x225.jpg 300w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2257_comp_e-768x576.jpg 768w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2257_comp_e.jpg 1174w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2262_comp_e-1024x768.jpg\" alt=\"\" class=\"wp-image-178\" srcset=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2262_comp_e-1024x768.jpg 1024w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2262_comp_e-300x225.jpg 300w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2262_comp_e-768x576.jpg 768w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2262_comp_e.jpg 1174w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The lights sensors on the PCB were placed in the same locations as on the official, slow test. The circuitry was pretty simple, but this was my first PCB design so learning the software took a while.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I got 3 boards (minimum quantity) from OSH Park for $60 and other components including sensors, solder paste etc. for less than $100.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Diffusers<\/h2>\n\n\n\n<div class=\"wp-block-group is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-d05cb3ef wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2980_comp_e-e1679284667817.jpg\" alt=\"\" class=\"wp-image-196\" width=\"240\" height=\"240\" srcset=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2980_comp_e-e1679284667817.jpg 240w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2980_comp_e-e1679284667817-150x150.jpg 150w\" sizes=\"auto, (max-width: 240px) 100vw, 240px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2978_comp_e-e1679284684527.jpg\" alt=\"\" class=\"wp-image-195\" width=\"232\" height=\"232\" srcset=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2978_comp_e-e1679284684527.jpg 309w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2978_comp_e-e1679284684527-300x300.jpg 300w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2978_comp_e-e1679284684527-150x150.jpg 150w\" sizes=\"auto, (max-width: 232px) 100vw, 232px\" \/><\/figure>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The diffusers were little caps made from a Teflon rod that was cut to size and drilled out. These cut down the light to a manageable intensity which didn\u2019t oversaturate the sensors and (theoretically) prevented directional bias from incoming light rays (almost all the light was coming straight down from the top). In practice I found the height of the diffuser and sharp edges probably led to complex internal reflections that made it difficult to calibrate the sensors.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Diffusor isolator<\/h2>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/danlacroix.a2hosted.com\/wordpress\/wp-content\/uploads\/2023\/03\/IMG_2558_comp_e-768x1024.jpg\" alt=\"\" class=\"wp-image-190\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/danlacroix.a2hosted.com\/wordpress\/wp-content\/uploads\/2023\/03\/IMG_2552_comp_e-768x1024.jpg\" alt=\"\" class=\"wp-image-187\"\/><\/figure>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">In an attempt to eliminate any cross-talk from the diffusers which may have been leading to calibration issues, I made an isolator that would drop over all the Teflon dots. It didn\u2019t completely eliminate the issue but it was fun to make and I liked the fit of it so I left it on. It probably wouldn\u2019t make it to a final design without more conclusive testing to justify it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Display<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/danlacroix.a2hosted.com\/wordpress\/wp-content\/uploads\/2023\/03\/IMG_2963_comp_e-1024x768.jpg\" alt=\"\" class=\"wp-image-191\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The display was the easiest part to get working, just a touchscreen monitor and a Raspberry Pi 3 so everything was plug-and-play. Together they cost under $100 &#8211; pretty crazy for a fully functional computing setup. I liked the portability and simplicity of the touchscreen but a wireless keyboard and mouse could be used as well.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Assembly<\/h2>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"880\" height=\"762\" src=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2975_comp_e.jpg\" alt=\"\" class=\"wp-image-193\" srcset=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2975_comp_e.jpg 880w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2975_comp_e-300x260.jpg 300w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2975_comp_e-768x665.jpg 768w\" sizes=\"auto, (max-width: 880px) 100vw, 880px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"880\" height=\"738\" src=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2997_comp_e.jpg\" alt=\"\" class=\"wp-image-199\" srcset=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2997_comp_e.jpg 880w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2997_comp_e-300x252.jpg 300w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2997_comp_e-768x644.jpg 768w\" sizes=\"auto, (max-width: 880px) 100vw, 880px\" \/><\/figure>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">I\u2019m pretty happy with the appearance and functionality although I would reroute the wires for future builds so they don&#8217;t stick out the side.<\/p>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"880\" height=\"754\" src=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2983_comp_e.jpg\" alt=\"\" class=\"wp-image-197\" srcset=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2983_comp_e.jpg 880w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2983_comp_e-300x257.jpg 300w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2983_comp_e-768x658.jpg 768w\" sizes=\"auto, (max-width: 880px) 100vw, 880px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"880\" height=\"880\" src=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2989_comp_e-e1679284640775.jpg\" alt=\"\" class=\"wp-image-198\" srcset=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2989_comp_e-e1679284640775.jpg 880w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2989_comp_e-e1679284640775-300x300.jpg 300w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2989_comp_e-e1679284640775-150x150.jpg 150w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_2989_comp_e-e1679284640775-768x768.jpg 768w\" sizes=\"auto, (max-width: 880px) 100vw, 880px\" \/><\/figure>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The Arduino mounts right to the PCB which makes it pretty compact and portable.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Interface &amp; display<\/h2>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"880\" height=\"796\" src=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_3008_comp_e.jpg\" alt=\"\" class=\"wp-image-200\" srcset=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_3008_comp_e.jpg 880w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_3008_comp_e-300x271.jpg 300w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_3008_comp_e-768x695.jpg 768w\" sizes=\"auto, (max-width: 880px) 100vw, 880px\" \/><figcaption class=\"wp-element-caption\">Ambient light on the sensors results in noise on the display.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"880\" height=\"881\" src=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_3010_comp_e-e1679284574836.jpg\" alt=\"\" class=\"wp-image-201\" srcset=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_3010_comp_e-e1679284574836.jpg 880w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_3010_comp_e-e1679284574836-300x300.jpg 300w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_3010_comp_e-e1679284574836-150x150.jpg 150w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_3010_comp_e-e1679284574836-768x769.jpg 768w\" sizes=\"auto, (max-width: 880px) 100vw, 880px\" \/><figcaption class=\"wp-element-caption\">Just off screen is a flashlight pointed at the bottom right corner of the uniformity mapper, it\u2019s a little hard to see here.<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"880\" height=\"880\" src=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_3015_comp_e-e1679284534587.jpg\" alt=\"\" class=\"wp-image-202\" srcset=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_3015_comp_e-e1679284534587.jpg 880w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_3015_comp_e-e1679284534587-300x300.jpg 300w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_3015_comp_e-e1679284534587-150x150.jpg 150w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_3015_comp_e-e1679284534587-768x768.jpg 768w\" sizes=\"auto, (max-width: 880px) 100vw, 880px\" \/><figcaption class=\"wp-element-caption\">Uniformity mapper with light on the center. The profile looks uneven here because of the relatively low light levels and the large difference between the illuminated and unilluminated sensors.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"880\" height=\"747\" src=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_3031_comp_e.jpg\" alt=\"\" class=\"wp-image-204\" srcset=\"https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_3031_comp_e.jpg 880w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_3031_comp_e-300x255.jpg 300w, https:\/\/danlacroix.a2hosted.com\/wp-content\/uploads\/2023\/03\/IMG_3031_comp_e-768x652.jpg 768w\" sizes=\"auto, (max-width: 880px) 100vw, 880px\" \/><figcaption class=\"wp-element-caption\">A better look at what the system would look like in operation. It&#8217;s running dummy code here in order to provide a view of a more typical light source profile.<\/figcaption><\/figure>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">In this setup there&#8217;s a Raspberry Pi doing the display and talking to the Arduino that&#8217;s talking to the sensors. You could probably get rid of the Arduino and do everything from the Pi but the current setup helped me troubleshoot things in blocks and I just needed something functional. The plotting was harder than expected to get  running smoothly. I&#8217;m sure there are other display packages that would have handled it better. I also could have simplified the plot and made a grid of colored squares that mapped to the sensors but I felt the contour plot more accurately represented the shape of the beam profile. If I were to redo the code for the visualization I would probably explore Processing or search harder for a package\/language that would be better suited for this type of real-time output.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Going forward<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">While useful, the sensor calibration issues and inconsistencies in this device kept it from being as useful as I hoped it would be. I think it could have benefited from a second generation attempt but I had to move on to other projects. It was, however, a great chance to learn about designing these types of projects and where the stumbling blocks are.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The problem The previous method of evaluating non-uniformity was a very well calibrated photovoltaic cell that would sweep under the light source, measure the intensity at individual grid points and output a graph. This was accurate but slow &#8211; at least a couple minutes per test. Between each sweep you would make tiny adjustments to &hellip; <a href=\"https:\/\/danlacroix.a2hosted.com\/?p=303\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Light source non-uniformity mapper<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[9],"class_list":["post-303","post","type-post","status-publish","format-standard","hentry","category-electronics_sound_hobby","tag-electronics"],"_links":{"self":[{"href":"https:\/\/danlacroix.a2hosted.com\/index.php?rest_route=\/wp\/v2\/posts\/303","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/danlacroix.a2hosted.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/danlacroix.a2hosted.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/danlacroix.a2hosted.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/danlacroix.a2hosted.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=303"}],"version-history":[{"count":6,"href":"https:\/\/danlacroix.a2hosted.com\/index.php?rest_route=\/wp\/v2\/posts\/303\/revisions"}],"predecessor-version":[{"id":473,"href":"https:\/\/danlacroix.a2hosted.com\/index.php?rest_route=\/wp\/v2\/posts\/303\/revisions\/473"}],"wp:attachment":[{"href":"https:\/\/danlacroix.a2hosted.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=303"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/danlacroix.a2hosted.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=303"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/danlacroix.a2hosted.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}