{"id":187,"date":"2020-10-05T16:17:34","date_gmt":"2020-10-05T15:17:34","guid":{"rendered":"http:\/\/jaerder.videmogroup.org\/blog\/?p=187"},"modified":"2020-10-05T16:50:46","modified_gmt":"2020-10-05T15:50:46","slug":"measure-light-the-quest-for-a-light-meter-for-analogue-photography-part-one","status":"publish","type":"post","link":"https:\/\/jaerder.videmogroup.org\/blog\/index.php\/2020\/10\/05\/measure-light-the-quest-for-a-light-meter-for-analogue-photography-part-one\/","title":{"rendered":"Measure Light &#8211; The quest for a light meter for analogue photography &#8211; Part One"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large is-resized is-style-default\"><a href=\"https:\/\/jaerder.videmogroup.org\/blog\/wp-content\/uploads\/2020\/10\/light_meter.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jaerder.videmogroup.org\/blog\/wp-content\/uploads\/2020\/10\/light_meter-1024x768.jpg\" alt=\"Light Meter\" class=\"wp-image-190\" width=\"578\" height=\"434\" srcset=\"https:\/\/jaerder.videmogroup.org\/blog\/wp-content\/uploads\/2020\/10\/light_meter-1024x768.jpg 1024w, https:\/\/jaerder.videmogroup.org\/blog\/wp-content\/uploads\/2020\/10\/light_meter-300x225.jpg 300w, https:\/\/jaerder.videmogroup.org\/blog\/wp-content\/uploads\/2020\/10\/light_meter-768x576.jpg 768w, https:\/\/jaerder.videmogroup.org\/blog\/wp-content\/uploads\/2020\/10\/light_meter.jpg 1440w\" sizes=\"auto, (max-width: 578px) 100vw, 578px\" \/><\/a><figcaption>Light meter with a FTDI USB &#8211; Serial Interface for sw development<\/figcaption><\/figure>\n\n\n\n<p>I love analogue photography, even more when it&#8217;s with fully mechanical medium format cameras, such as the <a rel=\"noreferrer noopener\" href=\"https:\/\/camerapedia.fandom.com\/wiki\/Flexaret_VII\" target=\"_blank\">Flexaret Automat VII<\/a>, and the<a rel=\"noreferrer noopener\" href=\"https:\/\/heejennwei.com\/archive\/2015\/05\/getting-your-first-hasselblad-film.html\" target=\"_blank\"> Hasselblad 500c.<\/a><\/p>\n\n\n\n<p>However, where are some situations where the correct exposure is difficult to determine. On such cases, one could use a second camera for TTL metering (such as DSLR), a phone app&#8230;or a light meter.<\/p>\n\n\n\n<p>On my location, an new sektronick light meter price varies from 109 \u20ac to 600 \u20ac depending on the model. On ebay you could get an used, cheaper , vintage light meter, but your mileage might vary. <\/p>\n\n\n\n<p>So since the price and availability of light meters were not to my liking, I&#8217;ve decided to build my own from scratch, based on an arduino board, with some help of Pedro Virtebo, at <a rel=\"noreferrer noopener\" href=\"http:\/\/www.maquinasdeoutrostempos.pt\" data-type=\"URL\" data-id=\"http:\/\/www.maquinasdeoutrostempos.pt\" target=\"_blank\">Maquinas de Outros Tempos<\/a>.<\/p>\n\n\n\n<p>Bear in mind this is not the first or last time anyone has done something similar, a simple google search show a ton of similar projects, with different levels of polish. But just implementing these would not give me enough understanding of how a light meter works.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Main Goals<\/h2>\n\n\n\n<p>The main goals for this project were :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Have a finished, usable light meter.<\/li><li>Custom made PCB.<\/li><li>Have the output in Ev, in order to use the Ev scale on my medium format cameras.<\/li><li>Understand the relationship between Lux, Ev, Fstop and Aperture.<\/li><li>No user settings &#8211; usage must be as simple as possible.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Hardware<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Hardware baseline<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Arduino Based<\/li><li>TSL 2591 Light sensor<\/li><li>Single encoder for user interface<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Hardware Architecture<\/h3>\n\n\n\n<p>The light meter consists of an <a rel=\"noreferrer noopener\" href=\"http:\/\/adafruit.com\/product\/1980\" target=\"_blank\">Adafuit TSL2591<\/a> and a OLED display connected via i2c bus, with an encoder for user interaction.<br>Schematics and PCB layout design were all made on kicad.<\/p>\n\n\n\n<p>The arduino board chosen was the Arduino mini pro, due to its size.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/jaerder.videmogroup.org\/blog\/wp-content\/uploads\/2020\/10\/pcb_001-1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jaerder.videmogroup.org\/blog\/wp-content\/uploads\/2020\/10\/pcb_001-1.jpg\" alt=\"\" class=\"wp-image-194\" width=\"562\" height=\"330\" srcset=\"https:\/\/jaerder.videmogroup.org\/blog\/wp-content\/uploads\/2020\/10\/pcb_001-1.jpg 830w, https:\/\/jaerder.videmogroup.org\/blog\/wp-content\/uploads\/2020\/10\/pcb_001-1-300x176.jpg 300w, https:\/\/jaerder.videmogroup.org\/blog\/wp-content\/uploads\/2020\/10\/pcb_001-1-768x452.jpg 768w\" sizes=\"auto, (max-width: 562px) 100vw, 562px\" \/><\/a><\/figure>\n\n\n\n<p>In regards to the schematic, there are not many ways to connect I2C peripherals (the Light sensor and the OLED display) to an Arduino mini pro. <\/p>\n\n\n\n<p>In fact, one could use <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/PhotoChemicals\/f_lux\" data-type=\"URL\" data-id=\"https:\/\/github.com\/PhotoChemicals\/f_lux\" target=\"_blank\">f<\/a><a href=\"https:\/\/github.com\/PhotoChemicals\/f_lux\" data-type=\"URL\" data-id=\"https:\/\/github.com\/PhotoChemicals\/f_lux\" target=\"_blank\" rel=\"noreferrer noopener\">_<\/a><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/PhotoChemicals\/f_lux\" data-type=\"URL\" data-id=\"https:\/\/github.com\/PhotoChemicals\/f_lux\" target=\"_blank\">lux code<\/a>, with some minor changes, to work with this PCB.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Software<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Getting the numbers<\/h3>\n\n\n\n<p>The TSL2591 only outputs the <a rel=\"noreferrer noopener\" href=\"https:\/\/en.wikipedia.org\/wiki\/Lux\" data-type=\"URL\" data-id=\"https:\/\/en.wikipedia.org\/wiki\/Lux\" target=\"_blank\">Lux value<\/a> at measurement time.<br>In order to have values that are directly usable for photography there are some calculations to be performed.<\/p>\n\n\n\n<p>As a start, its simpler to determine the <a rel=\"noreferrer noopener\" href=\"https:\/\/en.wikipedia.org\/wiki\/Exposure_value\" data-type=\"URL\" data-id=\"https:\/\/en.wikipedia.org\/wiki\/Exposure_value\" target=\"_blank\">Exposure Value<\/a> from the Lux measurement (instead of trying to get fstop or shutter speed first) :<\/p>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>Ev_{100}  = Log_2(\\frac{Lux}{2.5} )<\/pre><\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\"><div class=\"wp-block-group__inner-container\"><\/div><\/div>\n\n\n\n<p>However, the Arduino libraries do not have a Log<sub>2<\/sub>(x), but a Log<sub>10<\/sub>(x) instead. <a href=\"https:\/\/en.wikipedia.org\/wiki\/Logarithm#Change_of_base\" data-type=\"URL\" data-id=\"https:\/\/en.wikipedia.org\/wiki\/Logarithm#Change_of_base\" target=\"_blank\" rel=\"noreferrer noopener\">Dusting off the math<\/a> in order to use Log<sub>10<\/sub>(x) instead :<\/p>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>Ev_{100}  = \\frac {Log_{10}(\\frac{Lux}{2.5} )}{Log_{10}(2)}<\/pre><\/div>\n\n\n\n<p>However, this is only valid for ISO 100.<br>In order to have the Ev compensated for an arbitrary ISO value,  the formula becomes :<\/p>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>Ev_{iso} = \\frac {Log_{10}(\\frac{Lux}{2.5} )}{Log_{10}(2)} + \\frac{Log_{10}(\\frac{iso}{100})}{Log_{10}(2)}<\/pre><\/div>\n\n\n\n<p>Now that we have the Ev, at this stage the light meter is already usable  on cameras that have an Ev scale. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/jaerder.videmogroup.org\/blog\/wp-content\/uploads\/2020\/10\/DSC_8284_B.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jaerder.videmogroup.org\/blog\/wp-content\/uploads\/2020\/10\/DSC_8284_B-1024x680.jpg\" alt=\"\" class=\"wp-image-212\" width=\"586\" height=\"389\" srcset=\"https:\/\/jaerder.videmogroup.org\/blog\/wp-content\/uploads\/2020\/10\/DSC_8284_B-1024x680.jpg 1024w, https:\/\/jaerder.videmogroup.org\/blog\/wp-content\/uploads\/2020\/10\/DSC_8284_B-300x199.jpg 300w, https:\/\/jaerder.videmogroup.org\/blog\/wp-content\/uploads\/2020\/10\/DSC_8284_B-768x510.jpg 768w, https:\/\/jaerder.videmogroup.org\/blog\/wp-content\/uploads\/2020\/10\/DSC_8284_B.jpg 1080w\" sizes=\"auto, (max-width: 586px) 100vw, 586px\" \/><\/a><figcaption>Ev scale on a <strong><a href=\"https:\/\/kenrockwell.com\/hasselblad\/50mm-f4-c.htm\" data-type=\"URL\" data-id=\"https:\/\/kenrockwell.com\/hasselblad\/50mm-f4-c.htm\" target=\"_blank\" rel=\"noreferrer noopener\">Zeiss Distagon 50mm f\/4 C<\/a><\/strong>  (Hasselblad System V)<\/figcaption><\/figure>\n\n\n\n<p>The Ev result is the basis for the Fstop or shutter speed calculation.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Fstop calculation<\/h4>\n\n\n\n<p>Now that we have an Ev value we can now calculate the correct Fstop for a given shutter speed :<\/p>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>fstop = \\sqrt {2^{Ev} * shutter\\_speed}<\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Shutter Speed calculation<\/h4>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>shutter\\_speed = \\frac {Fstop^2}{2^{ev}}<\/pre><\/div>\n\n\n\n<p>Obviously, we want a fraction as a result (1\/x) , not a <em>floating point <\/em>number (like 1\/2 instead of 0.5) , thus  :<\/p>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>denominator = \\frac{1.0}{Shutter\\_speed}<\/pre><\/div>\n\n\n\n<p>Of course, the disadvantage is the fact that the output of these functions might not fall into the pre-detemined Shutter speed or Fstop values selectable on the camera (1, 1\/2, 1\/1000, or f1.8, f4, f5.6 for example). In the future I might add some form of rounding to the nearest selectable value on the light meter code.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/jaerder.videmogroup.org\/blog\/wp-content\/uploads\/2020\/10\/light_meter_3.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jaerder.videmogroup.org\/blog\/wp-content\/uploads\/2020\/10\/light_meter_3-1024x622.jpg\" alt=\"\" class=\"wp-image-217\" width=\"572\" height=\"346\" srcset=\"https:\/\/jaerder.videmogroup.org\/blog\/wp-content\/uploads\/2020\/10\/light_meter_3-1024x622.jpg 1024w, https:\/\/jaerder.videmogroup.org\/blog\/wp-content\/uploads\/2020\/10\/light_meter_3-300x182.jpg 300w, https:\/\/jaerder.videmogroup.org\/blog\/wp-content\/uploads\/2020\/10\/light_meter_3.jpg 1200w\" sizes=\"auto, (max-width: 572px) 100vw, 572px\" \/><\/a><figcaption>Using the formula we get a &#8220;correct&#8221; result, but its one not directly selectable on a camera. In this case it should be rounded to 1\/200 of a sec.<\/figcaption><\/figure>\n\n\n\n<p>End of part one.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I love analogue photography, even more when it&#8217;s with fully mechanical medium format cameras, such as the Flexaret Automat VII, and the Hasselblad 500c. However, where are some situations where the correct exposure is difficult to determine. On such cases, one could use a second camera for TTL metering (such as DSLR), a phone app&#8230;or &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/jaerder.videmogroup.org\/blog\/index.php\/2020\/10\/05\/measure-light-the-quest-for-a-light-meter-for-analogue-photography-part-one\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Measure Light &#8211; The quest for a light meter for analogue photography &#8211; Part One&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3,13,15,2],"tags":[5,24,23],"class_list":["post-187","post","type-post","status-publish","format-standard","hentry","category-analogue","category-development","category-hardware","category-photography","tag-analogue-photography","tag-arduino","tag-light-meter"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/jaerder.videmogroup.org\/blog\/index.php\/wp-json\/wp\/v2\/posts\/187","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jaerder.videmogroup.org\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jaerder.videmogroup.org\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jaerder.videmogroup.org\/blog\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jaerder.videmogroup.org\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=187"}],"version-history":[{"count":30,"href":"https:\/\/jaerder.videmogroup.org\/blog\/index.php\/wp-json\/wp\/v2\/posts\/187\/revisions"}],"predecessor-version":[{"id":223,"href":"https:\/\/jaerder.videmogroup.org\/blog\/index.php\/wp-json\/wp\/v2\/posts\/187\/revisions\/223"}],"wp:attachment":[{"href":"https:\/\/jaerder.videmogroup.org\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=187"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jaerder.videmogroup.org\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=187"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jaerder.videmogroup.org\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=187"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}