Jump to content

Wireless intercom via Raspberry Pi


cedd

Recommended Posts

I've been sitting on this idea for a while now, but I've come to the conclusion that I'll never be clever enough or have the time to gain the knowledge that I need to make it work. Therefore I've decided to throw the idea out to the Blue Room community and see if anybody fancies taking up the challenge of making this work. If so then it could go in to the Workshop section of the forum.

 

Online gamers use IP based comms solutions to talk while they're playing team games. One of the more common and seemingly more able pieces of software out there is Mumble. Somewhere in the world sits a server which could be a PC or a Raspberry Pi. Gamers then connect to it and can have in-game comms. Mumble in particular boasts about high audio quality and very low latency, and seems to be one of the reasons why the gamers love it. There's not much info from a user point of view, but I think it's a party-line system with push to talk.

 

My concept uses this technology for a theatre application. Imagine instead a laptop or Raspberry Pi (maybe in a rackmount case) acting as the server. This is connected to a LAN which has one or more wireless access points to cover the theatre. Then each belt pack contains a client Raspberry Pi with a wifi dongle. The audio is handled either by a small external sound card and PC headset or via a Bluetooth dongle and headset. Buttons such as PTT would either be via the GPIO pins or a human interface device that pretends to be a keyboard, such as a U-HID Nano.

 

Powering the beltpacks could be a challenge - I guess if they can do 4 hours and have easily swappable batteries then it might be ok. Call lights could be tricky using Mumble, but I guess something bespoke could be written. Likewise I guess that it needn't be tied to Mumble - that's just what I saw as being an option. There's VOIP stuff out there for the Pi to integrate in to your own projects.

 

The beltpacks could also have an RJ45 on them for connection to the network via a wired connection - maybe for front of house over a longer distance than the network covers. You could even integrate POE in such a circumstance.

 

The Pi's would need to be configured to auto connect and auto start whatever software was needed, so it could be a simple "switch on and talk" system.

 

So, do people think it'll work and does anybody fancy the challenge? If it works then we could build beltpacks for way less than £100 each. The rest of the system could be as simple as a laptop and wireless hub, or a pi in a box with a switch and some remote access points on the end of cat5's.

 

 

 

Link to comment
Share on other sites

At first glance, it seems like a reasonable proposal.

 

 

Could also potentially utilise the iPhone/android clients for the mobile devices?

 

 

An external mobile phone USB power bar -the sort of thing used to give your mobile an emergency boost - will apparently power a Pi for a couple of hours, depending on the number and type of peripherals.

 

EE are currently giving away 2600mAh rechargeable power bars to customers free.... and if you’re out and about, you can swap a discharged one for a full one at any EE shop. Although they’ve just issued a recall....

Link to comment
Share on other sites

There is a vaguely relevant thread started by MadMac over in the workshop forum: http://www.blue-room...showtopic=63737

 

I would expect a VOIP-on-LAN set-up to be fairly easy to make work. The USB power bar seems to be the default solution and keeps lithium battery management as someone else's problem to get right. Farnell had an add-on PCB with audio I/O for the Pi which had a 4-pole 3.5mm headset connector for this kind of use (so I think two ears + electret mic), which avoided going through USB (which can be trouble). Not seen it recently, but I'm sure there is something out there.

 

The wifi option will add quite a lot of latency and may be harder to make reliable. A cheap Android device may be cheaper, but much harder to customise, at that point.

 

I was toying with the idea of RS-485 multi-drop (like DMX-RDM) as a physical layer as well as Ethernet so it could be reto-fitted over existing screened twisted pair comms lines, but that would be quite a lot harder to make work.

Link to comment
Share on other sites

My battery packs of choice are the wrapped packs of AA's or C's designed for RC cars. If the thing ran on a 9.6V 2600mAh (first I saw on ebay, bigger maybe available) pack of 8 AA's via a Buck Converter down to 5V then (ignoring the buck converter inefficiencies) you'd have nearly 5Ah available. Power consumption of the Pi would depend on peripherals, I think that'd happily give us 4 or 5 hours, maybe more. Being NiMh it also keeps thinks that little bit safer than LiPo.

 

I saw MadMac's post, and commented on it, roughly outlining the above idea, though I realised it probably wasn't going to get seen in the same way as it would by starting this thread.

 

Just another thought - theatre projects and LAN would be the simplest setup, but there's no reason at all why this couldn't be extended out over the internet to remote locations. Maybe two sites out of the range of normal comms systems. Heck, you could even substitute the wifi dongle for a 3G one (latency probably being far more of an issue then), but then I think that's probably sounding more like a mobile phone than a theatre comms system..... but still!

 

Latency-wise, online gamers are very big on squashing latency, after all it affects their gameplay. Skype, with video content being streamed as well, manages a latency that allows you to have a relatively normal conversation. That's over the internet and with the added complication of video, but I'm not sure that in most normal theatre scenarios, it'd be that noticeable. Especially over a single-tasking system set up to do one job well - sending audio.

 

What I've written above though is about the extent of my knowledge!!! I posted in the hope that some bright spark might see this, decide they fancied the challenge, pick up the project and run with it. Then post their instructions for the rest of us to copy! Sadly I can't take the idea any further.

 

 

 

Link to comment
Share on other sites

  • 5 months later...

Hello there,

has this project progressed in the last few month?

I too am looking into Raspberry Pis as wired and wireless beltbacks via TCP/IP using Mumble.

 

Without modifying the source code you need a VNC or other X-server for mumble to start.

PTT can be done. Automatic connection/reconnection could be more difficult in a headless setup.

 

Using simple Ethernet and having the option to unplug and move freely using Wifi could be really nice.

Link to comment
Share on other sites

I have been playing with asterisk its an IP phone system and I have it running on a Raspberry PI and it grand when using basic codec. I have just under a second delay with 4 phone all in one call and they where all mobiles conneted via wifi and software on them. I do not have any IP phone that will plug in to cat 5 to try yet.

 

I can see this working as long as we keep it to very basic codec.

 

I have also been using a Raspberry PI as web chat server which ran local and all phones connected to wifi and it was quit handy. I am working on a way to make it trigger the vibrator when a new message it posted. I have had to put both of these projects on a back brunner as work is taking up most of my time.

Link to comment
Share on other sites

Asterisk is the main server hub of the ip phone system and it would be the phone that would have the mute function on it.

 

You would need to write software to work with asterisk that would have the function you need like PTT and mute buttons which would be provided by the Raspberry PI GPIO pins

Link to comment
Share on other sites

Speech delay is your enemy with Asterisk... 1 sec doesn't sound great for an intercom. Asterisk is a tremendously complex system, it's probably not the best place to start.

I am still trying to work out (from the other IP intercom thread) if you could do an intercom as an Android app using old cheap smartphones off ebay. Then you get a nice compact device with wifi and battery / charging hardware built in.

Link to comment
Share on other sites

timsabre,

 

That was my orginagl plan but trying to do a PTT button with a phone is where I had to give up. You will have a small delay anyway as you have to use some sore of codec. I know what you are saying about asterisk. but when you strip out bits you do not need will help the delay as well on the Raspberry PI. I am hopping to get some time this weekend to get back at this and try it out.

Link to comment
Share on other sites

Timsabre,

 

I know what your are saying but it could eat up a lot of bandwidth as wifi at the best of the time will be running 54g as distance could be a problem. 54g is 54Mbit a second and you will only get about a 10th of that for download which will be 5.4mbit a second but with say max 10 nodes Users on then it will be about 54Kbits a second which could be a problem with raw audio going 2 way from each device to the main device which will have be able to send it out again as quick as it comes in and also mix audio from other users as well. IF you start having groups and it will also need some way to be sorted out in the main device.

 

The speed I was getting from Astrick was using GSM codec and Astrick was still fully loaded and not striped down. There is a load of free software for Android and Iphones that will connect to Astrick and will have the GSM codec which is very low comprsion as far as I can remember.

 

Also Astrick allows groups. If it could be stripped and made work it may be very use full

 

edited to add the above line

Link to comment
Share on other sites

I have tested an Android client and it allows you to use any of the hardware keys or a large part of the screen as a ptt button.

A phone is way cheaper then a raspberry pi with audio card, WiFi card and battery +charger.

I could open the phones and add a socket for a ptt button that can be attached to the tripod head arm with a nice, big and easy to find button.

There is also an Android library that would allow me to write a custom client (automatically connect+reconnect and limit the user interface for this one task.)

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.