4 <title>Portable stereo speaker</title>
5 <!-- 2020-04-12 P 23:58 -->
7 <meta name="viewport" content="width=device-width, initial-scale=1">
8 <meta name="generator" content="Org-mode">
9 <meta name="author" content="Svjatoslav Agejenko">
10 <link href="https://bootswatch.com/3/darkly/bootstrap.min.css" rel="stylesheet">
11 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
12 <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/js/bootstrap.min.js"></script>
13 <style type="text/css">
14 footer {background-color: #111 !important;}
15 pre {background-color: #111; color: #ccc;}
17 <style type="text/css">
18 /* org mode styles on top of twbs */
35 background-color: #f5f5f5;
62 display: inline-block;
74 .bs-docs-sidebar.affix {
77 @media (min-width: 768px) {
83 /* All levels of nav */
84 .bs-docs-sidebar .nav > li > a {
91 .bs-docs-sidebar .nav > li > a:hover,
92 .bs-docs-sidebar .nav > li > a:focus {
95 text-decoration: none;
96 background-color: transparent;
97 border-left: 1px solid #A1283B;
99 .bs-docs-sidebar .nav > .active > a,
100 .bs-docs-sidebar .nav > .active:hover > a,
101 .bs-docs-sidebar .nav > .active:focus > a {
105 background-color: transparent;
106 border-left: 2px solid #A1283B;
109 /* Nav: second level (shown on .active) */
110 .bs-docs-sidebar .nav .nav {
111 display: none; /* Hide by default, but at >768px, show it */
112 padding-bottom: 10px;
114 .bs-docs-sidebar .nav .nav > li > a {
121 .bs-docs-sidebar .nav .nav > li > a:hover,
122 .bs-docs-sidebar .nav .nav > li > a:focus {
125 .bs-docs-sidebar .nav .nav > .active > a,
126 .bs-docs-sidebar .nav .nav > .active:hover > a,
127 .bs-docs-sidebar .nav .nav > .active:focus > a {
132 /* Nav: third level (shown on .active) */
133 .bs-docs-sidebar .nav .nav .nav {
134 padding-bottom: 10px;
136 .bs-docs-sidebar .nav .nav .nav > li > a {
143 .bs-docs-sidebar .nav .nav .nav > li > a:hover,
144 .bs-docs-sidebar .nav .nav .nav > li > a:focus {
147 .bs-docs-sidebar .nav .nav .nav > .active > a,
148 .bs-docs-sidebar .nav .nav .nav > .active:hover > a,
149 .bs-docs-sidebar .nav .nav .nav > .active:focus > a {
154 /* Show and affix the side nav when space allows it */
155 @media (min-width: 992px) {
156 .bs-docs-sidebar .nav > .active > ul {
159 /* Widen the fixed sidebar */
160 .bs-docs-sidebar.affix,
161 .bs-docs-sidebar.affix-bottom {
164 .bs-docs-sidebar.affix {
165 position: fixed; /* Undo the static from mobile first approach */
168 .bs-docs-sidebar.affix-bottom {
169 position: absolute; /* Undo the static from mobile first approach */
171 .bs-docs-sidebar.affix .bs-docs-sidenav,.bs-docs-sidebar.affix-bottom .bs-docs-sidenav {
176 @media (min-width: 1200px) {
177 /* Widen the fixed sidebar again */
178 .bs-docs-sidebar.affix-bottom,
179 .bs-docs-sidebar.affix {
184 <script type="text/javascript">
188 $('.bs-docs-sidebar li').first().addClass('active');
190 $(document.body).scrollspy({target: '.bs-docs-sidebar'});
192 $('.bs-docs-sidebar').affix();
197 <div id="content" class="container">
198 <div class="row"><div class="col-md-9"><h1 class="title">Portable stereo speaker</h1>
200 <div id="outline-container-sec-1" class="outline-2">
201 <h2 id="sec-1"><span class="section-number-2">1</span> General</h2>
202 <div class="outline-text-2" id="text-1">
204 <li>DISCLAIMER: I DO ELECTRONICS AND 3D DESIGN SOLELY AS A HOBBY. THERE
205 COULD BE ERRORS THAT CAN RESULT IN ALL KINDS OF DAMAGE. USE THESE
206 DESIGNS AT YOUR OWN RISK.
209 <li>This design is released under Creative Commons Zero (CC0) license.
214 <li>Svjatoslav Agejenko
216 <li>Homepage: <a href="https://svjatoslav.eu">https://svjatoslav.eu</a>
218 <li>Email: <a href="mailto://svjatoslav@svjatoslav.eu">svjatoslav@svjatoslav.eu</a>
225 <li><a href="../../index.html">Other physical projects in this repository</a>
227 <li><a href="https://www.svjatoslav.eu/projects/">Other projects hosted at svjatoslav.eu</a>
235 <div id="outline-container-sec-2" class="outline-2">
236 <h2 id="sec-2"><span class="section-number-2">2</span> Project description</h2>
237 <div class="outline-text-2" id="text-2">
239 I had pair of good compact stereo speakers lying uselessly around as
240 well as secondhand TDA2030 Chinese knockoff audio amplifier chips.
241 Also I wanted to test modular construction approach: motherboard with
242 shared bus and functionality realized via pluggable modules. So I
243 built stereo speaker:
248 <p><img src="make.png" class="img-responsive" alt="make.png">
253 Indicator on the front panel shows available power within the
254 system. Ideally it should be at the maximum. It drops when batteries
255 run empty or when consumed power (too loud music) is greater than
256 onboard power supply or batteries can handle. It has on/off switch and
257 stereo audio input. Audio input impedance is about 100 ohms.
262 <p><img src="make,%20side.png" class="img-responsive" alt="make,%20side.png">
267 Idea for the holes on the top and smaller ones on the bottom back is
268 to enable air flow for passive cooling.
273 <p><img src="make,%20back.png" class="img-responsive" alt="make,%20back.png">
278 Entire construction is made of parts, no larger than
279 120x120x120mm. Maximum for my printer.
284 <div id="outline-container-sec-3" class="outline-2">
285 <h2 id="sec-3"><span class="section-number-2">3</span> Battery holder</h2>
286 <div class="outline-text-2" id="text-3">
288 Device is powered by 4 times AA NiMH batteries (1.2V each).
293 <p><img src="battery%20holder/schematic.png" class="img-responsive" alt="schematic.png">
298 I happened to have AA battery adapters lying around with different
299 bottom hole configurations. Therefore this weird hole design:
304 <p><img src="battery%20holder/battery%20holder.png" class="img-responsive" alt="battery%20holder.png">
312 <li><a href="battery%20holder/battery%20holder.FCStd">FreeCAD file</a>
314 <li><a href="battery%20holder/battery%20holder.stl">STL file</a>
320 <img src="battery%20holder/make.png" class="img-responsive" alt="make.png">
324 Attaches to the back of the body:
325 <img src="battery%20holder/mounted%20on%20the%20back.png" class="img-responsive" alt="mounted%20on%20the%20back.png">
330 <div id="outline-container-sec-4" class="outline-2">
331 <h2 id="sec-4"><span class="section-number-2">4</span> 20V up-step module</h2>
332 <div class="outline-text-2" id="text-4">
334 Battery pack voltage is routed through main on/off switch on the front
335 panel, and then it goes to the 20V up-step module.
340 <p><img src="20V%20upstep%20module/schematic.png" class="img-responsive" alt="schematic.png">
345 It uses ready made upstep module, but adds extra voltage filtering via
346 inductor and capacitors.
351 <p><img src="20V%20upstep%20module/make.png" class="img-responsive" alt="make.png">
357 <div id="outline-container-sec-5" class="outline-2">
358 <h2 id="sec-5"><span class="section-number-2">5</span> Main board</h2>
359 <div class="outline-text-2" id="text-5">
361 Voltage upstep above sits on top of main board (motherboard). It has
362 uniform central bus that spans all connectors.
367 <p><img src="main%20board/internal%20bus.png" class="img-responsive" alt="internal%20bus.png">
373 <p><img src="main%20board/bus%20on%20the%20bottom,%202.png" class="img-responsive" alt="bus%20on%20the%20bottom,%202.png">
378 First row of the main board is special IO terminal (for connecting
379 speakers, front panel, etc..)
384 <p><img src="main%20board/IO%20terminal.png" class="img-responsive" alt="IO%20terminal.png">
389 Remaining rows are for connecting boards:
394 <p><img src="main%20board/1.png" class="img-responsive" alt="1.png">
399 To provide structural support, main board is attached to frame:
404 <p><img src="main%20board/board%20fixator%20body.png" class="img-responsive" alt="board%20fixator%20body.png">
412 <li><a href="main%20board/board%20fixator%20body.FCStd">FreeCAD file</a>
414 <li><a href="main%20board/board%20fixator%20body.stl">STL file</a>
419 And boards plugged into main board are fixed at the top, using clip:
424 <p><img src="main%20board/board%20fixator%20top%20clip.png" class="img-responsive" alt="board%20fixator%20top%20clip.png">
432 <li><a href="main%20board/board%20fixator%20top%20clip.FCStd">FreeCAD file</a>
434 <li><a href="main%20board/board%20fixator%20top%20clip.stl">STL file</a>
444 <p><img src="main%20board/bus%20on%20the%20bottom,%201.png" class="img-responsive" alt="bus%20on%20the%20bottom,%201.png">
450 <p><img src="main%20board/board%20fixator.png" class="img-responsive" alt="board%20fixator.png">
456 <div id="outline-container-sec-6" class="outline-2">
457 <h2 id="sec-6"><span class="section-number-2">6</span> Mono audio amplifier module</h2>
458 <div class="outline-text-2" id="text-6">
460 Design uses scavenged secondhand Chinese TDA2030 audio amp
461 clones. Each chip is mono audio amplifier. Therefore 2 almost
462 identical audio amp modules had to be built, one for left speaker, one
468 <p><img src="mono%20audio%20amp%20module/schematic.png" class="img-responsive" alt="schematic.png">
473 I like to build on top of prototype PCBs. Gives results much faster
474 for one-off projects. Before soldering, I solve component layout on
480 <p><img src="mono%20audio%20amp%20module/PCB%20layout.png" class="img-responsive" alt="PCB%20layout.png">
490 <p><img src="mono%20audio%20amp%20module/assembled%20front.png" class="img-responsive" alt="assembled%20front.png">
500 <p><img src="mono%20audio%20amp%20module/assembled%20back.png" class="img-responsive" alt="assembled%20back.png">
505 Here copper tape is used as improvised heatsink.
510 <div id="outline-container-sec-7" class="outline-2">
511 <h2 id="sec-7"><span class="section-number-2">7</span> Speakers</h2>
512 <div class="outline-text-2" id="text-7">
514 High frequency small speaker and medium frequency bigger speaker are
520 <p><img src="speakers/schematic.png" class="img-responsive" alt="schematic.png">
525 Capacitor acts as high-pass filter on top of tiny PCB:
530 <p><img src="speakers/PCB%20layout.png" class="img-responsive" alt="PCB%20layout.png">
540 <p><img src="speakers/speaker%20enclosure.png" class="img-responsive" alt="speaker%20enclosure.png">
548 <li><a href="speakers/speaker%20enclosure.FCStd">FreeCAD file</a>
550 <li><a href="speakers/speaker%20enclosure.stl">STL file</a>
555 Speaker enclosure cover:
560 <p><img src="speakers/speaker%20enclosure%20cover.png" class="img-responsive" alt="speaker%20enclosure%20cover.png">
568 <li><a href="speakers/speaker%20enclosure%20cover.FCStd">FreeCAD file</a>
570 <li><a href="speakers/speaker%20enclosure%20cover.stl">STL file</a>
580 <p><img src="speakers/make.png" class="img-responsive" alt="make.png">
586 <div id="outline-container-sec-8" class="outline-2">
587 <h2 id="sec-8"><span class="section-number-2">8</span> Front panel</h2>
588 <div class="outline-text-2" id="text-8">
590 Initial idea was really simple panel:
595 <li>system power indicator
597 <li>stereo audio input
602 But, since I'm using "agile" approach, during load-testing, it become
603 clear that active fan based cooling would be nice (when playing loud
604 music). I found tiny cooler fan that needs 5 volts to operate. Also I
605 need to power backlight for power indicator. For both of these cases,
606 I decided to add another voltage up-step module (target voltage output
607 set to 6V). This time directly on the front panel.
612 <p><img src="front%20panel/schematic.png" class="img-responsive" alt="schematic.png">
622 <p><img src="front%20panel/front%20panel,%20front.png" class="img-responsive" alt="front%20panel,%20front.png">
628 <p><img src="front%20panel/front%20panel,%20back.png" class="img-responsive" alt="front%20panel,%20back.png">
633 Electronics fits inside:
638 <p><img src="front%20panel/front%20panel,%20back,%20make.png" class="img-responsive" alt="front%20panel,%20back,%20make.png">
648 <p><img src="front%20panel/front%20panel,%20front,%20make.png" class="img-responsive" alt="front%20panel,%20front,%20make.png">
653 And attaches to the remaining components:
658 <p><img src="front%20panel/attachment.png" class="img-responsive" alt="attachment.png">
665 <div id="outline-container-sec-9" class="outline-2">
666 <h2 id="sec-9"><span class="section-number-2">9</span> Extra capacitors</h2>
667 <div class="outline-text-2" id="text-9">
669 Another thing that become clear during load-testing: output
670 power/volume can be further enhanced by adding high power capacitors
671 to even out load on primary 20V up-step module.
676 <p><img src="extra%20capacitors/extra%20caps.png" class="img-responsive" alt="extra%20caps.png">
684 <li><a href="extra%20capacitors/extra%20caps.FCStd">FreeCAD project</a>
686 <li><a href="extra%20capacitors/extra%20caps.stl">STL file</a>
691 Extra caps are mounted on top of the speaker and electrically attached
697 <p><img src="extra%20capacitors/make.png" class="img-responsive" alt="make.png">
703 <div id="outline-container-sec-10" class="outline-2">
704 <h2 id="sec-10"><span class="section-number-2">10</span> Center box</h2>
705 <div class="outline-text-2" id="text-10">
707 Last physical part, to attach it all together: central body.
712 <img src="center%20box/front.png" class="img-responsive" alt="front.png">
717 <img src="center%20box/back.png" class="img-responsive" alt="back.png">
724 <li><a href="center%20box/center%20box.FCStd">FreeCAD file</a>
726 <li><a href="center%20box/center%20box.stl">STL file</a>
733 <div id="outline-container-sec-11" class="outline-2">
734 <h2 id="sec-11"><span class="section-number-2">11</span> Conclusions / TODO</h2>
735 <div class="outline-text-2" id="text-11">
737 These things could be done better:
741 <li>Instead of using undersized heatsinks on the audio amplifiers and
742 need for active cooling as a consequence, it would be better to try
743 to mount audio amplifier chip on top of speaker metallic body. It
744 would provide plenty of cooling and reduces power losses within
745 cable, since amplifier would be as close to the speaker as possible.
748 <li>I used agile design. That is, implemented functionality ad-hoc. If I
749 had done design in advance, then I could have had smarter connector
750 layout between main board and front panel. That is: Instead of
751 multiple smaller cables, one wide (multi connector) cable.
754 <li>Screw holes are too close to the edges on the front panel.
757 <li>It would be better if screw heads were slightly buried within
764 Overall, it was good learning experience and I was able to test
765 various ideas on it. Will add cooler later :)
770 Photo of initial PSU + audio amp test:
775 <p><img src="initial%20test.png" class="img-responsive" alt="initial%20test.png">
780 </div><div class="col-md-3"><nav id="table-of-contents">
781 <div id="text-table-of-contents" class="bs-docs-sidebar">
783 <li><a href="#sec-1">1. General</a></li>
784 <li><a href="#sec-2">2. Project description</a></li>
785 <li><a href="#sec-3">3. Battery holder</a></li>
786 <li><a href="#sec-4">4. 20V up-step module</a></li>
787 <li><a href="#sec-5">5. Main board</a></li>
788 <li><a href="#sec-6">6. Mono audio amplifier module</a></li>
789 <li><a href="#sec-7">7. Speakers</a></li>
790 <li><a href="#sec-8">8. Front panel</a></li>
791 <li><a href="#sec-9">9. Extra capacitors</a></li>
792 <li><a href="#sec-10">10. Center box</a></li>
793 <li><a href="#sec-11">11. Conclusions / TODO</a></li>
798 <footer id="postamble" class="">
799 <div><p class="author">Author: Svjatoslav Agejenko</p>
800 <p class="date">Created: 2020-04-12 P 23:58</p>
801 <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>