-
-
Notifications
You must be signed in to change notification settings - Fork 1
Design Components
Phil Schatzmann edited this page Nov 7, 2025
·
4 revisions
A DLNA device uses UDP, HTTP, XML and SOAP to discover and manage services, which adds quite some complexity.
I implemented the functionality from scratch using the standart Arduino Network API and avoided external dependencies.
The DLNAControlPoint sets up a control point and lets you execute actions. The DLNADevice class provides the setup for a basic DLNA device service. Devices are represented by the DLNADeviceInfo class. A device registers itself on the network and answers UDP DLNA queries and requests:
- UDP communication is handled via a Scheduler and a Device Request Parser.
- HTTP requests are handled with the bundled TinyHttp Server.
- XML is generated dynamically and not stored in RAM
- XML service descriptions can be stored as char arrays in PROGMEM or generated dynamically using the XMLPrinter class
- XML Parsing can be done using the XMLParser, XMLParserPrint and XMLAttributeParser
Developing and debugging on a microcontroller is tedious; therefore this project can also be compiled and run on a Linux os OS X desktop.