Ninebot Controller in Betrieb nehmen, ohne ihn einzubauen?

1 Februar 2026
18
11
E-Scooter
max g30d2 und F2plus
Hallo, ich würde gern einen Ninebot Controller testen bzw. in Betrieb nehmen, ohne ihn direkt ins Fahrzeug einzubauen.

Mir geht es erstmal darum zu prüfen, ob der Controller grundsätzlich läuft und ob er sauber startet, bevor ich mir den kompletten Einbau antue. Jetzt stellt sich mir die Frage, ob das überhaupt sinnvoll möglich ist und worauf man dabei achten muss.

Hat das hier schon mal jemand gemacht?

Mich interessiert vor allem:

  • Welche Anschlüsse unbedingt verbunden sein müssen.
  • Ob der Controller auch außerhalb des Scooters normal hochfährt
  • Ob man dafür zwingend Dashboard, Akku und Motor anschließen muss
  • Ob es Risiken gibt, wenn man ihn nur testweise auf dem Tisch betreibt
  • Und woran man erkennen kann, ob der Controller in Ordnung ist (Verbindung zu Apps)
Falls jemand so einen Test schon gemacht hat, wäre ich für eine kurze Anleitung oder eure Erfahrungen echt dankbar.

Danke euch schon mal!
 
Hallo, ich würde gern einen Ninebot Controller testen bzw. in Betrieb nehmen, ohne ihn direkt ins Fahrzeug einzubauen.

Mir geht es erstmal darum zu prüfen, ob der Controller grundsätzlich läuft und ob er sauber startet, bevor ich mir den kompletten Einbau antue. Jetzt stellt sich mir die Frage, ob das überhaupt sinnvoll möglich ist und worauf man dabei achten muss.

Hat das hier schon mal jemand gemacht?

Mich interessiert vor allem:

  • Welche Anschlüsse unbedingt verbunden sein müssen.
  • Ob der Controller auch außerhalb des Scooters normal hochfährt
  • Ob man dafür zwingend Dashboard, Akku und Motor anschließen muss
  • Ob es Risiken gibt, wenn man ihn nur testweise auf dem Tisch betreibt
  • Und woran man erkennen kann, ob der Controller in Ordnung ist (Verbindung zu Apps)
Falls jemand so einen Test schon gemacht hat, wäre ich für eine kurze Anleitung oder eure Erfahrungen echt dankbar.

Danke euch schon mal!
So bald ein Teil nicht verbunden ist kommen Fehlermeldungen....
 
Hat das hier schon mal jemand gemacht?
Meines Wissens ist da GeoBot GeoBot dein richtiger Ansprechpartner, der hat soweit ich weiß da so ne "Teststation" gebaut.
Theoretisch muss auch alles so zusammen verbunden sein wie am Scooter.
Controller, Dashboard, Akku, wg. Kommunikation untereinander- Gas/Bremse/Motor wg. Hallsensoren.
 
  • Hilfreich!
Reaktionen: GeoBot
Jawohl, ich habe mir aus einem alten Scooter-Rahmen (ohne VIN-Prägung), zu diesem Zweck ein Development-Kit (DevKit) für den G30/G2 gebaut.
Im Prinzip ist das ein immer offener Scooter, bei dem man einzelne Bauteile über Kreuz zur Fehleranalyse tauschen kann.
20260308_214555.webp
Um deine Frage zu beantworten, um den Controller vernünftig zu testen, benötigst du fast alle elektronischen Bauteile. Jedes fehlende el. Bauteil wird erkannt und die Firmware/das Dashboard wirft einen entsprechenden Errorcode aus. Ohne Motor fehlen dem ESC beispielsweise die Werte für die Hallsensoren (E40) oder eventuell die Werte des Motortemperatur-Sensors.
 
Okay.... sehr informativ
Bin ersteinmal davon ausgegangen, Controller ans Netzteil, display ran und fertig vllt noch paar Widerstände die etwas simulieren.
Da habe ich mich wohl getäuscht :-(
 
Okay.... sehr informativ
Bin ersteinmal davon ausgegangen, Controller ans Netzteil, display ran und fertig vllt noch paar Widerstände die etwas simulieren.
Da habe ich mich wohl getäuscht :-(
Nö getäuscht haste Dich nicht.
Nur ist es natürlich erstmal etwas mehr Aufwand ein solches Testsystem aufzubauen, als einen ganzen Satz originaler Scooterteile einfach zusammenzustecken.

mit Controller, Display und Stromversorgung solltest du dich bereits über Bluetooth verbinden und, wenn nicht aus anderen Gründen gestört, auch flashen können.
Es werden "mindestens" die Fehler 14,15,18 und 21 angezeigt werden.

Für 14 und 15 wird jeweils ein Spannungsteiler benötigt, welcher den Gas- bzw. Bremshebel im Ruhezustand simuliert.
Z.B. sowas wie 10k ohm vom signaleingang zu masse und 100k ohm zu 5v.

Für die 18 könntest du rumprobieren, da werden die Hallsensoren des Motors auf Plausibilität geprüft.
Das bedeutet, es müssen 2 von 3 Sensoren den gleichen Zustand haben.
Theoretisch müsste es reichen, einen der 3 Anschlüsse mit 5V zu verbinden.

Fehler 21 ist quasi der komplizierteste, es heißt dass das BMS nicht antwortet.
Da muss also entweder ein BMS verbunden werden, oder ein anderer Microcontroller dem man beibringt die gleichen Antworten zu schicken wie das BMS eines funktionierenden Packs.
 
Macht aber wenig Sinn. Nur weil sich ein Controller flashen lässt, kann er immer noch einen Defekt haben. Erst wenn er in der Lage ist, den Scootermotor wie gewohnt in Betrieb zu nehmen, kann man meiner Meinung nach alles andere sicher ausschließen.
Den Fehler 18 könnte man sogar aus der Firmware patchen und würde kein zusätzliches Bauteil benötigen.
Wie Wichtel schon schrieb, das Einfachste sind die Original-Bauteile.
 
  • Hilfreich!
Reaktionen: Wichtel
/* Fix für mobile sidebar */ @media (max-width: 899px) { .p-body-sidebar{ margin-top: 80px; } } /* doppeltes Copyright ausblenden im Footer */ .p-footer-copyrightRow{display: none;} /* ""Forenliste" Text & Bottons oben löschen */ [data-template="forum_list"] .p-body-header {display: none !important;} /* PULSE ANIMATION */ .pulse { position: relative; box-shadow: 0 0 0 0 rgba(232, 76, 61, 0.6); cursor: pointer; -webkit-animation: pulse 5.25s infinite cubic-bezier(0.66, 0, 0, 1); -moz-animation: pulse 5.25s infinite cubic-bezier(0.66, 0, 0, 1); -ms-animation: pulse 5.25s infinite cubic-bezier(0.66, 0, 0, 1); animation: pulse 5.25s infinite cubic-bezier(0.66, 0, 0, 1); } .pulse:hover { -webkit-animation: none;-moz-animation: none;-ms-animation: none;animation: none; } @-webkit-keyframes pulse {to {box-shadow: 0 0 0 45px rgba(232, 76, 61, 0);}} @-moz-keyframes pulse {to {box-shadow: 0 0 0 45px rgba(232, 76, 61, 0);}} @-ms-keyframes pulse {to {box-shadow: 0 0 0 45px rgba(232, 76, 61, 0);}} @keyframes pulse {to {box-shadow: 0 0 0 45px rgba(232, 76, 61, 0);}} //online user animation .message-avatar-online:after { content: ''; position: absolute; width: 32px; height: 32px; margin: 0px 0 0 0px; border: 1px solid #7fb900; border-radius: 50%; box-shadow: 0 0 4px #7fb900, inset 0 0 4px #7fb900; -webkit-transform: scale(0); -webkit-animation: online 2.5s ease-in-out infinite; animation: online 2.5s ease-in-out infinite; } @-webkit-keyframes online { 0% {opacity: 1;-webkit-transform: scale(0)} 50% {opacity: .7} 100% {opacity: 0;-webkit-transform: scale(1)} } @keyframes online { 0% {opacity: 1;transform: scale(0)} 50% {opacity: .5} 100% {opacity: 0;transform: scale(1)} } // Sidebartrigger Correct .uix_sidebarTrigger{ width: 5px; } // Body correct .p-body-inner{ padding-top: 10px; } // Footer correct .p-footer-inner{ padding: 15px; background-color: #1a1a1a !important; } .p-footer-cvft-linkGroup{ padding: 7.5px; } // thread übersichtsspalte .node-extra{ width: 45%; } // mobile sidebar - tabfarbe a.sidePanel__tab{ background-color: rgb(200, 68, 72); } // Node Icons .node .node-icon svg {display: none;} /*** Change default FA node icon **/ .node .node-icon i { &:before { .m-faContent(@fa-var-dot-circle, 1em); } svg { display: none; } } /*****/ .node.node--id64 .node-icon i {&::before {.m-faContent(@fa-var-fire, 0.9em);}} .node.node--id58 .node-icon i {&::before {.m-faContent(@fa-var-fire, 0.9em);}} .node.node--id213 .node-icon i {&::before {.m-faContent(@fa-var-user-shield, 0.9em);}} .node.node--id55 .node-icon i {&::before {.m-faContent(@fa-var-shopping-cart, 0.9em);color:#c74347;}} .node.node--id96 .node-icon i {&::before {.m-faContent(@fa-var-tasks, 0.9em);color:#c74347;}} .node.node--id118 .node-icon i {&::before {.m-faContent(@fa-var-hand-point-right, 0.9em);}} .node.node--id14 .node-icon i {&::before {.m-faContent(@fa-var-comments, 0.9em);}} .node.node--id173 .node-icon i {&::before {.m-faContent(@fa-var-money-bill-alt, 0.8em);}} .node.node--id27 .node-icon i {&::before {.m-faContent(@fa-var-tools, 0.9em);}} .node.node--id20 .node-icon i {&::before {.m-faContent(@fa-var-battery-half, 0.9em);}} .node.node--id21 .node-icon i {&::before {.m-faContent(@fa-var-x-ray, 0.9em);}} .node.node--id61 .node-icon i {&::before {.m-faContent(@fa-var-hard-hat, 0.9em);}} .node.node--id51 .node-icon i {&::before {.m-faContent(@fa-var-balance-scale, 0.9em);}} .node.node--id59 .node-icon i {&::before {.m-faContent(@fa-var-handshake, 0.9em);}} .node.node--id17 .node-icon i {&::before {.m-faContent(@fa-var-street-view, 0.9em);}} .node.node--id19 .node-icon i {&::before {.m-faContent(@fa-var-comment-dots, 0.9em);}} .node.node--id76 .node-icon i {&::before {.m-faContent(@fa-var-info, 0.9em);}} .node.node--id90 .node-icon i {&::before {.m-faContent(@fa-var-hand-holding-medical, 0.9em);}} .node.node--id56 .node-icon i {&::before {.m-faContent(@fa-var-euro-sign, 0.9em);}} .node.node--id129 .node-icon i {&::before {.m-faContent(@fa-var-telegram-plane, 0.9em);color:#c74347;}} .node.node--id170 .node-icon i {&::before {.m-faContent(@fa-var-anchor, 0.9em);}} .node.node--id171 .node-icon i {&::before {.m-faContent(@fa-var-biking, 0.9em);}} .node.node--id172 .node-icon i {&::before {.m-faContent(@fa-var-flushed, 0.9em);}} /* [cXF] Icons in More options menu */ .menu--right .menu-content a.menu-linkRow { &:before { padding-right: 5px; } &[href*="/edit"]:before { .m-faContent(@fa-var-edit); } &[href*="/change-type"]:before { .m-faContent(@fa-var-shapes); } &[href*="/quick-close"]:before { .m-faContent(@fa-var-lock); } &[href*="/quick-stick"]:before { .m-faContent(@fa-var-thumbtack); } &[href*="/feature"]:before { .m-faContent(@fa-var-award); } &[href*="/poll/create"]:before { .m-faContent(@fa-var-poll); } &[href*="/delete"]:before { .m-faContent(@fa-var-trash-alt); } &[href*="/move"]:before { .m-faContent(@fa-var-arrow-from-left); } &[href*="/reply-bans"]:before { .m-faContent(@fa-var-ban); } &[href*="/moderator-actions"]:before { .m-faContent(@fa-var-clipboard-user); } } /* Welcome Section - Dark */ .welcome-block { width: 100%; background: #252525; border-top: none; border-left: none; border-right: none; border-bottom: 1px solid #3a3a3a; box-shadow: 0 2px 8px rgba(0,0,0,0.3); padding: 20px 24px 18px; box-sizing: border-box; } .welcome-inner { display: flex; align-items: center; gap: 24px; max-width: 1300px; margin: 0 auto; } .welcome-logo { flex-shrink: 0; } .welcome-logo img { width: 147px; height: 147px; border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,0.3); display: block; } .welcome-text { flex: 1; } .welcome-title-box { display: block; border: 1px solid #3a3a3a; border-radius: 4px; margin-bottom: 8px; overflow: hidden; } .welcome-title { display: block; font-family: 'Roboto Condensed', sans-serif; font-size: 1.91rem; font-weight: 700; color: #c0392b; line-height: 1.3; background: rgba(255,255,255,0.04); padding: 10px 12px; } .welcome-subtitle { display: block; font-size: 1.46rem; color: #f0f0f0; margin-bottom: 8px; line-height: 1.5; } .welcome-subtitle a { color: #f47420; text-decoration: none; font-weight: 600; } .welcome-badges { display: block; font-size: 1.30rem; color: #aaa; margin-top: 8px; padding-bottom: 4px; border-bottom: 1px solid #3a3a3a; } .badge-rp { display: inline; background: none; border: none; padding: 0; border-radius: 0; color: #aaa; font-weight: 600; } .badge-rp + .badge-rp::before { content: " | "; color: #555; font-weight: 400; } .welcome-models { display: block; border: 1px solid #3a3a3a; border-radius: 4px; margin-top: 8px; overflow: hidden; } .welcome-tags { display: block; font-size: 1.46rem; color: #d0d0d0; line-height: 1.7; background: transparent; padding: 10px 12px 0; } .welcome-tags strong { color: #f47420; font-weight: 700; } .welcome-tags-extra { display: block; font-size: 1.46rem; color: #aaa; line-height: 1.7; padding: 4px 12px 10px; } .welcome-register { margin-top: 12px; } .welcome-register .button--cta { font-size: 1.46rem; padding: 9px 22px; transition: box-shadow 0.2s ease, transform 0.2s ease; } @media (hover: hover) { .welcome-register .button--cta:hover { box-shadow: 0 0 16px rgba(192,57,43,0.6), 0 0 32px rgba(192,57,43,0.3); transform: translateY(-1px); } } @media (max-width: 600px) { .welcome-inner { flex-direction: column; text-align: center; } .welcome-block { padding: 16px 12px 14px; } } /* ======================================== RollerPlausch Modern Footer - Dark Theme ======================================== */ .p-footer-inner { background-color: #1a1a1a !important; } #XF #footer.p-footer, #XF .p-footer { background: #1a1a1a !important; background-color: #1a1a1a !important; border-top: 3px solid; border-image: linear-gradient(90deg, #c0392b, #e67e22, #c0392b) 1; border-left: none; border-right: none; padding: 15px 0 20px; color: #999; } .p-footer-inner { max-width: 1200px; margin: 0 auto; padding: 0 20px; } /* Share Cards - Dark Theme */ .share-card { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; padding: 9px 11px; border: 1.5px solid #444; border-radius: 10px; background: #252525; text-decoration: none; transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); cursor: pointer; min-width: 54px; } .share-card:hover { border-color: #c0392b; transform: translateY(-3px); box-shadow: 0 6px 20px rgba(192, 57, 43, 0.25); background-color: rgba(192, 57, 43, 0.08); } .share-card-rp { border-color: #c0392b; box-shadow: 0 2px 8px rgba(192, 57, 43, 0.2); } .share-card-rp:hover { background-color: #c0392b; color: #fff; box-shadow: 0 6px 18px rgba(192, 57, 43, 0.4); } .share-card svg { width: 17px; height: 17px; display: block; transition: transform 0.3s ease; } .share-card:hover svg { transform: scale(1.1); } .share-card .s-lbl { color: #999; font-size: 0.6em; font-weight: 700; text-align: center; letter-spacing: 0.4px; line-height: 1.2; } .share-card:hover .s-lbl { color: #fff; } .share-card-rp:hover .s-lbl { color: #fff; font-weight: 800; } /* Footer text links hover */ .p-footer-inner a:not(.share-card) { transition: all 0.2s ease; border-radius: 4px; padding: 2px 6px; } .p-footer-inner a:not(.share-card):hover { background-color: #c0392b; color: #fff !important; box-shadow: 0 4px 12px rgba(192, 57, 43, 0.4); } /* Footer disclaimer link hover */ .p-footer-bottom-container .footer-disclaimer-link { color: inherit; text-decoration: underline; font-weight: 700; pointer-events: none; } /* Footer Bottom Container */ .p-footer-bottom-container { text-align: center; } /* Responsive */ @media (max-width: 768px) { .p-footer { padding: 10px 0 15px; } .share-card { padding: 8px 9px; } .share-card svg { width: 15px; height: 15px; } } @media (max-width: 480px) { .p-footer { padding: 8px 0 15px; } .share-card { padding: 7px 8px; min-width: 44px; } .share-card .s-lbl { font-size: 0.55em; } .p-footer-bottom-container { padding: 18px 15px; } .p-footer-bottom-container p { font-size: 0.85em; } }