Alex Gaudio

A foray into bike lights, from front to back.

Conceptually, a bike light can seem simple: a bit of wires, a battery
and light bulb. But take a closer look at one. There is a lot going on
in there. Voltages are changing thousands of times a second, debouncing
algorithms distinguish between user interaction and noise, power
electronics limit current draw through the LED. While a bike light can
seem astoundingly simple, a bit of inspection reveals that the simplest
light hides an incredible amount of complexity and is the result of
research from many disciplines. A bike light isn’t just a useful physical
object, it is a gateway to research and discovery.

I would like to share with you my ongoing project to build and explore
bike lights. I will present this topic as series of blog posts. My
overall goal is two-fold: First, I want to present to you a basic
knowledge of electronics, probability, engineering and programming so
that you may be inspired to start a project of your own. Second, I am
excited to highlight some of the concepts, algorithms, and mathematics
hidden behind such a deceptively simple topic. I hope you will join me
in this adventure and peek into a deep and fascinating world.

The audience for these posts varies depending on the topic.
Hopefully, someone generally interested in electronics, probability,
software and hardware can enjoy these posts.

Here is a “table of contents” for the upcoming series. I will write
these posts out of order and link to them here:

The series begins by introducing the components of a typical bike
light and reviewing how these components work and what challenges they
introduce. Think of it as a survey of relevant hardware components.

A deeper dive into the process of creating a constant current circuit
to drive the LED. We will lightly review how the circuit works and use a
few important equations to understand how to choose the components of the
circuit.

AVR programming an ATTiny85 microcontroller without Arduino

PWM and debouncing on an AVR microcontroller

Presenting my first 2 simple white bike light builds and why the
first one burned out.

An algorithm for a “smart” brake light using rolling averages, the Z score,
and the binomial probability mass function.

An algorithm to calculate moving averages of a timeseries in an
extremely low memory environment.

The problem with 3 dimensional accelerometer readings to account for
road bumps, inclines, turns. Research experiments and potential next steps.