Giter Site home page Giter Site logo

perja12 / sonos_magic_hub Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 0.0 242 KB

Circuit for using the LG OLED C9 TV remote (LG Magic Remote) with the Sonos Playbar.

License: Apache License 2.0

C++ 85.93% C 14.07%
sonos attiny85 attiny ir lgtv kicad-schematics

sonos_magic_hub's Introduction

Sonos Magic Hub

UPDATE 2020-09-13: This workaround isn't needed anymore! Go to "device connector" in the menus of the LG TV and setup a new soundbar. When you come to the manufacturer selection you won't see Sonos listed, but if you use the search box and search for Sonos it will show up (I'm pretty sure it wasn't there before!). Now you should be able to control the Sonos Playbar with the remote when the TV is on.

Next step is to open the Sonos app (S1), go to the settings for the Playbar and follow the instructions for setting up a remote ("Remote Control Setup"). And voilà: you can now control the Playbar with the MagicRemote with TV both on and off.

Project pictures

This project contains firmware and hardware design files for using the LG Magic Remote that comes with LG OLED C9 TV with a Sonos Playbar. Sonos Playbar already has support for universal remotes, but the LG Magic Remote sends one set of codes when the TV is on and another set when the TV is off. So controlling the volume up, down and mute works fine when the TV is on, but not when it is off. It's not clear why LG has done it this way, but probably it is for controlling other LG devices.

Instead of waiting for LG to fix this I created a small circuit to translate the IR codes.

Note: there are various forum posts about the reverse problem for LG OLED CX. Apparently the Sonos Playbar can only be controlled by the LG remote when TV is off. This project doesn't solve that.

How does it work?

This is straightforward: when a IR signal is received it will be converted to a code that the Sonos Playbar understands.

List of IR codes

The table shows the IR codes sent by the remote when it is configured to send Philips RC6 codes as described here: https://support.sonos.com/s/article/3479?language=en

Command IR code (TV off) IR code (TV on)
Volume up NEC, 20DF40BF, 32 bits RC6, 1010, 20 bits
Volume down NEC, 20DFC03F, 32 bits RC6, 1011, 20 bits
Mute NEC, 0DF906F, 32 bits RC6, 100D, 20 bits

How to build the firmware

Use the Arduino IDE and install the ATTinyCore (https://github.com/SpenceKonde/ATTinyCore). Do this from Boards Manager in the IDE. Select "ATtiny 25/45/85" under boards and clock to 8 MHz (internal). For uploading the firmware I have used USBasp with Tag-Connect, but you can you use any way you prefer. Remember to burn the bootloader before uploading the firmware.

Various notes

  • Use this at your own risk! In the firmware I included support for NEC repeat code that the remote sends if one of the buttons are held down. There is a limit of 5 repeats in a row to avoid ramping up the volume too fast.
  • There is no USB enumeration and thereby it is not according to the USB specifications. Still I think it should work fine with most USB hosts.
  • It was unclear if the shield of the USB connector should be connected to GND or not. That is why I included R2. I left it unpopulated.
  • The fuse (F1) is probably not needed. Maybe it should have some TVS diodes instead to suppress ESD.
  • The IR library is from https://gist.github.com/SeeJayDee/caa9b5cc29246df44e45b8e7d1b1cdc5

PCB

BOM

Ref Value Footprint
C1 10 uF Capacitor_Tantalum_SMD:CP_EIA-3528-12_Kemet-T_Pad1.50x2.35mm_HandSolder
C2 1 uF Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder
C3 0.1 uF Capacitor_Tantalum_SMD:CP_EIA-3528-12_Kemet-T_Pad1.50x2.35mm_HandSolder
C4 0.1 uF Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder
D1 LD271 LED_THT:LED_D5.0mm_IRGrey
D2 LED LED_SMD:LED_1206_3216Metric
F1 Polyfuse_Small FUSM1812X02:FUSM1812X02
J1 AVR-ISP-6 (No actual part) Connector:Tag-Connect_TC2030-IDC-NL_2x03_P1.27mm_Vertical
J2 629105136821 (Micro USB connector) WE_629105136821:WE_629105136821
Q1 MMBT3904 Package_TO_SOT_SMD:SOT-23
R1 1K Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder
R2 0 Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder
R3 220 Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder
R4 10K Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder
R5 220 Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder
R6 35 Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder
U1 ATtiny85V-10SU Package_SO:SOIJ-8_5.3x5.3mm_P1.27mm
U2 TSOP38238 OptoDevice:Vishay_MINICAST-3Pin

The PCB fits inside the Hammond 1551H (http://www.hammondmfg.com/pdf/1551H.pdf).

sonos_magic_hub's People

Contributors

perja12 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.