DCC++ Update Project 2020

FlightRisk Feb 16, 2020

  1. FlightRisk

    FlightRisk TrainBoard Member

    548
    237
    14
    I wanted to see if we could pull everything together with DCC++ since Greg stopped working on the project circa 2016. I have found several people who have either forked their own code to make updates, written good stuff and tried to push it, but it was never incorporated in the the Master branch, or contributed documentation or other help. If this seems like a good idea to you, then please contribute your thoughts, ideas, links, help, etc. here and let's put it all in one place that can easily be maintained by the community. If I misstate anything or you have a better idea or suggestion, please jump in.

    CODE - Of course it all starts HERE at the Github page that Greg Berman began when he wrote this great software. Unfortunately, we've only seen him on milk cartons lately ;) Perhaps someone still knows him and he could re-appear long enough to transfer the page to someone or assign "collaborators". I *think* that might be the ideal option, since that is the first place people will want to go, but I'm not sure. No one can add anything to the code because they don't have write access. There are old pull requests that have never been looked at and the authors are obviously using that code successfully in their own setup. It would be nice to review those and put them into the code somewhere, perhaps my fork and that fork can become the new master if we can't get hold of Greg? Or get write permission to Atani's repository?

    SIDE PROJECTS - I'm just talking about the "Basestation" code right now. There is also the DCC_Controller add-on from Greg that uses the Processing.org IDE to provides an optional controller with a graphic interface and the DCCpp_esp code from Atani that gets uploaded to an ESP8266 for people who want to add that as a WiFi to Serial bridge to their Arduino. Both of these are working code, but worth looking at for possible updates.

    FORKS - Over 100 people created a fork in their own repo. 7 of them started with Atani's version like I did. Not all of them added anything to the code. We should look at them all, find what was or wasn't pulled into the Master branch, and agree on what should be added to an "official" version. I can begin that process.

    DOCUMENTATION - There is a Wiki tab on the BaseStation Github page and that documentation seems like a great start. Since we can still write to that file, perhaps maintaining it there or moving it and providing a link to a new repository would be an option. Ideas? We also would want to find all of the pages that talk about DCC++ (like Locoduino, 1fatgmc, etc.) and link to them or get permission to use some of their help and images in a canonical document.

    TASKS - There should be a "task list" maintained that we can check off as we agree to things and then implement them. It may seem overwhelming right now, but I think a lot of it can be sifted through fairly quickly. I am hoping better plate spinners than I can jump in and help organize. My suggestion is to start with all those forks and find who may have made their own changes and make list with all that in a history with notes like "this was forked but no changes were made" or "forked and changed XXX not yet added to the master but planned / will not be added to master..."

    ISSUES - We will need to have a list of issues / questions. It seems that can also still be added to on the original Github "issues" tab. Is that the place for it?

    FEATURE REQUESTS - This will be the more challenging part because this code is not for beginners. If it is something easy or small, we may get to it quickly, if it is something challenging that adds a major feature or requires extensive re-writes, we will need coders who would be willing to tackle it.

    All that said, the code works as is for probably 90% of everyone. It can stand on its own without major changes. The ESP32 version with his board from Atani can pick up where this leaves off. So just maintaining this may be good enough, but it is nice to dream and if we can add things like support for new boards or other niceties as they come up, I think it's worth a try. People land on the DCC++ pages by default it seems, having a simple process to educate them as to the options and giving them a tutorial for how to implement the processor/motor board combination they choose
     
    RandyR, cgsathome and vasilis like this.
  2. Roger Beschizza

    Roger Beschizza TrainBoard Member

    58
    8
    3
    I have created an account for the Wiki, but I am not sure how to navigate and edit anything. I could test posting something, but I don’t want to mess things up. R-
     
    Last edited: Feb 16, 2020
  3. FlightRisk

    FlightRisk TrainBoard Member

    548
    237
    14
    Was that the spreadsheet linked to HERE? I'll take a look at that when you approve me. Is that for the task list? Remember we have this for the actual documentation for the software: Original DCC++ Wiki. So we can sift through what we have and figure out how to best present it. I want to make a list of people who forked and did some development work in their own repo and try to email them and write down how they left the project. Sort of like recording your grandparents to get all their stories before they pass on ;)
     
  4. Roger Beschizza

    Roger Beschizza TrainBoard Member

    58
    8
    3
    I have given you access, but I didn’t realise something was already in place. Disregard this. R-
     
  5. Roger Beschizza

    Roger Beschizza TrainBoard Member

    58
    8
    3
    Good, we seem to be thinking along the same lines. I have updated the Google sheet and provide the link again here. I agree that simplicity is the key. Arduino etc. can seem like smoke and mirrors to the uninitiated [like me]. I have also started to put together a step by step of the ‘how to’ process. If I am reading things correctly there is a layout and control function interface within the DCC++ software -or- you can use JMRI? So, I have started two additional tabs - one for each. Initially, of course, they will be incorrect and have bits missing, but I’m sure over time we can tidy it up. R-
     
    Last edited: Feb 17, 2020
  6. Tom Hale

    Tom Hale TrainBoard Member

    14
    1
    2
    I just requested access to the Google sheet. I'd be happy to help wherever I can.

    T.
     
  7. Roger Beschizza

    Roger Beschizza TrainBoard Member

    58
    8
    3
    Thanks Tom, full access granted. R-
     
  8. Roger Beschizza

    Roger Beschizza TrainBoard Member

    58
    8
    3
    Currently, access to the Google Drive spreadsheet is by application only and restricted to Members of TrainBoard. Initially, access will be read-only. If you are able to assist with the project you will be granted full access. This is more to keep the s/sheet under control rather than a power trip. :cool:

    Accordingly then please let me know you have applied on here so I can check your TrainBoard ID. You will also need to request sharing from the s/sheet itself. Pretty sure you will need a gmail account to do so, might be wrong there.

    Thanks,
    R-
     
    Last edited: Feb 17, 2020
  9. Softec

    Softec TrainBoard Member

    27
    9
    6
    Just requested access, also willing to help where I can.
    Dan
     
  10. Roger Beschizza

    Roger Beschizza TrainBoard Member

    58
    8
    3
    Please see Inbox. R-
     
  11. FlightRisk

    FlightRisk TrainBoard Member

    548
    237
    14
    Good start on the spreadsheet. I have a TON of links. I will sift through them for the ones with DCC++ documentation.

    So... Question one is how to organize it and share everything ?We know Github can organize anything like documentation, poetry and recipes and not just code, but is that the way to go? There are other sites and methods to create shareable documents. I use Help&Manual in my business to create Windows help, HTML help and PDF files, (awesome program) but development couldn't be shared since it is a licensed product. There is MS Word, Google Docs, etc. The ultimate goal, I think, is to have a central area to share updates and generate a PDF and HTML version for people to read. Can we do all that with the existing wiki on the DCC++ page? (Gregg Berman's)

    In the K.I.S.S veign, I was thinking of breaking up the documentation into a "quick start guide(s)" and a "User Guide" or "Technical Manual" (we can agree on nomenclature). The "default" setup, we have agreed, is an Arduino Uno and an Arduino Motor-Shield.

    * DO we include clones in this (deek-robot) of do we gloss over that and say "see user manual for other options"?

    My thought was a step-by-step guide with pictures and screenshots that show how to get started in an hour. I have seen 2 or 3 of these tutorials that are pretty good. We just need permission from the authors to co-opt their work (descriptions, images,etc.). I'm talking to you here Sumner. ;) But there are others.

    *For the "quick start" do we need to have a Pi setup described? Or is that a different quick start? A user needs control, but a minimum setup can just use a laptop and JMRI with the Uno base station. Thoughts? A Pi is turnkey while laptop is part "bring your own".

    *None of us so far has expressed a desire to start a distribution business, but it certainly would be nice to have Pre-configured and tested Pi and Arduino/motorboard setup in a box. One of my test setups is using a Pi Zero and a Mega with a Deek-Robot board. We can assume anyone would have a keyboard, mouse and monitor. But the 8" and 10" displays on eBay and Amazon are great and can mount anywhere on a layout.

    There could be a quick start for an UNO and a separate one for a Mega since there are wiring and config differences, or not. The user manual could handle everything else with sections for each combination of microcontroller and motor board along with complete detail on the features, options, accessories, and commands available to DCC++

    We also need to see what is missing from the documentation and make a list so we can add that.
     
    Sumner likes this.
  12. RandyR

    RandyR TrainBoard Member

    25
    6
    2
    New to the railroad modeling. So started out with DC for a month and now jumped into DCC++ a couple a weeks ago. Was simple enough to configure. Am using a Mac to run JMRI as i did not get a Rasp. My small Acer WinXP was outdated.

    Anyways, would love to see whatelse can be done with the Arduino.
    Was hoping to run turnouts using additional shields for turnouts, but have not found any. So, ordered the DR4018 to work with the DCC++ for now.
     
  13. Roger Beschizza

    Roger Beschizza TrainBoard Member

    58
    8
    3
    Indeed. Although I have started the Google Sheet process I am not sure it is the best way forward and I think of little use at present except to a few on here who are trying to scope out the task.

    I have looked at Github and opened an account. I find it difficult to navigate, mainly due to unfamiliarity and terminology, and I think it is daunting to non-techie types. I am openminded about it though and feel a "here's where you go and this is what you're looking for' type guide would be useful.

    Agree entirely. Short, simple and non-technical is ideal for the set-up instructions - with more detailed technical information for those with the knowledge, experience and interest.

    This does seem the standard entry point to the DCC++ system.

    I think for completeness we should say something along the lines of 'other flavours are available' - but with a caveat that they may operate and/or be configured slightly differently from the genuine article. Perhaps someone with one of the other makes can help with pointing out the differences they found.

    This is what I had in mind as it works best for me personally, and I suspect will be easy access for many others. If this type of guide is supported by technical documentation I think that is the way forward.

    I would suggest that it is another quick start guide if its own.

    Great idea - but a big job to pull together. A business plan is needed for the many aspects of setting this up. Maybe down the line?

    We can add this for the time being to the TASK tab on the Google Sheet.

    EDIT: Done
     
    Last edited: Feb 18, 2020
  14. FlightRisk

    FlightRisk TrainBoard Member

    548
    237
    14
    I've updated the sheet. It has 33 rows as of now. Let's sift through those and consolidate a tutorial from those. If we use text or graphics from any of the materials, we need to A. get permission, and B. put credits where they are due.
     
  15. Roger Beschizza

    Roger Beschizza TrainBoard Member

    58
    8
    3
    I have started reading through them [cherry picking at present - nothing methodical] and think that there is a veritable treasure trove of information there. I have contacted Gregg via one of the website contact forms for permission to reproduce. That was @ 09:17 GMT. R-


    EDIT 10:35 GMT
    No I didn't - wrong Greg - the real Gregg it seems has gone to ground
    .
     
    Last edited: Feb 19, 2020
  16. Tom Hale

    Tom Hale TrainBoard Member

    14
    1
    2
    The only problem with this is that not all clones work for DCC++, or at least follow the same pinout. I originally had one and could not get it working. Had to get a different one, although still a clone, and it worked out of the box. Not sure how we handle it, but we need to.

    I ended up comparing pictures on Amazon to the one on arduino.com. Bought one that looked like it had the same component layout on it.

    T.
     
  17. RCMan

    RCMan TrainBoard Member

    271
    132
    12
    Yes, there have been a boat load of motor boards that have been tried, some work others do not.
    There should be a chart showing what works (Tested) and what does not work and why.
     
  18. Atani

    Atani TrainBoard Member

    1,466
    1,736
    37
    I've sent a request to view the spreadsheet. If there are some areas I can assist on with improving the code I'll submit what I can.
     
  19. Roger Beschizza

    Roger Beschizza TrainBoard Member

    58
    8
    3
    Thanks. All sharing requests that have arrived on the Google Sheet have been actioned. If you have not recieved your notification, it has not worked - please try again. R-
     
    Atani likes this.
  20. Roger Beschizza

    Roger Beschizza TrainBoard Member

    58
    8
    3
    That is why I put this in the response to FlightRisk

    Also - there are different pinouts for the new generation of the Maga board. There is a lot to capture and present in a clear manner. :eek:
     

Share This Page