organized files further
[physical.git] / misc / portable stereo active speaker / index.html
diff --git a/misc/portable stereo active speaker/index.html b/misc/portable stereo active speaker/index.html
new file mode 100644 (file)
index 0000000..510d483
--- /dev/null
@@ -0,0 +1,805 @@
+<!doctype html>
+<html lang="en">
+<head>
+<title>Portable stereo speaker</title>
+<!-- 2020-04-12 P 23:58 -->
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="generator" content="Org-mode">
+<meta name="author" content="Svjatoslav Agejenko">
+<link href="https://bootswatch.com/3/darkly/bootstrap.min.css" rel="stylesheet">
+<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/js/bootstrap.min.js"></script>
+<style type="text/css">
+footer {background-color: #111 !important;}
+pre {background-color: #111; color: #ccc;}
+</style>
+<style type="text/css">
+/* org mode styles on top of twbs */
+
+html {
+    position: relative;
+    min-height: 100%;
+}
+
+body {
+    font-size: 18px;
+    margin-bottom: 105px;
+}
+
+footer {
+    position: absolute;
+    bottom: 0;
+    width: 100%;
+    height: 101px;
+    background-color: #f5f5f5;
+}
+
+footer > div {
+    padding: 10px;
+}
+
+footer p {
+    margin: 0 0 5px;
+    text-align: center;
+    font-size: 16px;
+}
+
+#table-of-contents {
+    margin-top: 20px;
+    margin-bottom: 20px;
+}
+
+blockquote p {
+    font-size: 18px;
+}
+
+pre {
+    font-size: 16px;
+}
+
+.footpara {
+    display: inline-block;
+}
+
+figcaption {
+  font-size: 16px;
+  color: #666;
+  font-style: italic;
+  padding-bottom: 15px;
+}
+
+/* from twbs docs */
+
+.bs-docs-sidebar.affix {
+    position: static;
+}
+@media (min-width: 768px) {
+    .bs-docs-sidebar {
+        padding-left: 20px;
+    }
+}
+
+/* All levels of nav */
+.bs-docs-sidebar .nav > li > a {
+    display: block;
+    padding: 4px 20px;
+    font-size: 14px;
+    font-weight: 500;
+    color: #999;
+}
+.bs-docs-sidebar .nav > li > a:hover,
+.bs-docs-sidebar .nav > li > a:focus {
+    padding-left: 19px;
+    color: #A1283B;
+    text-decoration: none;
+    background-color: transparent;
+    border-left: 1px solid #A1283B;
+}
+.bs-docs-sidebar .nav > .active > a,
+.bs-docs-sidebar .nav > .active:hover > a,
+.bs-docs-sidebar .nav > .active:focus > a {
+    padding-left: 18px;
+    font-weight: bold;
+    color: #A1283B;
+    background-color: transparent;
+    border-left: 2px solid #A1283B;
+}
+
+/* Nav: second level (shown on .active) */
+.bs-docs-sidebar .nav .nav {
+    display: none; /* Hide by default, but at >768px, show it */
+    padding-bottom: 10px;
+}
+.bs-docs-sidebar .nav .nav > li > a {
+    padding-top: 1px;
+    padding-bottom: 1px;
+    padding-left: 30px;
+    font-size: 12px;
+    font-weight: normal;
+}
+.bs-docs-sidebar .nav .nav > li > a:hover,
+.bs-docs-sidebar .nav .nav > li > a:focus {
+    padding-left: 29px;
+}
+.bs-docs-sidebar .nav .nav > .active > a,
+.bs-docs-sidebar .nav .nav > .active:hover > a,
+.bs-docs-sidebar .nav .nav > .active:focus > a {
+    padding-left: 28px;
+    font-weight: 500;
+}
+
+/* Nav: third level (shown on .active) */
+.bs-docs-sidebar .nav .nav .nav {
+    padding-bottom: 10px;
+}
+.bs-docs-sidebar .nav .nav .nav > li > a {
+    padding-top: 1px;
+    padding-bottom: 1px;
+    padding-left: 40px;
+    font-size: 12px;
+    font-weight: normal;
+}
+.bs-docs-sidebar .nav .nav .nav > li > a:hover,
+.bs-docs-sidebar .nav .nav .nav > li > a:focus {
+    padding-left: 39px;
+}
+.bs-docs-sidebar .nav .nav .nav > .active > a,
+.bs-docs-sidebar .nav .nav .nav > .active:hover > a,
+.bs-docs-sidebar .nav .nav .nav > .active:focus > a {
+    padding-left: 38px;
+    font-weight: 500;
+}
+
+/* Show and affix the side nav when space allows it */
+@media (min-width: 992px) {
+    .bs-docs-sidebar .nav > .active > ul {
+        display: block;
+    }
+    /* Widen the fixed sidebar */
+    .bs-docs-sidebar.affix,
+    .bs-docs-sidebar.affix-bottom {
+        width: 213px;
+    }
+    .bs-docs-sidebar.affix {
+        position: fixed; /* Undo the static from mobile first approach */
+        top: 20px;
+    }
+    .bs-docs-sidebar.affix-bottom {
+        position: absolute; /* Undo the static from mobile first approach */
+    }
+    .bs-docs-sidebar.affix .bs-docs-sidenav,.bs-docs-sidebar.affix-bottom .bs-docs-sidenav {
+        margin-top: 0;
+        margin-bottom: 0
+    }
+}
+@media (min-width: 1200px) {
+    /* Widen the fixed sidebar again */
+    .bs-docs-sidebar.affix-bottom,
+    .bs-docs-sidebar.affix {
+        width: 263px;
+    }
+}
+</style>
+<script type="text/javascript">
+$(function() {
+    'use strict';
+
+    $('.bs-docs-sidebar li').first().addClass('active');
+
+    $(document.body).scrollspy({target: '.bs-docs-sidebar'});
+
+    $('.bs-docs-sidebar').affix();
+});
+</script>
+</head>
+<body>
+<div id="content" class="container">
+<div class="row"><div class="col-md-9"><h1 class="title">Portable stereo speaker</h1>
+
+<div id="outline-container-sec-1" class="outline-2">
+<h2 id="sec-1"><span class="section-number-2">1</span> General</h2>
+<div class="outline-text-2" id="text-1">
+<ul class="org-ul">
+<li>DISCLAIMER: I DO ELECTRONICS AND 3D DESIGN SOLELY AS A HOBBY. THERE
+COULD BE ERRORS THAT CAN RESULT IN ALL KINDS OF DAMAGE. USE THESE
+DESIGNS AT YOUR OWN RISK.
+</li>
+
+<li>This design is released under Creative Commons Zero (CC0) license.
+</li>
+
+<li>Author:
+<ul class="org-ul">
+<li>Svjatoslav Agejenko
+</li>
+<li>Homepage: <a href="https://svjatoslav.eu">https://svjatoslav.eu</a>
+</li>
+<li>Email: <a href="mailto://svjatoslav@svjatoslav.eu">svjatoslav@svjatoslav.eu</a>
+</li>
+</ul>
+</li>
+
+<li>See also:
+<ul class="org-ul">
+<li><a href="../../index.html">Other physical projects in this repository</a>
+</li>
+<li><a href="https://www.svjatoslav.eu/projects/">Other projects hosted at svjatoslav.eu</a>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+
+<div id="outline-container-sec-2" class="outline-2">
+<h2 id="sec-2"><span class="section-number-2">2</span> Project description</h2>
+<div class="outline-text-2" id="text-2">
+<p>
+I had pair of good compact stereo speakers lying uselessly around as
+well as secondhand TDA2030 Chinese knockoff audio amplifier chips.
+Also I wanted to test modular construction approach: motherboard with
+shared bus and functionality realized via pluggable modules. So I
+built stereo speaker:
+</p>
+
+
+<figure>
+<p><img src="make.png" class="img-responsive" alt="make.png">
+</p>
+</figure>
+
+<p>
+Indicator on the front panel shows available power within the
+system. Ideally it should be at the maximum. It drops when batteries
+run empty or when consumed power (too loud music) is greater than
+onboard power supply or batteries can handle. It has on/off switch and
+stereo audio input. Audio input impedance is about 100 ohms.
+</p>
+
+
+<figure>
+<p><img src="make,%20side.png" class="img-responsive" alt="make,%20side.png">
+</p>
+</figure>
+
+<p>
+Idea for the holes on the top and smaller ones on the bottom back is
+to enable air flow for passive cooling.
+</p>
+
+
+<figure>
+<p><img src="make,%20back.png" class="img-responsive" alt="make,%20back.png">
+</p>
+</figure>
+
+<p>
+Entire construction is made of parts, no larger than
+120x120x120mm. Maximum for my printer.
+</p>
+</div>
+</div>
+
+<div id="outline-container-sec-3" class="outline-2">
+<h2 id="sec-3"><span class="section-number-2">3</span> Battery holder</h2>
+<div class="outline-text-2" id="text-3">
+<p>
+Device is powered by 4 times AA NiMH batteries (1.2V each).
+</p>
+
+
+<figure>
+<p><img src="battery%20holder/schematic.png" class="img-responsive" alt="schematic.png">
+</p>
+</figure>
+
+<p>
+I happened to have AA battery adapters lying around with different
+bottom hole configurations. Therefore this weird hole design:
+</p>
+
+
+<figure>
+<p><img src="battery%20holder/battery%20holder.png" class="img-responsive" alt="battery%20holder.png">
+</p>
+</figure>
+
+<p>
+Download:
+</p>
+<ul class="org-ul">
+<li><a href="battery%20holder/battery%20holder.FCStd">FreeCAD file</a>
+</li>
+<li><a href="battery%20holder/battery%20holder.stl">STL file</a>
+</li>
+</ul>
+
+<p>
+Result:
+<img src="battery%20holder/make.png" class="img-responsive" alt="make.png">
+</p>
+
+<p>
+Attaches to the back of the body:
+<img src="battery%20holder/mounted%20on%20the%20back.png" class="img-responsive" alt="mounted%20on%20the%20back.png">
+</p>
+</div>
+</div>
+
+<div id="outline-container-sec-4" class="outline-2">
+<h2 id="sec-4"><span class="section-number-2">4</span> 20V up-step module</h2>
+<div class="outline-text-2" id="text-4">
+<p>
+Battery pack voltage is routed through main on/off switch on the front
+panel, and then it goes to the 20V up-step module.
+</p>
+
+
+<figure>
+<p><img src="20V%20upstep%20module/schematic.png" class="img-responsive" alt="schematic.png">
+</p>
+</figure>
+
+<p>
+It uses ready made upstep module, but adds extra voltage filtering via
+inductor and capacitors.
+</p>
+
+
+<figure>
+<p><img src="20V%20upstep%20module/make.png" class="img-responsive" alt="make.png">
+</p>
+</figure>
+</div>
+</div>
+
+<div id="outline-container-sec-5" class="outline-2">
+<h2 id="sec-5"><span class="section-number-2">5</span> Main board</h2>
+<div class="outline-text-2" id="text-5">
+<p>
+Voltage upstep above sits on top of main board (motherboard). It has
+uniform central bus that spans all connectors.
+</p>
+
+
+<figure>
+<p><img src="main%20board/internal%20bus.png" class="img-responsive" alt="internal%20bus.png">
+</p>
+</figure>
+
+
+<figure>
+<p><img src="main%20board/bus%20on%20the%20bottom,%202.png" class="img-responsive" alt="bus%20on%20the%20bottom,%202.png">
+</p>
+</figure>
+
+<p>
+First row of the main board is special IO terminal (for connecting
+speakers, front panel, etc..)
+</p>
+
+
+<figure>
+<p><img src="main%20board/IO%20terminal.png" class="img-responsive" alt="IO%20terminal.png">
+</p>
+</figure>
+
+<p>
+Remaining rows are for connecting boards:
+</p>
+
+
+<figure>
+<p><img src="main%20board/1.png" class="img-responsive" alt="1.png">
+</p>
+</figure>
+
+<p>
+To provide structural support, main board is attached to frame:
+</p>
+
+
+<figure>
+<p><img src="main%20board/board%20fixator%20body.png" class="img-responsive" alt="board%20fixator%20body.png">
+</p>
+</figure>
+
+<p>
+Download:
+</p>
+<ul class="org-ul">
+<li><a href="main%20board/board%20fixator%20body.FCStd">FreeCAD file</a>
+</li>
+<li><a href="main%20board/board%20fixator%20body.stl">STL file</a>
+</li>
+</ul>
+
+<p>
+And boards plugged into main board are fixed at the top, using clip:
+</p>
+
+
+<figure>
+<p><img src="main%20board/board%20fixator%20top%20clip.png" class="img-responsive" alt="board%20fixator%20top%20clip.png">
+</p>
+</figure>
+
+<p>
+Download:
+</p>
+<ul class="org-ul">
+<li><a href="main%20board/board%20fixator%20top%20clip.FCStd">FreeCAD file</a>
+</li>
+<li><a href="main%20board/board%20fixator%20top%20clip.stl">STL file</a>
+</li>
+</ul>
+
+<p>
+Result:
+</p>
+
+
+<figure>
+<p><img src="main%20board/bus%20on%20the%20bottom,%201.png" class="img-responsive" alt="bus%20on%20the%20bottom,%201.png">
+</p>
+</figure>
+
+
+<figure>
+<p><img src="main%20board/board%20fixator.png" class="img-responsive" alt="board%20fixator.png">
+</p>
+</figure>
+</div>
+</div>
+
+<div id="outline-container-sec-6" class="outline-2">
+<h2 id="sec-6"><span class="section-number-2">6</span> Mono audio amplifier module</h2>
+<div class="outline-text-2" id="text-6">
+<p>
+Design uses scavenged secondhand Chinese TDA2030 audio amp
+clones. Each chip is mono audio amplifier. Therefore 2 almost
+identical audio amp modules had to be built, one for left speaker, one
+for right.
+</p>
+
+
+<figure>
+<p><img src="mono%20audio%20amp%20module/schematic.png" class="img-responsive" alt="schematic.png">
+</p>
+</figure>
+
+<p>
+I like to build on top of prototype PCBs. Gives results much faster
+for one-off projects. Before soldering, I solve component layout on
+paper:
+</p>
+
+
+<figure>
+<p><img src="mono%20audio%20amp%20module/PCB%20layout.png" class="img-responsive" alt="PCB%20layout.png">
+</p>
+</figure>
+
+<p>
+Result - front:
+</p>
+
+
+<figure>
+<p><img src="mono%20audio%20amp%20module/assembled%20front.png" class="img-responsive" alt="assembled%20front.png">
+</p>
+</figure>
+
+<p>
+Result - back:
+</p>
+
+
+<figure>
+<p><img src="mono%20audio%20amp%20module/assembled%20back.png" class="img-responsive" alt="assembled%20back.png">
+</p>
+</figure>
+
+<p>
+Here copper tape is used as improvised heatsink.
+</p>
+</div>
+</div>
+
+<div id="outline-container-sec-7" class="outline-2">
+<h2 id="sec-7"><span class="section-number-2">7</span> Speakers</h2>
+<div class="outline-text-2" id="text-7">
+<p>
+High frequency small speaker and medium frequency bigger speaker are
+combined.
+</p>
+
+
+<figure>
+<p><img src="speakers/schematic.png" class="img-responsive" alt="schematic.png">
+</p>
+</figure>
+
+<p>
+Capacitor acts as high-pass filter on top of tiny PCB:
+</p>
+
+
+<figure>
+<p><img src="speakers/PCB%20layout.png" class="img-responsive" alt="PCB%20layout.png">
+</p>
+</figure>
+
+<p>
+Speaker enclosure:
+</p>
+
+
+<figure>
+<p><img src="speakers/speaker%20enclosure.png" class="img-responsive" alt="speaker%20enclosure.png">
+</p>
+</figure>
+
+<p>
+Download:
+</p>
+<ul class="org-ul">
+<li><a href="speakers/speaker%20enclosure.FCStd">FreeCAD file</a>
+</li>
+<li><a href="speakers/speaker%20enclosure.stl">STL file</a>
+</li>
+</ul>
+
+<p>
+Speaker enclosure cover:
+</p>
+
+
+<figure>
+<p><img src="speakers/speaker%20enclosure%20cover.png" class="img-responsive" alt="speaker%20enclosure%20cover.png">
+</p>
+</figure>
+
+<p>
+Download:
+</p>
+<ul class="org-ul">
+<li><a href="speakers/speaker%20enclosure%20cover.FCStd">FreeCAD file</a>
+</li>
+<li><a href="speakers/speaker%20enclosure%20cover.stl">STL file</a>
+</li>
+</ul>
+
+<p>
+Result:
+</p>
+
+
+<figure>
+<p><img src="speakers/make.png" class="img-responsive" alt="make.png">
+</p>
+</figure>
+</div>
+</div>
+
+<div id="outline-container-sec-8" class="outline-2">
+<h2 id="sec-8"><span class="section-number-2">8</span> Front panel</h2>
+<div class="outline-text-2" id="text-8">
+<p>
+Initial idea was really simple panel:
+</p>
+<ul class="org-ul">
+<li>on/off switch
+</li>
+<li>system power indicator
+</li>
+<li>stereo audio input
+</li>
+</ul>
+
+<p>
+But, since I'm using "agile" approach, during load-testing, it become
+clear that active fan based cooling would be nice (when playing loud
+music). I found tiny cooler fan that needs 5 volts to operate. Also I
+need to power backlight for power indicator. For both of these cases,
+I decided to add another voltage up-step module (target voltage output
+set to 6V). This time directly on the front panel.
+</p>
+
+
+<figure>
+<p><img src="front%20panel/schematic.png" class="img-responsive" alt="schematic.png">
+</p>
+</figure>
+
+<p>
+Front panel case:
+</p>
+
+
+<figure>
+<p><img src="front%20panel/front%20panel,%20front.png" class="img-responsive" alt="front%20panel,%20front.png">
+</p>
+</figure>
+
+
+<figure>
+<p><img src="front%20panel/front%20panel,%20back.png" class="img-responsive" alt="front%20panel,%20back.png">
+</p>
+</figure>
+
+<p>
+Electronics fits inside:
+</p>
+
+
+<figure>
+<p><img src="front%20panel/front%20panel,%20back,%20make.png" class="img-responsive" alt="front%20panel,%20back,%20make.png">
+</p>
+</figure>
+
+<p>
+Front view:
+</p>
+
+
+<figure>
+<p><img src="front%20panel/front%20panel,%20front,%20make.png" class="img-responsive" alt="front%20panel,%20front,%20make.png">
+</p>
+</figure>
+
+<p>
+And attaches to the remaining components:
+</p>
+
+
+<figure>
+<p><img src="front%20panel/attachment.png" class="img-responsive" alt="attachment.png">
+</p>
+</figure>
+</div>
+</div>
+
+
+<div id="outline-container-sec-9" class="outline-2">
+<h2 id="sec-9"><span class="section-number-2">9</span> Extra capacitors</h2>
+<div class="outline-text-2" id="text-9">
+<p>
+Another thing that become clear during load-testing: output
+power/volume can be further enhanced by adding high power capacitors
+to even out load on primary 20V up-step module.
+</p>
+
+
+<figure>
+<p><img src="extra%20capacitors/extra%20caps.png" class="img-responsive" alt="extra%20caps.png">
+</p>
+</figure>
+
+<p>
+Download:
+</p>
+<ul class="org-ul">
+<li><a href="extra%20capacitors/extra%20caps.FCStd">FreeCAD project</a>
+</li>
+<li><a href="extra%20capacitors/extra%20caps.stl">STL file</a>
+</li>
+</ul>
+
+<p>
+Extra caps are mounted on top of the speaker and electrically attached
+to the main board.
+</p>
+
+
+<figure>
+<p><img src="extra%20capacitors/make.png" class="img-responsive" alt="make.png">
+</p>
+</figure>
+</div>
+</div>
+
+<div id="outline-container-sec-10" class="outline-2">
+<h2 id="sec-10"><span class="section-number-2">10</span> Center box</h2>
+<div class="outline-text-2" id="text-10">
+<p>
+Last physical part, to attach it all together: central body.
+</p>
+
+<p>
+Front:
+<img src="center%20box/front.png" class="img-responsive" alt="front.png">
+</p>
+
+<p>
+Back:
+<img src="center%20box/back.png" class="img-responsive" alt="back.png">
+</p>
+
+<p>
+Download:
+</p>
+<ul class="org-ul">
+<li><a href="center%20box/center%20box.FCStd">FreeCAD file</a>
+</li>
+<li><a href="center%20box/center%20box.stl">STL file</a>
+</li>
+</ul>
+</div>
+</div>
+
+
+<div id="outline-container-sec-11" class="outline-2">
+<h2 id="sec-11"><span class="section-number-2">11</span> Conclusions / TODO</h2>
+<div class="outline-text-2" id="text-11">
+<p>
+These things could be done better:
+</p>
+
+<ul class="org-ul">
+<li>Instead of using undersized heatsinks on the audio amplifiers and
+need for active cooling as a consequence, it would be better to try
+to mount audio amplifier chip on top of speaker metallic body. It
+would provide plenty of cooling and reduces power losses within
+cable, since amplifier would be as close to the speaker as possible.
+</li>
+
+<li>I used agile design. That is, implemented functionality ad-hoc. If I
+had done design in advance, then I could have had smarter connector
+layout between main board and front panel. That is: Instead of
+multiple smaller cables, one wide (multi connector) cable.
+</li>
+
+<li>Screw holes are too close to the edges on the front panel.
+</li>
+
+<li>It would be better if screw heads were slightly buried within
+construction body.
+</li>
+</ul>
+
+
+<p>
+Overall, it was good learning experience and I was able to test
+various ideas on it. Will add cooler later :)
+</p>
+
+
+<p>
+Photo of initial PSU + audio amp test:
+</p>
+
+
+<figure>
+<p><img src="initial%20test.png" class="img-responsive" alt="initial%20test.png">
+</p>
+</figure>
+</div>
+</div>
+</div><div class="col-md-3"><nav id="table-of-contents">
+<div id="text-table-of-contents" class="bs-docs-sidebar">
+<ul class="nav">
+<li><a href="#sec-1">1. General</a></li>
+<li><a href="#sec-2">2. Project description</a></li>
+<li><a href="#sec-3">3. Battery holder</a></li>
+<li><a href="#sec-4">4. 20V up-step module</a></li>
+<li><a href="#sec-5">5. Main board</a></li>
+<li><a href="#sec-6">6. Mono audio amplifier module</a></li>
+<li><a href="#sec-7">7. Speakers</a></li>
+<li><a href="#sec-8">8. Front panel</a></li>
+<li><a href="#sec-9">9. Extra capacitors</a></li>
+<li><a href="#sec-10">10. Center box</a></li>
+<li><a href="#sec-11">11. Conclusions / TODO</a></li>
+</ul>
+</div>
+</nav>
+</div></div></div>
+<footer id="postamble" class="">
+<div><p class="author">Author: Svjatoslav Agejenko</p>
+<p class="date">Created: 2020-04-12 P 23:58</p>
+<p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 26.1 (<a href="http://orgmode.org">Org-mode</a> 9.1.9)</p>
+</div>
+</footer>
+</body>
+</html>