summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
3 daysWIP: Introduce second license CC-BY-SArestructuringxengineering
TODO: add LICENSE.txt to explain which license applies to what TODO: Adapt license notices in PDF output. TODO: Add explanation in build tree.
3 daysWIP: Move `mech` directory to `case`xengineering
TODO: There are outdated references (see grep -R mech .) The directory name should reflect what is inside, not the field of engineering it belongs to.
2024-10-12doc: Update changelog for release 0.2.1HEAD0.2.1mainxengineering
2024-10-12doc: Fix and rework source links in changelogxengineering
The release 0.2.0 had a bad link. Furthermore the prefix `Source code: ` was added to the source URLs.
2024-10-12doc: Replace subsections by paragraphs in changelogxengineering
The categories like `added` or `changed` should not show up in the table of contents and should be less dominant. A `\paragraph` is more suitable for this.
2024-10-12doc: Fix quote charactersxengineering
LaTeX used to convert `'` quotes to a `’` even in verbatim environments. This is unsuitable to copy commands from the documentation to the Linux command line interface. Since this use case is very important to use the documentation this has to be fixed. Using the `upquote` package is sufficient to prevent the conversion.
2024-09-29doc: Revert change to Alpine 3.19.00.2.0xengineering
There were ALSA and SDL2 related audio issues with the latest version. Rolling back since soundbox should anyway move to a microcontroller-based solution.
2024-09-29doc: Update changelog for 0.2.0xengineering
2024-09-29doc: Fix soundbox script for IPv6xengineering
It used to listen on IPv4 requests only.
2024-09-28doc: Add unofficial support for HiFiBerry Amp2xengineering
This board is suitable to connect passive speakers to an unofficial soundbox build.
2024-09-28doc: Update changelog for IPv6-related changesxengineering
2024-09-28doc: Adapt streaming guide to IPv6xengineering
It is a bit more complex to stream via IPv6 link-local addresses. This commit adapts the user guide to it.
2024-09-28doc: Explain how to get the IPv6 address of a devicexengineering
2024-09-28doc: Add device labelxengineering
It is required for the user to know the MAC address since it is used to calculate the IPv6 address required for streaming audio to the device without additional network configuration. Thus a label containing the MAC address has to be added to the device.
2024-09-28doc: Add instructions to note down MAC addressxengineering
The MAC address is required to compute the IPv6 link-local address of the device used for streaming audio.
2024-09-28doc: Enable IPv6xengineering
soundbox should use IPv6 for streaming. IPv6 link-local addresses are well-suited for soundbox devices since they are generated by the hardware MAC address in this case. This has the advantage that they do not need external infrastructure like a DHCP server to be set up and that they are valid and unique for the whole life cycle of the device. This makes network management significantly easier.
2024-09-28doc: Remove lldpd serverxengineering
The goal is to switch to IPv6 link-local addresses only. They have the advantage that they can be static by a hardware MAC address, are suited for local network streaming and discovery can be done by using the `ping` utility. Additionally the address can be calculated based on MAC addresses which can be printed on the case and typed into the client by the user. Thus this makes network discovery only a convenience feature instead of a required one. Removing the LLDP-based discovery is the first step into this direction.
2024-09-28doc: Update to Alpine Linux version 3.20.3xengineering
No special reason for the update. Only keeping up with the state of the OS and security patches.
2024-09-27doc: Fix / improve changelog entryxengineering
2024-09-27doc: Fix typoxengineering
2024-09-26doc: Rename last section to "License"xengineering
It used to be named by the chosen license. To make the structure of the document more generic it should only be named "License".
2024-09-26doc: Rename section "Production" to "Production Guide"xengineering
2024-09-26doc: Add changelog to appendixxengineering
2024-02-02Fix wrong version string0.1.0xengineering
The `--long` option for `git describe` adds the number of commits since the last release and the Git hash always (even on a release). This is not intended. Removing this option works before and after the first release as expected.
2024-02-02doc: Replace author name by email addressxengineering
Since the name is contained inside the mail address it is not required to add both. Adding the email address is important for all kinds of feedback. This might include general reactions to the project, feature requests, legal questions or patches for improvements.
2024-02-02doc: Mention license in introduction textxengineering
This is very important information for every reader so it should be part of the first section.
2024-02-02doc: Add license text as appendixxengineering
The text of each used license is added to the documentation PDF since this might be passed to third parties without the source or build tree. Adding the licenses to the PDF makes sure they are always accessible.
2024-02-02Switch completely to CERN-OHL-Sxengineering
The CERN Open Hardware License is not restricted to mechanical or electrical design files but instead has a very wide scope (see section 1.3 of the OHL). Thus it can be applied to all contents of this repository. Having only one license makes the license structure for this project way easier. Since the OHL is written with hardware in mind it likely fits better to this open hardware project.
2024-01-31doc: Make version and date files phony targetsxengineering
This makes sure that the version / date file is always re-generated. Otherwise it is hard to make sure that e.g. the version is always aligned with the real state.
2024-01-30doc: Restrict lldpd to Unix OS not Linuxxengineering
The lldpd homepage [1] mentions Unix operating systems as host systems, not only Linux. Furthermore there is a possibly working homebrew package for MacOS. [1]: https://lldpd.github.io [2]: https://formulae.brew.sh/formula/lldpd#default
2024-01-30doc: Add section 'Getting soundbox'xengineering
2024-01-30doc: Add version information to PDF title pagexengineering
Since otherwise the Git describe output / version information is only embedded into the file name the risk is given that Git version information is lost by renaming the file.
2024-01-30doc: Reformulate variadic command definitionxengineering
The new format is closer to e.g. 'man 1 printf'.
2024-01-30doc: Move 'setup-alpine' to configuration sectionxengineering
This was never part of an installation but instead of a configuration step.
2024-01-30doc: Add section 'Bill of materials'xengineering
This is the central reference what is required to build soundbox devices.
2024-01-30doc: Rewrite introductionxengineering
The introduction was very limited so far but is important to manage expectations regarding the device.
2024-01-28doc: Add new chapter 'Developer documentation'xengineering
This new chapter should be the one with the highest level of details. The section about versioning is also moved there with this commit.
2024-01-27doc: Use Git-provided commit date for PDFxengineering
Using the date of the build makes it not-reproducible. This should be avoided. Furthermore the date on the front page should anyway reflect when the source of the document was created. Not when it was converted into a PDF.
2024-01-27doc: Switch protocol, format and codecxengineering
The following changes are included in this commit: - multicast to unicast - UDP to TCP - Matroska to ogg - MP3 to FLAC Switching to these protocols has several advantages. Avoiding multicast makes it unnecessary to care about the available multicast addresses in the local network. Unicast addresses are anyway assigned by DHCP. In a multi-room setup this has of course the disadvantage that the same data might be streamed via separate connections. The bandwidth requirement would be multiplied by the number of soundbox devices. But since a stream takes around 2 Mbit/s and we live in a world where 100 Mbit/s in a local network should not be a problem the inefficiency can be neglected. Switching from UDP to TCP has the advantage that the stream is transmitted reliably. Furthermore it avoids the situation that multiple clients stream to the same soundbox simultaneously since a single-connection TCP server is used. The switch from Matroska to ogg is done because the ogg format is recommended on the FLAC homepage. FLAC is used instead of MP3 because it is a lossless audio compression format. This is obviously superior compared to the lossy MP3 format regarding audio quality.
2024-01-27mech: Fix chinch hole positionxengineering
2024-01-26mech: Fix wrong case y dimension calculationxengineering
The y dimension of the shell connectors was assumed to be bolt_l. But this ignores that their thickness is bolt_l-t because the bolt has to go through the shell with thickness t before entering the shell connector.
2024-01-21doc: Rework user guide for streamingxengineering
The default streaming guide is now far away from the original taken from the FFmpeg streaming guide. Since the command can handle a lot of inputs its also not useful to send sine waves to soundbox devices.
2024-01-20doc: Add user guide for device discoveryxengineering
2024-01-20doc: Add OpenRC service configurationxengineering
This makes sure the audio-receiving software `ffplay` runs all the time.
2024-01-20doc: Split configuration section into subsectionsxengineering
2024-01-20doc: Add lldpd configurationxengineering
This makes a soundbox device discoverable via the Link Layer Discovery Protocol (LLDP). That way a client application can lookup the available soundbox devices inside the network to display playback options.
2024-01-14doc: Always use MP3 as audio codecxengineering
While transcoding to a lossy formate like MP3 is not recommended [1] forquality reasons it has the advantage that alway UPD / Matroska / MP3 is used for soundbox. That way the stream can be stopped and started at any time without re-launching ffplay on the soundbox device. This could make the SSH connection to the soundbox not longer needed. [1]: https://trac.ffmpeg.org/wiki/Encode/HighQualityAudio#WhenshouldItranscodeaudio
2024-01-14doc: Simplify streaming commandsxengineering
2024-01-14doc: Switch from RTP to Matroska and UDPxengineering
The Matroska format has to advantage that a stream can be stopped and the restarted at any time without executing new commands on the soundbox device. Since Matroska and RTP have similar / redundant features [1] the transport protocol is switched to plain UDP. [1]: https://en.wikipedia.org/wiki/Comparison_of_video_container_formats#cite_note-22
2024-01-14Add versioned documentation file in artifacts dirxengineering
The full soundbox-<version>- prefix was only used for the artifact tar archive name so far. This has the advantage that the file names inside that archive are shorter like 'documentation.pdf'. But sometimes it is useful to pass only the documentation around as a PDF file because it is easier for people to open it compared to a tar file. For this purpose a second artifact installation for the documentation PDF is added including the soundbox-<version>- prefix.