Kommunikation zwischen C7 Display und Motorkontroller NCM Venice+ Das-Kit

Diskutiere Kommunikation zwischen C7 Display und Motorkontroller NCM Venice+ Das-Kit im Nabenmotoren Forum im Bereich Fertig-Pedelecs; .
J

jokskot

Dabei seit
05.04.2020
Beiträge
21
Punkte Reaktionen
5
So I made another code for the NCM Moscow Plus 29 inch. I don't know for sure if it runs into the other. I only did it so that my thumb throttle has 6 km / h without tuning and has full power with tuning. Since levels 1-6 without light, the tuning is deactivated and thumb throttle 6 kmh and with light all levels tuned with better response and the thumb throttle with full power.
I have the Moscow plus 29 inches. It runs absolutely perfectly there.


Code:
/*

New version of the C7 display communication

The display sends 12 bytes, the controller replies with 10 bytes, the display sends another 9 bytes

ATTENTION: there is no more speed display when outputting to a serial monitor!

Check sum is calculated from b1 - b7 and is divided into high and low bytes


* /

#include <SoftwareSerial.h>
#define BAUD_RATE 9600


SoftwareSerial swSer1 (12, 13, false, 256); // Software serial 1 on GPIO12 and 13
SoftwareSerial swSer2 (14, 15, false, 256); // Software serial 2 on GPIO14 and 15

byte rb = 0;
byte rb2 = 0;
byte sb = 0;
boolean tune = false;

boolean SerialOutput = false; // if true, the data is sent to the serial monitor
boolean SerialOutput2 = false; // if true, the data is sent to the serial monitor

void setup () {
  Serial.begin (BAUD_RATE);
  swSer1.begin (BAUD_RATE);
  swSer2.begin (BAUD_RATE);
}

void loop () {
  if (swSer1.available ()) // if there is new serial data
  {   
  
    rb = swSer1.read (); // save receive byte in rb


    if (rb == (0xC1)) // if speed step 1 is activated
      {
        sb = 0xC1; // change sendbyte to speed step 1
        tune = true; // "Tuning" is active
      }
    else if (rb == (0xC2)) // if speed step 2 is activated
      {
        sb = 0xC2; // change sendbyte to speed step 2
        tune = true; // "Tuning" is active
      }
    else if (rb == (0xC3)) // if speed step 3 is activated
      {
        sb = 0xC3; // change sendbyte to speed step 3
        tune = true; // "Tuning" is active
      }
    else if (rb == (0xC4)) // if speed step 4 is activated
      {
        sb = 0xC4; // change sendbyte to speed step 4
        tune = true; // "Tuning" is active
      }
    else if (rb == (0xC5)) // if speed step 5 is activated
      {
        sb = 0xC5; // change sendbyte to speed step 5
        tune = true; // "Tuning" is active
      }
    else if (rb == (0xC6)) // if speed step 6 is activated
      {
        sb = 0xC6; // change sendbyte to speed step 6
        tune = true; // "Tuning" is active
      }
    else if ((rb == (0x06)) && (tune == true)) // change all speed steps activated
      {
        sb = 0x00; // change sendbyte to all speed levels
        tune = true; // "Tuning" is active
      }
    else if ((rb == (0x1A)) && (tune == true)) // if tuning is active and the byte for the maximum speed comes
      {
        sb = 0x2D; // adjust the max.speed 2D = 45 km / h
      }
    else if ((rb == (0x12)) && (tune = true)) // if tuning is active and the low byte for the checksum comes
      {
        sb = 0x1F; // Adjust checksum
      }
    else if ((rb == (0x13)) && (tune = true)) // if tuning is active and the low byte for the checksum comes
      {
        sb = 0x20; // Adjust checksum
      }
    else if ((rb == (0x14)) && (tune = true)) // if tuning is active and the low byte for the checksum comes
      {
        sb = 0x21; // Adjust checksum
      }
    else if ((rb == (0x15)) && (tune = true)) // if tuning is active and the low byte for the checksum comes
      {
        sb = 0x22; // Adjust checksum
      }
    else if ((rb == (0x16)) && (tune = true)) // if tuning is active and the low byte for the checksum comes
      {
        sb = 0x23; // Adjust checksum
      }
    else if ((rb == (0x17)) && (tune = true)) // if tuning is active and the low byte for the checksum comes
      {
        sb = 0x24; // Adjust checksum
      }
    else if (rb == (0x0D)) // when we are at the end of the data set, reset "tuning"
      {
        tune = false;
      }   
    else // otherwise pass the bytes through
      {
        sb = rb;
      }
    swSer1.write (sb); // send a byte to the controller


  if (SerialOutput == true)
    {
      Serial.print ("received:");
      Serial.print (rb, HEX);
      Serial.print ("new:");
      Serial.println (sb, HEX);
    }

}

}
 
J

jokskot

Dabei seit
05.04.2020
Beiträge
21
Punkte Reaktionen
5
Ich habe versucht, diesen überarbeiteten Code auf meinem NCM Moskau mit L7-Display zu verwenden, der es der "Walk" -Funktion ermöglichen soll, das Fahrrad mit maximaler Geschwindigkeit zu fahren, wenn das Display leuchtet.
Die zusätzlichen Zeilen, die dem früheren Code hinzugefügt wurden, bewirken weiterhin, dass die unterstützte Höchstgeschwindigkeit etwa 36 km / h erreicht. Leider ist die durch Drücken der Taste "Gehen" erreichte Geschwindigkeit immer noch auf 6 km / h beschränkt
 
M

Mugen120

Dabei seit
28.02.2021
Beiträge
4
Punkte Reaktionen
2
Ich habe versucht, diesen überarbeiteten Code auf meinem NCM Moskau mit L7-Display zu verwenden, der es der "Walk" -Funktion ermöglichen soll, das Fahrrad mit maximaler Geschwindigkeit zu fahren, wenn das Display leuchtet.
Die zusätzlichen Zeilen, die dem früheren Code hinzugefügt wurden, bewirken weiterhin, dass die unterstützte Höchstgeschwindigkeit etwa 36 km / h erreicht. Leider ist die durch Drücken der Taste "Gehen" erreichte Geschwindigkeit immer noch auf 6 km / h beschränkt
Das Funktionier nur mit einem Daumengas, die Schiebehilfe bleibt immer 6 Km/h.
 
J

jokskot

Dabei seit
05.04.2020
Beiträge
21
Punkte Reaktionen
5
Thanks. My misunderstaning of the translation. I'll try and report back
 
J

jokskot

Dabei seit
05.04.2020
Beiträge
21
Punkte Reaktionen
5
Thanks. My misunderstaning of the translation. I'll try and report back

Geniale Ergänzung zu einem bereits hervorragenden "Fix".
Mit einer richtigen Drosselklappe und beleuchtetem Display erreicht es jetzt die maximale unterstützte Geschwindigkeit (ca. 36 km / h) und zeigt, da meine Drosselklappe eine Spannungsanzeige hat, auch den Zustand der Batterie an.
Vielen Dank an alle, die an der Entwicklung dieser hervorragenden Tuning-Modifikation beteiligt waren.
 
D

DerNoob

Dabei seit
25.05.2021
Beiträge
1
Punkte Reaktionen
0
Hallo,
Ich bin ein NCM Aspen Fahrer und hätte rein aus Interesse eine andere Frage zu der Thematik.

wäre es nicht möglich mit einem anderen Display + Controller

an die vorhandene Batterie und Motor anzuschließen?
Grüße aus BaWü
 
LoveTT

LoveTT

Dabei seit
31.07.2018
Beiträge
188
Punkte Reaktionen
120
Details E-Antrieb
Mxus Fat-XF15; 48V21Ah / Yamaha PW
Hallo Ja, klar. 👍
Kann dir auch eine Empfehlung geben..
Komponenten von KT (Kunteng) & zwar genau genommen einen KT-Controller für den Polly-Akku.
Den kannst du sehr schön, unten an den original Controller-Platz schrauben & die Kabel kannst auch an beiden Seiten rausführen.
Dann noch wasserdicht ausgießen und du hast ein super Upgrade. So zum Beispiel 48V/22A:
https://m.de.aliexpress.com/item/33017453619.html
 
G

grisu122

Dabei seit
26.08.2020
Beiträge
2
Punkte Reaktionen
0
Hallo,
Ich verfolge den Thread hier schon länger und habe mir jetzt einen esp8266 (MOD 12f 4MB) und die entsprechenden Kabeln besorgt.
Meine Frage wäre welche Dateien brauche ich bzw müssen auf den Chip?
Wenn ich versuche die Scripte hier zu kopieren und auf den Chip zu laden bekomme ich immer Fehleremeldungen wegen der SoftwareSerial.
Muss ich eine sezielle Firmware flashen?

Ich wäre euch sehr dankbar wenn mir jemand ein wenig helfen könnte.

Gruß Stefan

Mein Bike: NCM Moscow 29 Zoll (ohne Plus) 48V, Baujahr 2020, mit L7 Display
 
J

jokskot

Dabei seit
05.04.2020
Beiträge
21
Punkte Reaktionen
5
Hi
Forgive the response in English, but I hope / think you'll be pleased with the result ...
I too had problems with the software serial and modified two of the early lines to remove the fourth argument. The attached file should work provided you either have 29 "wheels or set the controller display to think you have 29" wheels. It may also work with the smaller wheels. It also allows a throttle (if fitted) to drive the the unassisted speed of the bike to around 35kph. Let me know if it works.
All credit to Earlier Contributors to this thread particularly Vspadrva and Marze
J
 

Anhänge

  • Modded NCM Moscow Tuning.txt
    4,9 KB · Aufrufe: 44
G

grisu122

Dabei seit
26.08.2020
Beiträge
2
Punkte Reaktionen
0
Hi
Forgive the response in English, but I hope / think you'll be pleased with the result ...
I too had problems with the software serial and modified two of the early lines to remove the fourth argument. The attached file should work provided you either have 29 "wheels or set the controller display to think you have 29" wheels. It may also work with the smaller wheels. It also allows a throttle (if fitted) to drive the the unassisted speed of the bike to around 35kph. Let me know if it works.
All credit to Earlier Contributors to this thread particularly Vspadrva and Marze
J

Works great, Thank you
 
L

Lionz

Dabei seit
08.03.2021
Beiträge
4
Punkte Reaktionen
0
Habe den Code von Jokskot vom Eintrag #190 mit einem esp8266 getestet, beim NCM Milano +, C7 Display, 28" leider ohne Erfolg. Klappt gar nicht. Davor den Code von Marze6989 da funktionierte es bei Stufe 2/Licht kurzzeitig mit falschen Km angaben im Display, sowie Daumengas und nach einigen Min. Totalausfall. Daraus schließe ich das die Verdrahtung generell richtig ist. Werde das Projekt jetzt aufgeben.
Meine Frage wenn ich nur das Daumengas, ohne den esp anschließe, funktioniert das dann bis Endgeschwindigkeit oder nur bis 6 km?
Gruß Lionz
 
M

Mugen120

Dabei seit
28.02.2021
Beiträge
4
Punkte Reaktionen
2
Habe den Code von Jokskot vom Eintrag #190 mit einem esp8266 getestet, beim NCM Milano +, C7 Display, 28" leider ohne Erfolg. Klappt gar nicht. Davor den Code von Marze6989 da funktionierte es bei Stufe 2/Licht kurzzeitig mit falschen Km angaben im Display, sowie Daumengas und nach einigen Min. Totalausfall. Daraus schließe ich das die Verdrahtung generell richtig ist. Werde das Projekt jetzt aufgeben.
Meine Frage wenn ich nur das Daumengas, ohne den esp anschließe, funktioniert das dann bis Endgeschwindigkeit oder nur bis 6 km?
Gruß Lionz
Nimm den Code von Matze aus dem post 180.
Der muss funktionieren.
Wo willst du das Daumengas anschließen???
Hast du eine Anschluß an deinem Display oder willst du es einfach in das Kabel löten??
 
L

Lionz

Dabei seit
08.03.2021
Beiträge
4
Punkte Reaktionen
0
Am Kabel. Nach Verdrahtungsplan in der Anlage! Dank an Maganzi!
LG
 

Anhänge

  • Wiring-Schema.png
    Wiring-Schema.png
    227,5 KB · Aufrufe: 22
L

Lionz

Dabei seit
08.03.2021
Beiträge
4
Punkte Reaktionen
0
# Mugen 120, habe den Code von Matze (post 180) aufgespielt. Klappt nicht.
ohne 2/licht alles ok, beim alten, mit nur unterstützung Stufe 2, hochschalten ohne Wirkung, (Daumengas noch nicht angeschlossen)
Verkabelung überprüft, kein Dreher, (zum Display / Controller)
Ist der ESP8266 richtig: D1 Mini NodeMcu mit ESP8266-12F WLAN Module CH340G Lua ?
Board Lolin Wemos D1 R2 &mini/esp8266 (2.52)/lolin wemos D1 Rs&mini

Muss ich am esp erst was löschen oder resetten? Läuft ohne Fehlermeldungen durch?
Lionz
 
T

Tschosef

Dabei seit
17.06.2021
Beiträge
8
Punkte Reaktionen
1
Nimm den Code von Matze aus dem post 180.
Der muss funktionieren.
Wo willst du das Daumengas anschließen???
Hast du eine Anschluß an deinem Display oder willst du es einfach in das Kabel löten??
Halli hallo....

habe mich nun von meinem "Voilamart 1000W mit CycleAnalyst" verabschiedet, und mir ein größeres, bequemeres NCM Venice gegönnt.
Daher bin ich über diesen Thread hier gestolpert, was ich schon mal super finde.... Natürlich hab ich gleich einen ESP und Kabel geordert.

Nun bin ich bei ersten Versuchen ebenfalls über die "Problematik": No Matching Function for Call...... "SoftwareSerial swSer1(12, 13, false, 256)" gestolpert.
Recherche hier: Arduino - SoftwareSerialConstructor ergab dann, dass SoftwareSerial scheinbar nur 3 Parameter braucht.
Sobald ich die 256 weg lasse, kompliert das ganze auch, und lässt sich übertragen.

Ob es damit auch funktioniert, hab ich noch nicht getestet... kommt (bald).

Ich wollte nur vorab sagen, dass sich da womöglich etwas geändert hat? Der Code von Maze (post 180) und vorherige funktionieren eben evtl. nicht ohne weiteres.
Ich weis auch nicht wofür der 4te Parameter (hier 256) gedacht ist..... ich werde berichten. Letztendlich beschreibt der Thread #190 von Jokskot genau das gleiche.. ich hatte es nur lange nicht gelesen (weil Englisch... und da bin ich so faul).... daher schreibe ich das ganze auch nochmal in Deutsch ;-)

Insgesammt bin ich hier gelandet, weil ich den Eindruck habe, dass mein Bike garnicht auf die Einstellungen ECO, NORMAL und BOOST (oder wie das heist) reagiert... daher möcht ich ich da mal rein fuchsen ;-) Daumengas mach ich evtl. auch noch.. hab ich noch im Keller liegen.

viele Grüße
Erich
 
M

markustoe

Dabei seit
27.06.2016
Beiträge
1.173
Punkte Reaktionen
621
Ort
LU
Details E-Antrieb
Stromer ST1X
Diese Funktionen wurden schon vor einiger Zeit abgeschaltet, OTon NCM, automatisiert....
 
T

Tschosef

Dabei seit
17.06.2021
Beiträge
8
Punkte Reaktionen
1
Diese Funktionen wurden schon vor einiger Zeit abgeschaltet, OTon NCM, automatisiert....
Hallo Markustoe,

Du meinst damit den 4ten Parameter von SoftwareSerial? .... oder etwas anderes?... ich tu mich gerade schwer deinen Post richtig zu verstehen.
O-Ton NCM .... heist das, dass diese Modifikation aus diesem Thread nicht mehr funktioniert?

viele Grüße
Erich
 
T

Tschosef

Dabei seit
17.06.2021
Beiträge
8
Punkte Reaktionen
1
Ich habe heute mal den Microkontroller zwischen Display und Motorsteuerung gehängt... immerhin es hat nicht gleich geknallt :) aber es gibt wohl sicherlich was zu tun. Ich hatte den Code von Post No 6 verwendet, der wohl für das L7 nicht funktional ist ..... aber es gibt ja hier im Thread noch viel zu lesen, und zu verstehen ....

wird schon noch.
 
Thema:

Kommunikation zwischen C7 Display und Motorkontroller NCM Venice+ Das-Kit

Kommunikation zwischen C7 Display und Motorkontroller NCM Venice+ Das-Kit - Ähnliche Themen

Extern Balancer für 10S selber bauen?: Hi, ich habe das hier ins Auge gefast: TP4056 Platine Chip Datasheet Meine Cellen Technische Daten (kurzfassung)...
Haibike Yamaha: Reverse-Engineering: Hallo, nachdem ich zusammen mit dem Nutzer @hErMeS den Yamaha Thread mit dem Akku-protokoll vollgequatscht hatte, haben wir uns über die...
Oben