Close
0%
0%

OggStreamer / LiveRadio Streaming

This project aims to create a production-ready, emc-compliant OpenHardware AudioStreaming-Product using OpenSource-Tools whenever possible.

Similar projects worth following
The main propose of this device is to connect remote radio-studios (or live-events) to a radiostation over the Internet using an IceCast2-Server. It basically is a hardware IceCast2 Upstream-Client. It is combining various building blocks: An embedded Linux Module, a micro-controller and an AudioDSP to accomplish this task
Work has started in 2010-Hardware is finished and polished, but the Software still needs some tweaking-I'll try to release the firmware V1.0 for the device in autumn. Nevertheless there are already apprx. 40 users relying on the OggStreamer as a solid tool for audio-encoding and streaming. Most of the users are free radiostations, therefore the OggStreamer assists in the democratization of the medium radio, because it enables an easy way to implement remote studios, thus bringing radio closer to the people.
Because work was carried out over the last years I will gradually add content to this project-description as a way to retell the story of its creation.

Concept Video 

Functional Explanation

Used Tools

For EDA we started with PCAD2006 - but to make the Design more accessible I asked a friend to do a conversion to KiCad - as we are trying to use accessible (preferable OpenSource) SW-Tools as much as possible. A friendly guy from the web stepped in helping converting the Design to KiCad - unfortunately to view/edit the PCB Layout you will need the KiCad-GOST version. Viewing/editing the schematics also works with vanilla KiCad - Making the PCB Layout work with vanilla KiCad is one task that still needs to be done.

You can download the EDA-Source of this project here. (License: CC-SA-BY 3.0)

For 3D-CAD I used Sketchup (running on Linux using wine) which sounds a bit ridiculous at first - but it worked out quite well - although my old computers had a hard time to handle that number of Polygons. Sketchup isn't OpenSource but at least you can obtain a free version of it - which is good enough to work with the 3D Model of the OggStreamer - Modelling the Device in 3D really paid of as we caught two errors, which would have caused a further iteration of design cycle.

The Lasermarkings were designed by my sister using Inkscape and some additional work was done using GIMP we also decided for an OpenSource Font called Xolonium by Severin Meyer.

You can download the 3D-CAD Design-Files and Lasermarkings of this project here. (License CC-SA-BY 3.0)

System Design Overview

The OggStreamer consists of 3 Main Modules 

An AudioDSP which takes the analog audio converts it in the digtial domain and compresses it in the OGG Format - a microcontroller (STM8) which transfers data between the AudioDSP and the Linux Module and aditionally controls the VU-Meter and Status LEDs. And finally the Linux Module which takes the AudioStream and sends it over Ethernet to an IceCast Server using the libshout library.

Additionally the OggStreamer can host an sighttpd-Mini-Server on its own – so that a limited number of listeners can directly connect to the Livestream with just with one click on the webinterface.

Used Licenses

MCAD Design-Files und Lasermarksings Design:

http://sourceforge.net/p/oggstreamer/mcad/ci/master/tree/

License : CC-BY-SA 3.0

PCB Design:

http://sourceforge.net/p/oggstreamer/pcb-design/ci/master/tree/

License: CC-BY-SA 3.0

STM8-Mikrocontroller Firmware:

http://sourceforge.net/p/oggstreamer/oggs-stm8-firmware-001/ci/master/tree/

License: GPLv2

OggStreamer Applikation:

http://sourceforge.net/p/oggstreamer/oggs-uclinux-app/ci/master/tree/

- License: GPLv2

Lantronix SDK:

http://www.lantronix.com/ftp/Linux_SDK/SDK2_0_0_3/linux_sdk_2_0_0_3.iso

- License: GPLv2,Apache, BSD, LGPL, MIT and others (this is based on uclinux-dist) - contains code from Lantronix which is "/* Copyright (c) 2010, Lantronix, Inc. All rights reserved. */" - for IO Handling

Patches for the SDK:

http://sourceforge.net/p/oggstreamer/patches/ci/master/tree/

- Licenes: GPLv2, LGPL, BSD-style (contains sighttpd Streaming server licensed under LGPL, libshout also LGPL, liboggz, libogg and libvorbis BSD-style )

STM8FLASH – Firmware Update Applikation:

http://sourceforge.net/p/oggstreamer/stm8flasher/ci/master/tree/

- License: GPLv2

WebGUI – OggStreamer Konfigurationstool:

http://sourceforge.net/p/oggstreamer/oggstreamer-webgui/ci/master/tree/

- Lizenz: GPLv2

Linux- and Windows Updatertool:

http://sourceforge.net/p/oggstreamer/OggStreamerPackage/ci/master/tree/

-Lizenz: GPLv2 (contains putty licensed under MIT)

  • 1 × Lantronix XPortPro Embedded Linux RS232 to Ethernet Module
  • 1 × STM8S105 Microprocessors, Microcontrollers, DSPs / Microcontrollers (MCUs)
  • 1 × VS1063 AudioDSP
  • 2 × LD1117 Power Management ICs / Linear Voltage Regulators and LDOs
  • 2 × LME49721-SO Audio OPA

  • Thoughts on PayAsYouWish-OpenSourceHardware

    georg ottinger07/26/2014 at 08:05 0 comments

    The OggStreamer-Device started as a Hobby-project and evolved over time – it is an ongoing Experiment so to say – and it was never really cost optimized. Design decisions were taken to take the "simple route" and to satisfy quality requirements. A pilot run of 12 devices was accomplished with the generous support of many friendly people and our supporters. And in the End of 2012 the project got supported by the "Internet Foundation Austria" , who acknowledged the value of this Project and OpenSourceHardware in general. So the OggStreamer became part of the “NetIdee 2012″ sponsored projects. In detail this ment that some hours (lets estimate a quarter) of our work was paid and what is more interessting for this project we had the ressources to produce 54 devices - which put us in the fourtunate situation that we had some devices we could give away regardless what we would get back in return. 

    Inspired by PayAsYouWish restaurants were the client can decide what to pay for the meal - we came up with the Idea of PayAsYouWish-OpenSourceHardware, which was guided by the following thoughts:

    1. We want to spread the device in the world
    2. Every Radio/Hackerspace/Medialab/Developer should be able to get one if desired - and therefore recipient can choose an amount of money suiting his financial possibilities.
    3. All the money collected from this PayAsYouWish campaign should spark further development at our CommunityCenter/MakerSpace the "Open Technology Labratory Vöcklabruck". Not necessarily Hardware-projects but all kind of developments in the in the technical/social/cultural domain.


    Till now we shipped around 40 devices, some of them we exchanged with other Hardware-Projects, in one case we gave them away for free and for the others we got PayAsYouWish compensations ranging from 5 to 350 Euros.

  • Switching to an OpenSource Compiler for STM8 microcontroller

    georg ottinger07/26/2014 at 07:33 0 comments

    The first firmware for the OggStreamer was developed using the freely available Kickstart-Version of the IAR-Compiler which was a good for a quick start and good for debugging the Firmware, but - espacially for a OpenSourceHardware project - other alternatives would be more appriciated, features like OpenSource and Linux Support would be highly desireable - during the course of the OggStreamer Development the SDCC-Compiler Team choose the STM8 Platform to be included in the SDCC-Compiler. So it happend that OggStreamer was one of the first real-life projects relying on the SDCC for its firmware - I could provide feedback to fix bugs in early versions of the STM8-SDCC compiler - many thanks to Philipp Klaus Krause and Valentin Dudouyt aswell as the whole sdcc-team for the first class support on this OpenSource Tool and their quick fixes within days.

    The first test of the SDCC compiler on the OggStreamer looked like this:

    VID 20130529 172422 from Georg Ottinger on Vimeo.

  • (THT) Soldering the PCB

    georg ottinger07/13/2014 at 13:32 0 comments

    As the PCBs contain both SMT and THT components there are two passes needed to solder the PCB. The SMT soldering is prefereable done by a pick'n'place and reflow process. If you need to solder the SMT parts by hand this is also quite easy doable as we restricted ourselfs to the use of 0805 as the smallest components. I soldered the first device completely by hand and it took my about 4 hours to do the job. For our run of the small series we asked a local electronic manufacturer to do the SMT soldering for us. Soldering the THT components remaind as a job to be done and I also documented the process with two videos - some of them are rather boring - so consider them for documentation purpose ;)

    THT Soldering Part I

    oggstreamer-solder-part1 from Georg Ottinger on Vimeo.


    THT Soldering Part II

    oggstreamer-solder-part2 from Georg Ottinger on Vimeo.

  • Video Explanation of the PCB

    georg ottinger07/13/2014 at 13:18 0 comments

    An explanation of the PCB in more detail...

    OggStreamer PCBs explained from Georg Ottinger on Vimeo.

  • Schematics

    georg ottinger07/13/2014 at 10:27 0 comments

    Here are the schematics released under CC-BY-SA 3.0

    The Power Section with LDOs, Linux Module and STM8 Microcontroller + UI (Leds)

    Larger Image

    We use a Poly-Fuse (500mA) to protect the circuit from any mal-function. Also a diode is added to protect against reversed polarity. As we really want this device to last long we also added a Transzorb-Diode which protects for Over-Voltage Spikes. There are two LDOs (3v3 and 1v8) - we used LDOs to keep the design simple and not to go through the strougle of makeing Switching-Buck-Converters EMC-Compliant. You can also note that we are using a lot of ferrite beads in order to cut high frequency components aswell on signal and on power lines - maybe this design already exeterates the use of ferrite beads :) 

    The XportPro Linux Module communicates via RX, TX RS-232 with the STM8 - The ResetLine for the STM8 and the Input-Button are also connected to the XportPro directly. We further added another controll Line from XportPro to STM8 which might be used in Future for more eleborated protocoll. You can find the details of the communication portocoll between XPortPro and STM8 here.

    The STM8 drives the LEDs which are muxed and run at about 450 Hz. And in the upper left you can see some optional powermonitoring/reset circuits which are currently not populated.

    The Audio Section with Audio DSP and Input- Output Amplifier

    In the middle you can see the AudioDSP VS1063. On the left there are the Input Amplifieres. Once again you can note the ferrite beads that will cut off the (very) high frequency components - In order to reduce interference from for example cell phones that would introduce the well known ta-tat-tat-ta noise.

    On the Output side we also added a Amplifier in order to add flexibility to the Output levels - May be the Output Amp is a bit too much as the VS1063 can drive moderate Loads on its own. But with this configuration it is possible to have Input and Output Signals approaching 5V Peak-to-Peak.

    For the Amps we used high quality LME49721.

    Larger Image

    You can download the EDA-Source of this project here. (License: CC-SA-BY 3.0)

View all 5 project logs

  • 1
    Step 1

    The Prototype is built using a standard-sized 160mmx100mm breadboard, It basically combines three modules. The XportPro, the STM8S105 uC and the VS1053 (the final device will utilize an VS1063)

    The STM8S105 comes premounted on  the pcb of the STM8S-Discovery KIT, which can be seperated from the programmer board.

    The VS1053 on the prototyp is mounted on a Sparkfun Breakout Board

View all instructions

Enjoy this project?

Share

Discussions

Adam Fabio wrote 06/23/2014 at 04:07 point
Hi Georg, Thanks for submitting your LiveRadio streaming project to The Hackaday Prize! One would think live internet audio broadcasting would be easier by now - but I've seen myself that it is either very difficult, or very expensive. It's sounds like you're pretty well into your project already, but don't forget to keep the pictures, videos, and documents flowing as you progress.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates