Skip to main content
FW version: Stable

Multi controller setup

With the LYNX firmware it is possible to have a vehicle with multiple controllers. One controller is a Master and other are Slaves. To the Master you will wire all the inputs. Other controllers are connected just over CAN and listen to the Master.

Example usage
  • Bike with front and rear hub motor
  • Electric cart with 2 motors, one for each rear wheel
  • Quad bike with 4 individual motors
warning

It is not intended for vehicles with steering by changing the speed of the left and the right motor.

Implementation notes

  • All devices on the CANbus need to have unique addresses
  • Master is always controller with address 0
  • If Master is in error, the whole vehicle is stopped
  • If Slave is in error, only one motor is stopped (in freewheeling mode)
  • What is the Master sending to the Slave:
    • Driver mode, driver cmd and imult
    • LYNX selected map
  • Only Master is sending LYNX Periodic messages
  • Driver limiter are working independently - i.e. settings in folder /driver/limiter

Prerequisites

  • Completely setup Master controller (controller with address 0)
    • Motor is identified
    • Inputs are wired and configured
    • The vehicle can be driven with only the Master without problem
  • Prepare Slave controllers
    • Setup same CAN speed
    • Make sure, that you have two 120ohm CAN terminators on the bus
    • Setup different address for each Slave (starting from address 1)
    • Identify motors on Slave controllers
    • Setup driver in Slave controllers
      • limiters, current (can be different from master)

LYNX configuration

  • In Master set parameter:
    • /misc/syncmode -> 1
  • In all Slaves set parameters
    • /misc/syncmode -> 2
    • Other parameters leave in default
  • Copy these parameters from Master to Slave (Also remember, when you change these parameters, change them in all controllers)
    • maps/restmapcnt
    • maps/mapchlpf
    • maps/mapcnt

Maps tuning

List of parameters, that can be individually tuned in Slave and Master:

  • maps/kphlimit
  • maps/pwrlimit
  • In every map:
    • maps/mapX/kph
    • maps/mapX/pwr
info

In the slave controller, only the pwr and kph parameters in the map are used. Other parameters are ignored.

Examples

I want same power and speed from Master and Slave
Just copy all above listed parameters from Master to Slave

I want front motor with less power
Set different values in pwr parameter in maps.

I want different torque in front motor
Change /driver/iref parameter in front controller.