Sachverhalt: A. A.a. Die Parteien bilden die Stockwerkeigentümergemeinschaft B._-Strasse xxx (Parzelle Nr. yyy) in V._. A._ ist eines ihrer Mitglieder und Eigentümer einer 4 1⁄2-Zimmerwohnung im 4. Obergeschoss (Einheit Nr. zzz; 103/1000 Miteigentum an Nr. yyy). Er steht seit Jahren im Streit mit den übrigen Stockwerkeigentümern, was zu zahlreichen zivil- und strafrechtlichen Auseinandersetzungen geführt hat; Forderungen der Stockwerkeigentümergemeinschaft mussten auf dem Betreibungsweg vollstreckt werden. A.b. Anlässlich einer ausserordentlichen Stockwerkeigentümerversammlung vom 12. März 2015 beschlossen die Stockwerkeigentümer, A._ aus der Stockwerkeigentümergemeinschaft auszuschliessen, und erhoben am 23. April 2015 Klage beim Kantonsgericht Nidwalden. Mit Urteil vom 8. April 2016 hiess dieses die Klage gut, schloss A._ aus der Stockwerkeigentümergemeinschaft B._-Strasse xxx aus und setzte ihm eine Veräusserungsfrist von 60 Tagen unter Androhung einer öffentlichen Versteigerung bei unbenutztem Fristablauf; alles unter Kosten- und Entschädigungsfolgen. B. A._ gelangte mit Berufung am 14. September 2016 an das Obergericht des Kantons Nidwalden und beantragte die vollumfängliche Abweisung der Klage. Nach mehreren Zwischenverfahren, die teilweise bis vor Bundesgericht ausgetragen wurden (Urteile 5A_417/2017, 5A_184/2018 und 5A_538/2018), wies das Obergericht die Berufung mit Entscheid vom 2. April 2019 ab (Versanddatum: 24. Juli 2019). C. Mit Beschwerde in Zivilsachen vom 16. September 2019 wendet sich A._ (Beschwerdeführer) an das Bundesgericht und beantragt, die Klage abzuweisen. Ausserdem ersucht er um Gewährung der unentgeltlichen Rechtspflege. Mit Verfügung vom 18. September 2019 wurde der Beschwerdeführer aufgefordert, einen Kostenvorschuss zu bezahlen oder sein Gesuch um unentgeltliche Rechtspflege unter näher bezeichneten Angaben zu präzisieren und zu belegen. Am 1. Oktober 2019 ist der Kostenvorschuss beim Bundesgericht eingegangen. Das Bundesgericht hat die kantonalen Akten, hingegen keine Vernehmlassungen eingeholt