DCC++ Update Project 2020

FlightRisk Feb 16, 2020

  1. Mani

    Mani TrainBoard Member

    76
    15
    4

    Attached Files:

  2. FlightRisk

    FlightRisk TrainBoard Member

    548
    237
    14
    Not sure about the donation since this is open source and everyone is contributing. I know it takes time and efforts. We could not include things like that and just point them to you with a link. Here is the WEB version of a Quick Start halfway finished:

    https://dcc-ex.github.io/
     
    Sumner likes this.
  3. FlightRisk

    FlightRisk TrainBoard Member

    548
    237
    14
    Can everyone take a look at the Logos and vote your preference? Thanks @Mani

    Also, you are right about roles, assigning, etc. It is going to take some reading unless someone can jump in and help set it up
     
  4. Sumner

    Sumner TrainBoard Member

    2,845
    5,997
    63
    Personally I'd say that it goes as many places as possible. If you want to sell something you don't pick one option to do that. A person can have the neatest, greatest idea in the world and post it on the internet and it will take a long time to work to the top of search engines unless you start getting a lot of hits on it.

    Just using GitHub for the documentation/instruction side I think will leave out a number of us. I'd continue to be a lone wolf out there myself. Also as you mentioned the steps have been documented a number of times already.

    [​IMG]

    Manti I hope you don't mind if I share what you did (above). I like it a lot. Nice layout and the steps are all there. The ones I myself followed last summer. Basically the same steps you will find now numerous places but presented really well.

    [​IMG]
    Now using the steps you listed and that have been listed by many others here is where I see the problem if we are trying to get DCC into use by non-computer, non-electronic model railroaders.

    You will loose some of them at the "Cut a trace" point. This is not intimidating to you guys but is to many who have never worked with a printed circuit board. Even the plugging the two boards together can be.

    The really big one is #5. Sounds simple "Compile & Upload the DCC++ Sketch to the Arduino". See instruction on the next page sounds simple enough but the instructions I went through were good, but 19 steps long.... https://github.com/DccPlusPlus/BaseStation/wiki/Getting-Started-With-DCC---Hardware .... and I don't see a way to shorten them that much and most of that is daunting to a non-computer person.

    Keith's offer of an Arduino with the sketch for about $15 more than buying the software without it and having to go through all those steps I believe will open this up to many more modelers. Some, after being introduced to DCC, will stay with this system if it fills their needs. Others might move onto commercial systems and others will maybe be looking for a more advanced DCC option, such as what you guys are in the early stages of developing.

    Remember some of us or in our mid to late 70's and older and if we could be up and running now that is big to us. It was to me. I've only used my DCC++ system on short test tracks at this point and to program decoders I've been installing. So far it has been stable doing that. What are its current flaws? How many of you use it as your main source of DCC for your layout now? If it is basically a sound system now I see no reason to not start promoting it in a way that brings in more model railroaders now. That is what I'm trying to do with the SD card for the Pi and what Keith is offering with the pre-loaded Arduino. I'll post a link to his page when he gives the go ahead. Mine is here... http://1fatgmc.com/RailRoad/DCC/page-2.html .

    We both have no problems how many places where these pages are posted and I'm open to suggestions on any modifications one might see that would make them better.

    Is it maybe time to split this thread into two or three parts/groups? One working possibly on documentation, others working on making sure that DCC++ classic is stable and a finished working product. Maybe a third group working on an DCC++ EX or some other advanced version. Looks like you have enough interest and maybe smaller groups working on more specific projects will be easier to administer.

    Sumner
     
    Last edited: Mar 5, 2020
  5. FlightRisk

    FlightRisk TrainBoard Member

    548
    237
    14
    Well we don't want to leave anyone out, you are right. I agree that because different people use different methods of learning, having things in different formats is helpful. I don't feel the same about the same thing with slight or misleading info posted all over the place. That said, someone who has a different take on something or a different opinion can certainly post whatever they wish. We are just trying to have a centralized area where maybe people can jump off from. But like Github has branches, we can as people too :)

    How will GitHub leave anyone out? Can tell me more? Is it because GitHub is a collaboration tool and has a learning curve like a web development tool or word processor does? How are you seeing the different ways to present information? And I am not being argumentative here since I'm afraid of the wrong tone in text, I want to understand what you mean and learn from your viewpoint.

    The editing of something like documentation can be extremely simple on GitHub. If you had privileges and wanted to add files or change them, it is as easy as clicking on them, changing them, and clicking a button to save them. The only time it involves more than that is if we want to follow the process that we use for coding where we create a backup folder (branch), make changes, hit a button to "save our changes" to the backup folder (commit), then click on a button to do a "pull request" which asks someone to to double check our work and then click a button called "merge" to take the changes in your backup version and stick them in the master version. You can do the merge too, but I am trying to save you a step ;) (IOW you don't have to learn all those command line commands or complex procedures). And that process is just to track all the changes, prevent conflicts between changes, and keep people from trashing the whole project ;)

    The website you see I did in a few minutes all from the GitHub web interface. No commands, no working locally and pushing up changes. It is just a web page like any other. No one needs to know that it is hosted on GitHub. To change or add pages, we just modify simple text files that use markdown instead of HTML which anyone can read and use. Of course nothing is like a full Web creation tool with a hosted website, but that costs money and has a steep learning curve. If you have a minute, you can go to the web project https://github.com/DCC-EX/dcc-ex.github.io and click on index.md and starter-kit.md, click the pencil icon as if you were editing it and look at the text 1 hashtag main heading, 2 hastags subheading, asterisk for bullets, brackets for hyperlinks, etc. Let me know what you think. Who could use that? How can we use it? Could YOU or contributors use that? I still like your web page and don't want to change that or duplicate your efforts. Same with folks who use word and want to generate a PDF. Or graphical visuals. We can host them, post links to them, whatever we agree to.
     
  6. FlightRisk

    FlightRisk TrainBoard Member

    548
    237
    14
    Agree on splitting posts. This can be DCC-EX, we can create separate ones for docs and classic when we have something to post. Who is an admin? It might help to move a lot of these last posts into a "DCC++ 2020 Documenation" thread.
     
  7. Sumner

    Sumner TrainBoard Member

    2,845
    5,997
    63
    First I haven't taken anything you've said as argumentative.

    Also rereading my post I can see where you felt that I was saying GitHub would leave some of us out. I'm all for you guys using GitHub. I can see it is a very useful tool and necessary for a project like you are undertaking with the code work. So I'm not suggesting that you don't use it.

    I'm so busy with life, building things other than train related, now re-learning the hobby and other things that I just don't want to take the time to get up to speed with GitHub. In my life and business I've always been that loner type. So like to do something and do it now, thus my own web site. I can see that approach isn't a good one for the advancement of DCC++. I'll support you guys in your effort but coding and working on documentation just won't happen for me. It does look like you have plenty of help in that department with guys that have real skills.

    I realize that you are also trying to make comprehensive documentation and that is good but I learned a lot by looking at some of the different approaches to installing DCC++ that I found via different internet sites. Sometimes someone learns from one approach and someone else learns well from a different approach. If documentation is not correct then it would be good to try to point that out to the person posting. I'd welcome that with anything I put out there.

    So carry on guys and appreciate what you are doing,

    Sumner
     
    FlightRisk likes this.
  8. Keith Ledbetter

    Keith Ledbetter TrainBoard Member

    279
    195
    12
  9. Keith Ledbetter

    Keith Ledbetter TrainBoard Member

    279
    195
    12
    I like the first one. We should work the EX into a road number or something on the side.
     
    FlightRisk likes this.
  10. H0Guy

    H0Guy TrainBoard Member

    25
    6
    3
    Guys: I have been using DCC++ to run my layout since Summer 2019. I also have a NCE Power-cab and alternate between both systems. It is a lot easier to use DCC++ to program a decoder than the Power Cab.

    I have also looked over Greg’s code and found a number of areas where it needs to be updated for Current Sensing and different Motor Shields, and auto reversing.

    I think it’s time to assume that Greg is not coming back to support DCC++.

    As such if we want DCC++ to grow, I think it’s time to Fork Greg’s original code base and start a real Open- Source Git-Hub project. With the different DCC++ variations, libraries, different base hardware, and private websites, I believe that this is the only way for DCC++ to grow and reach its full potential. This should not be one person effort, but a true Open-Source project with multiple variants of solutions. I am more than open to help out on such a project.
     
  11. FlightRisk

    FlightRisk TrainBoard Member

    548
    237
    14
    I imagine because of the length of this thread, you missed it, but that is the reason for this thread ;) See here:

    https://dcc-ex.github.io/

    And the repo here:

    https://github.com/DCC-EX

    I'll save you some reading. Our goal is to release a "fixed" version of Gregg's original and call it "DCC++ Classic". The new version starts with Atani's fork, which already added and changed quite a bit and went from there. I have worked on current sense and converted it to be in milliamps instead of an obtuse pin reading. We also worked on standardizing both version to match the NMRA DCC spec. We are looking through all the various forks and pull requests to see what we might be able to use. We could use your help.

    What issues can you share and what needs to be done to current sense? There are two places it matters, one for overcurrent protection and displaying a reading back to JMRI with the <c> command, and the other is watching for the current surge from the decoder to acknowledge the programming packets. Feel free to peruse the comments on the pull requests.
     
  12. FlightRisk

    FlightRisk TrainBoard Member

    548
    237
    14
    Oh, other than the changes to current sense values and the way we send packets which should much of the comments we've seen about it not programming certain decoders, my current in milliamp changes and all the support for the extra motor controllers is not pushed up yet. We were focusing on having "Classic" stable and final and then moving forward.
     
  13. FlightRisk

    FlightRisk TrainBoard Member

    548
    237
    14
    Not true! If it appealed to you and you took all that time to do it, it will benefit someone else who thinks like you too. I saw your website when I was trying to figure out DCC++. We can either incorporate some of it if you give permission like an explanation or an image, or make sure your web page is linked from whatever we do here. Also, I wish I had a really cool name like "Sumner" instead of "Fred" ;)
     
  14. FlightRisk

    FlightRisk TrainBoard Member

    548
    237
    14
    @H0Guy First, were you messing with us by having us have to figure out the O is a zero in your name in order to "at address" you? lol Second, would be consider going to this issue and giving any comments you have about current sensing? https://github.com/DCC-EX/BaseStation/issues/7 Thanks!
     
  15. FlightRisk

    FlightRisk TrainBoard Member

    548
    237
    14
    @Atani , @H0Guy , @Keith Ledbetter , @Sumner, et. al.

    To be clear, we did not start with Gregg's version. We are really working with Atani's fork that added multiple motor board support and probably a few other things. Is that what we intended when we said we wanted to stabilize a "Classic" version? Or did we mean to make these changes to the last release of Gregg's?

    If we stick with Atani's version, where is the stopping point, fixing current sense and making sure we have NMRI compliance? If that is the case, it looks like we have done that and only have to test. Is that accurate?

    At some point soon then, we should probably rename folders in the repo to be something like DCCpp_Classic and DCCpp_EX. Would you agree?

    In keeping with what at least one other person has suggested, we may want to look at if there are any other versions we want to include a part of the project. There is a "sensors" only version for NodeMCU that may be on someone else's fork, but their pulls are waiting on Gregg's version. So if we like that idea, we could pull that together and have it reside in our repo too. Thoughts?
     
  16. Sumner

    Sumner TrainBoard Member

    2,845
    5,997
    63
    I have no problem if you link to or copy anything you find useful. As I mentioned elsewhere if someone sees something that is wrong or unclear please let me know.

    About the name it use to be a last name in the family and then my grandfather's middle name and then my dad's first name and then mine. I didn't get to pick it but have been happy with it:),

    Sumner
     
  17. Atani

    Atani TrainBoard Member

    1,469
    1,756
    37
    A rename should definitely happen. I think perhaps adding an original clone of Gregg's work should be done for classic and retain the current code as "expanded" or whatever name it ends up with. Perhaps even splitting "classic" into it's own repo to prevent confusion when people try to connect the ESP side to the classic version and find it failing.
     
    Sumner likes this.
  18. Keith Ledbetter

    Keith Ledbetter TrainBoard Member

    279
    195
    12
    I was assuming we would add to Gregg's but if we think Atani's fork is stable and on Arduino IDE I see no reason not use as it does have added functionality that's already tested.

    I agree with also saying I think we are at or at least very close to being able to release for testing. And I think it is the new and improved

    100%

    To me we manage this by taking into our pull requests, etc but yes I think the DCC++ EX version should include latest and greatest hardware and software so whatever is useful that we can pull in I see no reason not to have grand visions here and support as much as possible.

    IMO we should run pull requests for the basic as well but it needs to stay doable on an UNO and original motor shield, Arduino IDE
     
    Last edited: Mar 6, 2020
    Sumner and FlightRisk like this.
  19. Atani

    Atani TrainBoard Member

    1,469
    1,756
    37
    Definitely, we can also expand the configuration used for the PR test builds by adding a few new entries in the platformio.ini to have different arduino boards (Uno, Mega, etc). It is not very involved in creating a matrix build where it builds all permutations in parallel. Doing this will also allow testing various combinations to ensure at least compilation works.
     
  20. Paul1361

    Paul1361 TrainBoard Member

    41
    6
    2
    Hey guys sorry I am late to this, but would really like to help. My C skills are limited, but my electronics and fabrication skills are solid as wel as testing and troubleshooting skills are pretty on point. Please point me in a direction to help continue this projects development.
     

Share This Page