summaryrefslogtreecommitdiff
path: root/blog/multichannel-led-driver/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'blog/multichannel-led-driver/index.html')
-rw-r--r--blog/multichannel-led-driver/index.html18
1 files changed, 10 insertions, 8 deletions
diff --git a/blog/multichannel-led-driver/index.html b/blog/multichannel-led-driver/index.html
index 19b4bd8..43802ff 100644
--- a/blog/multichannel-led-driver/index.html
+++ b/blog/multichannel-led-driver/index.html
@@ -298,15 +298,16 @@ photocurrents for a certain BCM setpoint just as our retinas would do.</p>
</figure><p>While it would be possible to fully automate the optimization of BCM driver lookup tables, we needed only one and in the
end I just sat down and manually tweaked the ideal values we initially calculated until I liked the result. You can see
the resulting brightness curve below.</p>
-<figure>
- <figure class="side-by-side">
+<div class="subfigure">
+ <figure>
<img src="images/uncorrected_brightness_sim.svg" alt="">
<figcaption>
Calculated brightness curve for the uncorrected BCM setup. As you can see, at low setpoints the result
is about as smooth as sandpaper, which is well in line with our observations. At high setpoints the
offset gets swamped out and the nonlinearity in the low bits is not visible anymore.
</figcaption>
- </figure><figure class="side-by-side">
+ </figure>
+ <figure>
<img src="images/corrected_brightness_sim.svg" alt="">
<figcaption>
Brightness curve for the corrected BCM setup extrapolated using actual measurements. Looks as buttery
@@ -314,7 +315,7 @@ the resulting brightness curve below.</p>
</figcaption>
</figcaption>
</figure>
-</figure></div>
+</div></div>
</div>
<div class="section" id="controlling-the-driver">
<h3>Controlling the driver</h3>
@@ -343,19 +344,20 @@ and control their outputs.</p>
</div>
<div class="section" id="conclusion">
<h3>Conclusion</h3>
-<figure>
- <figure class="side-by-side">
+<div class="subfigure">
+ <figure>
<a href="images/olsndot_schematic.png">
<img src="images/olsndot_schematic.png" alt="A picture of the LED driver schematic">
</a>
<figcaption>The LED driver <a href="images/olsndot_schematic.png">schematic</a></figcaption>
- </figure><figure class="side-by-side">
+ </figure>
+ <figure>
<a href="images/olsndot_pcb.png">
<img src="images/olsndot_pcb.png" alt="A picture of the LED driver PCB layout">
</a>
<figcaption>The LED driver <a href="images/olsndot_pcb.png">PCB layout</a></figcaption>
</figure>
-</figure><p>Putting some thought into the control circuitry and software, you can easily control large numbers of channels of LEDs
+</div><p>Putting some thought into the control circuitry and software, you can easily control large numbers of channels of LEDs
using extremely inexpensive driving hardware without any compromises on dynamic range. The design we settled on can
drive 32 channels of LED tape with a dynamic range of 14bit at a BOM cost of below 10€. All it really takes is a couple
of shift registers and a mildly bored STM32 microcontroller.</p>