How I bypassed the speed restriction on my NCM 500W/48V Moscow Plus 29er.

Has anyone used this chip tunning?
My ebike is already unlocked, on flat it can go up to 42km / h but with this chip they say it optimizes the response on thanks to high torque even at lower speeds. Usually NCM has little lag at start and that it's annoying.I would like to know if it's true that this chip can optimize the response.
If your bike can already reach 45km/h, this will not make it go any faster.
 
If your bike can already reach 45km/h, this will not make it go any faster.
Not to go faster, that's already enough speed for me, but i wonder if can make my ebike more responsive, that's all i want.
 
I have a ET Cycle 1000 With a C7 display and I have pretty much no setting to change. I do have the tire size and 36/48 volt and thats pretty much it. My (power) is set on Power only and thats the only part I would like to be able to change. I would like to change it to Eco or Normal just to see how it reacts to it. I would like to tune it down bit so it does not take off so fast.

Bruce
Hi Bruce,

I have the exact same thing on my T1000. Any advice on how you can change it. 8088 password did not work, like in the YT videos, only the 8018 which leads to limited setting changes. Any help appreciated :)
 
Hi Bruce,

I have the exact same thing on my T1000. Any advice on how you can change it. 8088 password did not work, like in the YT videos, only the 8018 which leads to limited setting changes. Any help appreciated :)
Sorry I have not talked with anyone who has been able to change anything on the T1000. I have been waiting for someone to figure it out and still waiting. Not sure if you change the display if that would make any difference.

Bruce
 
Hi. Has anyone used this display from the link on NCM Moscow? I think it is compatible with the controller because the Das-kit is a rebranding of the MXUS motor. My motor it's named das-kit X15R and the original version it's

MXUS XF15R .​

https://www.aliexpress.com/item/1005004324605510.html?spm=a2g0o.productlist.0.0.1d374f340KSPrq&algo_pvid=fef1a93b-ac4f-4615-b5e6-4622c40808d0&algo_exp_id=fef1a93b-ac4f-4615-b5e6-4622c40808d0-0&pdp_ext_f={"sku_id":"12000028758976920"}&pdp_npi=2@dis!EUR!!81.04!!!!!@0bb0623e16540773767712220ee242!12000028758976920!sea
 

Attachments

  • photo_2022-06-01_12-12-52.jpg
    photo_2022-06-01_12-12-52.jpg
    81.8 KB · Views: 248
Last edited:
Hello friends. I tested the ebike in ECO, Normal and Turbo mode to see the maximum range.The Kit summary: Das-Kit X15R, CT5-i5 controller, Reention Dorado battery, 48v 21Ah - 18650 cells. Between Eco and Normal there is almost no difference, on eco I traveled around 110km (68miles), on Normal around 100km (62miles) and on Turbo around 70-80km (50-43miles). In eco and normal mode, after a longer journey you feel the fatigue in your legs because you put in a little effort, but on Turbo you don't feel anything. So I chose to use the Turbo mode all the time and in the near future I want to buy another battery to be able to cover a double distance.
 
Digging up an old thread but just wanted to let others know I was able to add an Arduino Nano inline with the C7 and motor controller to modify the max speed values. I bought my Moscow Plus 48V 27.5" in Canada in June 2023 and there weren't any settings (passcode 8018) to modify the max speed in the C7 itself. I took the code from the repo at https://github.com/NorthyIE/DasKit-C7BB-Tuning and once I verified I was getting the proper messages I slimmed it down to suit my needs. I bought the 8 pin cable from amazon and used the information in this thread and the original thread and wired up the +5V (measured at 4.2V), GND, C7 TX(split between the Nano RX/TX ports using D2 and D3 that I set in the program). With the cable I bought the Yellow was +5V, White was GND, Orange was the UART line from C7 to motor controller, although you might want to double check that with a DMM to verify. To save time on soldering/heat shrinking you might want to not cut all the lines in the cable when you open it up but I wanted to to easily verify all the lines. Half the lines are just passthough and not needed in the Nano (or whatever programmable board you choose to use).

My program, which is a modification of this repo, detects if the C7 is in PAS6 mode with either the backlight on or off and sets the max speed to 54km/h (although with full charge I'm only getting ~44km/h max). The original max speed is set at 0x21=>33km/h for all modes with the C7 I have and the software the manufacturer programmed to it. I also modified the 7th byte as this corresponds with the throttle max speed. This way if I'm pedalling or using the throttle in PAS6 I am able to achieve the max speed the motor controller is able to supply.

C:
// NCM C7 PAS6 Speed Unlock
// Packet Data https://github.com/NorthyIE/DasKit-C7BB-Tuning/blob/master/Documentation/Display-2-Controller.md

#define BAUDRATE 9600
#include <SoftwareSerial.h>

SoftwareSerial Serial1(2, 3); // RX, TX

const byte numBytes = 32;
byte receivedBytes1[numBytes];
byte numReceived1 = 0;
boolean newData1 = false;
byte sendBytes[numBytes];

void setup() {
  Serial1.begin(BAUDRATE);
}

void loop() {
  CheckMessage();                      // Check for Message from C7 Display
  ModifyMessage();                        // Modify Message
  GenerateChecksum();                   // Calculate Checksum
  SendModifiedMessage();                    // Send modified message
}

void CheckMessage() {
  static boolean recvInProgress = false;
  static byte ndx = 0;
  byte startMarker = 0x3A;             // Start byte 0x3A
  byte endMarker1 = 0x0D;
  byte endMarker2 = 0x0A;              // End with CR LF
  byte rb;

  while (Serial1.available() > 0 && newData1 == false) {
    rb = Serial1.read();
    if (recvInProgress == true) {
      if ((rb != endMarker2) || (receivedBytes1[ndx-1] !=endMarker1)) {
        receivedBytes1[ndx] = rb;
        ndx++;
          
        if (ndx >= numBytes) {
          ndx = numBytes - 1;
        }
      }
      else {
        receivedBytes1[ndx-1] = '\0'; // terminate the string
        recvInProgress = false;
        numReceived1 = ndx-1;  // save the number for use when printing
        ndx = 0;
        newData1 = true;
      }
    }
    else if (rb == startMarker) {
      recvInProgress = true;
    }
  }
}

void ModifyMessage() {
  sendBytes[0]=0x3A;                            // New message starts with 0x3A
  for (byte n=0; n < numReceived1; n++) {
    sendBytes[n+1]=receivedBytes1[n];           // Copy message bytes
  }
  sendBytes[10]=0x0D;                           // End with CR LF
  sendBytes[11]=0x0A;
 
  if (sendBytes[3] == (0x46) || sendBytes[3] == (0xC6) ) {  // If PAS == 6th stage with backlight off or no
    sendBytes[2]=(0x0B);                                    // Make sure we're in Power Mode (0x0B => Power Mode, 0x0A => Normal, 0x09 => Eco)
    sendBytes[4]=(0x36);                                    // Set Max Speed (ex : 0x24 => 36km/h, 0x36 => 54km/h)
    sendBytes[7]=(0x36);                                    // Set Throttle Max Speed
  }

}

void GenerateChecksum() {
  sendBytes[8]=0;
  for (byte n=1; n<8; n++){
    sendBytes[8]=sendBytes[8]+sendBytes[n];
  }
}

void SendModifiedMessage() {
    if (newData1 == true) {
        Serial1.write(sendBytes,12);              // Send Message
        newData1 = false;
    }
}

Anyways just want to let anyone know that it is still possible to do and not incredibly hard if you have an electronics background.
 
Last edited:
  • Like
Reactions: ovt
I'm no electrical engineer but I am a practical mechanical one....:rolleyes:

Instead of changing things, why not set the bike at 20" wheels and buy a $10 speedometer from Amazon?

(I'm assuming you can set 20" wheels)
 
I'm no electrical engineer but I am a practical mechanical one....:rolleyes:

Instead of changing things, why not set the bike at 20" wheels and buy a $10 speedometer from Amazon?

(I'm assuming you can set 20" wheels)
Remeber the hoary old one about assume making an ASS out of U and ME
 
Unfortunately, the max speed is ultimately limited by the motor and battery voltage. I completely (and temporaily) replaced the controller on my Moscow Plus with a FSESC 4.12 50A controller based on the VESC programming format. Max speed was about 25 MPH. If this is all the speed boost you're looking for then some of the hacking methods above would have potential.

I personally would be interested in this 4-5 MPH boost if someone comes up with an easy programming method.
 
I wondered if anyone could help me .

I bought an electric bike from a UK store .it was a ncm moscow plus . I was offered it cheaper than what it was worth as it had been a display and used.

I believe as uk limits to 15mph and 250 watt motor .

The bike is 48v with a 15 or 16 amp controller .

So I figured the peak performance of the motor is actually higher than 250 watt.

I have seen people , Buy a different display and have it derestricted up to 28 mph . A lot of these people aren't from eu so they have the 500 watt rated motor . But someone from the UK has it derestricted and his bike was from the UK and he's pretty sure he has the 250watt branded motor


I have tried this display and when I hit 20 mph the das kit rear hub motor Makes a terrible grinding noise and all motor assistance stops at 20. .

I was wondering . Is the the motor reaching its capabilities and cutting out ?

Or have I bought a bike with something wrong with the motor ?



I figured the peak performance of motor would actually be higher than 250 Watts considereting the voltage and ampage of controller . So I'm worrying it is a fault with the notor it's self?



Thanks in advance
 
Hi liamc i have a ncm moscow and i put a 35 amp controller and a 1500w tdr motor on it with a ktlcd8 display it is great the 250 watt motor you have is ok but the controller is restricting the whole thing
 
Back