-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Beomote as sender #1
Comments
Hey At the moment the library only supports receiving b&o commands but it should not be that hard to implement a transmitter as well. I have no plans of implementing a transmitter though, but feel free to use my code for guidance and information of the b&o ir protocol. Med venlig hilsen
|
Hej Christian, kunne du hjælpe mig lidt? I am looking for the following four commands: typedef enum beo_command But I cannot understand how the modulation of the IR signal has to be done. Med venlig hilsen, |
The Interrupt is fast enough for this may it's hard to set it to 455kHz |
Dear Christian I am still struggling with the modulation and started the following topic: Is my understanding of the protocol so far correct? Hilsen, |
Hey Timo Bang & Olufsen uses manchester biphase code which you can learn about on e.g. Wikipedia. Your understanding of the protocol looks okay but there is a 8 bit address and 8 bit command instead of a 16 bit command. Instead of using digital write I would start a timer pulsing on one of the pwm pins. Where are you from?
|
Hej Christian, here is, where you are starting your timer, correct? Beomote.cpp: void Beomote::initialize(int pin) {
irPin = pin;
// Setting the pinmode of the IR pin and resetting the listener
pinMode(irPin, INPUT);
reset();
// Clearing Control Register A
TCCR1A = 0;
// Setting the phase and frequency correct pwm, and stopping the timer
TCCR1B = _BV(WGM13);
long cycles = (F_CPU / 2000000) * TICK;
ICR1 = cycles;
TCCR1B &= ~(_BV(CS10) | _BV(CS11) | _BV(CS12));
// Setting the timer overflow interrupt enable bit
TIMSK1 = _BV(TOIE1);
// Resetting clock select register, and starts the clock with no prescale
TCCR1B |= _BV(CS10);
} This is really something I still not understand! Is the PWM pulsing with 455 kHz here? TICK has been defined as 625 in Beomote.h. I still need to learn a lot... I am actually from Flensburg - near to the Danish border. :-) |
Hi Timo Yes that is where I start the timer. But I only listen every 625microsecond so you cannot use that. I have been working a little on implementing the transmitter but I found out that the fastest arduino timer ticks every 62.5microsecond. So we need some kind of hardware modulation to send data modulated at 455kHz. |
Hi Christian, hardware modulation might work with a NE555. Besides that, the PWM library (http://forum.arduino.cc/index.php?topic=117425.0) seems to work with up to 2 MHz. What do you think? Shouldn’t it be possible to send out a frequency of 455 kHz out of one pin and then send it to the IR-LED using a transistor connected to a second pin? |
Hi all, I had the same problem and was searching for a B&O IR transmitter library. I am using Timer1 to create the modulation frequency. It is not possible to set it exactly to 455KHz but to 444KHz instead. Frequency is tested with oscilloscope. Works quite well for me. See my repository here: https://github.com/PolyVection/PolyIR Best regards, |
Hey Philip Thank you so much! Your repository was the solution for my challenge. You've made my day! Greetings, |
Hi, |
Hi Philip, i have the same problem as Daniel,can you please share your work with us? , the polyvection folder is not available to us anymore. For my part, i try to interface alexa (amazon echo dot) and an arduino to pilot a beosound device... |
Dear @cdf1982, I hope the attached helps. I haven't progressed in this project. Do you think there might be a solution to implement the Bang & Olufsen IR Codes in one of this projects? Greetings, |
Hej,
is it possible to use your library for Arduino to control B&O devices via IR? I understand your example to receive commands from the BEO4, but do you also have an example where the Arduino controls B&O devices via IR? (e.g. turning on TV by pressing a button on the Arduino)
Mange tak,
Timo
The text was updated successfully, but these errors were encountered: