eigentlich wollte ich jetzt nach vielen Arbeitsstunden einen AAC Softwarecodec als Arduino-Library bereitstellen. Leider wurde mir mitgeteilt, daß hierfür eine Lizenzgebühr fällig wird. http://www.via-corp.com/us/en/licensing/aac/licensefees.html
Da eine solche Lizenzierung auch für einen MP3-Encoder oder Dekoder anfällt, habe ich diesen oben ebenfalls löschen müssen.
Ich sehe zwar ein das es Patente geben muß, jedoch sind solche Lizenzsachen für den Hobbybereich und beim Experimentieren mit Microcontrollern weniger förderlich.
!!!
Fotos, Grafiken nur über die
Upload-Option des Forums, KEINE FREMD-LINKS auf externe Fotos.
!!! Keine
Komplett-Schaltbilder, keine Fotos, keine Grafiken, auf denen
Urheberrechte Anderer (auch WEB-Seiten oder Foren) liegen! Solche Uploads werden wegen der Rechtslage kommentarlos gelöscht!
Keine Fotos, auf denen Personen erkennbar sind, ohne deren schriftliche Zustimmung.
30.07.17 14:56
BernhardWGF
nicht registriert
30.07.17 14:56
BernhardWGF
nicht registriert
Re: Bernhards Radiobasteleien...
Hallo Mitbastler und Mitleser,
nachdem ich mit meiner AAC und MP3-Bibliothek auf den Mund gefallen bin, möchte ich noch etwas zur Lizenzierung eines MP3-Softwarecodecs hinzufügen. An vielen Stellen im Internet liest man das die Patente für ein MP3-Codec abgelaufen sind und das Verfahren nun kostenlos implementiert werden kann. Stimmt so nicht! Zwar hat das Fraunhofer Institut das Lizenzprogramm eingestellt, siehe: https://www.iis.fraunhofer.de/en/ff/amm/...codecs/mp3.html so wurde dennoch von dieser Stelle folgendes mitgeteilt.
"Der Ablauf der Patente bedeutet nicht zwangsläufig, dass eine spezifische MP3-Implementierung nicht auch gewisse Teile von Patenten nutzt, die noch nicht abgelaufen sind." Die Frage, ob das MP3-Format ohne Lizenzkosten genutzt werden darf, könne also nicht pauschal beantwortet werden."
Da man als Bastler nicht so einfach entscheiden kann welche Teile noch patentgeschützt sind und welche nicht, ist hier Vorsicht geboten. Benutzt man in einem Eigenbauradio ein DSP von VLSI ist das Ganze kein Problem. Der Hersteller des DSP hat bereits die Lizenzgebühren über den Preis des DSP abgeliefert. Fraglich bleibt es, wenn man eine eigene Softwareimplementierung direkt auf dem Microcontroller laufen lässt. Als Hersteller eines "Produktes" ist man höchstwahrscheinlich auch Gebührenpflichtig, auch wenn nur ein Exemplar gebaut wurde. Sich hinter den OpenSource-Gedanken zu verstecken dürfte Patentanwälte hier nicht abschrecken tätig zu werden.
BernhardWGF:Als Hersteller eines "Produktes" ist man höchstwahrscheinlich auch Gebührenpflichtig, auch wenn nur ein Exemplar gebaut wurde. Sich hinter den OpenSource-Gedanken zu verstecken dürfte Patentanwälte hier nicht abschrecken tätig zu werden.
aber hier würde ich nicht allzu ängstlich sein, denn Du bist ja weit entfernt von einer kommerziellen Produktion. Es gibt keinen Verkauf an Dritte. Wenn dies stattfindet und beweisbar ist, dann könnte dieses zum Problem werden. Zum Hersteller eines Produktes wird man erst, wenn dieses Produkt auch kommerziell vermarktet wird. Der Rest ist einfach nur Bastelei!
Also bleibe entspannt....so meine Sicht.
Joerg
PS. Ein Problem könnte entstehen,...wenn Dritte mit im Boot sind und sich nicht an Regeln halten. Auch eine Entwicklung durch mehrere Personen könnte ein Hinweis auf kommerzielle Ambitionen sein.
ich würde Joerg Ausführungen beipflichten. Auf welch schmales Brett in einem anderen Zusammenhang Juristen allerdings auch kommen können, war beim RM unlängst zu lesen:
BernhardWGF:Als Hersteller eines "Produktes" ist man höchstwahrscheinlich auch Gebührenpflichtig, auch wenn nur ein Exemplar gebaut wurde. Sich hinter den OpenSource-Gedanken zu verstecken dürfte Patentanwälte hier nicht abschrecken tätig zu werden.
aber hier würde ich nicht allzu ängstlich sein, denn Du bist ja weit entfernt von einer kommerziellen Produktion. Es gibt keinen Verkauf an Dritte. Wenn dies stattfindet und beweisbar ist...
Hallo Joerg,
es geht hier weniger um meinen Aufbau, sondern um die Verteilung einer Codec-Implementierung durch Download in einem Forum. Jeder Download als Bibliothek oder Teil einer Firmware wäre bereits als eigenständige Instanz lizenzpflichtig, da der Programmcode ein patentiertes Verfahren umsetzt.
Das erklärt auch warum solche Softwarecodecs bzw. die Programmbibliotheken von Microcontrollerherstellern wie STM oder Microchip beim Download kostenpflichtig sind, denn hierbei fallen Lizenzgebühren an.
Im Übrigen betrifft das nicht nur Codecs sondern auch Protokolle. Beispiel I2C von Phillips. Hat der Prozessor I2C als Hardware verbaut, musste der Hersteller Lizenzgebühren pro Unit an Philips abtreten. Atmel nennt es bei seinen Prozessoren deshalb TWI statt I2C. https://de.m.wikipedia.org/wiki/I²C
Atmel führte aus lizenzrechtlichen Gründen die heute auch von einigen anderen Herstellern verwendete Bezeichnung TWI (Two-Wire-Interface) ein, technisch sind TWI und I²C identisch.[2] Allerdings ist das ursprüngliche Patent am 1. Oktober 2006 ausgelaufen, so dass keine Lizenzgebühren für die Benutzung von I²C mehr anfallen. I²C ist auch kein eingetragenes Markenzeichen von NXP Semiconductors, Markenschutz besteht lediglich für das Logo.
von der Firma Realtek gibt es interessante Wifi-SoCs die als Alternative zu den Chips von Expressif herhalten können. Preislich sind sie in der gleichen Region wie der ESP8266 und ESP32 anzufinden. Typische Devboards findet man unter den Suchbegriffen RTLduino und Ameba Arduino. Die Programmierung erfolgt auch hier mit dem gcc unter den bekannten Oberflächen wie Eclipse und Arduino IDE.
Hier habe ich mal einen tabellarischen Überblick der einzelnen SoCs erstellt.
Um die Leistungsfähigkeit der Cortex-M3 Klasse besser einordnen zu können, hier noch eine Übersicht zu den Prozessoren der Cortex-Familie.
die Software wird jetzt ständig erweitert. Es haben sich zwei weitere Bastler meiner angeschlossen, um auf Grundlage meiner Software weitere Geräte zu entwickeln.
Weitere geplante Funktionen:
- Hinzufügen des NTP-Protokolls zur Einstellung einer prozessorinternen Uhr, Fallback: MSF60, DCF77 - Programmierung mehrerer Weckzeiten über einen Internetbrowser -> WLAN Radiowecker Fallback: UKW oder DAB+ - Ansteuerung von OLEDs, TFTs - Ausgabe des Audiosignals analog und digital zur Weitergabe an einen externen Verstärker, HiFi-Anlage oder als Vorsatz für ein altes Dampfradio - Hinzufügen des POP, IMAP Protokolls -> Über ein Symbol auf dem Display soll angezeigt werden wenn neue Emails eingetroffen sind, eventuell eine Tickerfunktion die die aktuell eingetroffene eMail auf einem Display durchlaufen lässt. - Der ESP8266/32 ist in der Lage sein Wifi-Modul gleichzeitig als Client und Accesspoint bereitzustellen -> WLAN Repeaterfunktion
Ich denke da kommen noch viele weitere interessante Funktionen hinzu. Ich werde mich dabei vorallem auf die Programmierung konzentrieren, ein anderer auf die Entwicklung einer Platine.
Das Experimentieren mit den Expressif-Chips geht also weiter, ich freue mich darauf.
<wird fortgesetzt>
Viele Bastlergrüße Bernhard.
Hallo Mitleser und Bastler,
an der Firmware habe ich jetzt weiter programmiert. Zunächst wurde der FiFo-Pufferspeicher für das Streaming vergrößert und auf eine Arduino-Standardbibliothek umgestellt (QueueArray). Danach wurde das Abspielen und Puffern der Daten in zwei hoch-priorisierte Threads des Taskschedulers gelegt. Zusätzlich habe ich noch eine Anzeige hinzugefügt, die den Füllstand des Speichers anzeigt. Das erlaubt eine ungefähre Qualitätseinschätzung der Clientverbindung zum Rundfunkanbieter.
Zusätzlich habe ich eine Syncronisation der Prozessoruhr über drei Möglichkeiten implementiert. Primär erfolgt die Syncronisation über das Network-Time-Protokoll (kurz NTP) mit einem Zeitserver aus dem Internet. Ist dieser nicht erreichbar wird gewartet ob ein DCF77 oder MSF60 Signal am Prozessor anliegt. Danach erfolgt die Zeiteinstellung über diese Langwellensender. Für DCF77 habe ich ein fertiges Modul benutzt, das MSF60 Signal speise ich noch so (über ein Weltempfänger) ein bis ich ein passendes Empfangsmodul bekommen habe.
Hier eine tolles Filmchen zur Umsetzung eines MSF-Dekoders. Fand ich sehr informativ.
Leider habe ich keinen Zugang zu den über DCF77 ausgesendeten Wetterdaten. Diese sind verschlüsselt und lassen sich nur mit speziellen (gegen Zahlung einer Gebühr) erhältlichen Dekoder-ICs dekodieren. Wäre eine tolle Zusatzufunktion gewesen, aber der ESP32 hat ja auch Internet und kann sich die Daten aus dem WWW ziehen.
Da der ESP32 jetzt die genaue Zeit kennt, kann er mit der neuen Firmware auch als Internet-Radiowecker genutzt werden. Zunächst habe ich die Möglichkeit eingerichtet drei Weckzeiten über das interne Webportal des Internetradios festzulegen. Aus dem Hauptmenü heraus lässt sich das Gerät dann in den Bereitschafts-/Standby-Modus versetzen. Dabei wird alle nichtbenötigte Peripherie abgeschaltet, auch die Hintergrundbeleuchtung des Display. Die Zeitanzeige und welcher Alarm aktiv-geschaltet ist kann man dennoch ablesen.
Schön wäre es gewesen die Hintergrundbeleuchtung zu dimmen. Die benutzte Programmbibliothek bietet dazu sogar die Möglichkeit einen Helligkeitswert zwischen 0-255 (also 8Bit) ans Display zu senden. Leider reagiert mein I2C Display nicht darauf. Hier muß ich noch weitere Nachforschungen anstellen, auch wollen OLED und Touchscreens unterstützt werden.
Die Experimente und die Entwicklung der Firmware gehen also weiter.
Das ist ja schon fast eine Anspielung auf eine meiner nächsten Basteleien. Soviel vorweg, es geht wieder um Magische Augen, diese können diesmal aber mehr als nur die Feldstärke eines Senders anzeigen.
leider zieht sich die Lieferung meiner oben genannten und bestellten Realtek WiFi-SoCs auf ARM Cortex 3 Basis weiter hin. Ich war deshalb hier in Frankfurt mal ein bisschen einkaufen und habe ein paar interessante Entwicklungsboards auf Cortex M4 und Cortex M7 Basis gekauft.
Wir erinnern uns: Der Cortex M4 und M7 wird vom Hersteller als besonders leistungfähig mit Hinblick auf die digitale Signalverarbeitung beworben. Das ist für uns Radiobastler natürlich besonders interessant, das Zauberwort "Software-Defined-Radio" oder kurz SDR dürfte geläufig sein und im Netz gibt es einige Beispiele von interessanten Radios mit STM32-Chip.
STMicroelectronic liefert für die DSP-"Fetischisten" unter Uns die Boards auch gleich mit allen nötigem Zubehör aus. Neben dem Hauptprozessor mit 168 oder 216 MHz-Taktfrequenz, 1MB-Flashspeicher und 192 oder 320 kB RAM, sowie 2.4 MSPS schnellen Analog-Digitalwandlern, zwei 12-Bit DACs, gibt es dort den CS43L22 Audio-DAC mit Klasse D-Verstärker und 0.8 Watt Ausgangsleistung. Zusätzlich ein "Digital"-Mikrofon mit PDM-Ausgang und weitere Spielereien wie 3-Achsen Gyroskop, 3D-Beschleunigungsmesser, 3-fach Magnetfeldsensor usw. Der Programmieradapter (ST-Link) mit Debugging-Fähigkeiten ist natürlich auch mit auf dem Board. Alles zum Preis eines Arduino MEGA-Boards.
Auch das Blockdiagramm aus dem Datenblatt zeigt das wir es hier eher mit einem DSP als mit einer normalen MCU wie zum Beispiel dem ESP8266 zu tun haben. Ob das Rechenwerk des Cortex M4 bei gleichem Takt wirklich mehr Arbeit schafft als ein ESP8266/ESP32 werden wir später in einem Benchmark-Test sehen.
Zuletzt noch ein Wort zur Programmierung. Neben vielen kostenpflichtigen Entwicklungsumgebungen wie zum Beispiel von Keil oder Mikroelectronika gibt es auch freie, auf dem GCC und der Eclipse-IDE basierende, Programmierumgebungen. Beispielhaft sei hier CooCox - CoIDE genannt. Hier ein paar Key-Features:
Complete support for STM32 microcontrollers, STM32 Nucleo boards as well as STM32Cube software libraries. GCC C/C++ compiler. GDB-based debugger. Simplified Eclipse IDE. ST-Link support. Multi-language support: English, Chinese.
Auch auf das von Atollic angebotene und von mir präferierte TrueStudio (ebenfalls Eclipse/GCC-basieren) sei hingewiesen! https://atollic.com/truestudio/
Natürlich ist auch eine Programmierung mit der schon bekannten Arduino IDE möglich. Inwieweit jedoch dort der STLink-Programmer/Debugger unterstützt wird ist mir unbekannt.