Ford Focus RS Forum banner

Retrofitted Rear Reflectors with LEDs for Dynamic Turn Signals and Brake Lighting

22K views 84 replies 23 participants last post by  Northish 
#1 ·
Hey fellow RS drivers; just sharing a project I'm tackling. My car has been out of commission since 2/3/19 due to oil loss post head gasket recall. Ford stepped up and is replacing the engine, but the main hold-up has been an injector gasket kit that's been on backorder. Record setting snowfall this past month and my RS has had to sit it all out...

So, to pass the time and keep myself sane this past month I decided to A) learn how to use/code an Arduino and B) do something RS related while mine is being repaired. Those reflectors on the back of our cars always looked to me like they should have been illuminated from the factory so I decided to try do something about that.

I'm using an Arduino to control strips of addressable LEDs embedded in the reflectors (well one reflector so far as proof to myself I could do it.) The Arduino takes signals via a 4 channel optocoupler from the brake light, L & R signals, and the park light to determine how to light up the strips. A 12V to 5V buck powers the lights and Arduino.

Below is a short video of what I've put together so far:


Next steps are to open up the other reflector and embed a strip in it. Then I've got to make sure the optocoupler and voltage buck work, but I'll have to wait for my car to come back from the dealership for that.
 
See less See more
#4 ·
What an interesting and original concept, kudos for thinking out of the box and developing this project. I look forward to seeing it completed and on your RS.
Subscribed to YouTube for updates! I've seen this before just a few months ago, but he didn't show how he put them together
I appreciate the kind words. I'll take some more pictures as I assemble the Right reflector now that I have confidence I can actually pull this off. I pulled apart a lightly damaged reflector off a wrecked RS to experiment with and learned that it would be best to cut the lens from the housing with a Dremel. The lens is PMMA and the housing is ABS and it appears they are ultrasonic-welded together. If you try to pop them apart the PMMA lens just breaks where they are joined. The ABS housing can be welded back together using a soldering iron. It's not pretty, but it's all done from the back where you'll never see it and it is waterproof. Like I say, I'll get some more pictures going.

I'm wondering if anyone has knowledge on if there is a plug in the rear of our cars that contains the the four lights signals needed (L turn, R turn, Brake, Park?) Preferably near the rear fuse panel in the hatch area as that's where I'll Add-a-fuse for power and ground. If not I figure I can tap in at the taillight connectors themselves. I would check, but I don't have a car :)
 
#5 ·
#7 ·
Hey MorningZ, thanks for the idea. In looking closer at that trailer wiring harness it looks like there are tail light couplers that would allow me to tap the needed lights for a 12V signal without touching my wires. Would make for a non-destructive approach which is preferred. Good thinking.

The rear lamp assemblies plug directly into the Body Control Module (BCM) which is located behind the glovebox. Your best option is tapping directly into the rear lamps. I hope this diagram helps. Good luck.
dkirby - Thank you for taking the time to look this up! This makes it pretty clear; you saved me some time pulling panels and fumbling around in the cold following wires; cheers :)
 
#11 · (Edited)
Hey All - I do have some updates to share on this side project. It's a mix of good news/mostly bad news, though.

To make a long story short, I got everything working when the car was off. The code, the wiring, added a fuse slot, made a factory looking wiring harness for it and had it all installed. The only problem was when the car was running the system was picking up interference from somewhere that would cause the sweeping turn signal to flicker. Cars have dirty electrical environments and I knew this going into this project which is why I went with an optocoupler and filtered buck converter right from the start.

Here's the issue when the car is running (obviously this is not acceptable):


I tried many things to resolve this over the past month as I had already invested so much time in it. New isolated buck converter, new wiring, isolated wiring, wrapped system in Al foil and grounded as a EMI/EMF shield, RC filters, ferrite cores, tested voltages. After looking at the voltage coming out of the optocoupler it appeared that I was getting a noisy 0V - 5V signal into the Arduino that effectively made the Arduino think the turn signal was turning on and off several time a second which then caused the flicker. It was basically the signal animation trying to start over and over really fast.

I decided to re-do everything with shielded cable and to build my own optocouplers to filter out whatever noise may have been coming in as one last effort. Then disaster struck. When I was uninstalling one of the LED/reflectors I damaged the LED strip and couldn't repair it. It took me a decent amount of time to embed those reflectors and I was going to need to buy another reflector/LED strip so this was the point where I decided I needed a break from this project. I spent so much time trying to figure out that interference issue that I got burnt out so this project currently shelved. Very frustrating as I am sooooo close. Even typing this up is getting my heart-rate up.

On top of all this tinkering with this project over the past two months my car has been through it's own extremely frustrating saga. I started this project because my RS needed a new engine. The highlights of that story:
- Car lost all but 0.5 qts of oil, frozen intake camshaft, bent intake valves, metal debris in intercooler & oil and turbo.
- Tow company took the car to the wrong dealership that I don't trust to work on the RS. Truck driver was a jerk. Made an absolute mess of the interior of the car; mud on every surface. I spent 5 hours waiting in a non-running car that was in a tow-away zone in the cold waiting for tow truck #2.
- Took 36 days to replace the engine, partly due to back-ordered parts.
- Once the engine was completed, took the car home and noticed the hatch was dented from pushing the car.
- Dealership agreed it was their fault, told me they would use paintless dent removal to correct.
- After four days they said the car was done but instead of using PDR, they used Bondo and repainted the hatch.
- Car was absolutely full of overspray for the repaint. When using the wipers it sounded like they were running over sandpaper from all the paint all over the car.
- Took half a day off work to try to clay bar the overspray off before it fully cured. Still couldn't get it all off... sigh.

Sorry I don't have better news on this - I don't take well to defeat on projects. I don't have any sort of electrical background so this has all been new to me. Maybe someone in the community here has some ideas. I've reached out on an electronics forum and tried several suggestions but no luck. I'll share the parts I used in the next post.
 
#14 ·
Hey All - I do have some updates to share on this side project. It's a mix of good news/bad news, though.

So the bad news first. To make a long story short, I got....
.
I’m so sorry about your car. Anyone can understand your frustration to put it to the side.

I’m starting to fear that these cars have very thin metal everywhere (which is part reason my cars sunroof exploded).

When I had to have my car roof repainted (not even a year old) the body repair guy put two dimples from resting his elbows on the area that runs from the A pillar to the D pillar (not sure of the official term) from buffing the roof. He doesn’t really remember putting really any pressure.

Anything you can do about calling Ford or the regional manager on this dilemma? PDR would have been the best solution and they should have told you they were going to change repair procedure.
I hope you were able to complain about the tow truck driver if you went through your insurance.

Again man - so sorry this has happened to you with such a bad experience.
 
#13 ·
Wiring Diagram:
Text Line Floor plan Diagram Plan


Used soldering iron followed by Dremel to open reflectors:
Material property Wood


Embedded LEDs into reflector by adhering them with 3M VHB to the ABS opaque red reflector housing:
Leash Wire Cable Fashion accessory Cutting tool


Finished reflectors. Remelted ABS with soldering iron to seal reflectors back up with LEDs inside. Waterproofed wire exits with silicone and heat-shrink:
 
#18 ·
Wiring Diagram:
View attachment 326488

Used soldering iron followed by Dremel to open reflectors:
View attachment 326490

Embedded LEDs into reflector by adhering them with 3M VHB to the ABS opaque red reflector housing:
View attachment 326492

Finished reflectors. Remelted ABS with soldering iron to seal reflectors back up with LEDs inside. Waterproofed wire exits with silicone and heat-shrink:
View attachment 326494
So in theory. If I wanted to do this, but way way way more simple. I could get an LED red strip and put it in the reflector housing just like you did. I have a plug and play 4 pin trailer wiring kit for the focus that I can just plug in line to the rear lights. I could actually just make a simple harness will bullet connectors on the LED strips and connect it to the brake light wire of the trailer harness
 
#15 ·
You're brave, I would have just used some vampire taps, diodes, and resistors to make it all work. The Arduino makes it super legit!

On a side note, if you soak the reflectors in 91% isopropyl alcohol for a few hours you can separate the clear reflector part from the opaque part with the mounting hardware. It separates with a credit card pretty easily after the fact.
 
#16 ·
On a side note, if you soak the reflectors in 91% isopropyl alcohol for a few hours you can separate the clear reflector part from the opaque part with the mounting hardware. It separates with a credit card pretty easily after the fact.
So I tried exactly that (91% IPA for 18 hrs) on the junkyard RS reflector I bought to experiment with after reading that on this forum and it didn't go well. I did some reading to try to figure out why. The lens is PMMA which can be attacked by IPA so for me soaking it made the lens cloudy and fragile when trying to separate it from the housing. Reference here: (https://www.eplastics.com/blog/chemical-resistance-acrylic-plexiglass) I wish that it would have worked as that would have saved me a lot of time. The lens and housing are ultrasonically welded together, so it's tough to break that bond with out cracking the PMMA. Perhaps the vendor that made these reflectors has switched mfg. methods such the IPA soak worked for you and not me? I'm not sure but I didn't have luck.
 
#23 ·
I'm attaching a couple screen shots of some voltage logging I did to try to diagnose the interference problem I was seeing with my set-up.

To recap, I'm taking the +12V from the rear tail-light turn signals to an opto-coupler which takes the +12V and turns it into a +5V signal which is then fed as a digital input to an Arduino.

When the engine is Off everything works great. My code, the Ardunio, the LEDs sweep spectacularly. Here is the voltage log that the Arduino is seeing from the optocoupler when the engine is off and the turn-signal is on. You'll see a very clean 0V, +5V, 0V, +5V etc. signal as the turn signal flashes on and off.
Text Font Line Screenshot Multimedia software


And now here is what the Arduino is getting for a signal from the optocoupler when the engine is on and the turn-signal is on. The voltage is rapidly bouncing from 0V to +5V several times while the turn-signal lamp is on.
Text Blue Line Screenshot Plot


Most recently, I made my own optocoupler from scratch and it showed the exact same signal response as the optocoupler I purchased, so pretty confident the optocoupler is not the culprit now.
 
#27 ·
Hey kamik - at some point I tried a 10K ohm resistor and 0.47µF capacitor to make a RC low pass filter. I think the time constant for that set up was sub 5ms, so since then I'm wondering if I should have tried something with a higher cut off frequency. The noise I'm seeing might be more on the order of 50ms. So that may be worth a revisit.

Old thread but you could do some digital filtering with the Arduino. For example, once you see the voltage go to 5V, ignore the signal for a tenth of a second (or whatever timing works). Or take an average of the signal over a tenth of a second if that works.
I've too wondered about this approach using code rather than hardware to filter out the noise. I came across a few Arduino threads about "debouncing" a digital input, and it seems like my input definitely had some bounce to it looking back at the plots I posted in #23. I might have to do some reading on this.

It still bothers me I got about 95% done with this project, only to have it fail when the car is physically running. I may have to pick this thing up again this winter yet and see if I can get anywhere with code filtering. I have no background in coding so I'm guessing i'll have to spend some time figuring out what I did a year ago. I had something like 300+ lines of code to get everything working to where the brake, turn, hazard, and running light signals weren't fighting with each other, like when you're driving at night with your lights on, signal a left turn, and then hit the brakes. Figuring out how to give priority made it a long code.
 
#28 ·
Yea, figuring out the frequency of the voltage spikes will be necessary for the hardware approach.

If you decide to tackle it again and want some help let me know. I'm software engineer by day and I've done a few small arduino projects. You've done some impressive work and I'd be happy to see you rocking a totally custom mod like this.
 
#29 ·
You guys have given me enough motivation to give this project another shot. I now have an open-source oscilloscope on order so we shall see where this little rabbit hole leads. Yet one more thing to learn. If I'm able to get that device working and sniff out anything meaningful from the interference I'm seeing I'll be sure the share.

The "scope" was only $30 and seems to offer some interesting claims, "All-in-one USB Oscilloscope, Signal Generator, Power Supply, Logic Analyzer and Multimeter." If interested:



I really appreciate that offer. My code is almost certainly an embarrassment; might be good for a laugh if nothing else!
 
#31 ·
Alright - I found a cool little, open-source o-scope and would now consider my skill level with it as "dangerous." I braved my freezing cold garage to take some measurements the other night and this is what I've found. It think it's very interesting and might be getting me closer to a solution.

In the image I've pasted there are two graphs. The left (blue) shows the turn signal's voltage measured when the car is off. Note the beautiful Off-->On-->Off one would expect from a blinker. The right plot (orange) was taken when the car is running. Note the Off-->ON/OFF/ON/OFF/ON-->Off voltage! So, I can say with confidence the reason why my set up doesn't work when the car is running is because my code looks for a voltage change from Low to High thinking that a blinker is coming on and it is seeing this hyperfast voltage change and keeps triggering over and over, thereby causing the flickering I see.
339030

I was able to measure how fast the flickering was occurring and it looks like the voltage drops last less than 4 milliseconds. So, what I'm going to look into next is a way add a simple capacitor as @kamik suggested. I'm hoping I can figure out how to size one that charges relatively fast but will discharge to even out the choppy 14V signal my Arduino is getting. Hopefully more to come...
 
#34 · (Edited)
I can't decide if the hardware or software approach would be better. I'm leaning toward software because it's more flexible. If there are variations in the flicker rate you haven't yet discovered you can change the software a lot more easily than the hardware. It's also easier to do an instant-on, delayed-off with software like @wobbletop mentioned.

The code should be dead simple too. Record the time each time you read a low-to-high transition. Turn on as soon as you see that. Then turn off when timestamp + delay has passed. Hopefully it's well less than 0.25s. Alternatively, you could keep a moving average, but that's likely overkill here and would add a small delay to turning on anyway.
 
#37 ·
Update: Good news FINALLY!

Had some time to research filtering methods to deal with the modulated charging scheme Ford uses in our cars. Ended up putting together a simple resistor/capacitor low pass filter and getting everything hooked back up to test it out. Took a couple iterations to size the resistor and capacitor but I think I may have solved the issue. Knock on wood! I've learned from the last round of this not to claim success just yet.
Next I need to clean up all the wiring again, incorporate filters on all the inputs, and test again. If that works, then need to build a new right-side LED signal since I broke it last year with all the in/out from troubleshooting. Hope to chip away at it in the coming weeks as it's looking like I won't be travelling to Asia any time soon for work...

Some happy footage from today :) :
 
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Top