• Disclaimer: This Vendor's Forum is a paid-for commercial area. Unlike the rest of diyAudio, the Vendor has complete control of what may or may not be posted in this forum. If you wish to discuss technical matters outside the bounds of what is permitted by the Vendor, please use the non-commercial areas of diyAudio to do so.

Support for Botic Linux driver

Guys,
Since Miero released recently LIRC module for bbb (Thank you Miero) maybe it will be worth to try to control squeezelite player remotely (using LIRC)?
Currently there is a LIRC solution for RPI. It is fast and allows to control the most needed functions of squeezelite:

  • Power
  • Play
  • Pause
  • Next Track
  • Previous Track
  • Volume Up
  • Volume Down
Maybe this RPI piece of code can be ported on BBB?
The readme file is at the bottom of website:
https://github.com/ralph-irving/tcz-lirc

As I understand we need:

  • Lirc kernel module,
  • Lirc software,
  • IRda kernel module,
  • confiruration files for selected remote control
  • squeezelie with compiled IR support (The last, full *armv6hf.tar.gz version of squeezelite can be downloaded from current maintainer of squeezelite Ralph Irving site: https://www.mediafire.com/folder/lllwjg7xjl1by/linux
I suspect that problems can be with IRda kernel module (at least for me with my Linux skills). What do you think?
 
Last edited:
Member
Joined 2007
Paid Member
Since Miero released recently LIRC module for bbb (Thank you Miero) maybe it will be worth to try to control squeezelite player remotely (using LIRC)?
...
What do you think?

1. Have whatever DIY fun you like!
2. Is there anything fundamentally preferable in an IR remote versus a wifi solution, which is already developed for LMS/squeeze platforms and can be implemented for a few $? ...so much more control and already done...

https://play.google.com/store/apps/details?id=de.cedata.android.squeezecommander&hl=en

iPeng, the Original Music Remote
 
Member
Joined 2007
Paid Member
francolargo: The IR remote can be more ergonomic and simpler to use than smartphone :)

True - it is not always convenient to navigate to the control screen. Also, an IR remote has great battery life while a smartphone sometimes needs charging at inconvenient times. I use an old retired phone that has no other purpose, and that improves the convenience because there is no need for access security or running a variety of apps. ...just media control...

Have fun with it!
 
Last edited:
Frank and Miero,
I have the similar observations as you regarding (old-school but cool) IR control due to its:
speed, simplicity, convenience for the casual operations.
When I want to select next track or make a pause I don't have to look (concentrate) on mobile device bright screen.
Kaskade, bern: please retry lirc-bbb again. I've updated both sources and the precompiled module.
With 'lirc_bbb' only in the /etc/modules file I have got:
Code:
root@botic:~# dmesg | grep lirc
[    4.003371] lirc_dev: IR Remote Control driver registered, major 245
[    4.013349] lirc_bbb lirc_bbb.0: lirc_dev: driver lirc_bbb registered at minor = 0
[    4.970950] lirc_bbb: auto-detected active low receiver on GPIO pin 66
[    4.970975] lirc_bbb: transmitter on GPIO pin 67
root@botic:~#
Strange: looks like GPIO pin 67 is selected
 
Last edited:
If the little silver Apple IR remote had a specific 'mute' button or function, I'd definitely want to add it to the system. Muting something annoying is the best use for such a remote, IMHO. :)

I hope that there will be options to assign selected buttons to the selected functions. :)
An externally hosted image should be here but it was not working when we last tested it.

Maybe this configuration file may be used:
https://gist.github.com/pda/8252117
 
Kaskade, bern: please retry lirc-bbb again. I've updated both sources and the precompiled module.

Thank you! Input is now on GPIO 66.

I can't get the rest to work though :(
Is there an easy way to check if BBB is recieving IR-signals?
I have IR sensor connected and the following files located in /etc/lirc/

hardware.conf
Code:
# /etc/lirc/hardware.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS="--uinput"

#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD=false

#Don't start irexec, even if a good config file seems to exist.
#START_IREXEC=false

#Try to load appropriate kernel modules
LOAD_MODULES=true

# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="default"
# usually /dev/lirc0 is the correct setting for systems using udev 
DEVICE="/dev/lirc0"
MODULES="lirc_bbb"

# Default configuration files for your hardware if any
LIRCD_CONF=""
LIRCMD_CONF=""

lircd.conf:
Code:
begin remote

  name  Apple_A1294
  bits            8
  flags           SPACE_ENC|CONST_LENGTH
  eps             30
  aeps            100

  header          9140  4390
  one             608   1618
  zero            608   518
  ptrail          610
  repeat          9141  2157
  pre_data_bits   16
  pre_data        0x77E1
  post_data_bits  8
  post_data       0x79
  gap             107219
  toggle_bit_mask 0x0

      begin codes
          KEY_UP                   0x50                      #  Was: UP
          KEY_DOWN                 0x30                      #  Was: DOWN
          KEY_LEFT                 0x90                      #  Was: LEFT
          KEY_RIGHT                0x60                      #  Was: RIGHT
          KEY_PLAY                 0xFA                      #  Was: PLAY
          KEY_MENU                 0xC0                      #  Was: MENU
          KEY_OK                   0x3A                      #  Was: OK
      end codes

end remote

.lircrc:
Code:
begin
    remote = Apple_A1294
    button = KEY_UP
    prog = irexec
    config = echo "VolUP"
    repeat = 1
end
begin
    remote = Apple_A1294
    button = KEY_DOWN
    prog = irexec
    config = echo "VolDOWN"
    repeat = 1
end
begin
    remote = Apple_A1294
    button = KEY_MENU
    prog = irexec
    config = echo "Switch"
end
 
Greetings James,

This is probably going to seem like a sketchy reply - sorry - but in practice ALSA can be fairly sketchy. Clearing things up could take us far away from Botic per se. So, depending on the following, I may suggest that we move to a thread in which ALSA is the topic.

Botic doesn't specify the output device. The applications that run under Botic typically do so. Some applications will not accept ALSA plugins as output devices, but can accept 'hardware' output addresses (the correct term escapes me at present) like 'hw:0,0'. Unfortunately, I have never gotten MPD (nor Ecasound) to accept anything other than such addresses that bypass ALSA's programming space. That is why in my own system I am using squeezelite, because it does permit output to ALSA plugs. If this limitation of MPD is a deal breaker, then I can't help. You mentioned configuring squeezelite for Roon. If squeezelite is part of the system about which you inquire, then chances for success are good.


ALSA can do that, no problem. If you want to proceed, let me know and we'll pick up the ALSA discussion here: http://www.diyaudio.com/forums/twisted-pear/277564-ladspa-filters-digital-crossovers-bbb.html

Looking at and copying working ALSA syntax is one of the most effective ways to get things functioning. ;)
Hey Frank,
thanks for the reply, that's very helpful :)

It's actually already proven to work in MPD using this method. I was only following a guide here but got stuck at the final step of choosing the new output device in MPD.

What I actually want to do, as you correctly assumed, is to get this working with Squeezelite. I noted from having played around previously that if I don't specify an audio output in Squeezelite, it works just fine with the default Botic output. So I figured 'How do I change the default Alsa output on the Botic build' was a more generic question than 'how do a I specify a different alsa plug in Squeezelite' :)
I'll move my Alsa questions to your other thread and in the meantime, I'll install Volumio and try and get it working via MPD and Volumio to prove the concept works and is compatible with my hardware tweakings.

I assume that an Alsa plug like this is the simplest way to get Botic to output 2 channels of right-justified data, split for left and right for a dual-mono dac?

thanks,
James
 
Also... is there something simple I can do which will allow me to use a remote tool like mpdroid to control the botic mpd? it seems like the port is not open to accept connections from anything other than the localhost ympd client?

Or... is there a simple way I can update the ympd to be the latest version? As I believe that may allow me to select the audio output

thanks,
James