Borg Cube Server

Nu e un secret faptul că sunt fan Star Trek. Nu e un secret faptul că am o pasiune deosebită pentru tehnologie.
Relativ recent am găsit un nou hobby: imprimarea 3D. Și dacă asta era un secret, ei, acum nu mai e 🙂
Și m-am gândit, oare ce proiect aș putea face care să includă un pic de Star Trek și un pic de tehnologie?
Ideea
Universul Star Trek este plin de tehnologii care mai de care mai interesante. Unele tehnologii au ajuns comune în lumea noastră, sau poate sunt chiar mai avansate decât în Star Trek (cum ar fi ușile glisante automate, smartphone-urile sau căștile bluetooth), dar mai sunt și tehnologii la care putem doar să visăm (cum ar fi teleportarea).
Între ele mai există o categorie de tehnologii din Star Trek, aceea care este în dezvoltare astăzi în lumea reală. Și aici vorbim de lucruri cum ar fi navele spațiale. Momentan sunt la un nivel incipient, dar parcă se vede ceva la orizont 😉
De când am început să mă joc cu imprimante 3D, m-am tot gândit ce obiecte din Star Trek aș putea imprima. Și parcă cea mai logică opțiune era o navă spațială pe post de ornament.
În urmă cu aproape 10 ani am decis că mi-ar trebui un computer care să-mi fie un server personal. Un calculator simplu care să fie legat doar la internet, fără monitor, tastatură sau mouse. Inițial am folosit o placă Banana Pi (https://wiki.banana-pi.org/Banana_Pi_BPI-M1) și avea un simplu server git. Apoi i-am adăugat un harddisk și a devenit un mini-NAS. Și a tot crescut până a ajuns să fie un calculator în toată regula, cu un procesor Intel i3, 8GB RAM și șapte harddisk-uri în el. Având în vedere cele șapte harddisk-uri, nu mi-a fost ușor să găsesc o carcasă care să nu ocupe juma’ de cameră, așa că am făcut mai multe improvizații. Dar, improvizații fiind, nu erau prea fiabile și nici nu arătau prea bine.
De când am început să mă joc cu imprimante 3D, m-am gândit că ar fi bine să fac o carcasă special proiectată pentru serverul meu.
Și uite așa am ajuns la concluzia că în loc să fac două proiecte, mai bine unul singur 🙂
Alegerea
O carcasă pentru server în forma unei nave spațiale din Star Trek. Deși sunt o mulțime de tipuri de nave în Star Trek, până la urmă alegerea a fost una singură: nava în formă de cub a unei rase extraterestre denumite Borg. Majoritatea navelor din Star Trek au un design complicat cu multă atenție la detalii. Dar nu și navele borgilor. Borgii nu se complică. Cub, sferă, paralelipiped dreptunghic. Spre deosebire de alții, ei știu că în spațiu nu există frecare cu aerul, așa că navele lor spațiale nu au nevoie de forme aerodinamice. 😀
Designul navelor borgilor este unul unic:

Arată de parcă nici nu ar avea un înveliș exterior, toate sistemele navei par expuse. Probabil ăsta a fost modul în care realizatorii filmului au încercat să arate cât de diferiți erau borgii, cât de puțin țin ei cont de ceva ce noi considerăm de bun simț.
Oare cum ar arăta o mașină făcută de borgi?

La o primă vedere arată ca o navă proiectată și construită de amatori care nu știu nici măcar cum să-și protejeze sistemele vitale cu o carenă. Arată ca un prototip care se poate dezintegra în orice moment, ca un morman de fier vechi care plutește prin spațiu. Toate astea sunt în contrast puternic cu capacitățile navei. Producătorii de tancuri se mândresc cu grosimea și performanța armurii cu care își învelesc mașinile de război. Borgii trimit o navă fără nici un fel de înveliș exterior (vizibil, cel puțin) la război. Cu toate astea, este capabilă să elimine aproape 40 de nave ale Federației într-un timp extrem de scurt.
Nava cub devine astfel înfricoșătoare prin rezistența și forța de care dă dovadă, senzație amplificată de un design complet străin, în antiteză cu tot ce suntem noi obișnuiți.
Dar, fiind doar un film, nava borgilor are un “je ne sais quoi”… Pare a fi proiectată pentru a fi eficientă și fiabilă, nesocotind complet estetica. Dar tocmai asta îi conferă o estetică aparte… un fel de steampunk tehnologic. Iar calculatorul meu avea nevoie de o carcasă fiabilă și potrivită pentru configurația lui ciudată. Iar forma de cub doar ajută la asta 🙂 Iar designul îl face să iasă în evidență.
Deci, Borg Cube să fie! 🙂
Thingiverse
Având în vedere complexitatea exterioară a unui model 3D pentru Borg Cube, am început să caut modele deja existente. Cel mai reușit pe care l-am găsit a fost pe Thingiverse: https://www.thingiverse.com/thing:3326170.

Modelul era destul de detaliat. Dar avea și niște dezavantaje, cum ar fi dimensiunea prea mică pentru placa mea de bază și armata de harddisk-uri. Un alt dezavantaj pentru mine era că modelul era proiectat ca o carcasă pentru un computer desktop, deci avea toate porturile expuse în partea din spate:

Dacă cineva dorește o carcasă în formă de Borg Cube pentru un calculator obișnuit, carcasa de mai sus este excelentă.
Dar, tot ce aveam eu nevoie era butonul de pornire, un cablu de alimentare și un cablu de rețea. Și, ca să nu regret mai târziu, vreo două USB-uri. Așa că am decis să iau modelul de pe Thingiverse, dar să-l modific pentru a fi mai potrivit pentru ce aveam eu nevoie pentru server.
Numere
Lungimea muchiilor cubului din modelului inițial era de aproximativ 250mm. Deși 250 pare un număr rotund, nu mi se părea potrivit. M-am uitat să văd dacă pot face muchia să aibă ca lungime un cub perfect. Dar 216 (63) e prea mic, 343 (73) e prea mare. Așa că a trebuit să mă mulțumesc cu un pătrat perfect: 256 (162). Bonus, 256 mai e și putere a lui 2 (28). Sau, ducând calculele și mai departe, 256 = ((22)2)2. Dar să ne oprim aici cu matematica 🙂
Placa de bază pe care o aveam era între microATX și flexATX ca dimensiune. Sursa de alimentare era flexATX. Harddisk-urile, de toate soiurile, de la 2.5″ de 7mm, la 3.5″. Cel mai mare harddisk pe care-l aveam era de 102 mm × 25 mm × 146 mm.
Luând în calcul toate dimensiunile, muchia de 256mm era ok. 256mm este dimensiunea exterioară. Fiecare față a cubului are 7.5mm grosime, ceea ce reduce spațiul interior cu 14mm. Dar și 242mm sunt suficienți pentru ce aveam de pus înăuntru.
Design
Analizând mai în detaliu modelul de pe Thingiverse, am văzut că era compus dintr-un șablon. Deși fiecare față a cubului părea unică, de fapt aproape fiecare față conținea același model de 4 ori, dar rotit/oglindit în diverse moduri.
Se pot vedea în imaginea de mai sus două elemente distinctive pe aceeași față a cubului. Având în vedere că mi-a luat ceva timp să-mi dau seama de șmecheria asta, am decis s-o aplic și eu.
Pentru că modelul meu era un pic mai mare, am ales să pun 9 modele pe aceeași față. Mai jos e una din fețele proiectate de mine. La o privire atentă se pot vedea aceleași elemente distinctive ca în modelul original:
Acum fără subliniere:
Fața de mai sus este cea de jos a cubului și este singura fără orificii de aerisire, dar cu cele mai multe orificii pentru șuruburi. Asta e altă deosebire de modelul inițial, care avea fețe subțiri și se lipeau între ele cu un cornier. Eu am ales să fac fețele mai groase și să le prind între ele tot cu un cornier, dar cu șuruburi, nu cu lipici. Alegerea asta înseamnă că fețele, fiind mai groase, durează mai mult timp să fie scoase la imprimantă și consumă mai mult material. Dar am avut atâtea experiențe negative cu lipiciul care se dezlipește când ți-e lumea mai dragă, așa că am trecut pe șuruburi chiar cu dezavantajele de mai sus. Singurele fețe ale cubului care au găurile pentru șuruburi vizibile sunt cea de jos și cea din spate. Cele de sus, stânga, dreapta și față se prind una de alta prin interior. Asta pentru ca șuruburile să fie cât mai ascunse.
Da, probabil am folosit de 10 ori mai multe șuruburi decât era necesar 😀
Apropo, șuruburile folosite sunt M3, de 8mm și 12mm lungime, depinde de locul unde sunt puse. În principal cele de pe interior sunt de 8mm lungime, iar cele care se înfiletează din exterior sunt de 12mm lungime.
Modelul 3D poate fi găsit pe Thingiverse: https://www.thingiverse.com/thing:6095807
Asamblare
Cu excepția conectorilor, care sunt fixate pe fața din spate, toate componentele sunt fixate pe fața de jos a cubului. Prima este placa de bază, prinsă cu ajutorul a 6 standoff-uri de nylon
După placa de bază, urmează sursa de alimentare, pentru care avem un suport care să o țină deasupra plăcii de bază.
Suportul pentru sursa de alimentare integrează și două LED-uri, unul pentru power, celălalt pentru activitatea harddisk-ului. LED-urile sunt vizibile prin carcasă.
Dacă se pare că a fost “luată la pilă” într-un loc, așa e! 😀 După ce am încercat s-o pun peste placa de bază, am observat că obstrucționa vreo două conectoare. Am crezut că cele două conectoare încap sub suport, dar m-am înșelat 😀
Dar să nu se înțeleagă că aia a fost singura greșeală, piesa asta am scos-o la imprimantă în diferite forme de vreo 5 ori. 😀
Și vorbind de trial-and-error, după cum se vede, fața de jos are niște găuri pentru șuruburi. Ca să fiu sigur că nimeresc dimensiunile, am redus grosimea modelului la 0.5mm și am scos vreo câteva încercări până am nimerit locul corect pentru șuruburi.
Și, cu suportul de mai sus montat, se poate instala sursa de alimentare.
Sursa de alimentare este un pic modificată. Având 8 harddisk-uri (da, unul în plus față de unde am pornit), am adăugat mai multe conectoare de alimentare pentru ele:
Plus un multiplicator:
Și în sfârșit sursa instalată:
De placa de bază, chiar sub suportul sursei de alimentare, se atașează conectorul pentru USB-urile către exterior.
Cealaltă extensie este pentru port-ul de rețea:
Probabil ai observat deja dintr-una din pozele anterioare că nici un port al plăcii de bază nici măcar nu se apropie de fața din spate. Am făcut asta în mod intenționat, pentru că nu am nevoie de atâtea porturi, după cum ziceam mai devreme. Mai jos e o imagine cu porturile disponibile pe placa de bază, versus cele necesare pentru proiectul meu:
De ce să nu expun toate porturile de pe placa de bază? Păi strică design-ul! 😀
Ia uite cum arată partea din spate cu un set minimalist de porturi:
Extensiile se fixează pe fața din spate cu ajutorul unor mici piese proiectate special pentru asta:
Înainte de a fixa fețele de jos și spate una de alta, mai trebuie instalate două piese. Carcasa e proiectată pe două etaje. Etajul de jos găzduiește placa de bază, sursa și controller-ul de LED-uri. Etajul de sus este destinat harddisk-urilor. Piesele pe care le-am menționat sunt două suporturi pentru placa ce desparte cele două etaje, marcate cu verde mai jos:
Apoi putem fixa cele două fețe:
Și cam așa arată din spate:
Foarte discret 🙂
În pozele de mai sus se văd niște cabluri SATA ciudate. Asta pentru că am încercat să înlătur izolația groasă și să las doar firele. Aveam opt harddisk-uri într-un spațiu foarte mic și una din problemele cele mai mare era rigiditatea și grosimea cablurilor. Deși cablurile au funcționat corect, am renunțat la ele și am cumpărat cabluri mai flexibile și mai scurte. Asta în principal pentru a fi sigur că nu apar probleme mai târziu, cum ar fi un scurt-circuit sau un cablu deteriorat în timp.
Și, vorbind de harddisk-uri, asta este placa ce desparte etajele și pe care se montează harddisk-urile:
Placa asta e susținută în spate de cele două suporturi menționate mai sus, iar în față e susținută de un ventilator. În total sunt patru ventilatoare de 120mm RGB:
Două sunt puse în partea din față sus:
Celelalte două sunt unul în față jos, celălalt în spate:
Da, și urechile ventilatoarelor au trebuit “ajustate” un pic 🙂
Pe suportul astfel creat se montează harddisk-urile:
Orificiile pentru șuruburi au fost proiectate să poată acomoda harddisk-uri de 2.5″ sau 3.5″ de diferite grosimi.
Pentru că ventilatorul din spate este foarte aproape de conectorii harddisk-urilor, am proiectat un grilaj pentru el, să țină cablurile departe de elice:
Și dacă tot veni vorba de cele opt harddisk-uri, placa de bază oferă doar patru port-uri SATA, așa că a trebuit să instalez o placă PCIe cu încă patru port-uri:
Tot n-am scăpat, a trebuit să pun un pic de lipici între placa de bază și placa PCIe, să nu se scoată din slot din greșeală.
Și cablurile SATA conectate direct la placa de bază:
Acum toate cablurile ar trebui să fie conectate, iar sistemul să fie gata pentru adăugarea harddisk-urilor și ventilatoarelor:
În poza de mai sus este montat și suportul pentru ventilatorul din față jos:
Și cu asta, e timpul să conectăm ventilatoarele la controller, să instalăm tot ansamblul ventilatoare-harddisk-uri în sistem și să conectăm harddisk-urile:
În poza de mai jos se vede cât de important e grilajul din fața ventilatorului 🙂
Știu că în PC-ul ăsta cable management-ul este dezastruos, dar, în apărarea mea, nici borgii nu păreau prea preocupați de cable management:

Totuși, aș fi bucuros dacă cineva are vreo idee de cable management pentru proiectul ăsta 🙂
Acum că totul e conectat, cea mai bună idee e să-l băgăm în priză și să vedem dacă merge! 😀
Bun! Merge! 🙂
După ce-i oprim și-l scoatem din priză, putem să-i punem și restul fețelor.
Restul de patru fețe se fixează prin interior cu cornierele proiectate special pentru asta:
Încă o idee despre design. În modelul inițial, pentru că era mult mai potrivit pentru un PC, aerisirile carcasei erau destul de regulate. Eu am ales să fac și partea asta să arate diferit. Am copiat o bucățică din modelul inițial și am mărit-o cât toată suprafața unei fețe. Pentru fiecare față a cubului am copiat o parte diferită, dar nu neapărat distinctă.
Și cam asta este! Închidem carcasa, îl punem la locul lui și-i dăm drumul!
Detalii tehnice
Câteva detalii despre serverul în sine și despre procesul de imprimare 3D.
Despre server
Bineînțeles, rulează Linux. 🙂
Harddisk-urile sunt ori de prin calculatoare vechi, ori cumpărate second-hand. Pentru siguranța datelor, sunt configurate în array-uri RAID (https://en.wikipedia.org/wiki/RAID). Chiar și așa, datele importante sunt pe Google Drive 🙂
Pagina de web de pe care citești acest articol este deasemenea găzduită de Borg Cube 🙂
Fiind server, calculatorul este configurat din BIOS să pornească automat când e băgat în priză. Asta înseamnă că dacă se ia curentul, când revine server-ul pornește automat (poate ar trebui să-i pun și un UPS).
La momentul scrierii articolului, serverul a trecut de 56 de zile de operare continuă fără restart 🙂 Iar ultimul restart a fost făcut din cauza unui update a kernel-ului de Linux.
Despre imprimarea 3D
Pentru că este un model foarte complicat, imprimarea 3D durează destul de mult. La setările pe care le-am folosit (și care sunt destul de des întâlnite la cine imprimă 3D), a luat cam două zile pentru o față. Deci 12 zile de bâz-bâz la imprimanta 3D doar pentru cele șase fețe ale cubului 🙂 Imprimanta pe care am folosit-o e Anycubic Mega X.
Chiar când am început să imprim proiectul ăsta am început să am probleme cu imprimanta 3D, se oprea după un timp aleator și mi-a luat foarte mult timp să-mi dau seama care a fost problema. Nici nu mai vreau să știu cât timp am pierdut cu problema aia. Dar din cauza asta nu-mi mai amintesc exact cât timp mi-a luat să imprim toate piesele. Plus că unele piese au trebuit modificate și imprimate de mai multe ori.
Pentru mine nu e așa enervant când greșesc un model și trebuie să-l modific și să-l imprim din nou. Uneori puteam să măsor mai atent dimensiunile, alteori sunt lucruri pe care, începător fiind, nici nu știu cum să le măsor, așa că imprimarea mai multor versiuni până la varianta finală mi se pare un proces normal. Mult mai mult mă enervează când face figuri imprimanta! 😀
Dar când totul merge bine (și trebuie să recunosc că asta e norma, defecțiunile fiind excepții) procesul de a modela un obiect pe un ecran pentru ca mai apoi să-l văd creat încetul cu încetul (aș putea să stau ore în șir să urmăresc imprimanta 3D la lucru, e pur și simplu hipnotizant) și mai târziu să-l pot ține în mână fizic îmi oferă o satisfacție destul de mare! Aproape ca și când aș avea un replicator din Star Trek! Aproape… 🙂