Pololu VNH5019 and DCC++

capn_krunch Aug 7, 2019

  1. capn_krunch

    capn_krunch New Member

    1
    0
    1
    Hi everyone,

    First time poster here, I am currently in the process of assembling a DCC++ base station. I was wondering if anyone has any experience with the Pololu VNH5019 motor driver as the shield used for a DCC++ base station? I'm specifically looking to see if there are specific traces I should be cutting and/or any changes to the base station code I should be making?

    I was watching a video from Tom's Trains and Things on YouTube and he outlined what to do with the Pololu MC33926 shield in terms of modifications to the shield and code. I've seen people say that setting up the VNH5019 for DCC++ is similar to the MC33926, but I haven't seen anyone actually put one together using the VNH5019. He cut traces for pins 4, 10, and 12 on the MC33926 in the video, but I'm not entirely sure if the same traces are cut for the VNH5019. In addition, I don't know if the same code changes are made for this particular shield.

    Thanks in advance for the help!
     
  2. FlightRisk

    FlightRisk TrainBoard Member

    548
    237
    14
    Sorry no one has replied. Are you speaking about this board: https://www.pololu.com/product/2507 ? I took a look at the schematic and datasheet. This would be an experiment as it is a different board with a completely different motor controller IC. The most major difference is that this board has separate direction pins. To use DCC++ Classic or the current DCC++ EX release, you would need to build two small inverter circuits, one for each H-Bridge. You could duplicate the logic circuit from the other Polulo board, use an IC inverter, or solder up a 1 transistor, 2 resistor circuit.

    The board may work with the beta test version of DCC++ EX that can support boards that have 2 inputs via a software setting. The board would just stick on top of the Arduino and we would set the correct pins in the Command Station software. The issue then would be to take a harder look at the pins used and if they would interfere with anything else you would want to do, like networking. This board uses pin 4 which would interfere with a network shield, so we would have make a change and add a jumper. The current sense is not clear on that board, but looks like we would have to add a resistor and calculate that properly for the voltage you were using and the current that would output. How fast the short circuit detection works is not specified. That is a problem on the MC board. It is so fast, that it cuts the power before the CS sees the short. So the MC Pololu board is not compatible with railcom and not compatible with reversing sections.

    It might be worth spending time to see if this board would work, but it would take someone studying the board, comparing it to the design of the MC board, etc. The new DCC-EX eliminates a lot of the issues because it can move all the pins around internally. This could not be done with DCC++ Classic. In addition, after determining the ideal pin configuration to allow for options like a network shield or wifi board, we could still cut traces and add jumpers if needed since this board is highly configurable that way.
     
  3. Ash

    Ash TrainBoard Member

    106
    67
    8
    I just did the 1-transistor+2-resistor cabling for a BTS7960 (aka IBT-2). You would need two of the 2-chip modules - one for main track and one for programming. Or perhaps one BTS7960 and one L298.

    This link shows a wiring diagram for ESP32.
    https://www.trainboard.com/highball...2-command-station.112634/page-13#post-1047918

    - related questions for @FlightRisk
    1. I seem to be able to read CVs with current sensing on BTS7960 with BaseStation Classic. Not the case with DCC++EX 2.1.3. What is the status of the code for the programming track in DCC++EX?

    2. re: Programming track
    I have these (Mega) pins connected: 2, 11, A1, GND
    What is this; nothing connected? #define DIRECTION_MOTOR_CHANNEL_PIN_B 13
    The reason I ask is that the above #define (DCCppEX.h) resulted in confusion for the wiring.

    - and I am not ready to recommend my earlier approach --
    While I am also trying the IRF3205, I have not figured out current sensing for the programming track. I had not see the caution from @Atani: https://www.trainboard.com/highball...date-project-2020.130071/page-30#post-1138265

    Any information on BTS7960 would be appreciated. I am not familiar on how to limit the voltage to A1 to 5-volts, or if it is an issue with BTS7960.
     
  4. FlightRisk

    FlightRisk TrainBoard Member

    548
    237
    14
    I'm not sure what you mean by:

    "What is this; nothing connected? #define DIRECTION_MOTOR_CHANNEL_PIN_B 13"

    Is this for trying to wire the BTS7960? On an Arduino Motor Board Pin 2 must be jumpered to pin 13 on a Mega and Arduino Motor Board in Classic and the current release of EX.

    https://dcc-ex.com/assets/motor-shield-pin-mappings.pdf

    The green table in the Uno or Mega description shows the pin names and their defaults. On those versions of software, some pins can't be changed, but some can. The bottom line is to wire pwm to pwm, direction to direction, etc.

    We should double check the math for the current sense and also the packets that are being sent during CVRead and write one more time.
     

Share This Page