One by one, my 2017 NIU N1s is increasingly showing signs of erosion… after getting random Error 140 and throttle issues (not fixed yet), the battery’s BMS going crazy and having the battery replaced, the ECU was replaced due to the change of NIUs GSM-network provider (to Vodafone) there’s a new bug in town: The dashboard (aka odometer, aka speedometer) went south…
In the beginning…
It began with sporadic Error 111 messages shown on the dashboard display and the scooter is not reacting to the”gas” throttle. You probably will find something like this in the App errror-log:
there’s a problem with the “Motor controller verification”. This does neither sound very comforting nor easy to fix.
So what is it us
plagued experienced NIU riders usually do? Power off-on-off-on and even more off-on combined with unplugging the battery and some more waiting in-between. Lo and behold my N1s “booted” again, no Error and the dashboard came back to live… for about 10 meters driving. Then there was no acceleration anymore. Some Error 111 again, the dashboard back-light switching off and on and then nothing.
Giving the whole system (and myself) a break I took the car instead and tried it again in the evening: The dashboard back-light flickering, the display’s getting dim… and finally everything went off.
That said, basic functionality was still there: Head-light, indicators, break-light and a bit later even the motor would run in lowest “gear”… but the dashboard stayed dark and never came back 🙁
Let’s see what the official (v1.5) Manual says…
Ok, than can mean everything, from a loose cable, replacing each and every vital part up to total wreckage :-/
I opted for the first and got out my tools: Dismantle time again…
Here’s the recipe:
- Power-off the scooter
- Remove the front-panel (like shown in the video about Error 140)
- check all cables and connectors. There are many of them, so disconnect each one & check each plug/socket for dirt, rust etc.
- Power-on. Any difference? If yes – hooray, you’ve found it!
- Last chance is a broken cable, so wiggle everything in there (no worries, it’s just 12V ;-))
If there’s still no light/display I’m sorry to say we’re out of “low hanging fruits”. It has to be something more severe. Because a new dashboard is about 180€ I decided to did a bit deeper into the matter – maybe it’s just a 10ct thing which went belly-up.
Taking the bus
The other possible sources of Error 111 given in the manual are mostly controllers and the communication between them. Like all current cars, your NIU also connects all controllers and instruments by the so-called CAN bus (Controller Area Network).
This bus is a “multi-master bus”, i.e. every node can talk to the bus at will. Physically it uses 2 wires for data (CAN_HIGH and _LOW) and a dedicated ground wire, mostly accompanied by VCC at either 5 or 12 volts (the latter will be reduced to 5 or less Volts inside a bus node).
Having a look at the N1s simplified schematic, you’ll see the main nodes connected to the CAN-bus (I marked it green for better readability):
So these are the things connected by the bus:
- “Central Controller” (ECU)
- “Motor Controller”
- “Lithium battery” (BMS)
- “Instrument” (Dashboard)
My guess is that the ECU acting as main controller for all nodes will put the scooter in an emergency state if one or more nodes are malfunctioning.
Because my dashboard went poof I was curious how the system reacts if I simply disconnect the dashboard from the bus. Well, here’s what happened:
Voilá! While the dashboard is connected my N1 runs at “1st gear speed” (15km/h), no matter how the mode-switch has been set. Disconnecting the dashboard makes the scooter running at every speed which will be set.
So the culprit was found and out it went:
The case was unexpectedly easy to open – no silly three-wing screws or such. Just remove the 4 philips screws and you will have this view:
Looking at the backside of the display you’ll have the PCB in its full
glory simplicity. It’s really not very complicated at all – I’d say rather primitive. There are just 4 ICs and 2 through-hole capacitors beside the usual “chicken feed”:
- A 78M05
primitivebog-standard voltage regulator (generating 5 volts for the other ICs from the 12V input)
- A Holtek HT1621b (LCD driver, 128 segments)
- An STM8S105S4 8-bit micro controller from ST
- A MAX485 CAN-Bus/RS-485 data-transceiver
- To be fair, there’s also a thermo-resistor inside – it’s mangled into the cable harness.
So the function of this beast is pretty self-explanatory (if you’re into electronics):
12V coming in on the left side (red & black cable), the other cables are CAN_HIGH & _LOW, CAN_GND, indicators left/right and high-beam.
The 12V are converted into 5V by the 7805, surrounded by some filter capacitors. This 5V is fed into the LCD driver, micro controller and RS485 transceiver.
The STM8S micro controller (having internal ROM & RAM) controls the LCD driver by its 2-wire interface and gets its data through the MAX485 (pins 1 & 4 to 20 & 21 on the STM8S)
There’ll be light
After checking for cold-solders and shorts I had a look at the background lightning – remember, it flickered and then went off completely. To get to the back-light LED you have to un-solder and bend the display away/up from the PCB.
There are two tiiiiiiiny PCBs which carry four 0805 glued to a ‘light distribution plane’ by using thin, black duct-tape. But first you have to un-solder the two “fingers” from the main PCB – hard to describe but easy to understand when looking at this:
Obviously all 8 LEDs were blown and needed to be replaced. I used white super-bright LEDs (3.1V/20ma, 6000K/~300mcd).
The LEDs are grounded trough a J3Y NPN transistor (25V, 0.5A, 0.3W) which base-pin is connected to the STM8 controller – so it seems that the back-light can actually switched on and off via software. Because the values of this transistor looked ‘funny’ I replaced this one too by a slightly better one (BSR14 – 75V, 0,8A, 0,42W).
Finally, just to be sure, because I can and “you’ll never know”, I replaced the two through-hole capacitors (100 & 220uf, 85°C) with proper 105° ones – it might get hot in there: Remember that the 7805 turns 7 volts into heat and I also measured the STM8S at cosy 50°C (122°F).
It works… not!
After all these replacements the display worked again, did a selftest (switching on all LED segments etc) and I was about to celebrate…
..but this state kept for just about 3 power-on-off tests. Then everything went dark again 🙁
Measuring again showed that the 5V rail is grounded. WTF!? Because the STM8S now got really hot (60+°C) this one became suspect #1… and to prove it, he has to be removed:
Yup, there is an internal shortage in the STM8S. That’s the ultimate bummer… if I can’t read out the “firmware” to replace this $2 chip, there’s no way to finally repair my dashboard.
I hope I’ll find some nice N1s (2017) model owner in my area (Hamburg, Germany) who are allowing me to open their dashboard for about 15mins to read-out its firmware 😉
The experienced folks and people who are into hacking/reversing might have spotted the 4 solder-holes below the controller. Good news: It’s a in-system-programming port for ICP/SWIM! Because my STM8 was broken I did not have the chance to test port…
So I replaced the controller with a new one and dived into reverse-engineering, analyzing the circuit-board following traces and then find out, which lines of the LCD controller are connected to which segments on the LCD (i.e. address mapping) – and this is what something like version 0.0.1 looks like on my workbench, upside-down:
Stay tuned for more updates as I progress (and wait for a firmware donor…).
The no-name/OEM roots
When searching the web for more info on NIU dashboards (there isn’t any) you’ll stumble across many similar looking things. Here is one example of dashboards you can buy at the known Chinese online-platforms…
Looks astonishingly familiar, doesn’t it? There are may different LCD layouts – made to the customers need. But some elements like the battery-level or mode-indicator are very close to NIUs design. But having a look inside shows that its design is even simpler and cheaper…
No CAN/RS485 here, speed is a direct signal from a hall-sensor.
Finally, I also got my hands on a 2nd Gen dashboard (2018-2019 models), which is much more modern. So here’s the post on that.