Logitech z623 remote control (IR & Wifi) – Hardware hack

Attention the following hack is performed in the hard way. Do not try this at home.

It was time to renew my TV at home with a new Samsung TV. The sad thing here is that the new TV doesn’t have analog audio jack output but digital optical and bluetooth. Using a digital optical audio output there is no option for source (TV) audio volume adjustment. If i connect my Logitech system using an optical -> analog adapter there will be no option for remote volume adjustment (as the audio system doesn’t have it’s own) which is not really handy while watching TV or movies. On the other hand using a bluetooth module reduces the audio quality in a noticeable factor using this sound system. The market trend is sound bars but as i already owned the Logitech Z623 sound system which i’m really satisfied with i didn’t want to change it. So i started thinking how i could make a remote control for the Z623 with as less as possible modifications on the factory setup.

The idea

The simpler idea one can think for adjusting the volume without making any changes on the existing circuit-PCB is to add a motor and let the motor turn the volume knob for you. The device should keep its factory functionality and there should be no extra modifications. As i didn’t want to have any visible modifications on the device itself all the changes have to be done inside the enclosure. The time i had to spend on this project was no more than a weekend so i had to make it as simple as possible using anything i already had in my LAB.

For the wireless communication it first came to my mind to use RF modules (that i already had) but this would require to build also a remote control which must be powered on batteries something that needs extra time for appropriate tuning and low battery consumption but would also add an extra remote in my living room which i didn’t like, and of course extra effort for the remote control build. The idea was dropped. Then it came to my mind to make the volume controlled via Wifi using an ESP8266 driven by a simple web page. This gives the ability to control the volume via any mobile device that is connected to my home wifi and have access to this web page. That sound better. So i began with this idea.

Investigating the PCB

The first thing i had to manage was the connection of the motor that was going to be used with the volume potentiometer. As i mentioned above any modifications should be made inside the enclosure. So i had to find a way to connect the potentiometer with the motor inside the enclosure. Viewing the PCB from the front side (potentiometer side) there was no space for mechanical connections. As i was inspecting the PCB under the light i noticed that the PCB is 99% two layer PCB and at the back side of the potentiometer on both top and bottom layers there is ground plane. As you see in the attached photo the light pass through the PCB. This means there are no inner layers. The potentiometer is located at the center of the PCB with two mounting holes to ground plane with thermal relief and 6 pins for the signals (stereo potentiometer).

Then it came in mind this. Would it be a good idea to open a hole in the pcb and drive the potentiometer from the back side of the pcb using an axle? I answered why not? This would be a great hack! (In every hack there is the risk to break everything before even reaching your target. But this is the magic of hacking things. You try things and you take risks).

Modifying the potentiometer

I begin by desoldering the potentiometer and checking if there is any hole on the potentiometer itself to give me access on the axle.

As you see there is no hole. But what stop us from removing the bottom plate and check if there is something inside that may help us make the idea come true? ( I have in my mind the picture of some pots that the axle is visible at the bottom side and when you turn it you see it moving from the backside as well)

Using a knipper i cut the cripets and … there it is! We now have access to the axle. This hole gives us direct access to the front axle.

With a hammer and a punch i hammered back the cripets locking the potentiometer without the metal bottom layer.

This metal plate is used for mounting the potentiometer but may also be used for signal/noise insulation. In our case we take the risk and remove it completely. The rest of the pot as well as it’s functionality are intact.

Drilling the PCB

Moving on with the PCB. The safe procedure in order to open the hole is to remove a piece of copper from the ground plane on both sides using a utility knife at the position we plan to make the hole and confirm that the PCB is indeed 2 layers and there are no inner layers. Otherwise we may send the PCB directly to trash with mathematical accuracy.

And… Yes! The light pass through so there is nothing in between! We are ready to drill the hole and solder back the pot.

Here it is the hole and the pot in place. Now we have direct access to the pot axle from the back side of the PCB. The hole has been insulated (not yet in this photo) using nails polish.

1st try – Servo motor

Looking for motor candidates i found a servo motor, one of these used in RC planes. The good thing about this motor is that it has more than enough torque to turn the volume knob but it’s difficult if not impossible to turn the servo manually by hand (in the case you want to change the volume manually) which is also not advised, as it has a gearbox for torque increase . A solution that came in my mind was the connection between the servo and the volume pot to be performed using a belt (in my case the belt was planned to be an o-ring). In this way it would be possible to turn the pot using the servo motor and when you try to move it manually the o-ring would slip on the servo side letting you to turn the knob without turning the servo. I made a quick design and i 3D printed a base to screw it in place at the back side of the pcb and also turned in the lathe two pulleys for the o-ring.

I finish the design and i start the tests. The knob can be turned manually but when i try to turn it using the servo the elasticity of the o-ring is higher than the friction of the pot. This gives a delayed movement of the knob with less degrees of turn than the servo turns or even no pot movement at all. So the idea of using this motor dropped as i didn’t also have any other options for different belt tries. This servo is also limited to 180 degree turn. There will be cases where the servo will reach it’s limit and could not turn the pot further more

2nd try – Small stepper

Having in my mind to keep the ability to turn the pot manually i thought that a possible solution could be a stepper motor. They have torque and they can be turned manually with no issues when no current is applied on the coils. Looking around in my lab i found a stepper motor small in size which would easily fit inside the speaker. The belt drive design isn’t necessary here as above so i’m trying for a direct drive solution. I design and 3d print again a different mount for this stepper motor and i also turn a new steel axle in the lathe.

Testing the design before printing

I give it a try and.. the results are disappointing. The stepper motor doesn’t have the torque to turn the knob. It looses steps again and again. It can’t turn the pot even one step. I abort the motor and start looking for a bigger and higher torque one.

3rd try – Bigger stepper

Looking around i found a stepper i removed in the past from an old inkjet printer. It doesn’t have the smaller ever size but it fits in the enclosure of the speaker so it may worth to give it a try. This motor is rated for 24Volt which i don’t like (i plan to power the whole modification from an external 12V wall plug that i already have) but i tried it with 12V and the torque while trying to stop the motor with my hand seemed to be at least enough for turning the pot. So i designed a new mount i 3d printed it and i also made a new steel axle for connecting it to the pot.

I make my tries again and yes the motor now turns the pot but it loses steps. I try with 24 Volt the results are better but it doesn’t fit my needs. Why it needs more torque to turn than it looks like it should need ? When i manually turn the pot with no motor attached it doesn’t need that torque to turn and when i try to stop the step motor with my hand it has more than enough torque. Trying to find what is going wrong i realised that alignment of the motor axle and the pot are not perfect aligned and can’t be perfectly aligned as the pot’s backside axle has a plastic part that’s not centered 100% and it’s soft. So i’ll have to leave with this, but i can’t leave with a remote controlled volume that loses steps. I also under power the stepper in half voltage of the specified.

Gear reduction

Feeling really thankful for leaving this period of time while 3d printers and all this technology is spreaded and available i’m thinking to design a gear reduction to examine if this will make the pot turn easier with no step loses. And so i did. I designed and 3D printed in 20 minutes ( who could think this would be possible a few years ago? ) a gear reduction 1/4 (the best that could fit with only 2 gears) and i gave it a try.

Yes it made a big difference. Now there are no step loses and works great. But in order to permanently mount these gears and make them stable and robust for years would need extra effort that would exceed my weekend time frame. As i came to the point that finally i should use a reduction and not a direct drive to make it work i said why not to use a ready from factory stepper with gearbox than spending time to build my own? So i started thinking to try with one more stepper motor i had and includes a gear reduction box.

Being a believer of ” Those who insist get their way ” i give it one more try with the third stepper motor which will for sure make the manual control difficult but i would prefer to leave with no manual control than a remote control which loses steps.

The final motor – Stepper with gearbox

Finally i have the final design that works robustly with no step loses but sacrificed the ability to adjust the volume manually. Step motor used 28BYJ-48 5VDC

The axle has been glued on both ends with super glue

The IR sensor

In the meanwhile as i was taking breaks exploring my new TV’s settings i realised that it has the option to use it’s remote control for managing other devices in your home. I found out that setting it to control a specific logitech device it made the TV remote control to emit IR (the TV is not controlled via IR even though the remote has IRs ). This was great! As i already had in my lab some IR decoders. I gave them a try and yes, the TV remote could send commands that i could decode and translate them to step motor movements. Now i was looking for a place in the speaker to add the IR decoder to be functional but also invisible. So i drilled a hole on the upper side

I placed the sensor and i glued it in place

Stepper driver

For the stepper motor driving i used a module board i already had with drv8825 onboard. It seems to work as it should with no issues. The control of this device as well as making a motor step is really easy.

Details

For powering my additions on the speaker i didn’t want to use any of the onboard voltages as i couldn’t know with a quick look and without tearing down the main woofer speaker (which includes the amplifier as well as the power supply), if they are supply voltages or reference voltages and what could be the current i can draw from them. The stepper motor draws a lot of current in comparison to electronics consumption so i decided from the begining of this project to use an external wall plug 12V 1A that i already had. For the record there is a 5V line on the PCB of this speaker at TC31. It could have been used in my project as a signal for powering on/off my additions but i found a better way to do it.

The already installed power switch on the speaker has two channels and only one is used! The second channel is unconnected. See the photo below. I have desoldered the 6-pin power switch to cross check.

It looks like they did it for my additions! I first thanked them for their kindness and i directly grabbed the chance and used the second channel to power on/off my additions while the speakers powers on/off.

I also desoldered the onboard LED from esp8266 and glued it with super glue nearby the speaker’s power on led to take advantage of the existing light guide on the front panel. I use this LED to indicate my device status (wifi connected or not, errors etc).

When the device is on and the wifi connected i get a purple color (blue + red/orange)

For the power connection i used a universal power jack mounted at the backside of the speaker above the existing cable.

Everything assembled and ready to close the enclosure. All cables glued and everything mounted tight. As this is a speaker we don’t want anything to move and make annoying noise while music is played.

The final look nearby the parts of the failed tries

The volume now is able to be controlled using the remote control of the TV and the nice thing here is that when you select from the TV to control the Logitech speakers the TV speakers are automatically muted. And of course i built a really simple web page running on ESP which could also adjust the volume.

The web page of the volume control. The buttons are big enough to be easy to control the volume from a smartphone

The code of this project as well as the stl files of the stepper mount and the axle have been pushed on github just in case somebody would like to take a look. The code is really simple. The most is done by the libraries https://github.com/candrian/LogitechZ623 In the code is also included arduino OTA which let remote upgrades and is really useful as no extra cables and connectors needed.

Not implemented yet

The time i’m writing this article i still didn’t have the time to implement low and high volume turn limits. If the volume is turned fully off and the user try to move it further low the stepper will try to do it. Most possible the axle glue will brake. The same for top volume.

1 thought on “Logitech z623 remote control (IR & Wifi) – Hardware hack

  1. Wow this is incredible! I was looking for a solution for an external remote without diminishing sound via Bluetooth. I am at a rudimentary level of circuitry and electronics knowledge. I don’t feel confident to perform all necessary steps. I commend you for taking the time and having the care to document your process!

Leave a Reply

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