I have taken my first steps in to the world of live video streaming in the first half of 2007.
An Italian audience have followed my non-stop reports from several of the largest bar camps held recently here in Italy.
They have seen with how much passion and interest I have taken this new communication challenge.
One of the nicest things to happen thanks to my voluntary experimentation with live video streaming on RobinGood.TV, was the opportunity to meet some truly fantastic people.
Those people, excited themselves by my new video discoveries have offered in many different ways their talent and skill to help me out.
Among these one has stood out the tests of time and has invested notable time and efforts to help me several dreams I had been playing with.
These included the ability to build a truly portable video streaming station, together with added peripherals and functionalities that would have helped me video stream hands-free from just about any place, Justin-style.
His name is Fabio “Blaxwan” and he is a truly passionate technology inventor and experimenter moved by the desire to play and learn from his own creations.
He has helped me build an open back pack for my portable laptop that makes my mobile video streaming orders of magnitude easier and more comfortable than walking around like a fool with your laptop open.
Also, as he recounts in deep detail in this review, he has built a full remote control panel console integrating monitoring and control functions for the laptop working with its lid closed on my back.
Here are the details:
Intro by Robin Good
The “RobinPad” Story
by Fabio “Blaxwan” Di Niro
Last April (2007) I was attending a bar camp, it was during a conference when I first met Robin Good.
I saw this funny man struggling with a laptop, webcam, radio microphone and lots of wires as he was live video streaming the Open Camp.
Such view had two effects: the first one was that I immediately started to think about ways to build something that would avoid having all those fastidious and uncomfortable wires and dongles.
The second effect was that I missed the conference speech.
Later on, I went back home and I was searching on the net for more info about this Good guy. I rapidly discovered that he was doing really a great job by giving the possibility to those who could not attend the bar camp to follow it live on their broadband connected computers at home.
Then I thought I could have tried to help him out.
I sent him an email explaining what I thought we could do and he just answered “Hi Fabio, you’re the man I was waiting for a long time” then we started to have a lot of fun together experimenting new and improbable mash-up devices.
This article describes the construction and evolution of the so-called “RobinPad“, at least that’s how we called it.
It is in fact much more than a pad as it is a full remote control panel that greatly complements the mobile Robin Good video streaming backpack allowing to have video feedback and the ability to monitor and control all of the video streaming functions as he streams.
This unique, hand-made device was the first final tangible product generated by my active collaboration with Robin. He is a great guy who does a lot instead of talking. I like that. And I did have a great time building this rugged but functional device for his Robin Good TV.
2. Building a custom USB button pad
When we first thought about a remote control panel for the Robin Good streaming backpack we were trying to achieve at least some basic functionalities:
- having a preview of the cam
- having some information about the system like connection status, available bandwidth, battery status etc.
- having the possibility to start and stop the video streaming at will
To accomplish these goals we needed a small, lightweight portable LCD monitor and some panel buttons. Online we saw that there were a lot of monitors in many different flavours so this was not an issue.
On the other side we had to find an input device that needed to be fit in a control panel next to the monitor itself.
We first thought about using USB number pads but we discovered that these were too big. Then we went on to custom I/O cards (like a PIC based one that communicate via RS-232) but this kind of communication would need more software development.
So I thought to buy a small joypad and just adapt it to our own specific needs.
So for the first few times, Robin and I went streaming live with this joypad fastened to our trousers belt. We soon found out that this was definitively not so comfortable.
On the other hand I soon realized that there existed a lot of software out there that could have taken great advantage, in different ways, of our standard and popular joypad.
This is when I decided to take out and use just the electronics of the joypad in order to convert it into a simple box that could be more easily matched and installed next to the small LCD monitor.
I carefully unscrewed and opened the joypad to see how I could embed it into a smaller box. Of course these instructions cannot apply to all joypads because circuits and technologies may vary from brand to brand and also through different models.
So what I’m writing here is just to give you a good basic idea of how I approached it.
Upon opening the joypad, I immediately noticed that the electronics of the unit were made by three circuit boards: a main one containing the core chip, a cabling one and a third one (the bigger) containing all the button contacts.
I decided then to get rid of the third one saving some space, and to replace it with a custom circuit board holding my own custom buttons.
So I measured the remaining boards to determine the size of the plastic box to buy.
After some research, I found this plastic box shown in the picture below, which was actually a little bit smaller than the board it had to hold but I thought that it was better to trim the board a little bit instead of using a bigger box (the bigger size was really cumbersome).
Together with it I also bought also ten board soldering buttons.
At this point I had to prepare the board on which to install our own custom buttons. Since there were no particular needs for circuit connections I decided to use a prototyping board and to wire it directly to the joypad own circuit board.
I placed the buttons on the prototyping board and decided for its size, then I cut the board with the Dremel, and soldered the buttons.
Next I needed to prepare and finalize the box. To do this I sticked two paper tape stripes on it to ease the drawing of the drilling points. Then I drilled the holes for the buttons and used hot-glue to place a small piece of wood inside the box between the two rows of buttons.
That’s just for cosmetics. In fact this piece of wood is used to screw and hold the circuit board in place in order to avoid using any visible screws on the front panel.
Now I had to finalize the joypad circuit board. First step was to remove the unused board and trim the used one (I just cut out the edge of the board where the two motors were soldered, as these were luckily useless parts).
I soldered a common ground for some buttons, grouping them as I saw on the original button board of the joypad. Then I used some colored wires to connect the custom button board to the joypad mainboard.
Finally, the last step was to connect my custom buttons board to the joypad one.
Please note that the joypad we bought was made to connect both to a Playstation or a PC, so it had also a Playstation connector.
Since I disliked this additional useless connector, the very last step was opening the connector, cutting it’s wires and insulate them with some tape, so that the pad would have just one connector at it’s end.
Here follows a picture of the button pad, once completed:
3. Building an adjustable remote control panel with holding arm
Here our goal was to create a device that would have helped to carry and see the remote control panel hands-free. The idea was to get the control panel to be visible to Robin as he was moving and streaming live.
We considered different solutions like something to tie to the pants belt or to the backpack belt, but at the end of the game we finally opted for a flexible arm coming out from the backpack itself (lately we realized that this was uncomfortable as well).
With this kind of solution, the first step was to build a supporting plate that needed to hold the button pad and the monitor at the same level in front of Robin.
I decided to build this part by using some plastic and taking advantage of a PVC pipe, like the one utilized in sewage systems. Happily I had a brand a new one, and I cut it and placed it in the oven at a temperature of about 130 C.
After 8-10 minutes it was so tender that I could easily take it out and hold it firmly by using two sheets of wood. Then I prepared a base to properly bend the PVC sheet in order to give it the right shape for holding the buttonpad and the monitor.
At this point I cut a rectangular piece from the PVC sheet a little bit bigger than required (because I knew I couldn’t be so precise in bending it) and put it again in the oven for another 5-8 minutes at 130 C.
When the PVC was again soft enough, I took it and placed on the base and pressed it hard by utilizing some other plain-surface heavy objects for a few minutes, until it cooled down again.
After some minutes the PVC piece was cold enough to continue to work on it.
So I placed the monitor and button pad on it and first drew and then precisely trimmed the contours.
To build some rigidity in the flexible arm that would be holding the remote control panel (otherwise the weight of the monitor and control panel would have it would have it fall down) I decided to use some steel wires.
I gathered together several steel wires, gave them some shape and hot-glued them on the bottom of the holding plate.
Then I inserted the wire bunch in a corrugated plastic pipe and, on the other end, I just bended out the wires and hot-glued them in a larger pipe that may be easily screwed to something that I had to attach to the backpack.
Last step was preparing something that would hold the flexible arm as we could not screw this to our belly. So we needed something where we could screw our artificial holding arm in.
To achieve this I cut a thin piece of wood to the size of the Vaio notebook Robin Good carries in the open backpack. My ideas was to basically pace this wooden platform between the Vaio and Robin’s back inside the backpack.
Work done! The “suspended” remote control panel device (of course the elastic stripe were just a temporary solution, they were replaced by velcro stripes):
4. First evolution: building a case for the backpack
After some further experimentation with the mobile Robin Good streaming station, we realized we wanted to further improve things.
The quantity of dongles, batteries, peripherals, cables and connectors had grown to such an extent, especially after the adoption of the small tube camera Robin carried in its hat, that we badly needed to do something about simplifying and organizing all this stuff in a better way.
The new lipstick-sized camera in Robin’s hat had in fact only a composite video output so we were forced to add a video-to-USB converter.
In addition to this, at this time Robin opted for a smaller, higher performing and longer-lasting VAIO notebook, but the new baby had unfortunately no composite video output (which we badly needed for powering the small portable monitor).
Here too we forced to add a VGA-to-composite video converter. There were just too many things hanging out of Robin’s open backpack.
This is why I decided that the best solution would have been to put all these things together inside a properly designed and compact box to place/attach on open backpack. This way I could integrate all the cables and simplify the use and the look and feel of the system.
Since I also wanted to have a nicely-shaped for this box, I steered away from traditional rectangular boxes and went straight to a big bricolage-shop to get some fresh ideas.
There, in the shelves where all the electric pipes are shown, I immediately found something interesting. I bought those two plastic shells you see here below.
These strange shells are traditionally used to bend into the wall the plastic square pipes that are used to run wires alongside a wall. I don’t know if I gave you a good idea of what they really are for, but what matters is that they were perfect for our purpose.
Back home I just resized the two shells and cut a matching shape in a thin sheet of wood in order to create a closing panel for them. I then painted in black both the base and the “shells”.
Once I had the box completed, I started to drill some holes in it to screw the connectors and the switches. I assembled then all the circuitry soldering and all the other stuff. I finally used rubber bands to hold the set of batteries together to the converter to the box base.
Here are the results
5. Building a Robin Good TV light sign
At this point we thought we had some interesting gear in our hands and our desire was to share and advertise the fruit of our work so that people would notice Robin when he was doing live streaming.
But instead of using a simple printed sign, I wanted to build something that could have been switched on when the Robin Good mobile backpack was streaming.
I therefore decided to build a light sign with some Plexiglas and LEDs. Nothing fancy at all, as it was really simple to build one this way and I had a lot of fun experimenting with those materials I wasn’t familiar with.
As a first step I cut a piece of Plexiglas (acrylic glass) and painted on it the sign lettering (Robin Good TV – On Net) by using a painting mask.
This is in fact was created using liquid latex that gets dry very fast and may be easily removed just by using the fingers.
Then I sprayed the whole front surface with black paint and, after the paint had dried, I removed the masking.
The last step was the one of carving into the sign the place through which to show the white LEDs that I had soldered in the back.
6. How it all works
For the “action” part on the remote control panel, the RobinPad runs a great scripting tool called Autohotkey. With it you may process user input and perform some actions like clicking somewhere in the screen.
This is essential because we’re using an internet streaming site to video stream (normally that is Ustream) which in turn requires a Flash encoder launched from the browser to run.
Due to this set up we cannot switch to a custom encoding system, but I’m really confident that sooner or later we will move to this kind of set up.
The basic idea of the button pad is to use the upper row buttons for fixed and frequently used functions and to leave the lower row of buttons for general purpose functions.
In the bottom row the buttons change their functions contextually and can perform therefore multiple tasks. In this way we can utilize more functions than the number of buttons we have physically available (10).
The core buttons in the upper row perform these basic functions (from left to right):
- Start streaming
- Lock/unlock the buttons (to avoid accidental press)
- Start recording
- Stop recording
Those in the lower row perform the functions shown in the following menu screens and which can be cycled through by pressing the “Menu” button.
The first image here below is the Menu1 and the second and third images are the Menu2.
Later I also added a splash screen that is shown when the system starts as well as a “locked” warning that is displayed when the pad is locked (through the central upper button). Obviously I added also an “unlocked” message that is shown when the central upper button is pressed again:
For checking all functions inside the remote control panel monitor, we have devised ways in which Robin can see the actual controls and feedback indicators, including his video feedback, as they are displayed from Ustream and replicated at lower resolution on its small monitor.
Next to streaming feedback controls I have added for Robin a monitoring application called SysMetrix which further provides Robin with real-time numerical indications of its remaining laptop batteries time, CPU temperature, bandwidth in and out.
7. What next?
I and Robin do realize that there are a million improvements we could still do to this setup. But this is the joy of building something yourself.
Starting from the reliability of the overall physical set up which is not yet rock solid, to the need of adjusting our customer control software as Ustream keeps changing and improving its own interface. In fact, the best would be writing a real, dedicated software for this system.
But let me try to summarize here all of the improvements we already took into serious consideration and the general direction in which we want to move this project further.
From an hardware point of view it would be nice to:
- prepare another plastic holding base for the monitor and the button pad without the “holding arm“. This way Robin may decide alternatively between using the artificial holding arm or simply just hide the remote control panel inside his jacket without using flexible support arm. When he needs it he can take it out of his pocket and use it. Yes this deserves one hand.
- put some Velcro on the remote control panel and on the backpack belt so that the remote control panel can be attached on the belt itself
- add support for a set of earphones so that Robin may have an audio feedback channel to be used for either talking to the audience or to receive indications from a possible control room through a VoIP Skype-like connection.
- thinking about a mini-ITX motherboard to evolve all the system in a really embedded and self contained mobile streaming station (wow)
- find a piece of software that is able to play a mp3 file “into” the microphone input in order to have some music background streamed in the video (the internet streaming site is accepting audio just from one source at time)
- try to leave the internet streaming site or get rid anyway of the need to use the browser and Flash encoder. Once this step will be accomplished we will go for a more reliable Linux system (and we don’t have to modify the SW to remap the mouse clicks every time that the streaming site changes the Flash encoder)
- write down the application for the Linux box trying to keep all the functionalities we have now.
- keep the whole software system as much modular as we can. The final goal being the creation of a setup where Robin can stream directly from the RobinPad. Yes adding video capture functions to it, or where he could stream to a main control room where his signal will be mixed up with the one of other reporters streaming from other locations or with the video of someone wanting to interact from home.
This the end of the story for now.
We are continuously working to make new improvements to the RobinPad and if you follow RobinGood.TV you may be able to see Robin at work with it very soon.
Originally written by Robin Good at MasterNewMedia as Mobile Video Streaming: Building A Remote Control Panel For A Portable Videostreaming Box – The RobinPad Story on August 21 2007. Some Rights Reserved.
Have Something To Say?
Have Your Say:
Subscribe to Web TV Wire by Email
Keep up to date with Web TV, Video and IPTV News:
Subscribe to Web TV Wire via RSS