DCC++ JMRI - The written CVs won't survive

TalkingToes Apr 23, 2017

  1. TalkingToes

    TalkingToes New Member

    Hello all,

    I am new to DCC++ and JMRI, and almost have it working. I have a China-sourced Arduino Mega 2560 and a Motor Board L298, connected via USB to Windows 10 (although from a Mac, it's the same too). I have two DCC engines (a buy 1, get 1 free promo I did, back in December 2016), which act the same. I have no retail DCC systems to compare with.

    Arduino 1.8.1 for Windows
    BaseStation 1.2.1
    JMRI.4.7.3.R202c9ee (have tried JMRI.4.7.2-R741b21f and JMRI.4.6-R81496dc too)
    USB powers the Arduino, 12volt 1Amp wall wired wart to the Motor Shield, with the Vin cut.

    From Arduino's Serial monitor, I can toggle the power on / off.

    I have attached the Log for the following actions from DecoderPro:
    Power On (Engine is on Programming track, a sound happens from engine)
    Click New Loco
    . A new window appears: Create new loco
    . Click Read Type from Decoder (detected properly)
    . Change the Name to: 861 Erie
    . Change (O) Long (two byte) address (field turns orange)
    . Change the Address from 3 to 861 (field turns orange)
    . Change Analog DC Operation is set to: NMRA Digital Only (field turns orange)
    . Click Write (field turns red, then white, engine chuffs forward with each write)
    . Click Save
    . Close window: Create new loco.
    Power Off
    Move engine from Programming to Main
    Power On
    Right click 861 Erie engine, select Throttle
    A new window appears: Throttle
    . Set direction Forward
    . Move slider upwards a notch to move it, but engine doesn't move,
    . Click Stop!
    . I have no control , no sound no light, no movement


    . In the existing throttle window's Address Panel, I click Release, change to 3, click Set.
    . I move slider upwards a notch: the engine moves at this point, sound works, lights works as expected.
    Click Stop!
    Power Off
    Close throttle window.

    Also, changing the default sound volumes in JMRI do not stick either, but JMRI acts like it should have worked.

    What am I doing wrong? Is there a program that can read a log, and show/suggest where a failure happens?

    Suggestions are always appreciated.


    Attached Files:

  2. crusader27529

    crusader27529 TrainBoard Member

    You should re-read the CV values after you program the loco to verify they have been set. Having said that, the response of the loco moving as you program it seems that DCC++ is detecting that the CV values were programmed.

    The one thing that comes to mind is the 1 amp power to the MD board........Some sound decoders have issues with needing more power to program than non-sound decoders. The total power that the supply can generate is split across the system, so make sure the second loco isn't on the layout when you try to program the first loco.

    Beyond that, if the system won't program witrh just one loco using power, maybe try using a supply with more capacity. Also, in my experience 12v is kind of low for HO power......you are using HO locos, right?
  3. TalkingToes

    TalkingToes New Member

    Oops! Forgot to say this is N Scale. I have no real layout yet, so using only a few 5" Atlas C80 track, and the 2nd engine is off the tracks. Only this one engine is powered. I'm just starting out.

    After a 'successful' write, I can read the CV in, and DecoderPro fields stay white with my values.

    I have attached what happens when I use Write Full Sheet, and with the attached .TXT file from first post, I get a burst of
    [RX: ] Unregonized reply:
    before is actually reads. Assume this happens, but is it 'bad' ? Any way to fix this?

    I will see if I can acquire a 12v 2Amp (or higher) wall wart, from the local computer/electronics recycle companies. Seattle has a few. :)


    P.S. Is "unregonized" a simple typo, or part of a spec somewhere?
  4. TalkingToes

    TalkingToes New Member

    Hello again.

    I've acquired a 12v 2amp wall wart (I also tried a 12V 1.4amp wall wart)for my MB. Same problem reappears for me. Btw, I have two different Arduino Mega 2560 (1 official, 1 from China), and two motor boards.

    I can Power On, click Add Loco. It detects it correctly (Broadway Limited Imports, Paragon 2 Diesel). I give it a Roster ID name 8015 MoPac, and assign 8015 to the 2 byte address, change Analog mode to NMRA Digital Only. I click Write (engine chuffs forward a few times) and then Save. I can click Read and the values just set, do not change.

    If I power Off, wait a moment, power On, and then click Read (and it chuffs again), the values go back to ID 3, 1 byte address, and DC Conversion enabled.

    I should re-mention I have two similar engines (Erie 861, and MoPac 8015) from them, on a "2 for 1" special last December 2016.

    I did receive an email from the Broadway-limited support (April 2017):
    Hello David,

    Sorry to hear you are having trouble with that engine, we will be happy to assist you.

    JMRI is an open sourced software program, meaning that anyone in the world can write code for it. Because of this, it is not NMRA standard and we can not guarantee our engines to be compatible with it. With that being said, please use an NMRA standard programming device. If our engine is not programming properly with an NMRA standard throttle system, then please let us know and we will respond accordingly.

    Thank you.

    So, I'm stuck at this time.

    How would I manually enter any Engine ID via the Arduino\Serial monitor window?

    Any suggestions at this time would be wonderful. I really didn't want to drop the cash on a retail box.

    I will build a DCC Analyzer ( http://www.mynabay.com/dcc_monitor/ ) with one of the Arduinos; ordering parts tomorrow evening.

    Thank you,
  5. Jimbo20

    Jimbo20 TrainBoard Member

  6. TalkingToes

    TalkingToes New Member

    Hello again,

    I was able to get Processor installed. (v3.3).
    Opened DCCpp_Controller.pde and clicked Run.
    I did a 's'can, selecting Com4 for this Arduino Mega, and a Connect
    Clicked POWER button (all four leds lit up)
    clicked 'p' for programming track
    clicked Read button, and it finds the values of 3, 128, Short (it chuffs forward a few times too)
    I changed the numbers to 15 and 8015, and Long, and clicked Write next to both. (chuffs again)
    I clicked Read, and the 15, 8015 and Long are on the screen. (chuffs again)
    I clicked POWER button to off, wait a moment, and clicked POWER back on again.
    I clicked Read, and the of 3, 128, and Short are on the screen. (chuffs again)

    Am I doing the steps correctly?

    Another good idea to try?

    David, near Seattle.
  7. Jimbo20

    Jimbo20 TrainBoard Member

  8. RCMan

    RCMan TrainBoard Member

    Try exiting the program after changing the CV's. It could be old information might be buffered and is showing you the original and not the changes.

    By exiting the program and restarting it again, let use know what the CV's read back.

    I use JMRI and have never seen this issue on my decoders.
  9. TalkingToes

    TalkingToes New Member


    Using Processor, CV15 and CV16 are both set to 0 (decimal). So this would imply it is not locked (if the values are equal, is unlocked), right? Reading CV8, and is set to 38 (decimal, which is for Broadway Limited Imports)

    In DCCpp_Controller.pde :
    I read CV8, get 38
    I change it to 8 (which the printed instruction guide says setting CV8 to 8 is a reset, as does their website).
    Click Write
    The window's header says Error - Write Failed and the hex/decimal/binary values are all set to ? now.
    Per their page ( http://www.broadway-limited.com/faq.aspx in the Paragon2 FAQ) to acknowledge the reset, it should make a Coupler Crash sound, which I do not hear.

    Next idea to try?

    I tried the Address write, exit Processor (with Power on), and then restarted Processor (which turned Power off). I did a read and it came up with the 3, 128, Short.

    David in Seattle
  10. TalkingToes

    TalkingToes New Member

    Hello again, and sorry for the long delay!

    I received the simple instructions to remove the engine's shell and the process of how to reset the on-board circuit. This worked, and now the values are surviving a power cycle.


Share This Page