Forum: Mikrocontroller und Digitale Elektronik System on Module für Mobilgerät?


von Florian S. (vatterger)


Lesenswert?

Moin,

bin gerade dabei, eine Art Feature-Phone zu bauen. Grund dafür sind 
Bastelwut und gnadenlose Selbstüberschätzung, man kennt es :-)

TL;DR: Kennt ihr geeignete Linux-fähige SoM mit geringem 
Standby-Verbrauch für so ein Projekt, vergleichbar mit diesem hier: 
https://www.acmesystems.it/roadrunner ?

Ich ziele auf folgende Eigenschaften ab:
1
-Grafisches Touchdisplay, kapazitiv, 24-bit RGB Interface
2
-Minimales GUI mit Touchbedienung
3
-Anrufe, SMS, Datenverbindung unterstützt
4
-Akzeptable Standby-Laufzeit, ~1 Woche mit einem ~15 Wh Akku
5
-Über kompilierte Programme erweiterbar, möglichst ohne Reboot

Ich habe NICHT vor, Android nachzubauen. Ich habe auch NICHT vor, einen 
modernen Browser da einzubauen, oder sonst irgendwelche 
Himmelfahrts-Programmieraktionen anzugehen. Die Programme, die später 
darauf laufen sollen, sind sowas wie ein Chat-Client, Notizblock, 
Bildaufnahme, SSH-Console usw. Wie man es von den alten Nokias und 
Sony-Ericssons halt kennt.

Allein aufgrund des Stromverbrauchs sind Raspberry Pi und Konsorten von 
vornherein ausgeschlossen, da müsste man alle 4 Stunden Akku aufladen...

Einen STM32 F/H7 Mikrocontroller habe ich auch in Betracht gezogen, 
allerdings ist da die USB-Hardware etwas beschränkt was die Anzahl 
Endpoints angeht und die Treiber für WLAN und LTE-Modem müsste ich 
erstmal selber schreiben, da wären wir dann wieder bei der 
Selbstüberschätzung angekommen.

Bisherige BOM:
1
-5.0" oder 4.3" IPS Touch-Display
2
-Lichtsensor zur Anpassung der Hintergrundbeleuchtung
3
-Mikrofon/Sound-Codec/Kamera je nachdem was der Prozessor an Interfaces hat
4
-SIMCOM A7600E LTE-Modem (via USB)
5
-GN-801 GNSS Modul (Ublox UBX-M8030)
6
-REALTEK RTL8188ETV SoM oder ähnliches für Wifi (via USB)
7
-SD-Karte oder QSPI-Flash-IC als Bootdrive

Daher möchte ich ein Linux-fähiges SoM heranziehen. Ich habe bereits von 
ACME-Systems das RoadRunner SoM im Visier. Es unterstützt alle 
benötigten Interfaces und Suspend-to-RAM fürs beschleunigte Aufwachen, 
hat aber "nur" einen Kern mit "nur" 500MHz: 
https://www.acmesystems.it/roadrunner

Wenn ich schon ein Betriebssystem darauf laufen lasse, dann auch gerne 
mit mehr Bumms. Kennt ihr ähnliche Module, die 2xUSB, MMC, 
24bit-RGB-Display und die üblichen UART, SPI, I2C etc unterstützen UND 
auch noch für Bastler beschaffbar sind?

Schieße ich mir mit dem SIMCOM Modem ins Bein bzw. habe ich was 
übersehen?

von No Y. (noy)


Lesenswert?

www.Phytec.de

I.MX7, AM335, I.MX6UL/ULL, STM32MP1

Sind die "kleinen". AM335 war früher im Motorola Defy verbaut.

: Bearbeitet durch User
von Florian S. (vatterger)


Lesenswert?

Diesen Hersteller hatte ich noch nicht auf dem Schirm. Dokumentation und 
Softwarepakete scheinen öffentlich verfügbar zu sein, sehr sympathisch: 
https://www.phytec.de/support/downloads/

STM32MP15 und iMX6 finde ich interessant, werde mich da mal durchwälzen.

Vielen Dank für den Tipp!

von Florian S. (vatterger)


Lesenswert?

Habe jetzt Phytek angeschrieben ob die mir für den i.MX 6 ULL ein DevKit 
und ein SoM zum verlöten klar machen können und was das denn kosten 
soll.

Werde mal berichten wie da die Rückmeldung ist...

Alternativ gibt es noch von VisionSOM diese Module im SO-DIMM Format: 
https://kamami.pl/en/modules-som-/566285-pmodul-serii-visionsom-z-procesorem-nxp-imx6-ullnbspy2-792mhz-rdzen-cortex-a7-pamiec-ram-512-mb-gniazdo-kart-microsd-wbudowany-m.html

Sind zwar nicht so kompakt aber haben dafür optional WLAN an Board und 
sind frei verfügbar zu einem vertretbaren Preis.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Florian S. schrieb:
> Allein aufgrund des Stromverbrauchs sind Raspberry Pi und Konsorten von
> vornherein ausgeschlossen, da müsste man alle 4 Stunden Akku aufladen...
Da musst du aber nochmal drüber nachdenken, denn nach meiner Erfahrung 
kochen die Hersteller von Prozessoren der selben Leistungsklasse auch 
mit ähnlichen Wasser ähnlich heiß.

> Wenn ich schon ein Betriebssystem darauf laufen lasse, dann auch gerne
> mit mehr Bumms.
Oder andersrum: wenn du die Rechenleistung des RPi willst/brauchst, dann 
wird auch dein i.MX6 gut warm.

> -Grafisches Touchdisplay, kapazitiv, 24-bit RGB Interface
Mir fällt dazu "Backlight" ein. Und die passende Frage dazu: wieviel 
Strom/Energie braucht dein Display?

: Bearbeitet durch Moderator
von No Y. (noy)


Lesenswert?

Ein i.MX6ULL kommt aber Leistungsmäßig nie in die Sphären eines RPi4..

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

No Y. schrieb:
> Ein i.MX6ULL kommt aber Leistungsmäßig nie in die Sphären eines RPi4..
Sag ich ja: von nix kommt nix.
Wenn ich Rechenleistung will, bekomme ich Wärme.

Nur bei den Idle- und Sleep-Modi kann dann eine Low-Power-CPU wirklich 
stechen. Und dann kommt es auf die verbaute Peripherie an...

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Hier gaebs Board mit SoMs von Qualcomm:

https://eragon.einfochips.com/

Datenblattsituation ist wahrscheinlich immernoch voellig desastroes; 
aber potentiell sollten diese Chips sich auch 
runtertakten/schlafenlegen/... lassen, um Energie zu sparen.

Gruss
WK

von Nikolaus S. (Firma: Golden Delicious Computers) (hns)


Lesenswert?

Wir hatten sowas vor 10 Jahren auf Basis des OMAP3 durchgezogen (weil es 
die Chips gab und mehrere 1000 Seiten technische Dokumentation). Das 
Ergebnis hieß dann "GTA04" und hatte in etwa die Rechenleistung eines 
iPhone 3GS. Erfüllte alle Deine Anforderungen (plus weitere).
Bis heute nicht wirklich gelöst ist das Problem der 
Standby-Stromaufnahme. Da hört Standard-Linux auf, weil irgendwelche 
Treiber ihren Teil im Chip nicht rechtzeitig runterfahren und sich 
niemand auf diese Optimierungen konzentriert. Wir haben den OMAP3 mit 
einem 3.12-Kernel auf ca. 20mA im Standby runterschrauben können. Und 
das Funkmodul auf 3mA. Das gab dann eine Standbyzeit von max. 48 
Stunden. Leider ist es mit neueren Kernels nie gelungen an diese 
Bestwerte wieder heranzukommen.
Dann gab es von anderen mal ein Projekt "ZeroPhone" auf Basis des RasPi 
Zero. Ist leider eingeschlafen.
Aktuelle Projekte sind Purism Librem 5 und PinePhone. Letzteres auch vom 
Preis her interessant.
Beide kann man dazu nutzen um seine eigene GUI zu stricken.

: Bearbeitet durch User
von Florian S. (vatterger)


Lesenswert?

>>> Da musst du aber nochmal drüber nachdenken, denn nach meiner Erfahrung
>>> kochen die Hersteller von Prozessoren der selben Leistungsklasse auch
>>> mit ähnlichen Wasser ähnlich heiß.

Du nimmst wohl an, dass ich Leistung für lau plus 
Microcontroller-ähnlichen Stromverbrauch erwarte, nur weil ich so ein 
Modul heranziehe :-) Ich habe mir schon ein paar Gedanken dazu gemacht. 
Mir ist klar, dass man wegen dem DRAM und anderer Peripherie kaum unter 
20mA im Standby kommen wird.

Diese Module bieten aber wenigstens Unterstützung für Suspend-to-RAM 
plus jede Menge Interfaces. Rechenleistung ist nice-to-have. Beim 
Standby-Verbrauch glänzt der Pi ganz und gar nicht: 
https://github.com/raspberrypi/linux/issues/1281
https://www.raspberrypi.org/forums/viewtopic.php?t=202067

Die Pi Foundation gibt sich keine besondere Mühe, wenn es darum geht 
irgendwelchen Software/Hardware Support dafür an den Start zu bringen.

Selbst das "Compute Module" ist nicht optimal. Es bietet 28 GPIO, was 
auch kein Problem wäre, wenn man denn ein MIPI-DSI Display nutzt (Ein 
Paralleldisplay würde 26 der 28 GPIO wegfressen). Die DSI Schnittstelle 
wird als "Ist undokumentiert und unterstützt nur offizielle Displays" 
bezeichnet. CM4 Datenblatt, Seite 12: 
https://datasheets.raspberrypi.org/cm4/cm4-datasheet.pdf

Da soll man doch bitte Paralleldisplays nutzen, ja sehr witzig.

Sucht mal nach "Raspberry Pi Suspend to ram" oder "Raspberry Pi Sleep 
Mode", da erwartet einen ein Trauerspiel...

>>> Hier gaebs Board mit SoMs von Qualcomm: https://eragon.einfochips.com/ [...]

Nette Hardware, leider ist die Situation mit der "Verfügbarkeit" von 
Dokumentation in diesem Fall ein No-Go für mich.

>>> [...] "GTA04" [...]

Tolles Projekt, ihr habt meinen vollen Respekt. Sowas in der Art möchte 
ich auch bauen, nur mit anderem Display und Modem. Ich will keine volle 
Mainstream-Distribution darauf laufen lassen, eher Buildroot oder Yocto 
mit eigenem GUI-Stack und Applikationen. Es geht mir halt ums Bauen bei 
der ganzen Sache. Ich möchte embedded Linux kennenlernen.

>>> [...] Librem 5 [...]

Als Dailydriver finde ich normale Android Smartphones mit LineageOS oder 
ähnliches ganz nett. PureOS scheint viel Bloat von den 
Desktop-Distributionen übernommen zu haben. Es wirkt auf mich als 
wüssten die Entwickler nicht ganz, ob sie jetzt ein Linux-Notebook im 
Smartphonekostüm oder ein Smartphone bauen. Die Hardware die sie 
verbauen ist wirklich großartig, aber Overkill für das was ich vorhabe. 
Schaut euch mal ein paar Videos vom Librem 5 an, das Teil krebst rum wie 
sau und das bei der netten Hardware die sie verbauen.

: Bearbeitet durch User
von Nikolaus S. (Firma: Golden Delicious Computers) (hns)


Lesenswert?

Vielleicht ist auch das hier geeignet:

https://www.microchip.com/en-us/products/microcontrollers-and-microprocessors/32-bit-mpus/sip-and-som/system-in-package

Es gibt auch U-Boot und Linux:
https://www.linux4sam.org/bin/view/Linux4SAM/Sam9x60EKMainPage

Scheint recht günstig zu sein (DigiKey, Mouser) um einen Linux-fähigen 
Controller selbst aufzubauen. Allerdings wie immer ohne für Handhelds 
optimiertes Power-Management (DC/DC, Li-Charger, Standby etc.). Und 
ARM926 oder Cortex-A5 ist nicht besonders leistungsfähig, selbst im 
Vergleich zum A8 (z.B. OMAP3). Aber für ein Featurephone reicht das 
allemal.

von Martin (Gast)


Lesenswert?

Auch wenn der Raspberry Zero nichts für Dich ist und das Zerophone 
leider mausetot, wende Dich ruhig mal an den Entwickler, Arsenijs aus 
Riga. Er ist nett, hat lange an dem Thema gearbeitet und anscheinend auf 
allen Ebenen mit dem System zu tun, von der Hardware bis zum UI ("ZPUI", 
in Python geschrieben).

von Florian S. (vatterger)


Lesenswert?

Da ich so oder so ein Trägerboard machen muss, wäre das sicher machbar 
sowas wie den ATSAMA5D27C-LD1G einzusetzen, gibt dann auch ein schickes 
Mainboard ohne Sockel und ohne große Tochterboards. Der LPDDR2 RAM darin 
hat auch einen geringen Verbrauch im Self-Refresh, das ist super. Fanout 
sieht nicht extrem dramatisch aus: 
https://www.microchip.com/content/dam/mchp/documents/OTH/ProductDocuments/BoardDesignFiles/SAMA5D27_LPDDR2BGA361Routing.pdf

Mit JLCPCB 4-Lagig sicher machbar, aber ich weiß nicht ob ich mir das 
wirklich antun möchte. Eher wegen dem Löten und dem potentiellen in den 
Sand setzen von Chips und nicht wegen dem Routing selbst. Ich halte das 
aber im Hinterkopf, fände es schon geil sowas mal zu machen.

Das SODIMM-200 Modul von VisionSOM finde ich ehrlich gesagt auch nicht 
schlecht, die 512 MByte DDR3L RAM darauf brauchen 15mA bei 1.35 Volt, 
das geht noch klar dank DC-DC Regler für RAM und MPU. Formfaktor des 
Sockels gefällt mir auch, da muss ich mir keine Sorgen ums Alignment 
machen UND kann das wahlweise nach dem Reflow schonend per Hand 
einlöten.

Wenn Phytec sich nicht mehr weiter meldet, besorge ich mir einfach das 
VisionSOM-Kit und fertig.


>>> [...] Zerophone [...] wende Dich ruhig mal an den Entwickler,
>>> Arsenijs aus Riga.

Jo, ich schaue ich mir mal was der so gemacht hat!

von Mickey L. (drmickeylauer)


Lesenswert?

Finde ich super, Deinen Ansatz! Habe das vor einem Dutzend Jahren mit 
ein paar Mitstreitern selbst probiert, aber wir haben zu viele Fehler 
gemacht.

Hast Du Dir schon überlegt, wie die Infrastruktur bzw. Middleware 
aufgebaut werden soll? Ich hatte damals auf dbus gesetzt - das würde ich 
jetzt nicht nochmal machen. Vala als Sprache für system level daemons 
finde ich nach wie vor eine gute Idee, aber mittlerweile gibt es auch 
swift, rust und go, die in Frage kämen.

Welches UI-Toolkit möchtest Du einsetzen?

Yocto (oder gleich „pures“ OpenEmbedded) halte ich ebenfalls für eine 
gute Wahl. Viel Erfolg!

: Bearbeitet durch User
von Florian S. (vatterger)


Lesenswert?

>>> Hast Du Dir schon überlegt, wie die Infrastruktur bzw. Middleware
>>> aufgebaut werden soll?

Keine Ahnung, da muss ich mich noch reinlesen.

>>> Welches UI-Toolkit möchtest Du einsetzen?

Habe mir LVGL und Qt angesehen, finde LVGL sympathischer, Qt ist schon 
fast ein eigenes Betriebssystem. Das Schwierigste ist ja Font-Rendering 
und Layout, das wäre ein Grund auf eines dieser Frameworks zu setzen. 
Ansonsten kann man noch probieren selbst was zusammen zu hacken. Kann 
mir bei LVGL schonmal abschauen wie man die PXP Einheit ansteuert: 
https://github.com/lvgl/lvgl/tree/master/src/gpu

Damit kann man Bitmaps parallel zur CPU kopieren, skalieren und das 
Pixelformat konvertieren.

: Bearbeitet durch User
von Frank K. (fchk)


Lesenswert?

Schau Dir mal die Teile von Octavo Systems an.

https://octavosystems.com/

Die haben Module für STM32MP1x und für TI AM3358 (quasi ein Beaglebone 
als Chip). Die Module beinhalten alles lebensnotwendige, inkl PMIC und 
RAM, d.h. die kritischen Sachen sind bereits erledigt.

Der hier
https://octavosystems.com/octavo_products/osd335x-c-sip/
hat ein 1.27mm Raster, d.h. etwas einfacheres gibts bei BGA nicht. 400 
Pins sind dann aber doch ein Haufen Arbeit, wobei Du ja nicht alles 
benutzen musst.

Bevor Du Dich da ranmachst, kannst Du erst mal mit dem Devkit-Beaglebone 
schauen, ob das was für Dich ist.

fchk

von Cyblord -. (cyblord)


Lesenswert?

Mickey L. schrieb:
> Finde ich super, Deinen Ansatz! Habe das vor einem Dutzend Jahren mit
> ein paar Mitstreitern selbst probiert, aber wir haben zu viele Fehler
> gemacht.

Die Idee ist natürlich schrott. Weil man leider ein solches 
State-of-the-Art Gerät nicht einfach nachbasteln kann.
Es wird am Ende immer ein riesiges Akku fressendes langsames 
unbenutzbares Monster das zu nichts kompatibel oder nütze ist.
Meistens jedoch wird es niemals fertig.

: Bearbeitet durch User
von Mickey L. (drmickeylauer)


Lesenswert?

Cyblord -. schrieb:
> Mickey L. schrieb:
>> Finde ich super, Deinen Ansatz! Habe das vor einem Dutzend Jahren mit
>> ein paar Mitstreitern selbst probiert, aber wir haben zu viele Fehler
>> gemacht.
>
> Die Idee ist natürlich schrott. Weil man leider ein solches
> State-of-the-Art Gerät nicht einfach nachbasteln kann.
> Es wird am Ende immer ein riesiges Akku fressendes langsames
> unbenutzbares Monster das zu nichts kompatibel oder nütze ist.
> Meistens jedoch wird es niemals fertig.

Indiskutable Antwort, ist das hier Standard? Zunächst mal hat der OT 
bereits geschrieben, dass er eben KEIN State-of-the-Art-Gerät nachbauen 
will. Davon abgesehen will er es auch noch nicht mal kommerzialisieren. 
Und Sie maßen sich an, seine Hobby-Idee als „Schrott“ zu diskreditieren? 
Lausige Umgangsformen.

von Cyblord -. (cyblord)


Lesenswert?

Mickey L. schrieb:

> Indiskutable Antwort, ist das hier Standard?

Trinken was klar ist, reden was wahr ist.

> Zunächst mal hat der OT
> bereits geschrieben, dass er eben KEIN State-of-the-Art-Gerät nachbauen
> will.

Ist es immer noch. Auch wenn das Ziel nur ein Iphone 3s wäre. Immer noch 
utopisch. Und

> Davon abgesehen will er es auch noch nicht mal kommerzialisieren.

Das wäre auch noch absurder. Davon redet doch niemand. Warum dann du?

> Und Sie maßen sich an, seine Hobby-Idee als „Schrott“ zu diskreditieren?

Ist halt so. Solche Projekte sind zum scheitern verurteilt.

von Guido L. (guidol1970)


Lesenswert?

bevor man teuerer alle Einzelteile kauft evtl  folgendes als 
"Grundlagenpaket" kaufen ;)
https://www.pine64.org/pinephone/

von Florian S. (vatterger)


Lesenswert?

>>> Die Idee ist natürlich schrott.

Falls man am Ende was funktionierendes, praxistaugliches erwartet, dann 
hast du damit 100% recht! Das ist hier aber nicht ganz der Fall. 
Funktionieren ja, praxistauglich nein.

>>> Weil man leider ein solches State-of-the-Art Gerät nicht einfach
>>> nachbasteln kann.

Korrekt. Ist hier allerdings nicht das Ziel.

>>> Es wird am Ende immer ein riesiges Akku fressendes langsames
>>> unbenutzbares Monster das zu nichts kompatibel oder nütze ist.

Fett wird es auf jeden Fall, ich visiere ~15mm Tiefe an, das wäre schon 
ziemlich gut. Wenn das Teil Akku frisst dann habe ich versagt. Ziel von 
diesem Projekt ist es, ein mobiles, programmierbares, Linux-basiertes 
Gerät entworfen und gebaut zu haben, mit der Motivation Erfahrungen zu 
sammeln.

>>> Meistens jedoch wird es niemals fertig.

Trifft auf viele meiner Bastelprojekte zu, wenn der "Proof of Concept" 
da ist, verliere ich meist das Interesse und es geht weiter zum nächsten 
Projekt. Sind wohl alles eher Lernobjekte für mich. Und das wird bei 
diesem Projekt wahrscheinlich genauso laufen, ist nur die Frage wann 
dieser Punkt kommt. Wenn ich mich einmal durch alles durchgewühlt habe 
und die einzelnen Basisfunktionen laufen, dann ist mein Ziel eigentlich 
schon erreicht.

>>> Indiskutable Antwort, ist das hier Standard?
Jo, wir sind hier schließlich im mikrocontroller.net Forum, das 4chan 
der Elektrotechnik! Ich habe mich schon echt gewundert, dass es 
geschlagene 15 Posts braucht, bis mir endlich jemand erklärt, dass das 
doch alles nicht funktionieren kann und scheiße ist und nie fertig wird.

Ach ja, habe jetzt das VisionSOM-6ULL SoM in der SD-Karte + Wifi + 
512MByte RAM Variante bestellt inkl. DevBoard, Antenne und unverlötetem 
SODIMM-200 Sockel für mein Prototyp-PCB ( 
https://kamami.pl/en/15413-somlabs ).

Danke für alle Vorschläge nochmal!

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Florian S. schrieb:
> bin gerade dabei, eine Art Feature-Phone zu bauen. Grund dafür sind
> Bastelwut und gnadenlose Selbstüberschätzung, man kennt es :-)

Frag hier mal, vielleicht ist er mittlerweile fertig:
Beitrag "einfaches handy selber bauen"

von Florian S. (vatterger)


Angehängte Dateien:

Lesenswert?

Das i.MX6ULL SoM ( 
https://wiki.somlabs.com/index.php?title=VisionSOM-6ULL ) sowie 
Demoboard und Zubehör sind in der Zwischenzeit angekommen.

Habe zunächst die verschiedenen Optionen zum Bauen einer Distribution 
ausprobiert. Der Hersteller hat Anleitungen für Debian (fertiges Image), 
Yocto und Buildroot. Das Debian-Image funktioniert wie erwartet ohne 
weitere Probleme, ist aber knackige 1.45GB groß dank einer Vielzahl an 
vorinstallierten Paketen und Treibern.

Die Anleitungen zu Buildroot scheinen nicht mehr aktuell zu sein, ich 
musste den Wifi-Treiber nachträglich hinzufügen und ein paar URLs auf 
das neue Treiber-Repo von NXP umstellen, welches auf Github verschoben 
wurde.

Yocto hat zwar 5 Stunden für den Initialen Build gebraucht, dann aber 
gut funktioniert und macht insgesamt einen guten Eindruck, werde 
wahrscheinlich damit weitermachen.

Ich habe den Energieverbauch mal grob gemessen und die Rechnung in den 
Anhang gepackt. Das Demoboard war mit LEDs und anderen Extras gespickt, 
also habe ich das erstmal indirekt gemessen: Zunächst den Unterschied 
zwischen Idle und Sleep-Verbrauch mit Demoboard, dann den Idle-Verbrauch 
ohne das Demoboard. Aus den drei Werten lässt sich dann grob der reine 
Verbrauch des Moduls im Schlafmodus berechnen.

Ergebnis sind, dass inklusive GSM/LTE-Modem mit ~13 Tagen Standby zu 
rechnen sind, das ist gut genug für mich. Warte jetzt grade auf Display 
und Modem.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.