Sorry to say – but I’ve dropped support for ffmp3 – the main reason for this is that flash only processes audio at 44100Hz so streaming ogg and listening with ffmp3 wasn’t possible at 48000Hz (it was just play-backed at 44100Hz). So I needed another solution for this. Its name jlGuiApplet which implements an Winamp-style Ogg/MP3-Player as a Java-Applet and supports the 48000Hz sampling-rate as well. This software is almost 5 years old but it does the job.
As you can see on the ssh-terminal running on the XportPro – streaming to 1 client produces around 1% CPU-Load at 128kbps. Also note that we are using more than 8,5 Megabytes of RAM, which means that older XPortPros with just 8Megabytes in RAM total, won’t be able to run the full OggStreamer-Software including the builtin sighttpd streaming-Server.
Mechanics and Electronics are completed (we will see what story emc-compliance testing will tell), but for now the “Hardware” is ready. The last piece to add to this puzzle was a countersunk-headed screw that holds the cinch-connector in place. I got the screw samples from Bossard – thank you.
Here some pictures:
The Rev1.0b PCBs look like the are working as they should – So it is time to publish the Gerberfiles as well, they are put in the pcb-design Repository of this project on Sourceforge. These files are licensed under CC SA-BY 3.0 and there is no warranty or liability or whatsoever.
Note that the some values of Rs and Cs already have changed (see Ticket #46) – these changes are reflected in the current Stückliste (partslist) but they are not reflected in the current Rev1.0b schematics neither in the BOM.
And be aware: It is most likely that some more adjustments around the OPA is going to happen. – and maybe I will flag the Output-Stage as optional.
The firmware of the STM8 needed some enhancement in order to provide more controlling options for vorbis quality-settings and samplerate. I decided to implement a simple one-byte protocol. The specification for the protocol can be found on the wiki.
I also implemented the protocol today and now the STM8-Firmware can be considered something like RC1 🙂
This morning I fetched the cnc-punched alu-cases from Johann, who did a great job concerning the mechanical work. Building the frontpanel, involves two main tasks:
- deflashing of the punched holes
- gluing the LED-PCB on the backside of the Frontpanel.
For the 2nd task I am using a transparent hot glue. In order to get a nice and plane look I put the Frontpanels on a glas plate first, mount them together with some handy little tools i don’t know the name of 🙂 – then I quickly cover all the LED holes with plenty of hot glue (be sure the hotglue-gun is well heated) and in time I press the LED-PCB into the still liquid hot glue – after that I put the glasplate and frontplate into the freezer (-18 °C) for just 5 Minutes, which proved out to be a good number for descent results. It turned out that the results are better if I just swift of the glasplate (instead of using Spiritus), because if the hotglue doesn’t stick to well on the glass the frontpanel comes of more easy. If the finish of the so created light-guides doesn’t look smooth it can be reworked it with a hotair-gun, (but not to long)
Before trying this “hot glue”-technique, I was considering 3D printing the Lightguids with transparent PLA. But I think the hot glue-result is way better than I could print it our Prusa Mendel – Printing a plastic by layers also might have some effects on diffusion. Also the meltingpoint of the used hotglue (200 °C) is siginficantly higher than PLA (130 °C)
I was trying really hard to get the IceCast-Server working under the XportPro-uclinux buildsystem but after more than a week of work I ended up in desperation. And I dropped the Idea of running an instance of IceCast-Server on the Device itselfs. – Of course support for upstreaming to an IceCast-Server still remains. That’s the bad news. But the good one is that I found a sleek little Streaming-Server, that just does the job as it should. It only took a few hours and the sighttpd – Server by Conrad Parker was up and running. First tests show that this Server should be able to serve around 20 Listeners directly (for really high bandwith vorbis; tested with 350kbps).
Building sighttpd is a great choice for embedded systems, as it only depends on LibOgg and LibOggz, whereas IceCast (at least) needs LibOgg, LibVorbis, LibShout, LibXML2, LibXSLT. May be it was the number of dependencies that complicated my attempts to get IceCast running. In fact it compiled just fine – but for some reason in this configuration pthread_create just didn’t work as it should… sighttpd also uses pthreads – but no problem with this configuration.
So let’s stick with sighttpd 🙂