Measuring the speed of light with electronics

The speed of light in vacuum is a well-known universal constant and is considered to be the nature’s ultimate speed limit. No matter, energy, and information can travel faster than this speed. The speed of light has always been a topic of great interest and significance throughout history. In the course of measuring the speed of light, scientists have explored numerous ingenious approaches from analyzing the motion of heavenly bodies to artificial quantitative measurements in the laboratory. Michael Gallant describes a very simple approach of measuring this physical constant using an infrared LED, a photodiode circuit, and an oscilloscope. The premise of this method is to allow an infrared beam to travel different distances and then compute the time delay (Δt) between them using the oscilloscope. By measuring the difference in the distances (Δd), the speed of light can be calculated as the ratio of Δd and Δt.

IR Light source
IR Light source

The following diagram describes the setup he used. A Vishay 870 nm IR LED (TSFF5210) generates an IR pulse beam that splits into two beams (L1a and L0) through a beamsplitter (BS). L0 is directly focused onto the photodiode (Pd) using a lens. The L1a beam gets reflected off a mirror, travels along the path L1b, and then focused using a different lens onto the same photodiode. You can see the net path difference between the two beams before they hit the photodiode is (L1a+L1b – L0). If the original IR pulse is kept adequately short, the two optical pulses detected by the photodiode will not overlap in time. An oscilloscope of sufficient bandwidth can therefore reveal the time difference between the two pulses. The photodetector used in this setup was Vishay BPV10 high speed Si pin type with a bandwidth of 200 MHz. The photodiode signal is amplified using an AD8001 Opamp based preamplifier circuit with a gain of 35 (31 dB) and BW of 50 MHz.

Experimental setup for measuring the speed of light
Experimental setup for measuring the speed of light

Michael measured the path difference of the two beams to be 1851 cm and the difference in the time of flight to be 62 nanoseconds from the oscilloscope. This results in the measured speed of light to be 298548387 m/s, which is remarkably accurate for such a simple setup.

Time difference between the arrival of the two pulses can be seen on the oscilloscope
Time difference between the arrival of the two pulses can be seen on the oscilloscope

Find more about this project.

Inductive Proximity Switch Using TCA505


This circuit is used to design an inductive proximity switch. The resonant circuit of the LC oscillator is implemented with an open half-pot ferrite and capacitance in parallel (pin LC) and if a metallic target is moved close to the open side of half pot ferrite, energy is drawn from resonant circuit and the amplitude of the oscillation is reduced accordingly. This change in amplitude is transmitted to a threshold switch by means of demodulator and triggers the outputs.

Inductive Proximity Switch Using TCA505 [Link]

LTC3623 – Switching regulator doubles as Class-D audio amplifier


Clemens Valens @ discuss about LTC3623 switching regulator which can be used as Class-D Audio Amplifier.

Sure thing, Elektor has published several designs of adjustable power supplies based on switching regulators, so we know that doing this properly in a reproducible way and without making things overly complex requires some serious head scratching. The anxiety may be reduced vastly though by a new adjustable synchronous buck regulator which uses a single resistor to set its output voltage anywhere between 0 and 14.5 volts. Using the device is very simple; you can even use it as an audio amplifier.

LTC3623 – Switching regulator doubles as Class-D audio amplifier – [Link]

Chronio – Low power Arduino based (smart)watch


Max.K @ designed his own impressive watch based on Atmega328p with Arduino bootloader, Maxim DS3231 (<2min per year deviation),  96×96 pixel Sharp Memory LCD (LS013B4DN04) and it’s powered by a CR2025 160mAh coin cell battery.

Chronio is an Arduino-based 3D-printed Watch. By not including fancy Wifi and BLE connectivity, it gets several months of run time out of a 160mAh button cell. The display is an always-on 96×96 pixel Sharp Memory LCD. If telling the time is not enough, you can play a simplified version of Flappy Bird on it.

Chronio – Low power Arduino based (smart)watch – [Link]


16×32 RGB Matrix Panel Driver Arduino Shield


Raj @ has revised his RGB Matrix Display Shield to an improved version.

The shield now also carries the DS1307 RTC chip on board along with a CR1220 coin cell battery holder on the back. It is applicable for driving popular 16×32 RGB matrix panels with HUB75 (8×2 IDC) connectors. Row and column driver circuits are already built on the back side of these matrix panel. The data and control signal pins for driving rows and columns are accessible through the HUB75 connector. It requires 12 digital I/O pins of Arduino Uno for full color control.

16×32 RGB Matrix Panel Driver Arduino Shield – [Link]

Test application for the FPGA Tibbit in the smart LED controller configuration

This application example shows how to connect and use RGBW LED stripe with TPS hardware platform. The main difficulty is that LEDs have their own color generation circuit inside. New FPGA Tibbit #57 can generate fast PWM signal, which is needed for proper LEDs operation. Also, the topic shows the main advantage of FPGA technology. It allows the user to create any external interface, which will be easily connected to the TPS platform.

Test application for the FPGA Tibbit in the smart LED controller configuration – [Link]

Arduino Wiring, A New Choice for Developers On Windows 10 IoT Core

Last year, Arduino and Microsoft announced a strong partnership and Windows 10 became the world’s first Arduino certified operating system. This partnership made the creation and innovation much easier with the hardware capability of Arduino and the software capabilities of Windows.


Early this month, Arduino Wiring became a new programming language for Windows 10 IoT Core besides C#, C++, Visual Basic, JavaScript, Python and Node.js, which means that developers are now able to run Arduino Wiring sketches on all supported IoT Core devices including Raspberry Pi 2 and 3.

The popularity of Arduino in the makers’ community alongside the simplicity of using and programming its boards maybe were the main reasons for this step.


Installing and setting up may differ between devices, but all information and getting started guides for users are available online on Microsoft website, and here are the links:

4 Digit MultiPlexed 0.33 Inch 7 Segment Common Anode Display


7 Seven segment multi-plexed display is tiny board that has been designed around Common Anode 4 digit Display, Display has 12 Pins. The board is provided with current limiting resistors on all LED segments and 4 PNP Transistors to drive 4 digits, the project is ideal for easy micro-controller interface with 13 pin Header connector. The Board supports 3.3V as well 5V TTL interface.

4 Digit MultiPlexed 0.33 Inch 7 Segment Common Anode Display – [Link]

Arduino radar using sound waves

A radar system uses high frequency radio waves for object detection. A high-power RF pulse is transmitted into space and its echo reflected off from an obstacle is recorded. By computing the time elapsed between the transmitted and reflected pulses, and knowing that the electromagnetic wave propagates at a constant speed of light, the radar computes the distance of the obstacle. Because the speed of radio waves is so high, the time lapse is usually very small, and therefore requires sophisticated electronics for range detection. The time lapse would be easier to detect if the waves with lower propagation speeds were used, for instance, sound waves that travel at a much slower speed (~ 340m/sec in air) than light.

Dejan Nedelkovski from How To Mechatronics illustrates the principle of radar using ultrasonic sound waves. In his project, he used an HC-SR04 ultrasonic ranging sensor module for measuring distance to an object, similar to the echolocation technique used by mammals like dolphins and bats. The HC-SR04 is a fully-integrated module with onboard transmitter, receiver, and control circuit. It can measure an object distance ranging from 2cm – 400cm with an accuracy of 3mm. The HC-SR04 sensor is mounted on a servo motor for scanning the surrounding. An Arduino board is used to control the angular position of the servo during scans. The echo data output from the ranging sensor is received by Arduino and is sent to a computer along with the angular positions along the scan through a USB port for post processing.

Arduino radar using sound waves
Arduino radar using sound waves

On the computer side, a PC application was developed using the Processing platform to retrieve the radar echo data, combine it with the angular position data, and visualize the radar signature on the screen. Check out the following video to see this radar in action.

Using VL53L0X With Arduino to Measure Height

Usually, when measuring a child’s height at home, a mark is drawn on the wall then the height is measured using a measuring tape. This process is not always easy and it may has low resolution. In an attempt to simplify this procedure, a new project was developed using an Arduino and a distance sensor.


The main parts which were used in this project are:

  1. Arduino Nano, the microcontroller which will read sensor’s values and display the results on the screen.
  2. MPU-6050, 3 axis gyroscope with 3 axis accelerometer
  3. VL53L0X, Distance Sensor
  4. RGB backlight LCD 16×2
  5. Wooden box and acrylic plate.

VL53L0X is a laser-ranging sensor that uses Time Of Flight (ToF) measurements of infrared pulses for calculating the distance of the facing surface. It can measure distances up to 2 meters with a resolution of 1 mm. This sensor works over an input voltage range of 2.6V to 5.5 V, and the measured values can be read through an I²C interface.

VL53L0X Sensor - Image courtesy of Pololu
VL53L0X Sensor – Image courtesy of Pololu

To get the best result, Vl53L0X must be attached on the bottom of the box as shown in this figure.


MPU-6050 is a low power, low cost, and high-performance motion tracking device, it contains 3-axis gyroscope and a 3-axis accelerometer with an onboard Digital Motion Processor (DMP™) which can be programmed with firmware and is able to do complex calculations with the sensor values and uses I²C interface. This sensor is used here for detecting the horizontal direction and for measuring X and Y axis acceleration.


This project has two working modes, Normal Mode and Measurement Mode.

In the Normal mode, the height is always displayed on the LCD, and the color of the LED indicates whether the measurement is horizontal or not. While in the Measurement mode, a button should be held while putting the device on the head, the LED will light blue and the value of the height will caught when the horizontal state is detected.



The code and more information about this project are available here.