USŁUGI

Przeplatanie koła
Usługa przeplatania koła na nową piastę, obręcz lub nowe szprychy, z zachowaniem pozostałych komponentów
Wymiarowanie piasty
Budowa koła przy użyciu dostarczonej piasty oraz obręczy
Montaż opon tubeless
Usługa założenia opony tubeless do roweru szosowego, przełajówki, gravela lub MTB
Wymiana łożysk w piastach
Usługa profesjonalnej wymiany łożysk maszynowych w piastach rowerowych przy użyciu ekstraktora i prasy
serwis bębenka piasty
Profesjonalny serwis bębenka piasty rowerowej
pomiar centryczności
Szczegółowa inspekcja kół pod kątem bicia obręczy, naprężenia szprych, stopnia zużycia łożysk i stanu mechanizmu sprzęgającego bębenka.
Serwis piast
Usługa serwisu piast na łożyskach kulkowych
Kalibracja tensometru
Kalibracja miernika naprężenia szprych pozwala utrzymać wysoką dokładność jego pomiarów
Gwintowanie szprych
Docinanie szprych na wymiar i walcowanie nowego gwintu
Wyważanie koła rowerowego
Usługa wyważania kół rowerowych pozwala zredukować wibracje podczas jazdy z wysoką prędkością

USŁUGI

Realizujemy wszelkie usługi związane z budową kół rowerowych. Jesteśmy prawdopodobnie jedyną w Polsce firmą wyspecjalizowaną tylko i wyłącznie na koła rowerowe. Nasz warsztat jest wyposażony w profesjonalne maszyny i narzędzia, dzięki którym jesteśmy w stanie wykonać pełen zakres napraw – zaplatanie kół, przeplatanie kół, wymianę szprych, wymianę łożysk, serwis piast, klejenie szytek i inne. Składamy także koła na indywidualne zamówienie z komponentów dostarczonych przez klientów. Posiadamy na stanie różnego rodzaju szprychy, nyple i akcesoria do kół takie jak dętki, taśmy, wentyle tubeless, mleczka uszczelniające itd. Dysponujemy profesjonalną maszyną do gwintowania szprych, pneumatyczną prasą do stabilizacji kół oraz przemysłową prasą do łożysk. Obecnie naprawiamy tylko i wyłącznie koła, które sami składaliśmy. Nie prowadzimy serwisu kół innych marek. Nasz lokal znajduje się w Warszawie, na Pradze-południe.

Zgarnij dodatkowe 5% rabatu

Zapisz się do newslettera, by jako pierwszy dowiedzieć się o promocjach

(function() { const popupID = 4091; // <- Twoje ID popupu const requiredMs = 60000; // 60 sekund const startKey = "popupTimerStart_" + popupID; const closedKey = "popupClosed_" + popupID; const shownSessionKey = "popupShownSession_" + popupID; const maxWaitForElementorMs = 10000; // ile maksymalnie czekamy na elementorProFrontend // Jeśli zamknięto już popup (localStorage) — nie pokazuj więcej if (localStorage.getItem(closedKey)) return; // Ustal moment rozpoczęcia liczenia (persistuje między podstronami) let start = localStorage.getItem(startKey); if (!start) { start = Date.now(); localStorage.setItem(startKey, start); } else { start = parseInt(start, 10); } // Oblicz ile jeszcze brakuje do wymaganych 60s function msRemaining() { return Math.max(0, requiredMs - (Date.now() - start)); } // Funkcja pokazująca popup (gdy elementorProFrontend już gotowy) function tryShowPopup() { // jeśli użytkownik zamknął popup w międzyczasie — przerwij if (localStorage.getItem(closedKey)) return; // jeśli już pokazano w tej sesji — nie pokazuj ponownie if (sessionStorage.getItem(shownSessionKey)) return; // upewnij się, że obiekt elementora jest dostępny if (typeof elementorProFrontend !== "undefined" && elementorProFrontend && elementorProFrontend.modules && elementorProFrontend.modules.popup) { elementorProFrontend.modules.popup.showPopup({ id: popupID }); sessionStorage.setItem(shownSessionKey, "1"); } else { // jeśli elementor jeszcze nie załadowany — nic nie robimy tutaj console.warn("Elementor Pro popup module not ready yet."); } } // Czekaj na elementorProFrontend (polling), ale nie dłużej niż maxWaitForElementorMs function waitForElementorReady(cb) { const interval = 200; let waited = 0; const t = setInterval(function() { if (typeof elementorProFrontend !== "undefined" && elementorProFrontend && elementorProFrontend.modules && elementorProFrontend.modules.popup) { clearInterval(t); cb(true); } else { waited += interval; if (waited >= maxWaitForElementorMs) { clearInterval(t); cb(false); } } }, interval); } // Gdy popup zostanie zamknięty — zapisz to na stałe w localStorage (function bindCloseListener() { if (window.jQuery) { jQuery(document).on('elementor/popup/hide', function(event, id) { if (id === popupID) { localStorage.setItem(closedKey, "1"); } }); } else { // jeśli jQuery jeszcze nie dostępne, spróbuj za chwilę let tries = 0; const t = setInterval(function() { tries++; if (window.jQuery) { clearInterval(t); jQuery(document).on('elementor/popup/hide', function(event, id) { if (id === popupID) { localStorage.setItem(closedKey, "1"); } }); } else if (tries > 50) { clearInterval(t); } }, 200); } })(); // Teraz ustaw timeout — jeśli pozostały czas 0 => pokaż natychmiast (po upewnieniu się, że elementor jest gotowy) const remaining = msRemaining(); if (remaining <= 0) { waitForElementorReady(function(ready) { if (ready) tryShowPopup(); else { // jeśli elementor nie gotowy — spróbuj jeszcze raz po krótkim timeout setTimeout(tryShowPopup, 500); } }); } else { // ustaw timeout na pozostały czas; po upływie — spróbuj pokazać popup setTimeout(function() { waitForElementorReady(function(ready) { if (ready) tryShowPopup(); else { // jeśli elementor nie gotowy — spróbuj z małym opóźnieniem setTimeout(tryShowPopup, 500); } }); }, remaining); } // Dodatkowo: jeśli użytkownik zamknął popup w innej karcie/oknie, ten skrypt też to zauważy dzięki storage event window.addEventListener('storage', function(e) { if (e.key === closedKey && e.newValue) { // nic do zrobienia tutaj — warunki wyżej sprawią, że nic się nie pokaże } }); })();