{"id":1047,"date":"2018-05-28T10:30:43","date_gmt":"2018-05-28T15:30:43","guid":{"rendered":"https:\/\/makecoolthings.com\/?p=1047"},"modified":"2022-06-26T16:28:54","modified_gmt":"2022-06-26T21:28:54","slug":"multipurpose-monocular-heads-up-display-part-1","status":"publish","type":"post","link":"https:\/\/makecoolthings.com\/?p=1047","title":{"rendered":"Multipurpose Monocular Heads Up Display (Part 1)"},"content":{"rendered":"<p>Now, this is a project I&#8217;ve had in the works for quite some time&#8230; It started out simply as a clever way to read Twitch chat whilst doing my <a href=\"https:\/\/www.youtube.com\/playlist?list=PLZsHQ09S7aA_KM8W5EFdA_Jza36MFEa11\"><i>professional imaginary spaceship pilot<\/i><\/a><i> <\/i>gig, without taking my eyes off what I&#8217;m doing, but I believe it has a lot more potential.<!--more--><\/p>\n<p>I don&#8217;t quite know why I didn&#8217;t gain traction with it the first time around, since it only took me an afternoon to come up with a working proof-of-concept from nothing&#8230; Though I think maybe I wasn&#8217;t quite as comfortable with Fusion360 then as I am now, to design the 3D-printed test fixture.<\/p>\n<p>The operating principles are simple enough; the image from an <acronym title=\"Organic Light-Emitting Diode\">OLED<\/acronym> display is focused by a lens element and then reflected onto a transparent surface in front of the eye. So it wasn&#8217;t hard to design the test fixture, complete with an adjustable lens, because I wasn&#8217;t entirely sure how focal length worked in this scenario.<\/p>\n<div id=\"attachment_1037\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_00.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1037\" class=\"wp-image-1037 size-medium\" title=\"Fusion360 assembly of the test fixture.\" src=\"http:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_00-300x240.png\" alt=\"Fusion360 assembly of the test fixture.\" width=\"300\" height=\"240\" data-temp-aztec-id=\"0f854aeb-bb32-48bc-a1e2-a80ec32e1267\" srcset=\"https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_00-300x240.png 300w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_00-768x614.png 768w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_00-1024x819.png 1024w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_00.png 1200w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-1037\" class=\"wp-caption-text\">Fusion360 assembly of the test fixture.<\/p><\/div>\n<p><em>Thank Science<\/em> for 3D printing! I ran my usual&nbsp;<em><strong>Ideate\u2192Create\u2192Iterate<\/strong><\/em> cycle, turning the initial rough idea into a 3D print, then almost immediately doing it again because something isn&#8217;t quite right&#8230; Then another because I&#8217;ve improved the design&#8230; And then yet one more because I want to try a different approach&#8230; So on, and so forth.<\/p>\n<div id=\"attachment_1064\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_05.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1064\" class=\"wp-image-1064 size-medium\" title=\"The (final) prototype's mechanical components.\" src=\"http:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_05-300x200.jpg\" alt=\"The (final) prototype's mechanical components.\" width=\"300\" height=\"200\" srcset=\"https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_05-300x200.jpg 300w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_05-768x512.jpg 768w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_05-1024x683.jpg 1024w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_05.jpg 1200w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-1064\" class=\"wp-caption-text\">The (final) prototype&#8217;s mechanical components.<\/p><\/div>\n<div id=\"attachment_1041\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_04.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1041\" class=\"wp-image-1041 size-medium\" title=\"Bits to Atoms: The 3D-printed test fixture.\" src=\"http:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_04-300x200.jpg\" alt=\"Bits to Atoms: The 3D-printed test fixture.\" width=\"300\" height=\"200\" srcset=\"https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_04-300x200.jpg 300w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_04-768x512.jpg 768w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_04-1024x683.jpg 1024w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_04.jpg 1200w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-1041\" class=\"wp-caption-text\">Bits to Atoms: The 3D-printed test fixture.<\/p><\/div>\n<p style=\"text-align: center;\"><h2 id=\"tablepress-1-name\" class=\"tablepress-table-name tablepress-table-name-id-1\">BOM: Monocular HUD Mk1<\/h2>\n\n<table id=\"tablepress-1\" class=\"tablepress tablepress-id-1\" aria-labelledby=\"tablepress-1-name\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">QTY<\/th><th class=\"column-2\">Description<\/th><th class=\"column-3\">Notes<\/th><th class=\"column-4\">Buy<\/th><th class=\"column-5\">Links<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\">1<\/td><td class=\"column-2\">0.96\" 128x64 OLED display, SSD1306<\/td><td class=\"column-3\"><em>(White version w\/I\u00b2C interface.)<\/em><\/td><td class=\"column-4\"><a href=\"https:\/\/www.amazon.com\/gp\/product\/B00O2KDQBE\/\" rel=\"noopener\" target=\"_blank\">Amazon<\/a><\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">1<\/td><td class=\"column-2\">Adafruit Feather Bluefruit 32u4 Devboard<\/td><td class=\"column-3\"><em>(Just what I had on-hand.)<\/em><\/td><td class=\"column-4\"><a href=\"https:\/\/www.amazon.com\/dp\/B018U4PPYS\/\" rel=\"noopener\" target=\"_blank\">Amazon<\/a><br \/>\n<a href=\"https:\/\/www.adafruit.com\/product\/2829\" rel=\"noopener\" target=\"_blank\">Adafruit<\/a><\/td><td class=\"column-5\"><a href=\"https:\/\/learn.adafruit.com\/adafruit-feather-32u4-bluefruit-le\/downloads\" rel=\"noopener\" target=\"_blank\">Downloads<\/a><br \/>\n<a href=\"https:\/\/learn.adafruit.com\/adafruit-feather-32u4-bluefruit-le\/pinouts\" rel=\"noopener\" target=\"_blank\">Pinouts<\/a><\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">1<\/td><td class=\"column-2\">602535 Lithium Polymer Battery, 500mAh (NO CONNECTOR)<\/td><td class=\"column-3\"><em>(Amazon item is for two.)<\/em><\/td><td class=\"column-4\"><a href=\"https:\/\/www.amazon.com\/gp\/product\/B00U8H68O2\/\" rel=\"noopener\" target=\"_blank\">Amazon<\/a><\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\">1<\/td><td class=\"column-2\">Bi-convex lens, \u03a625mm, fl=45mm<\/td><td class=\"column-3\"><em>(Amazon item is for two...and is also no longer available.)<\/em><\/td><td class=\"column-4\"><a href=\"https:\/\/www.amazon.com\/gp\/product\/B0135LNYXU\/\" rel=\"noopener\" target=\"_blank\">Amazon<\/a><\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-1\">1<\/td><td class=\"column-2\">1\" Square Glass Mirror<\/td><td class=\"column-3\"><em>(Amazon item is for a bag of 25)<\/em><\/td><td class=\"column-4\"><a href=\"https:\/\/www.amazon.com\/gp\/product\/B004HGODPQ\/\" rel=\"noopener\" target=\"_blank\">Amazon<\/a><\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-7\">\n\t<td class=\"column-1\">1<\/td><td class=\"column-2\">12\" x 12\" Acrylic See-Through Mirror, 1mm, Scratch-Resistant<\/td><td class=\"column-3\"><em>(Only need a small strip... Handy for all sorts of projects, though!)<\/em><\/td><td class=\"column-4\"><a href=\"https:\/\/www.amazon.com\/gp\/product\/B06WWMB662\/\" rel=\"noopener\" target=\"_blank\">Amazon<\/a><\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-8\">\n\t<td class=\"column-1\">1<\/td><td class=\"column-2\">3D Printed Parts<\/td><td class=\"column-3\"><em><strong>(COMING SOON!)<\/strong><\/em><\/td><td class=\"column-4\"><\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-1 from cache --><\/p>\n<p>I love these little <acronym title=\"Organic Light-Emitting Diode\">OLED<\/acronym> displays&#8230;&nbsp; They&#8217;re surprisingly good at displaying tiny text, which is perfect for this application.&nbsp; Sadly 128&#215;64 in a 0.96-inch monochrome display seems to be about the best I can do for pixel density versus pixel count.&nbsp; You pretty much have to choose between more pixels further apart, or less pixels closer together&#8230; Can&#8217;t really find anything like the tiny 640&#215;480 full-color display Google used in the Google Glass headsets. <em>These<\/em> displays, at least, are very common <acronym title=\"A common off-the-shelf device or component available from numerous vendors\">jellybean parts<\/acronym>, and I&#8217;ll be writing a more detailed post on them very soon!<\/p>\n<p>They&#8217;re available in both <acronym title=\"Serial Peripheral Interface\">SPI<\/acronym> and&nbsp;<acronym title=\"Inter-Integrated Circuit\">I\u00b2C<\/acronym> bus flavors, though I prefer the&nbsp;<acronym title=\"Inter-Integrated Circuit\">I\u00b2C<\/acronym> interface because it only requires two data lines (SDA, and SCL, i.e. DAta and CLock) and VCC\/GND supply lines.&nbsp; After an interface, the next consideration is how exactly to go about talking to it in my program.&nbsp; I found a&nbsp;<em>fantastic<\/em> library called <a href=\"https:\/\/github.com\/olikraus\/u8g2\" target=\"_blank\" rel=\"noopener\">u8g2<\/a>, which is the second version of U8glib. The <a href=\"https:\/\/github.com\/olikraus\/u8g2\/wiki\/fntgrp\" target=\"_blank\" rel=\"noopener\">variety of fonts available<\/a> is mind-blowing!&nbsp; It can also pretty easily draw graphics, not just text.<\/p>\n<div id=\"attachment_1063\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/media.makecoolthings.com\/wp\/2018\/05\/12864oled_01.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1063\" class=\"size-medium wp-image-1063\" src=\"http:\/\/media.makecoolthings.com\/wp\/2018\/05\/12864oled_01-300x200.jpg\" alt=\"The 'standard' 128x64 SSD1306-based OLED display, I\u00b2C version.\" width=\"300\" height=\"200\" srcset=\"https:\/\/media.makecoolthings.com\/wp\/2018\/05\/12864oled_01-300x200.jpg 300w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/12864oled_01-768x512.jpg 768w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/12864oled_01-1024x683.jpg 1024w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/12864oled_01.jpg 1200w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-1063\" class=\"wp-caption-text\">The &#8216;standard&#8217; 128&#215;64 pixel SSD1306-based <acronym title=\"Organic Light-Emitting Diode\">OLED<\/acronym> display, <acronym title=\"Inter-Integrated Circuit\">I\u00b2C<\/acronym> version.<\/p><\/div>\n<div id=\"attachment_1040\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_03.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1040\" class=\"wp-image-1040 size-medium\" title=\"One of the test patterns from the sample code, being displayed on the OLED. \" src=\"http:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_03-300x200.jpg\" alt=\"One of the test patterns from the sample code, being displayed on the OLED. \" width=\"300\" height=\"200\" srcset=\"https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_03-300x200.jpg 300w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_03-768x512.jpg 768w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_03-1024x683.jpg 1024w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_03.jpg 1200w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-1040\" class=\"wp-caption-text\">One of the test patterns from the sample code, being displayed on the <acronym title=\"Organic Light-Emitting Diode\">OLED<\/acronym>.<\/p><\/div>\n<p>For these initial tests I was using an Adafruit Feather Bluefruit, ATMega32u4-based Arduino board with on-board Bluetooth Low Energy, and a little LiPo battery connector and charging circuitry.&nbsp; I quickly ran into what was going to be the major limitation; the basic &#8220;Hello World!&#8221; program I had for the display, in English and Chinese, took up 105% of the available program space, because it needed to load the Chinese font into memory along with the libraries.<\/p>\n<p>I set about getting my hands on a couple Espressif ESP32-based devboards\u2014which I&#8217;ll <a href=\"https:\/\/makecoolthings.com\/?p=1081\">talk about in great detail later<\/a> \u2014because they start out at 4 <em>Mega<\/em>bytes of storage, instead of 32 <em>Kilo<\/em>bytes&#8230; (They&#8217;re also 15 times faster, have Bluetooth LE&nbsp;<em>and<\/em> WiFi, and are absurdly small and inexpensive.)<\/p>\n<p>With the electronics more or less figured out, there was more about the physical construction that needed work.&nbsp; I used a couple 1&#8243; square mirrors that I picked up a bag of on Amazon, and a 25mm biconvex lens for a Google Cardboard&#8230; But for the imaging surface, all I had was this piece of literal plastic trash that I&#8217;d been holding on to for this specific application because it looked like it would do&#8230;.<\/p>\n<div id=\"attachment_1039\" style=\"width: 210px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_02.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1039\" class=\"wp-image-1039 size-medium\" title=\"The display's reflection in the mirror, as seen from the 'outside' of the 'eyepiece'. \" src=\"http:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_02-200x300.jpg\" alt=\"The display's reflection in the mirror, as seen from the 'outside' of the 'eyepiece'. \" width=\"200\" height=\"300\" srcset=\"https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_02-200x300.jpg 200w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_02-768x1152.jpg 768w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_02-683x1024.jpg 683w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_02.jpg 800w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/a><p id=\"caption-attachment-1039\" class=\"wp-caption-text\">The display&#8217;s reflection in the mirror, as seen from the &#8216;outside&#8217; of the &#8216;eyepiece&#8217;.<\/p><\/div>\n<p>Spoiler alert: It&nbsp;<em>did not<\/em> &#8216;do&#8217;.&nbsp; I was happy to see that it worked at all, so at least my principles were sound&#8230;&nbsp; But the image was very faint, and it almost seemed to be exhibiting <a href=\"https:\/\/en.wikipedia.org\/wiki\/Photoelasticity\" target=\"_blank\" rel=\"noopener\">photoelasticity<\/a>, but as far as I know OLEDs such as this don&#8217;t use polarization, and I wasn&#8217;t near my monitor&#8230;&nbsp; (<em>EDIT:<\/em> I am apparently incorrect, according to the data I have on them, their construction does include a polarizer. I guess the photoelasticity effect just isn&#8217;t as pronounced as it is with a bigass monitor, because the light intensity is like 60% less?)<\/p>\n<div id=\"attachment_1038\" style=\"width: 210px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_01.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1038\" class=\"wp-image-1038 size-medium\" title=\"Lackluster result, though the fact that it worked at all was encouraging. (Also, super hard to photograph!)\" src=\"http:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_01-200x300.jpg\" alt=\"Lackluster result, though the fact that it worked at all was encouraging. (Also, super hard to photograph!)\" width=\"200\" height=\"300\" srcset=\"https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_01-200x300.jpg 200w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_01-768x1152.jpg 768w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_01-683x1024.jpg 683w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_01.jpg 800w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/a><p id=\"caption-attachment-1038\" class=\"wp-caption-text\">Lackluster result, though the fact that it worked at all was encouraging. (Also, super hard to photograph!)<\/p><\/div>\n<p>The first time I had this idea, I knew I was probably going to have to use some one-way mirror tinting film or something&#8230; This time I actually managed to find some one-way mirror&nbsp;<em>acrylic<\/em>, specifically some 1mm thick sheet, scratch resistant&#8230;&nbsp; It wasn&#8217;t particularly cheap\u2014just over twenty bucks with the added overnight shipping \u2014but it was definitely what I needed, as it is highly reflective, giving a perfect mirror finish when the protective film is removed, and fairly easy to see through&#8230;with probably only a 10-15% loss of light transmittance at most.<\/p>\n<div id=\"attachment_1062\" style=\"width: 210px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_acrylic3.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1062\" class=\"wp-image-1062 size-medium\" title=\"The one-way mirror acrylic, as seen partially through a piece.\" src=\"http:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_acrylic3-e1527556765830-200x300.jpg\" alt=\"The one-way mirror acrylic, as seen partially through a piece.\" width=\"200\" height=\"300\" srcset=\"https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_acrylic3-e1527556765830-200x300.jpg 200w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_acrylic3-e1527556765830-768x1151.jpg 768w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_acrylic3-e1527556765830-684x1024.jpg 684w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_acrylic3-e1527556765830.jpg 801w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/a><p id=\"caption-attachment-1062\" class=\"wp-caption-text\">The one-way mirror acrylic, as seen partially through a piece.<\/p><\/div>\n<div id=\"attachment_1043\" style=\"width: 210px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_acrylic1.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1043\" class=\"wp-image-1043 size-medium\" title=\"Drastically improved imaging with the one-way mirror acrylic. (Though still hard to focus on with a phone!)\" src=\"http:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_acrylic1-200x300.jpg\" alt=\"Drastically improved imaging with the one-way mirror acrylic. (Though still hard to focus on with a phone!)\" width=\"200\" height=\"300\" srcset=\"https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_acrylic1-200x300.jpg 200w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_acrylic1-768x1152.jpg 768w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_acrylic1-683x1024.jpg 683w, https:\/\/media.makecoolthings.com\/wp\/2018\/05\/hud_proofofconcept_acrylic1.jpg 800w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/a><p id=\"caption-attachment-1043\" class=\"wp-caption-text\">Drastically improved imaging with the one-way mirror acrylic. (Though still hard to focus on with a phone!)<\/p><\/div>\n<p>That&#8217;s it for Part 1&#8230;&nbsp; In Part 2, we&#8217;ll look more at the ESP32, examine some alternative optical strategies, and various other tomfoolery.<\/p>\n<h6>p.s. If anybody&#8217;s curious about the background in that last pic, my Windows desktop wallpaper is a rotating gallery of Josan Gonzalez&#8217;s artwork from <a href=\"https:\/\/www.kickstarter.com\/projects\/1410842311\/the-future-is-now-volume-two\" target=\"_blank\" rel=\"noopener\">The Future Is Now Volume 2<\/a> which is MOST EXCELLENT.&nbsp; And you will find &#8220;John Pfeiffer, Evil Genius!&#8221; in the backer list of the book&#8217;s credits, because I wholeheartedly support the making of ALL cool things, not just my own! ;)<\/h6>","protected":false},"excerpt":{"rendered":"<p>Now, this is a project I&#8217;ve had in the works for quite some time&#8230; It started out simply as a clever way to read Twitch chat whilst doing my professional imaginary spaceship pilot gig, without taking my eyes off what I&#8217;m doing, but I believe it has a lot more potential.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"bgseo_title":"","bgseo_description":"","bgseo_robots_index":"","bgseo_robots_follow":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_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},"jetpack_post_was_ever_published":false},"categories":[1,11,3],"tags":[45,35,48,58,80,83,82,81],"wf_post_folders":[],"class_list":["post-1047","post","type-post","status-publish","format-standard","hentry","category-blogposts","category-electronics","category-projects","tag-3d-printing","tag-arduino","tag-design-cool-things","tag-electronics","tag-esp32","tag-fusion360","tag-oled","tag-u8glib"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6NlLW-gT","jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/makecoolthings.com\/index.php?rest_route=\/wp\/v2\/posts\/1047","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/makecoolthings.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/makecoolthings.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/makecoolthings.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/makecoolthings.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1047"}],"version-history":[{"count":9,"href":"https:\/\/makecoolthings.com\/index.php?rest_route=\/wp\/v2\/posts\/1047\/revisions"}],"predecessor-version":[{"id":1542,"href":"https:\/\/makecoolthings.com\/index.php?rest_route=\/wp\/v2\/posts\/1047\/revisions\/1542"}],"wp:attachment":[{"href":"https:\/\/makecoolthings.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1047"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/makecoolthings.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1047"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/makecoolthings.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1047"},{"taxonomy":"wf_post_folders","embeddable":true,"href":"https:\/\/makecoolthings.com\/index.php?rest_route=%2Fwp%2Fv2%2Fwf_post_folders&post=1047"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}