Merge branch '7-alt-texts' into 'master'
Added alt text to every image, bumped up archive page pagination See merge request bdebyl/bdebyl-site!10
This commit is contained in:
@@ -55,7 +55,7 @@ params:
|
|||||||
description: "A random assortment of my personal projects."
|
description: "A random assortment of my personal projects."
|
||||||
|
|
||||||
# paginate of archives, tags and categories
|
# paginate of archives, tags and categories
|
||||||
archivePaginate: 5
|
archivePaginate: 20
|
||||||
|
|
||||||
# show 'xx Posts In Total' in archive page ?
|
# show 'xx Posts In Total' in archive page ?
|
||||||
showArchiveCount: true
|
showArchiveCount: true
|
||||||
|
|||||||
@@ -10,7 +10,9 @@ deminishing returns. Simply put: it makes the image look "soft", or otherwise
|
|||||||
out-of-focus. In this post I aim to find out find the best *acceptable* aperture
|
out-of-focus. In this post I aim to find out find the best *acceptable* aperture
|
||||||
setting for a specific lens.
|
setting for a specific lens.
|
||||||
|
|
||||||
{{< thumb src="/static/img/aperture-study/f17-f40-comp.jpg" sub="f/1.7 vs. f/4.0" >}}
|
{{< thumb src="/static/img/aperture-study/f17-f40-comp.jpg"
|
||||||
|
sub="f/1.7 vs. f/4.0"
|
||||||
|
alt="Photo comparing aperture depth-of-field of f/1.7 versus f/4.0 (sharper)" >}}
|
||||||
<!--more-->
|
<!--more-->
|
||||||
|
|
||||||
# The Setup
|
# The Setup
|
||||||
@@ -39,7 +41,9 @@ lost at that target distance of 1 meter.
|
|||||||
The biggest difference can be seen between the *f/1.7* and *f/4.0* shots. Note
|
The biggest difference can be seen between the *f/1.7* and *f/4.0* shots. Note
|
||||||
the increase in clarity on the pillows fabric.
|
the increase in clarity on the pillows fabric.
|
||||||
|
|
||||||
{{< thumb src="/static/img/aperture-study/f17-f40-comp.jpg" sub="f/1.7 vs. f/4.0" >}}
|
{{< thumb src="/static/img/aperture-study/f17-f40-comp.jpg"
|
||||||
|
sub="f/1.7 vs. f/4.0"
|
||||||
|
alt="Photo comparing aperture depth-of-field of f/1.7 versus f/4.0 (sharper)" >}}
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -48,7 +52,9 @@ At *f/2.8* and above I started noticing less increase in perceived sharpness of
|
|||||||
the image, though the difference in comparison to *f/1.7* was still fairly
|
the image, though the difference in comparison to *f/1.7* was still fairly
|
||||||
noticeable
|
noticeable
|
||||||
|
|
||||||
{{< thumb src="/static/img/aperture-study/f17-f28-comp.jpg" sub="f/1.7 vs f/2.8" >}}
|
{{< thumb src="/static/img/aperture-study/f17-f28-comp.jpg"
|
||||||
|
sub="f/1.7 vs f/2.8"
|
||||||
|
alt="Photo comparing aperture depth-of-field of f/1.7 versus f/2.8 (sharper)" >}}
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -58,7 +64,9 @@ difference in shutter speed, the overall difference does not seem as dramatic
|
|||||||
from *f/2.8* to *f/4.0*. Personally, I'd say that *f/2.8* is the clear winner in
|
from *f/2.8* to *f/4.0*. Personally, I'd say that *f/2.8* is the clear winner in
|
||||||
finding the best middle-ground between maximum aperture and image quality.
|
finding the best middle-ground between maximum aperture and image quality.
|
||||||
|
|
||||||
{{< thumb src="/static/img/aperture-study/f28-f40-comp.jpg" sub="f/2.8 vs. f/4.0" >}}
|
{{< thumb src="/static/img/aperture-study/f28-f40-comp.jpg"
|
||||||
|
sub="f/2.8 vs. f/4.0"
|
||||||
|
alt="Photo comparing aperture depth-of-field of f/2.8 versus f/4.0 (sharper)" >}}
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,8 @@ With some minor dependencies, it's fairly straightforward in setting up your
|
|||||||
Emacs workflow to include IntelliSense-like auto-completion!
|
Emacs workflow to include IntelliSense-like auto-completion!
|
||||||
|
|
||||||
{{< img src="/static/img/emacs-clang-libopencm3/header-completion.png"
|
{{< img src="/static/img/emacs-clang-libopencm3/header-completion.png"
|
||||||
sub="Header Completion" >}}
|
sub="Header Completion"
|
||||||
|
alt="Screenshot showing auto-completion for C header files in emacs" >}}
|
||||||
|
|
||||||
<!--more-->
|
<!--more-->
|
||||||
|
|
||||||
@@ -105,7 +106,8 @@ fairly uninvolved workaround.
|
|||||||
|
|
||||||
## Example
|
## Example
|
||||||
{{< img src="/static/img/emacs-clang-libopencm3/completion.png"
|
{{< img src="/static/img/emacs-clang-libopencm3/completion.png"
|
||||||
sub="Completion" >}}
|
sub="Completion"
|
||||||
|
alt= "Screenshot showing auto completion for C functions in emacs">}}
|
||||||
|
|
||||||
[^1]: [Emacs Initialization File]
|
[^1]: [Emacs Initialization File]
|
||||||
(https://www.gnu.org/software/emacs/manual/html_node/emacs/Init-File.html)
|
(https://www.gnu.org/software/emacs/manual/html_node/emacs/Init-File.html)
|
||||||
|
|||||||
@@ -8,7 +8,8 @@ tags: ["electronics"]
|
|||||||
A colleague offered a pair of Bern Bluetooth drop-in headphones to me fore free,
|
A colleague offered a pair of Bern Bluetooth drop-in headphones to me fore free,
|
||||||
with the catch being: _I had to fix them_
|
with the catch being: _I had to fix them_
|
||||||
|
|
||||||
{{< thumb src="/static/img/headphone-fix/IMG_7505.jpg" >}}
|
{{< thumb src="/static/img/headphone-fix/IMG_7505.jpg"
|
||||||
|
alt="Photo of Bern brand headphones under magnifying glass" >}}
|
||||||
<!--more-->
|
<!--more-->
|
||||||
|
|
||||||
# Don't Turn It On, Take It Apart!
|
# Don't Turn It On, Take It Apart!
|
||||||
@@ -28,8 +29,10 @@ right speaker put out no sound._ I checked the known-good left speaker using my
|
|||||||
wanted to find out what to expect when troubleshooting the right channel.
|
wanted to find out what to expect when troubleshooting the right channel.
|
||||||
|
|
||||||
{{< thumbgallery >}}
|
{{< thumbgallery >}}
|
||||||
{{< thumb src="/static/img/headphone-fix/IMG_7506.jpg" sub="Left Speaker" >}}
|
{{< thumb src="/static/img/headphone-fix/IMG_7506.jpg" sub="Left Speaker"
|
||||||
{{< thumb src="/static/img/headphone-fix/IMG_7511.jpg" sub="Right Speaker" >}}
|
alt="Photo of oscilloscope showing working left-speaker analog signal" >}}
|
||||||
|
{{< thumb src="/static/img/headphone-fix/IMG_7511.jpg" sub="Right Speaker"
|
||||||
|
alt="Photo of oscilloscope showing broken right-speaker analog signal" >}}
|
||||||
{{< /thumbgallery >}}
|
{{< /thumbgallery >}}
|
||||||
|
|
||||||
Knowing what to expect on the oscilloscope, I hooked up the probe to the right,
|
Knowing what to expect on the oscilloscope, I hooked up the probe to the right,
|
||||||
@@ -42,7 +45,8 @@ disconnected at this point in time to ease the troubleshooting process.
|
|||||||
Lucky for me the PCB pads were labeled -- even better `SPKL+` (_left_) and
|
Lucky for me the PCB pads were labeled -- even better `SPKL+` (_left_) and
|
||||||
`SPKR+` (_right_) were easy to find.
|
`SPKR+` (_right_) were easy to find.
|
||||||
|
|
||||||
{{< thumb src="/static/img/headphone-fix/IMG_7507.jpg" >}}
|
{{< thumb src="/static/img/headphone-fix/IMG_7507.jpg"
|
||||||
|
alt="Photo of close-up magnified view of broken right speaker PCB" >}}
|
||||||
|
|
||||||
Outside of the bluetooth board hidden under the piece of tape, there's not a
|
Outside of the bluetooth board hidden under the piece of tape, there's not a
|
||||||
whole lot going on in the circuit. It was my guess that the visible surface
|
whole lot going on in the circuit. It was my guess that the visible surface
|
||||||
@@ -57,7 +61,8 @@ which verified that to be the case.
|
|||||||
115_) to test continuity of the circuit from the known-good and the now
|
115_) to test continuity of the circuit from the known-good and the now
|
||||||
known-bad speaker traces back to the `OUTL` and `OUTR` outputs of the amplifier.
|
known-bad speaker traces back to the `OUTL` and `OUTR` outputs of the amplifier.
|
||||||
|
|
||||||
{{< thumb src="/static/img/headphone-fix/IMG_7514.jpg" >}}
|
{{< thumb src="/static/img/headphone-fix/IMG_7514.jpg"
|
||||||
|
alt="Photo of right speaker PCB hanging out of casing" >}}
|
||||||
|
|
||||||
Removing the board from the housing required a bit of finesse. I didn't want to
|
Removing the board from the housing required a bit of finesse. I didn't want to
|
||||||
bother desoldering the left speaker connections to make removal easier. So, with
|
bother desoldering the left speaker connections to make removal easier. So, with
|
||||||
@@ -81,7 +86,8 @@ Using the 3.5mm mini-jack's solder pads, I found continuity to be true from the
|
|||||||
chips left and right outputs to the conveniently accessible solder pads. _A
|
chips left and right outputs to the conveniently accessible solder pads. _A
|
||||||
bodge wire was in order_..
|
bodge wire was in order_..
|
||||||
|
|
||||||
{{< thumb src="/static/img/headphone-fix/IMG_7515.jpg" sub="Note the bodge wire" >}}
|
{{< thumb src="/static/img/headphone-fix/IMG_7515.jpg" sub="Note the bodge wire"
|
||||||
|
alt="Photo of close-up magnified view with soldered fix wire in right speaker PCB" >}}
|
||||||
|
|
||||||
|
|
||||||
# All's Well That Ends Well
|
# All's Well That Ends Well
|
||||||
@@ -90,7 +96,8 @@ pin to `SPKR+`. Lo and behold it was now closed-circuit! I was very happy to see
|
|||||||
the expected waveform from the known-good left channel now also appearing on the
|
the expected waveform from the known-good left channel now also appearing on the
|
||||||
right channel.
|
right channel.
|
||||||
|
|
||||||
{{< thumb src="/static/img/headphone-fix/IMG_7516.jpg" >}}
|
{{< thumb src="/static/img/headphone-fix/IMG_7516.jpg"
|
||||||
|
alt="Photo of oscilloscope showing fixed right-speaker analog signal">}}
|
||||||
|
|
||||||
At this point I quickly re-soldered the wires to the speaker and enjoyed music
|
At this point I quickly re-soldered the wires to the speaker and enjoyed music
|
||||||
now coming into both ears!
|
now coming into both ears!
|
||||||
|
|||||||
@@ -10,7 +10,8 @@ hideHeaderAndFooter: false
|
|||||||
One of the simplest projects to get started with the STM32 microcontroller
|
One of the simplest projects to get started with the STM32 microcontroller
|
||||||
series: turn on the lights!
|
series: turn on the lights!
|
||||||
|
|
||||||
{{< thumb src="/static/img/stm32-examples/part0/stm32-basic-gpio-leds.jpeg" >}}
|
{{< thumb src="/static/img/stm32-examples/part0/stm32-basic-gpio-leds.jpeg"
|
||||||
|
alt="Photo of STM32 discovery board with illuminated green and blue LEDs" >}}
|
||||||
|
|
||||||
<!--more-->
|
<!--more-->
|
||||||
|
|
||||||
@@ -130,7 +131,8 @@ For starters, why were pins `GPIO8` and `GPIO9` on the `GPIOC` port being used?
|
|||||||
The answer can be found after a quick review of the STM32F0 Discovery User Manual[^4]:
|
The answer can be found after a quick review of the STM32F0 Discovery User Manual[^4]:
|
||||||
|
|
||||||
{{< img src="/static/img/stm32-examples/part0/stm32f0-discover-led-diagram.png"
|
{{< img src="/static/img/stm32-examples/part0/stm32f0-discover-led-diagram.png"
|
||||||
sub="LEDs shown on circuit diagram connected to PC8 and PC9">}}
|
sub="LEDs shown on circuit diagram connected to PC8 and PC9"
|
||||||
|
alt="Screenshot of circuit diagram showing green and blue LED connections" >}}
|
||||||
|
|
||||||
The Discovery board comes with two LEDs for use by the user, tied to Port C pins
|
The Discovery board comes with two LEDs for use by the user, tied to Port C pins
|
||||||
8 (blue LED), and 9 (green LED).
|
8 (blue LED), and 9 (green LED).
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ LED. However, it is my belief that this leads to confusion for beginners and
|
|||||||
only opens the door to misunderstandings. That being said, we will be using
|
only opens the door to misunderstandings. That being said, we will be using
|
||||||
timers and their associated GPIO ports with Alternate Function modes.
|
timers and their associated GPIO ports with Alternate Function modes.
|
||||||
|
|
||||||
{{< img src="/static/img/stm32-examples/part1/blinky.gif" >}}
|
{{< img src="/static/img/stm32-examples/part1/blinky.gif"
|
||||||
|
alt="Animated picture showing alternating blinking green and blue LEDs" >}}
|
||||||
|
|
||||||
<!--more-->
|
<!--more-->
|
||||||
|
|
||||||
@@ -92,7 +93,8 @@ The STM32 microcontroller's GPIO has a hardware feature allowing you to tie
|
|||||||
certain port's pins to a different register as part of the output or input
|
certain port's pins to a different register as part of the output or input
|
||||||
control:
|
control:
|
||||||
{{< img src="/static/img/stm32-examples/part1/stm32-af-diagram.png"
|
{{< img src="/static/img/stm32-examples/part1/stm32-af-diagram.png"
|
||||||
sub="GPIO Alternate Function Diagram" >}}
|
sub="GPIO Alternate Function Diagram"
|
||||||
|
alt="Screenshots of alternate function circuit diagram for the STM32F0" >}}
|
||||||
|
|
||||||
For accomplishing this, a few things need to happen:
|
For accomplishing this, a few things need to happen:
|
||||||
|
|
||||||
@@ -110,7 +112,8 @@ For the STM32F0 we are using in this series, the Alternate Function selection
|
|||||||
number desired is `GPIO_AF0` for use with `TIM3_CH3` (_timer 3, channel 3_) and
|
number desired is `GPIO_AF0` for use with `TIM3_CH3` (_timer 3, channel 3_) and
|
||||||
`TIM3_CH4` (_timer 3, channel 4_):
|
`TIM3_CH4` (_timer 3, channel 4_):
|
||||||
{{< img src="/static/img/stm32-examples/part1/stm32-af-gpiomap.png"
|
{{< img src="/static/img/stm32-examples/part1/stm32-af-gpiomap.png"
|
||||||
sub="STM32F051 Alternate Function Mapping" >}}
|
sub="STM32F051 Alternate Function Mapping"
|
||||||
|
alt="Screenshot of alternate function pin definition table for STM32F0" >}}
|
||||||
|
|
||||||
|
|
||||||
Ultimately, the code with `libopencm3` becomes the following for our use case:
|
Ultimately, the code with `libopencm3` becomes the following for our use case:
|
||||||
|
|||||||
@@ -10,7 +10,9 @@ port nearest to the SD card reader had been broken. The pad (_or bolster_) was
|
|||||||
missing, along with 3 out of 4 pins having been completely broken off. Needless
|
missing, along with 3 out of 4 pins having been completely broken off. Needless
|
||||||
to say this required fixing.
|
to say this required fixing.
|
||||||
|
|
||||||
{{< thumb src="/static/img/thinkpad-usb-fix/DSC04781.jpg" sub="Final result" >}}
|
{{< thumb src="/static/img/thinkpad-usb-fix/DSC04781.jpg"
|
||||||
|
sub="Final result"
|
||||||
|
alt="Photo showing fixed USB receptacle on ThinkPad laptop" >}}
|
||||||
<!--more-->
|
<!--more-->
|
||||||
|
|
||||||
# Damage Assessment
|
# Damage Assessment
|
||||||
@@ -18,7 +20,9 @@ The first step was to look at the PCB to assess how this could be, if at all,
|
|||||||
replaced. From the outside you could see the damage done. Note the single
|
replaced. From the outside you could see the damage done. Note the single
|
||||||
pin left and lack of the inner pad (_bolster?_).
|
pin left and lack of the inner pad (_bolster?_).
|
||||||
|
|
||||||
{{< thumb src="/static/img/thinkpad-usb-fix/DSC04722.jpg" sub="One pin remains" >}}
|
{{< thumb src="/static/img/thinkpad-usb-fix/DSC04722.jpg"
|
||||||
|
sub="One pin remains"
|
||||||
|
alt="Photo showing one pin remaining on a damaged USB receptacle ">}}
|
||||||
|
|
||||||
|
|
||||||
# Measure Twice
|
# Measure Twice
|
||||||
@@ -27,8 +31,10 @@ needed to have the relevant dimensions in comparing to receptacle part drawings
|
|||||||
of those available for sale.
|
of those available for sale.
|
||||||
|
|
||||||
{{< thumbgallery >}}
|
{{< thumbgallery >}}
|
||||||
{{< thumb src="/static/img/thinkpad-usb-fix/DSC04714.jpg" >}}
|
{{< thumb src="/static/img/thinkpad-usb-fix/DSC04714.jpg"
|
||||||
{{< thumb src="/static/img/thinkpad-usb-fix/DSC04718.jpg" >}}
|
alt="Photo showing front side of USB receptacle on motherboard PCB" >}}
|
||||||
|
{{< thumb src="/static/img/thinkpad-usb-fix/DSC04718.jpg"
|
||||||
|
alt="Photo showing back side of USB receptacle on motherboard PCB" >}}
|
||||||
{{< /thumbgallery >}}
|
{{< /thumbgallery >}}
|
||||||
|
|
||||||
Using generic, non-branded digital calipers I was able to get the following
|
Using generic, non-branded digital calipers I was able to get the following
|
||||||
@@ -65,7 +71,8 @@ unbranded digital caliper. Those values are nearly spot-on.
|
|||||||
The part was ordered, and arrived quickly at my doorstep. Stacked on top of each
|
The part was ordered, and arrived quickly at my doorstep. Stacked on top of each
|
||||||
other the two receptacles matched up just as I had hoped.. **Fantastic!**
|
other the two receptacles matched up just as I had hoped.. **Fantastic!**
|
||||||
|
|
||||||
{{< thumb src="/static/img/thinkpad-usb-fix/DSC04773.jpg" >}}
|
{{< thumb src="/static/img/thinkpad-usb-fix/DSC04773.jpg"
|
||||||
|
alt="Photo showing new USB receptacle on top of damaged one for comparison" >}}
|
||||||
|
|
||||||
# It's not over yet
|
# It's not over yet
|
||||||
Initial attempts at desoldering the existing (_broken_) receptacle proved
|
Initial attempts at desoldering the existing (_broken_) receptacle proved
|
||||||
@@ -90,7 +97,8 @@ the modification "process"_. Cutting and bending the pins, I was able to get it
|
|||||||
soldered on (poorly). There wasn't much wiggle room for cleaning up the
|
soldered on (poorly). There wasn't much wiggle room for cleaning up the
|
||||||
bodged-in replacement; this will have to do.
|
bodged-in replacement; this will have to do.
|
||||||
|
|
||||||
{{< thumb src="/static/img/thinkpad-usb-fix/DSC04774.jpg" >}}
|
{{< thumb src="/static/img/thinkpad-usb-fix/DSC04774.jpg"
|
||||||
|
alt="Photo showing new, undamaged USB receptacle soldered on to motherboard PCB" >}}
|
||||||
|
|
||||||
The part was essentially soldered as a wholly surface mount part, which it is
|
The part was essentially soldered as a wholly surface mount part, which it is
|
||||||
not. This could have future issues due to a lack of solder-terminated strain
|
not. This could have future issues due to a lack of solder-terminated strain
|
||||||
@@ -106,7 +114,9 @@ motherboard from correctly fitting. This was quickly solved by using a Dremel
|
|||||||
with a low-grit sanding drum and removing material off of the receptacle. The
|
with a low-grit sanding drum and removing material off of the receptacle. The
|
||||||
result was acceptable, and provided a tight fitment into the laptop case.
|
result was acceptable, and provided a tight fitment into the laptop case.
|
||||||
|
|
||||||
{{< thumb src="/static/img/thinkpad-usb-fix/DSC04775.jpg" sub="End of the journey" >}}
|
{{< thumb src="/static/img/thinkpad-usb-fix/DSC04775.jpg"
|
||||||
|
sub="End of the journey"
|
||||||
|
alt="Photo showing undamaged, new USB receptacle inside casing of ThinkPad laptop" >}}
|
||||||
|
|
||||||
[^1]: [Molex Part No. 482580002](https://www.molex.com/molex/products/datasheet.jsp?part=active/0482580002_IO_CONNECTORS.xml&channel=Products)
|
[^1]: [Molex Part No. 482580002](https://www.molex.com/molex/products/datasheet.jsp?part=active/0482580002_IO_CONNECTORS.xml&channel=Products)
|
||||||
[^2]: [Digi-Key Part No. WM7087CT-ND](https://www.digikey.com/products/en?keywords=WM7087CT-ND)
|
[^2]: [Digi-Key Part No. WM7087CT-ND](https://www.digikey.com/products/en?keywords=WM7087CT-ND)
|
||||||
|
|||||||
Reference in New Issue
Block a user