Custom Firmware Octopus Net

  • Minisatip muss für die Octonet aber dahingehend angepasst werden daß die Sat-IP Daten nicht vom ARM sondern direkt vom FPGA kommen. Die komplette Verteilung des Datenstroms läuft auf der octonet in Hardware. Der Sat-IP Server ist nur das Steuerungsfrontend.

    M-Reimer Für die "volle Funktionalität" braucht es wohl noch weitere Entwicklung; vgl. das obige Zitat von probutus.

    Dennoch schon einmal bemerkenswert, dass der "Betriebssystem-Zustand" soweit modernisiert werden konnte, dass an solch eine Weiterentwicklung überhaupt gedacht werden kann.

    Frage an die Gemeinde und probutus: Macht es Sinn evtl. mal ein Posting bei minisatip drüben abzusetzen; evtl. lassen sich die berühmten "Synergien" heben?!

    Mal wieder generell für "(Nur) User-Nerds": So wie ich das verstanden habe sind die genauen Abläufe im und um den FPGA aber "closed Source", oder?! Also quasi "Betriebsgeheimnis" von Digital Devices; korrekt?!

  • Ja der DD-Sat-Server läuft; habe ich auch so verstanden.

    Minisatip bietet evtl. "Gräuliche Zusatzfeatures"; evtl. deshalb ist der interessant...

    Und ich ergänze noch "Zusatz-Gedanken":

    Generell nutze ich gerne "Open-Source" u.a. wegen eben auch der "Freiheitsgedanken" die das mitbringt: Ich entscheide gerne selbst und eben frei welche Software mit welchem Funktions- und Leistungsumfang ich auf welchem Gerät/Hardware nutzen möchte! Im übrigen bin ich sogar durchaus bereit diese "Freiheit" monetär zu erwerben bzw. evtl. Mehrkosten für diese Freiheit in Kauf zu nehmen!

    Selbige Sichtweise habe ich natürlich auch bei (digitalem) Content: Dieser soll und darf durchaus kostenpflichtig und bitte auch auskömmlich für die Schöpfer/Urheber sein; aber ich bevorzuge auch dabei folgende "Freiheiten": Möglichst nah an "echtem Eigentum" (kein Besitz oder nur "Konsum-Lizenz" der/die womöglich auch noch "fernabschaltbar" ist!) und die Freiheit den Content mit der Software meiner Wahl, in der Form meiner Wahl (mit/ohne Werbung, frei "spulbar", etc.) und auf der Hardware/Gerät meiner Wahl konsumieren zu können!

    Kurz: Ich bin latent halb-drei-viertel kriminell (und stehe dazu)! 8):D

    In letzter Zeit überlege ich zusätzlich auch noch in Richtung "Europäische Alternativen" sowie "Reparierbarkeit" (Stichwort: Fairphone, Framework, u.ä.) > In diesen Punkten tue ich mich aber zugegebenermaßen zeilweise noch recht schwer!

  • Der original-digitaldevices Sat-IP Server ist vorhanden. Er unterstützt SatIP-Version 1.2.0 (das ist soweit ich weiss dieselbe Version die auch Minisatip unterstützt). Ich kann auch ein fertiges Image bereitstellen, wo minisatip installiert aber inaktiv ist. Dann kann man per ssh den Original-Satip-Server abschiessen und mit minisatip spielen.

    EDIT:

    Der FPGA ist closed source aber alle relevanten Informationen sind im Source vorhanden. Das Tool "octoscan" was zur Sendersuche verwendet wird zeigt, wie man einen Sat-Stream auf den Arm-Kern zur Analyse "umbiegen" kann. Das zur Verfügung gestellte "octoserve", der SatIP-Server von DD zeigt wie man den FPGA anspricht um die Tuner-Steuerung zu machen. Das sind zwei relativ kompakte Programme. Es gibt sogar eine Registerbeschreibung des FPGAs (die wurde in neueren dddvb-Versionen durch Hexwerte ersetzt, aber alte Versionen haben noch eine Registermap, da sind dann die meisten Register (steuerung, CA-Modulsteuerung usw... definiert)

    EDIT2: Wenn man die Sourcen selbst baut kann man auch einfach minisatip als externe Option in buildroot anwählen. Ich habe das mal eingebaut ;)

    Edited once, last by probutus (June 2, 2026 at 10:36 PM).

  • probutus Danke; aber das weitere "Tun" in diese Richtung sprengt eher meine "User-Kompetenz". Zudem ist mein Bedarf an "möglichen Zusatzfeatures" auch gar nicht so "dringlich" ;)

    Ich habe das Glück, dass PYUR DVB-C keine Grundverschlüsselung nutzt, so dass ÖR und SD-Private doch grundsätzlich noch sehr frei zu mir kommen! (Nebenbei meine WEG auch weiterhin einen "klassischen Kabelvertrag mit Sammelinkasso" noch innehat! > Auch wenn das PYUR öffentlich so natürlich nicht kommuniziert... > Frei nach Ede Zimmermann "Nepper, Schlepper, Bauernfänger" ;))

  • Nochmal kurze Info: Falls Ihr das custom Image über die legacy Firmware flasht wartet bitte wirklich 5 Minuten (NACHDEM ihr Reboot geklickt habt). Der Timer den die Originalfirmware beim Flashen bis zum refresh runterzählt ist viel zu kurz und hat keinerlei Verbindung zum Flashprozess. Es dauert wirklich 5 minuten.

    Ausserdem achtet darauf dass Ihr die Seite als http://octonet-pro/ (kein https!) angebt. Mein Browser hat die unangenehme Eigenschaft immer auf https zu springen und sich dann zu beschweren, dass da keine Webseite ist...

    Edited once, last by probutus (June 3, 2026 at 1:35 PM).

  • Sehr gerne :) Falls Ihr da connections habt könnt Ihr die Kollegen ja mal anfragen. Ich als Noob mit 40 posts finde da wohl eher weniger Gehör. Ich unterstütze auch gerne bei der Installation/Konfiguration

    Ich habe - leider - auch keine solchen Connections; war erstmal nur eine "blöde" Idee ;)

  • Ich habe mich eingängig mit dem webinterface auseinandergesetzt weil ich verstehen wollte, warum es z.B. bei den Unicable-Settigns immer zu Verzögerungen beim laden kam.

    - Octoserve ist nicht "nur" ein satip-Server, er verwaltet auch die Weboberfläche und liefert die Daten für die unicable-Settings, Tunerstatus, etc...

    - Wenn man minisatip einbauen möchte muss man Funktionen aus octoserve auslagern damit man sonst noch eine funktionsfähige Weboberfläche hat

    Ich habe mal damit angefangen und dann kam eins zum anderen, also:

    Ich habe eine neue Version, die

    - auf https umgestellt ist

    - einen Standard Lightttpd-Server verwendet (statt dem rudimentären Server von busybox)

    - Funktionen wie Systemsettings, MAC-Adressen, Tuner Konfiguration sind jetzt unabhängig von octoserve

    - Ich habe nebenher auch das Webinterface ein wenig erneuert (Login mit admin/octonet):

    -> es gibt jetzt auch eine Light/Dark mode Umschaltung.

    Ich werde ein Image rausgeben nachdem ich alles ausgiebig getestet habe

    Cheers!

    The content cannot be displayed because you do not have authorisation to view this content.

    The content cannot be displayed because you do not have authorisation to view this content.

    The content cannot be displayed because you do not have authorisation to view this content.

    The content cannot be displayed because you do not have authorisation to view this content.

  • Ich habe gerade den CAM-Slot in Betrieb genommen, bekomme aber im Sekundentakt diese Meldung:

    Jan 6 18:46:07 octonet kern.info kernel: [499569.200000] dvb_ca_en50221: dvb_ca adapter 0: DVB CAM detected and init
    ialised successfully
    Jan 6 18:46:09 octonet kern.info kernel: [499571.020000] dvb_ca_en50221: dvb_ca adapter 0: DVB CAM detected and init
    ialised successfully
    Jan 6 18:46:10 octonet kern.info kernel: [499572.860000] dvb_ca_en50221: dvb_ca adapter 0: DVB CAM detected and init
    ialised successfully
    Jan 6 18:46:12 octonet kern.info kernel: [499574.650000] dvb_ca_en50221: dvb_ca adapter 0: DVB CAM detected and init
    ialised successfully
    Jan 6 18:46:14 octonet kern.info kernel: [499576.440000] dvb_ca_en50221: dvb_ca adapter 0: DVB CAM detected and init
    ialised successfully
    Jan 6 18:46:16 octonet kern.info kernel: [499578.230000] dvb_ca_en50221: dvb_ca adapter 0: DVB CAM detected and init
    ialised successfully
    Jan 6 18:46:18 octonet kern.info kernel: [499580.030000] dvb_ca_en50221: dvb_ca adapter 0: DVB CAM detected and init
    ialised successfully
    Jan 6 18:46:19 octonet kern.info kernel: [499581.850000] dvb_ca_en50221: dvb_ca adapter 0: DVB CAM detected and init
    ialised successfully

    rjkm: Ich verwende dddvb 0.9.41. Ist das ein bekanntes Thema?

    Update: Das passiert nur in der Session, wenn ich das Modul im Betrieb einstecke. Sobald ich das System neu starte oder die Module neu lade ist alles ok:

    [501489.560000] dvb_ca_en50221: dvb_ca adapter 0: DVB CAM detected and initialised successfully
    [501491.360000] dvb_ca_en50221: dvb_ca adapter 0: DVB CAM detected and initialised successfully
    [501493.160000] dvb_ca_en50221: dvb_ca adapter 0: DVB CAM detected and initialised successfully
    [501494.950000] dvb_ca_en50221: dvb_ca adapter 0: DVB CAM detected and initialised successfully
    -> hier jetzt rmmod/modprobe

    [501532.620000] DDBridge: Digital Devices OctopusNet driver 0.9.41, Copyright (C) 2010-17 Digital Devices GmbH
    [501532.640000] octonet-dvb 30000000.octonet_dvb: regs_start=30000000 regs_len=00010000
    [501532.640000] octonet-dvb 30000000.octonet_dvb: DDBridge: HW 01010002 REGMAP 0000001b
    [501532.650000] octonet-dvb 30000000.octonet_dvb: DDBridge: MAC 8e4d0001 DEVID 0307dd01
    [501532.670000] octonet-dvb 30000000.octonet_dvb: Checking GT link 1: regs = 00000180
    [501532.680000] octonet-dvb 30000000.octonet_dvb: GTL Digital Devices MAX SX8 Basic
    [501532.690000] octonet-dvb 30000000.octonet_dvb: GTL HW 01010002 REGMAP 00010004 FW 1.2
    [501532.690000] octonet-dvb 30000000.octonet_dvb: GTL ID 000bdd01
    [501532.700000] octonet-dvb 30000000.octonet_dvb: link 0 vendor dd01 device 0307 subvendor dd01 subdevice 0307
    [501532.710000] octonet-dvb 30000000.octonet_dvb: link 1 vendor dd01 device 000b subvendor dd01 subdevice 0026
    [501532.720000] octonet-dvb 30000000.octonet_dvb: MCI control port @ 00000500
    [501532.730000] octonet-dvb 30000000.octonet_dvb: MCI port OK, init time 0 msecs
    [501532.730000] octonet-dvb 30000000.octonet_dvb: MCI firmware version MaxSX8 1.5.0
    [501532.790000] octonet-dvb 30000000.octonet_dvb: XO2 ID 03
    [501532.810000] octonet-dvb 30000000.octonet_dvb: Port 0: DuoFlex CI 1.1
    [501532.950000] octonet-dvb 30000000.octonet_dvb: Setting continuous clock for DuoFLex CI
    [501532.950000] octonet-dvb 30000000.octonet_dvb: Port 0: Link 0, Link Port 0 (TAB 1): DuoFlex CI
    [501532.960000] octonet-dvb 30000000.octonet_dvb: Port 1: Link 0, Link Port 1 (TAB 2): DuoFlex CI_B
    [501532.970000] octonet-dvb 30000000.octonet_dvb: Port 2: Link 0, Link Port 2 (TAB 3): NO MODULE
    [501532.980000] octonet-dvb 30000000.octonet_dvb: Port 3: Link 0, Link Port 3 (TAB 4): NO MODULE
    [501532.990000] octonet-dvb 30000000.octonet_dvb: Port 4: Link 1, Link Port 0 (TAB 1): DUAL MCI
    [501533.000000] octonet-dvb 30000000.octonet_dvb: Port 5: Link 1, Link Port 1 (TAB 2): DUAL MCI
    [501533.010000] octonet-dvb 30000000.octonet_dvb: Port 6: Link 1, Link Port 2 (TAB 3): DUAL MCI
    [501533.020000] octonet-dvb 30000000.octonet_dvb: Port 7: Link 1, Link Port 3 (TAB 4): DUAL MCI
    [501533.020000] octonet-dvb 30000000.octonet_dvb: 12 netstream channels
    [501533.030000] dvbdev: DVB: registering new adapter (DDBridge)
    [501533.160000] octonet-dvb 30000000.octonet_dvb: Set fmode link 1 = 0
    [501533.160000] octonet-dvb 30000000.octonet_dvb: DVB: registering adapter 0 frontend 0 (DVB-S/S2X)...
    [501533.290000] octonet-dvb 30000000.octonet_dvb: DVB: registering adapter 0 frontend 1 (DVB-S/S2X)...
    [501533.400000] octonet-dvb 30000000.octonet_dvb: DVB: registering adapter 0 frontend 2 (DVB-S/S2X)...
    [501533.510000] octonet-dvb 30000000.octonet_dvb: DVB: registering adapter 0 frontend 3 (DVB-S/S2X)...
    [501533.550000] octonet-dvb 30000000.octonet_dvb: DVB: registering adapter 0 frontend 4 (DVB-S/S2X)...
    [501533.620000] octonet-dvb 30000000.octonet_dvb: DVB: registering adapter 0 frontend 5 (DVB-S/S2X)...
    [501533.720000] octonet-dvb 30000000.octonet_dvb: DVB: registering adapter 0 frontend 6 (DVB-S/S2X)...
    [501533.870000] octonet-dvb 30000000.octonet_dvb: DVB: registering adapter 0 frontend 7 (DVB-S/S2X)...
    [501539.840000] dvb_ca_en50221: dvb_ca adapter 0: DVB CAM detected and initialised successfully

    Edited once, last by probutus (June 13, 2026 at 12:04 PM).

  • Ich habe mich die letzte Zeit damit beschäftigt, den Octonet Unterbau zu modernisieren

    1) Die Tunersettings erlauben es jetzt eigene Unicable II-Settings mit Slot und Frequenz einzugeben (damit kann ich auch mehrere Octonet am selben Unicable II Anschluss mit >8 Frequenzen einstellen)

    2) Es gibt jetzt ein Menü wo man zwischen DHCP und statischer IP umschalten kann. In dem Zug habe ich die Originalskripte entwirrt und auf Standard /etc/network/interfaces inklusive zeroconf-IP im Fall von IP-Konflikten umgestellt

    3) kleiner Bugfix im UPnP Server

    4) Lighttpd mit https funktioniert reibungslos in Kombination UPnP/MC trotz https und Authentifizierung

    Damit habe ich jetzt erstmal genau den Stand den ich für die Octonet-Box brauche.

    Kleine Unschönheiten die ich bei Gelegenheit noch anpassen werde:

    Es gibt eine versteckte browsertv.html Seite die original auf einem veralteten, nicht mehr verfügbaren vlc-Browserplugin basiert. Das habe ich auf html umgestellt um im Browser über die Octonet fernzusehen. Kanalliste funktioniert, der RTSP-Stream kann ausgewählt werden, allerdings bekomme ich keinen http-Stream aus dem FPGA (nur rtsp). Falls jemand eine Browsererweiterung kennt die rtsp->http-Stream transkodieren kann bitte einen kurzen Tipp (die CPU der Octonet ist dafür zu schwach)


    Ich teste das System noch ein bisschen und stelle in Kürze neue Images inklusive ausführlicher, bebilderter Flashanleitung zur Verfügung

    The content cannot be displayed because you do not have authorisation to view this content.

    The content cannot be displayed because you do not have authorisation to view this content.

  • 1) Die Tunersettings erlauben es jetzt eigene Unicable II-Settings mit Slot und Frequenz einzugeben (damit kann ich auch mehrere Octonet am selben Unicable II Anschluss mit >8 Frequenzen einstellen)

    Das geht/ging aber auch schon mit der originalen Firmware, 2.x, als auch mit legacy? Musste ich vor Jahren mit legacy sogar eine Zeit nutzen, weil damals noch kein Profil für meinen damaligen SCR Switch hinterlegt war. Auswahl 'Andere' und dann jedem einzelnen Tuner die gewünschten SCR Werte verpassen ...


    The content cannot be displayed because you do not have authorisation to view this content.


    Bzgl. dem Punkt Update Server ändern, was ich mal erwähnt hatte, war bei Legacy auch eine extra URL, IIRC http://octonet/beta.html ... kann ich aber naturgemäß aktuell nimmer nachschauen.

    Aber krasse Fortschritte die Du da machst, gratuliere :thumbup:

    Files

    Click for my gear

    [1] Intel NUC Kit NUC7i5BNH, Akasa Newton S7, 8GB DDR4, WD Black SN700 250GB NVMe, Crucial MX500 2TB, CIR, SAT>IP, Ubuntu LTS 18.04.5, VDR 2.4.1 (15W)
    [2] Intel NUC Kit NUC7i3BNH, 8GB DDR4, WD Black SN700 250GB NVMe, Crucial MX500 1TB, CIR, SAT>IP, Ubuntu LTS 20.04.1, VDR 2.4.1 (13W)
    [3] BQ500, Asrock X470D4U, AMD Ryzen 5 5600, 48GB DDR4 ECC, 2,5Gbe, 2x WD Black SN750 512GB NVMe, 4x 2TB Lexar NM620 NVMe, 4x Samsung SSD QVO 4TB, ASUS USB-C2500, xcp-ng 8.3.0 (50W)
    [4] Sharkoon PCGH, Gigabyte MC12-LE0, AMD Ryzen 5 5600, 48GB DDR4 ECC, 2,5Gbe, 1x Kingston 128GB NVMe, 4x WD Black SN750 512GB NVMe, 4x Intel DC S3500 500GB, 8x Micron 5100 Pro 1.92TB, ASUS USB-C2500, xcp-ng 8.3.0 (60W)
    [5] Intel NUC D34010WYB, Akasa Tesla H, Intel Core i3-4010U, 8GB DDR3, 2.5Gbe, Intel Series 313 24GB mSATA, Samsung SSD QVO 8TB, OpenMediaVault 8 (Synchrony)
    [6] Jultec JPS0501-12AN, JPS0501-8M2, Octopus Net (DVBS2-8) & openHABian 5.2.0 on RaspberryPI 4 4GB

  • Das geht/ging aber auch schon mit der originalen Firmware, 2.x, als auch mit legacy? Musste ich vor Jahren mit legacy sogar eine Zeit nutzen, weil damals noch kein Profil für meinen damaligen SCR Switch hinterlegt war. Auswahl 'Andere' und dann jedem einzelnen Tuner die gewünschten SCR Werte verpassen ...

    In der 1.2.0 Firmware die von DD auf github veröffentlicht wurde gab es keine Einstellung für custom Settings. Ich konnte nur einstellen, was im Menü verfügbar war. Und die Netzwerksettings haben auch gefehlt. Da war DHCP fest eingestellt. Aber Es gab ein verstecktes Menü wo ich den Updateserver konfigurieren konnte.

    Was mir auch aufgefallen ist ist dass in der aktuellen 2.2.0 Firmware das komplette alte 1.2.x HTML/lua Webinterface in /var/www enthalten ist obwohl es nicht benutzt wird

    Naja, jetzt geht es und der UPnP Server ist featureseitig identisch mit der aktuellen 2.2.0 Version.

    Mal eine Frage in die Runde:

    Wie nutzt Ihr die octonet haputsächlich: Als SatIP-server oder als UPnP Server um Fernseh zu schauen oder nutzt ihr die Box lediglich um eine stabile Zuleitung für tvheadend zu haben?

    Ich habe den "subjektiven" Eindruck dass Sat>IP ein immer exotischeres Dasein fristet währenddessen jede Kaffeemaschine mit einem UPnP-Client ausgestattet wird

  • Als SatIP-Server


    Gruß,

    Roland

    https://www.minidvblinux.de/

    1x OctopusNet mit 8x DVB-C
    1x Raspberry 4 MLD 6.5 SATIP (softhddevice-drm-gles )

    1x Raspberry 5 MLD 6.5 SATIP (softhddevice-drm-gles )

    1x RockPi 4 MLD 6.5 SATIP (softhddevice-drm-gles )

    1x Raspberry 3 mit SATIP MLD 6.5

    1x Raspberry 2 mit STAIP MLD 6.5

    1x Raspberry 1 (staubt gerade so vor sich hin) ;)
    1x ODROID N2+ mit SATIP MLD 6.5

    1x ODROID N2 L mit SATIP MLD 6.5

    1x Zotac CI327 MLD 6.5 SATIP (softhddevice)

    1x NUC14MNK-B2 (RNUC14MNK1500002) (vaapivideo)

  • Wie nutzt Ihr die octonet haputsächlich: Als SatIP-server oder als UPnP Server um Fernseh zu schauen oder nutzt ihr die Box lediglich um eine stabile Zuleitung für tvheadend zu haben?

    Als SATIP Server für VDR und als SATIP Server um im Garten Live TV auf dem Laptop zu schauen über Kodi OctopusNet Addon.

    VDR

    Server: Ubuntu 24.04 headless VDR im LXC Container, Plugins: satip (Octopus NET SL SX8), live, epgsearch, tvscraper, markad

    Clients: LibreELEC auf RasPi3 und RasPi 3+

  • ...SATIP-Server

    Hard- / Software
    • Octopus NET / MINI ITX / Chieftec IX-01B Case / DD-Max8 / DUR-LINE UK 124 Unicable / 8 x DVB-S2
    • Server / seahawk1986 / yaVDR-ansible - 2.8.2 / Ubuntu 24.04 / 6x DVB-S2 vtuner / ProLiant ML10 v2 / VmWare-ESXI 7.0.3 / 32 GB RAM / 4TB Raid1 Daten / 4TB Raid1 Aufnahmen
    • Client / seahawk1986 / yaVDR-ansible - 2.8.2 / Ubuntu 24.04 / 2x DVB-S2 vtuner / Intel NUC8i3BEH / 16 GB RAM / 512GB m.2 SSD / 85" Samsung TV / 10" Allnet-Tablet osd2web / Denon X3300W AVR
  • Dito, als SAT>IP Server

    Click for my gear

    [1] Intel NUC Kit NUC7i5BNH, Akasa Newton S7, 8GB DDR4, WD Black SN700 250GB NVMe, Crucial MX500 2TB, CIR, SAT>IP, Ubuntu LTS 18.04.5, VDR 2.4.1 (15W)
    [2] Intel NUC Kit NUC7i3BNH, 8GB DDR4, WD Black SN700 250GB NVMe, Crucial MX500 1TB, CIR, SAT>IP, Ubuntu LTS 20.04.1, VDR 2.4.1 (13W)
    [3] BQ500, Asrock X470D4U, AMD Ryzen 5 5600, 48GB DDR4 ECC, 2,5Gbe, 2x WD Black SN750 512GB NVMe, 4x 2TB Lexar NM620 NVMe, 4x Samsung SSD QVO 4TB, ASUS USB-C2500, xcp-ng 8.3.0 (50W)
    [4] Sharkoon PCGH, Gigabyte MC12-LE0, AMD Ryzen 5 5600, 48GB DDR4 ECC, 2,5Gbe, 1x Kingston 128GB NVMe, 4x WD Black SN750 512GB NVMe, 4x Intel DC S3500 500GB, 8x Micron 5100 Pro 1.92TB, ASUS USB-C2500, xcp-ng 8.3.0 (60W)
    [5] Intel NUC D34010WYB, Akasa Tesla H, Intel Core i3-4010U, 8GB DDR3, 2.5Gbe, Intel Series 313 24GB mSATA, Samsung SSD QVO 8TB, OpenMediaVault 8 (Synchrony)
    [6] Jultec JPS0501-12AN, JPS0501-8M2, Octopus Net (DVBS2-8) & openHABian 5.2.0 on RaspberryPI 4 4GB

  • Wie nutzt Ihr die octonet haputsächlich: Als SatIP-server oder als UPnP Server um Fernseh zu schauen oder nutzt ihr die Box lediglich um eine stabile Zuleitung für tvheadend zu haben?

    Ich habe den "subjektiven" Eindruck dass Sat>IP ein immer exotischeres Dasein fristet währenddessen jede Kaffeemaschine mit einem UPnP-Client ausgestattet wird

    In einem VDR Forum ist die erste Option als Antwort zu erwarten ;)

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!