Dette indlæg er alene udtryk for skribentens egen holdning.

Hvorfor har vi ikke valgt at bruge en Raspberry Pi? - En introduktion til PCB'et

5. april 2022 kl. 08:0026
Artiklen er ældre end 30 dage

Som en hver anden aktiv højttaler, skal der bygges en forstærker ind i kabinettet af STRØM højttaleren. Udover en forstærker, skal der også være plads til en streamer og et web-interface.

Dette indlæg er en introduktion til vores forstærker og streaming platform – µVox – og nogle af de overvejelser vi har gjort os indtil videre.

Microcontroller versus Single Board Computer

Der er flere der har spurgt: "hvorfor vi ikke bare benytter en Raspberry Pi (RPI) til denne højttaler"? Der findes jo rigtig nok mange bud på en streaming løsning, med RPI i fokus. Mange af disse løsninger fungere også rigtig godt.

Det første problem vi er stødt på er forstærkeren. De løsninger vi har kendskab til, er enten ikke kraftige nok. Eller også fylder de fysisk for meget til, at kunne passe ind i dette kompakte kabinet.

Artiklen fortsætter efter annoncen

Raspberry pi’en er heller ikke helt billig i forhold til en microcontroller baseret løsning (eller specielt tilgængelig i skrivende stund), og vil dermed være med til at drive den samlede udsalgspris op.

Illustration: Nicolai Bülow.

Det er også værd lige at nævne at når der benyttes en SBC (som RPI), så kører der jo et fuldt OS (Linux) under motorhjelmen. Det kan være smart (og måske endda nødvendigt) i flere use cases, men virker som unødvendig kompleksitet til en streaming højttaler. Og sådan et OS skal jo også boote. Så når højttaleren starter op, tager det hurtigt 30-60s med en RPI. For en microcontroller baseret løsning "booter" den på millisekunder [ms].

Forstærker- og Streamingplatform - µVox

Vores forstærker- og streaming-platform kalder vi for µVox og er ikke blevet udviklet specifikt til STRØM højttaleren. Den (STRØM højttaleren) er blot en af de første use cases for denne platform.

Artiklen fortsætter efter annoncen

De to væsentligste komponenter i denne platform er forstærkeren - en Infineon MA12070P - og selve hjernen, en Xtensa baseret ESP-microcontroller - ESP32 PICO-V3-02.

Hvorfor har vi valgt en ESP, når nu der allerede findes så mange audio-specifikke mikroprocessor-løsninger?

Selve hardware projektet har været undervejs længe forinden, STRØM projektet blev en realitet. Og igennem årene har vi arbejdet med mange forskellige mikroprocessorer - også andre end dem fra Espressif. En gennemgående tendens er dog, at rigtige mange løsninger egner sig dårligt til open source projekter. De befinder sig i helt eller delvist, lukkede udviklingsmiljøer samt proprietær eksempel kode. Der skal benyttes prebuilt binaries til dekoder-firmware og lign. I visse tilfælde kræves der også betaling af udviklings-licenser, for at få adgang til at købe udviklings-boards, samt at få adgang til eksempelkode.

Disse økosystemer passer - i vores optik - dårligt med udviklingen af en open source forstærker- og streamingplatform. Foruden det, har vi sjældent set et community omkring en mikroprocessor platform, så omfattende og inviterende, som det vi ser blandt ESP-tilhængerne.

ESP32 PICO-V3-02 - Microcontrolleren

Kinesiske Espressif’s Xtensa-instruktionssæt baserede ESP-mikroprocessorer er i løbet af de sidste 6-8 år blevet en favorit mikroprocessor blandt fritids, deltids og fuldtids professionelle-elektronik entusiaster. Sjældent er det set, at en ellers hidtil ukendt, ung spiller kommer svævende ind fra sidelinjen, og leverer en markedspenetrering på niveau med Espressif’s.

Omkring start tierne så vi en eksponentielt stigende efterspørgsel på mikroprocessorer med performance nok til, ligefrem at kunne drive hele linux kernen. I høj grad til brug i mobiltelefoner, men hér også særligt nævneværdigt: platforme som Raspberry Pi.

ESP32’eren lægger sig et fornuftigt sted midt imellem og drevet af et Real Time Operating System (RTOS), er der tale om en rigtig kraftig løsning:

  • 240MHz Dual Core Xtensa LX6 processor
  • 520kB ram
  • 8MB flash (op til)
  • Mulighed for 2-4MB PSRAM.
  • Integreret Bluetooth
  • 2.4GHz WiFi radio

Altsammen i en kompakt QFN48 pakke til knap 20kr!

Dog særligt væsentligt for vores applikation er ESP’ens I2S periferi-enhed og dens audio grade Audio-PLL kreds, som sikrer et pålideligt clock signal til I2S-bussen. Og samtidig tillader finjustering at dette clock signal.

Vi benytter varianten af chippen ved navn: ESP32 PICO-V3-02 da denne, foruden ovenstående, i selve chippen indeholder 8MB flash-hukommelse, samt 2MB PSRAM.
Denne variant står til 24kr.

Infineon MA12070P - Forstærkeren

Vi har til platformen µVox, valgt at bruge Infineons MA12070P klasse-D forstærker. Netop denne IC er i vores optik perfekt til formålet, grundet særligt fire parametre:

  1. Kompakt printplade aftryk (på vores nuværende print: 28 x 54mm)
  2. Yderst høj effektivitet (+90%)
  3. Digital I2S Input, samt I2C styret volumenkontrol
  4. Høj udgangseffekt (uden køleelement!)
    • 2x80W Peak @ 26V @ 4Ω @ 10%THD
    • 2x60W Peak @ 26V @ 4Ω @ 1% THD
    • 2x10W Peak @ 26V @ 4Ω @ 0.003% THD

MA12070P’en er tilmed en dansk udviklet chip, og ved +50 stk. koster den i omegnen af 40 kr. Forstærkeren gør sig yderligere positivt bemærket, da den i modsætning til konkurrerende løsninger ikke har behov for et enormt LC filter på udgangstrinnet. Dette er takket være dens patenterede multi level switching teknologi, der også bidrager til dens exceptionelle effektivitet.

Er man nysgerrig efter yderligere detaljer om den nævnte switching teknologi, kan det varmt anbefales at tage et kig på IEEE artiklen om netop denne teknologi.

Dansk udviklet forstærker

Læser man undertitlen til ovenstående artikel vil man som dedikeret læser af STRØM bloggen, bemærke at Jørgen er nævnt som medforfatter på artiklen - hvoraf sidste argument for valget af forstærker kommer.

Jørgen, som den første IC designer i det danske startup Merus Audio var i 2010 med til at udvikle den klasse-D forstærker, som skulle vise sig at blive til MA12070P’en.

µVox og STRØM

µVox er fusionen af ESP32’eren og MA12070P’en - en yderst minimalistisk all-in-one forstærker løsning, som gør det muligt for enhver højttaler, at få al funktionaliteten den moderne forbruger ville forvente af en moderne smart-højttaler.

Illustration: Nicolai Bülow.

Platformen understøtter indtil videre to forskellige HW brugergrænseflader:

  • En varient med tre trykknapper og tre RGB lysdioder
  • Og en med en roterende encoder med tryk i, til volumenkontrol og bla. skift af input-kilde

Funktionaliteten af disse input kan, og skal, naturligvis skræddersyes i softwaren.

Med et fysisk aftryk på størrelse med et kreditkort, et idle-forbrug på 0,6W, og en peak udgangseffekt på op til 2x80W, rigeligt af DSP-kapacitet, og så tilmed i et helt open source design, var valget af µVox til STRØM en selvfølge.

/Nicolai, Jørgen, Tue

26 kommentarer.  Hop til debatten
Debatten
Log ind eller opret en bruger for at deltage i debatten.
settingsDebatindstillinger
26
19. april 2022 kl. 10:33

Hvor finder jeg schematic og pcb for uVox ?

25
18. april 2022 kl. 08:08

Er eventuelt mulighed for en kablet løsning via RJ45? Eventuelt med en ekstern wifi router?

I den første version - STRØM 1.0 - går vi efter lavest fællesnævner. Vi skal have afprøvet teknologien og konceptet. Så i dette produkt (STRØM 1.0) kommer der ikke en RJ45 port. Jeg kan dog sagtens se use casen, når vi snakker commercielt brug. Her er det jo nærmest et krav med kabler til alt. Og så bliver PoE jo lige pludselig også meget interessant.

22
17. april 2022 kl. 21:45

Ikke flere enheder, der kun kører 2,4 GHz WiFi tak ... vores 2,4 GHz er fyldt helt op af trådløse kameraer, Sonos grej og alskens andet skrammel og vi kæmper med naboerne om kanalerne ... 5 GHz som en valgmulighed, tak.

21
17. april 2022 kl. 11:11

For at opnå yderligere horizontal spredning, kunne man jo også kigge ind i at vinkle enhederne horisontalt - for eksempel 5°-7° (tykkelsen på baflen tillader nok ikke mere).

Dog svært lige at forudsige hvor meget det reelt giver. Vil jo nok kræve at man tegnede en ny baffle, byggede den og målte den :-)

20
17. april 2022 kl. 10:14

Det vil være smart at lade en kanal dække f.eks fra 400Hz og op på blot én enhed, og så lade de andre tre enheder tage slæbet fra 400 Hz og ned. Med onboard DSP må det være nemt at realisere i det digitale domæne. På den måde bruger man begge kanaler i lydens tjeneste.

Selvom det giver et noget skævt load på forstærkeren, så kunne det da være sjovt at se hvordan spredningen ændre sig, med kun én enkelt enhed til at dække de øvre frekvenser. Og når man nu alligevel var i gang, skulle man nok også give det et skud med 2 enheder til de høje frekvenser. Evt. som et 1,5 vejs, for at få så meget bund som muligt.

19
15. april 2022 kl. 10:06

2 enheder til hver kanal for at fordoble output power?

Det vil være smart at lade en kanal dække f.eks fra 400Hz og op på blot én enhed, og så lade de andre tre enheder tage slæbet fra 400 Hz og ned. Med onboard DSP må det være nemt at realisere i det digitale domæne. På den måde bruger man begge kanaler i lydens tjeneste.

18
13. april 2022 kl. 19:30

Så vidt jeg husker er forstærkeren på 2 x 80 watt. 80 watt er vist rigeligt til 4 stk 2,5" fuldtone højttalere.

16
11. april 2022 kl. 20:30

Den benyttede forstærker er en stereo forstærker.

Det eneste der kræves for stereo er at lave en passiv version af højttaleren. Dvs kun kabinet med 4 enheder. Ingen elektronik.

Der skal være en udgang på den aktive højttaler der leder det forstærkede signal til den passive højttaler.

Det eneste det koster ekstra er et stik.

Ønsker man ikke at have mulighed for stereo så kan man jo bare droppe stikket når man bygger sin version.

15
11. april 2022 kl. 11:39

højtaler signalet via kabel er så et kabelspagettiproblem som skal føres fra enhed til enhed.

Det behøver det da ikke.

Kan vi være enige om, at to højtalere i det nuværende koncept kræver to strømforsyningskabler (og muligvis også to 230 V-DC konvertere)? I så fald kan man da bare have en 3. leder i kablet (indlæg #10), som fører den modsatte kanal ned til strømforsyningen og så videre op til den anden højtaler i det kabel, der jo skal være der alligevel.

Jeg kan fint følge Tue Dissings og co. ide

Det kan jeg så til gengæld ikke. Det virker som om, at man har lavet et helt færdigt projekt med bl.a. valg af microprocessor (emnet for denne tråd), enheder og kabinetdimensioner, og nu prøver man så at forsvarede den løsning mod de mange særdeles fornuftige indvendinger, der er kommet f.eks. med hensyn til spredning af lyden. Personligt fatter jeg ikke valget af ESP 32, hvor man kun kan lave digitale filtre med MAC16- eller floating point operationer, hvilket i begge tilfælde ødelægger opløsningen i forhold til en fornuftig venstrestillet arkitektur (-1 til 0,999...) med f.eks. 8 guard bits. Ja, ESP 32 er billig og har WiFi; men nogen digital signalprocessor er den altså ikke.

Jeg mindes, at jeg for vel omkring 38 år siden købte en plade med klassisk musik, hvor der blev reklameret med, at den var digitalt behandlet i studiet. Efter at have hørt halvdelen, kunne jeg ikke klare den lyd mere - og forærede pladen til min far :-) Hvis man vil behandle et HiFi signal digitalt incl. klasse-D forstærkere, skal det godt nok gøres ordentligt, hvis ikke alt andet som kabinetvolumen, højtalerenheder, frekvensgang etc. skal være fuldstændig ligegyldigt. Øretræthed er ikke noget, man kan måle.

14
11. april 2022 kl. 10:38

@Uve Sierk

Jeg tror ikke du helt tænker udviklernes ide igennem - ideen er netop så lidt kabelspagetti som muligt - dit forslag vil skabe et problem mht. det minimalistiske design. Strøm kan man finde ved stikkontakten, da der ikke tales om batteridrift eller trådløs strømoverførsel - højtaler signalet via kabel er så et kabelspagettiproblem som skal føres fra enhed til enhed. Jeg kan fint følge Tue Dissings og co. ide

13
11. april 2022 kl. 09:50

Jeg tænkte nu på en meget mere simpel løsning.

Før udgangssignalet fra den ene kanal til et stik hvor man kan tilslutte en anden passiv version af højttaleren.

Der skal et kabel til en passiv højttaler (forstærker signalet) . Der skal et kabel til en trådløs aktiv højttaler (strømforsyning). Så kabel mæssigt er der ingen forskel.

Koster forøvrigt kun et stik.

12
10. april 2022 kl. 10:28

Hvis I2S signalet er ført ud, er det så ikke kun at sende data ud i stereo til I2S, og at give mulighed for, at en ekstern forstærker og højttaler, kan tilsluttes I2S'ens anden kanal?

Det bliver nok lidt svært at realisere trådløst.

Den største udfordring med at gøre det trådløst er at sikre at clock'en er i sync på de to (eller flere) devices. Så hvordan vi gør dette på en god og pålidig måde er den udfordring der skal løses.

Der er udgivet en artikel der omhandler noget de kalder X-Sync og X-Burst, som ser ganske relevant ud: https://www.ewsn.org/file-repository/ewsn2020/162_163_grubmair.pdf?attredirects=0%26d=1

Der er også oprettet et nyt issue til formålet: https://github.com/LydByDissing/stroem/issues/23

10
9. april 2022 kl. 10:33

Som det er lige nu, ønsker vi ikke en kablet "stereo løsning". Hverken analog, eller digital. Kabler i mellem højttalerne, passer dårligt i den primære use case for denne højttaler.

Men I kan åbenbart sagtens acceptere en klodset strømforsyningsløsning til eksterne 230 V til DC konvertere med tilhørende kabelspaghetti og stikkontaktdåser på gulvet. Det er altså muligt med mere end 2 ledere i ét kabel :-)

9
8. april 2022 kl. 16:16

Som jeg forstår det, så bliver dette en mono tingest til køkkenet

Helt rigtigt. Den første version af STRØM 1.0 (heraf navnet) bliver en "mono tingest".

Som der også gives udtryk for ovenfor, og i andre kommentare i andre indlæg, så kigger vi også på hvordan det vil kunne implementeres. Altså hvordan vi kan tilføje stereo til denne platform. Håber er at det kan ske igennem en software opdatering.

8
8. april 2022 kl. 14:49

Hvorfor ikke stereo med to eens højtalere (jeres model)?

Som jeg forstår det, så bliver dette en mono tingest til køkkenet. Også som jeg forstår det, så kan det fjernstyres med signal, hvorfor så ikke også med et remote signal om, nu er det mono, nu er det stereo (2 stk) eller er tanken alt for dyr? Det vil klart give en flottere lyd. Jeg kunne se ideen i et sommerhus, kolonihavehus etc. etc. næppe i stuen, der vil et solidt anlæg nok være at fortække.

7
8. april 2022 kl. 10:50

Hej Uwe,

Jeg er på ingen måde uenig i dine forslag hér men; jeg vil gøre et forsøg på at uddybe hvorfor vi ikke er gået i denne retning.

  1. Stereo setup i kabinettet, som det er nu, bliver aldrig godt. Med så lille et kabinet vil stereo perspektivet dels være så snævert, at det praktisktalt er betydningsløst, men ligeledes (korrigér mig gerne her!) måske endda decideret destuktivt for spredningen af lyden

  2. Det ville ikke være umuligt at lave et AUX udtag til at vidredirrigere signalet ud til en sekundær enhed. Det ville bestemt heller ikke være umuligt at lave et kontakt, som bestemmer om enheder spiller Mono/Left/Right. Tilgengæld ville det at skulle have både Analog/Digital ind, og Analog/Digital ud, kræver en seriøs forøgelse af elektronikbudgettet! Snakker vi analog ud/ind, hedder det sig at vi både skal have en dedikeret ADC og DAC. Snakker vi digitalt ville det kræve en SPDIF-I2S transciever i begge ender af systemet. Uanset løsningen snakker vi +150kr. (bare for rå chip!) og endnu værre - ville vi skulle have en dedikeret DSP Chip, for at kunne håndtere to I2S input og to I2S Output - hvilket igen øger BOM'en med minimum 80kr. Rettere sagt, mere end en fordobling i BOM'en på elektronikken. - Og dette estimat er tilmed uden at medregne de fysiske stik, som heller ej er billige.

Afrundingsvis vil jeg understrege Tues tidligere pointe: Omend dette ville være fedt, ønsker vi ikke en trådet stereo løsning - dem er der rigeligt af på markedet.

Mht. til µVox er vi allerede i gang med at lave en større variant med muligheder for sådan tilkobling. - Følg med på Git'en, hvor jeg opdaterer på µVox, både relateret til, men også urelateret til STRØM :)

https://github.com/Thenicolaibulow/muVox

6
8. april 2022 kl. 10:35

Ja, Baldur, det ville nemlig være så fedt!

Desværre er Bluetooth TWS (True Wireless Stereo) ikke en funktionalitet vi uden videre kan benytte os af. For at få TWS, samt APT-X, LDAC osv. skal man over i det lukkede-bluetooth land - og det vil vi meget gerne undgå. Jeg har godt pønset på at lave en version af µVox med et proprietært Bluetooth modul på, netop for at få den funktionalitet, men bliver i min research kun mindet om, bare hvor lukket Bluetooth udvikling er. Jeg føler ingen trang til at skulle betale Bluetooth-licensering blot for at måtte få fingrene i de sløve Windows-only udviklings værktøjer, for efterfølgende ikke at være at have tilladelse til at dele ud af koden efterfølgende.

Vi arbejder endnu på at benytte 'Snapcast' protokollen til at lave multirum/trådløs stereo, men dette er endnu uden for scopet af STRØM 1.0!

^ Tilgengæld afviser ingen af os på holdet, at denne funktionalitet bliver tilgængeligt i en fremtidig software-opdatering, også for STRØM 1.0.

5
8. april 2022 kl. 07:42

Nu hvor der faktisk er en stereo forstærker i er der jo flere muligheder for at give stereo til folket.

Stereo er helt klart også noget vi kigger på, dog ikke til version 1.0 - altså kommer der ikke umiddelbart stereo i den allerførste udgave.

Som det er lige nu, ønsker vi ikke en kablet "stereo løsning". Hverken analog, eller digital. Kabler i mellem højttalerne, passer dårligt i den primære use case for denne højttaler. Dermed ikke sagt at det vil være en mulighed for andre løsningerne, baseret på µVox.

True wireless stereo er ikke helt nemt i open source, men mon ikke vi finder en god løsning :-)

4
8. april 2022 kl. 01:05

Jeg syntes at valget af ESP32 er et rigtigt godt valg - jeg tror, at RISC-V er fremtiden, og ikke ARM indstruktionssættet. ARM er kompleks og dyrt.

3
7. april 2022 kl. 18:17

Brug Bluetooth til at kommunikere med en anden identisk højtaler?

2
7. april 2022 kl. 15:45

Stereo udgave

Nu hvor der faktisk er en stereo forstærker i er der jo flere muligheder for at give stereo til folket.

  1. Sæt to enheder i hver side af kabinettet

  2. Sæt et mini jackstik eller lignende med den ene kanal til en passiv version af højttaleren. Med mulighed for at skifte mellem mono og stereo ved hjælp af en kontakt.