Personal Project: LM555 and Flight Light

I. Intro

Date: April – May 2023

Everything started when Prof. Rose asked me about the aluminum materials I got. He wanted to use them as the heat sink of the super bright LED. After the heat sinks were done, I saw they were using Arduino to control the LED and wanted to put them on the DJI Mavic 2 Pro. That’s super heavy, so I built an astable LM555 timer and used a small LED to demonstrate the signal. Someone was laughing at me and asked how was that small LED can be seen from three statue miles. I didn’t answer because I know it would be a waste of time.

II. LM555 Theory

LM555 has three 5k Ohms resisters that divide the Vdd into GND, 1/3Vdd, and 2/3Vdd, and two compartors compare the voltage between 1/3Vdd and Trigger, 2/3Vdd and Threshold.

  • When the voltage of the TRIGGER pin is below 1/3Vdd, SR latch will set, and the output is high.
  • When the voltage of the THRESHOLD pin is above 2/3Vdd, SR latch will reset, and the output is low.
Figure 1: part of the circuit that controls the time.
TimeTRIGLatch: STHRES Latch: RDISC Vout
t00T0FFT
t1<1/3VddT<1/3VddFFT
t21/3 ~ 2/3F1/3 ~ 2/3FFT
t3>2/3VddF>2/3VddTTF
t41/3 ~ 2/3F1/3 ~ 2/3FTF
t5<1/3VddT<1/3VddFFT
The astable cycle repeats from t1 to t4.

When C1 is charging (output=HIGH), the current is charging through R1 and R2. When C1 is discharging (output=LOW), the current is going through R2.

If the charging time is t1, by using the RC charging equation, we can get: t1=ln(2) * (R1+R2)*C1.

If the discharging time is t2, we can get: t2=ln(2)*R2*C1.

t1+t2 is the period, and t1/(t1+t2) is the duty cycle. However, the minimum duty cycle we can get is 50% because R2 influences both charging and discharging time. We need a diode to lower the duty cycle below 50%. If we can skip R2 when it’s charging, only R1 can affect the charging time.

Figure 2: after diode D is added, the diode will short R2, and only R1 and C1 are in the charging circuit.

Now t1=ln(2)*R1*C1, t2=ln(2)*R2*C1.

If we want the flight light to stay on for 10 ms and flash once a second (frequency is 1Hz), t1=0.01s, and t2=0.99s. After choosing the closest values, the circuit is determined.

Reference: 555 Theory.

III. Material Preparation

A. Aluminum Heat Sink

Date: 04/09/2023

Prof. Rose sent me the dimensions of the LED.

Figure 3.A.1: The dimensions of the LED

Based on that information, I quickly made the sketch of the piece I needed to make.

Figure 3.A.2: my treasure
Figure 3.A.3: the sketch

I chose a 1/4” thick and 1” wide aluminum bar. Using trigonometry, I can calculate the position of the holes. The dimensions were in the picture.

On the second day, I brought the bar to the machine shop:

  1. First, I marked the 1” sections on the bar.
  2. I picked the parallel carefully so that the drill bit wouldn’t hurt the parallels. The parallels were less than 0.1725” thick (0.235-1/2 * 1/8).
  3. Then I used edge finder to define the zero, replace the drill bit, and moved the drill bit to the position based on the XY information on the display.
  4. I did the top row first. When Y was 0.235”, I drill the holes at X=0.235”, 1.235”, 2.235”, and so on.
  5. Then I adjusted the Y to 0.765”, drill the holes at X=0.765”, 1.765”, 2.765”, and so on.
  6. After 14 sections were made (I had to relocate the material and redefine the zero with the edge finder), I cut them in pieces with the bandsaw.
  7. Finally, I used a file and the deburring tool to make them smoother.

B. Control Circuit

1. Timing Circuit

With the equations: 10ms=t1=ln(2)*R1*C1, 990ms=t2=ln(2)*R2*C1, I chose C1=10microF, R1=1500Ohms, R2=150kOhm.

Figure 3.B.1: measurement with the initial setup.
Figure 3.B.2: measurement with the initial setup, but the calculated duty cycle from this one (1.75%)was a little bit different.

Then I used a potentiometer in series with R1 and a lower value for R2 to adjust the frequency and the duty cycle.

C1 (uF)R1 (Ohms)R2 (Ohms)Frequency (Hz)Duty Cycle (%)
Expected Value101442.7142826.811
Initially Used Value101500150,0000.8554 (mea)1.3 (mea)
Final Used Value in Prototype101000133,0000.9568 (mea)1.045 (mea)

So the final values were: C1=10uF, R1=1000 Ohms, R2=100kOhms + 33kOhms

2. DC-DC Step-Up Board

I found this tiny DC-to-DC step-up circuit board on Pololu. From the graph “Maximum continuous output current”, it can output more than 2A when the output voltage is 12V. This is sufficient to drive the LED. Since the size of the constant current sources are so big, and the constant voltage source also works, I decided to use a voltage source.

3. Driver

The LED is controlled by a power MOSFET (IRF840) which receives signals from the output pin of the LM555 timing circuit. Coming out from the timing circuit output, the current will go through a diode that protects the timing circuit, then a 10k Ohms pull-down resistor is connected to the ground. The circuit below doesn’t include the DC-DC step-up circuit board.

Figure 3.B.3: the full circuit schematic

C. Prototyping

Since I was very familiar with the circuit, it was built very quickly. The components were provided by EE Shop for free. I picked the blue LED just because it’s a BLUE LED.

(I am still trying to figure out how to adjust the video size on WordPress, it seems like none of the solution works. You can hold “CTRL” and use the mouse wheel to adjust the size).

Figure 3.C.1: the flight light controlled by Arduino was rubberband-installed to DJI Mavic 2 Pro. It had a step-up voltage source and a current source (the black box underneath the LED)
Video 1: the first timing circuit. The oscilloscope measurements were from this circuit board.
Video 2: and then I connect the timing circuit to the LED drive circuit that we knew it’s working all the time. At this moment, I have already soldered the timing circuit onto a PCB board (the green rectangular one). You can actually see Prof. Rose from the reflecting screen.
Figure 3.C.2: then I tested with the super small DC-DC step-up voltage (upper right corner of the white breadboard).
Video 3: the prototype final test. Somehow the frequency feels a little fast.

IV. PCB Design

After the prototype tests were done, the circuit schematic was drawn, and it was converted into a PCB file.

  • Plating Through Hole (PTH): there is copper covered in the borehole wall. The hole was drilled before the chemical reaction.
  • Non-Plating Through Hole (NPTH): there is no copper covered in the borehole wall. The hole was drilled after the chemical reaction.

Key points:

  1. To reduce the size of the board, I decided to use nylon hex-spacers to elevate the LED and its heat sink high and put the LM555 under the heat sink. The two largest circles near the LM555 were reserved for the spacer.
  2. I put the DC-DC step-up voltage source on the upper left corner. The pins were 0.1” between each other.
  3. I decided to use this small 400mAh 2S Li-Po battery, just because it’s small and light.
  4. I also reserved the holes for screwed installation. The dimensions are at the battery installation area in millimeters.
Figure 4.1: the legend of the PCB file
Figure 4.2: The finalized PCB board. Each grid in the background is 1mm x 1mm. The size of the PCB is 47mm x 42 mm.

V. PCB Assembly

The PCB finally arrived. It took forever. The package stayed near Chicago Illinois for two weeks, and it went to Ohio. Why couldn’t USPS just send the package directly to Indiana? That’s only about a 3-hour drive from Chicago to Purdue, and I had to wait for more than two weeks. Ridiculous.

The assembly was easy, just made sure every component was in the right direction. Plugin the battery, and it worked. Later on I realized the aluminum heat sink may not be necessary because LED was not even warm at all. This was because of the 10ms short on time.

Mass comparison: it’s only 28/83=33.7% of the Arduino version.

Leave a Reply

Your email address will not be published. Required fields are marked *