Keyboard Shortcuts
ctrl + shift + ? :
Show all keyboard shortcuts
ctrl + g :
Navigate to a group
ctrl + shift + f :
Find
ctrl + / :
Quick actions
esc to dismiss
Likes
Search
Locked CVP's AD4 Programming Error
original_black_bart
To Jon and other testing CVP's AD4 DecoderPro file,
I managed to get a little time this afternoon to modify the screen format for the AD4. I've run into a little bug and wondered if someone would be kind enough to program their AD4 to an address greater than 63, then read the data back and confirm the write. Based on what I've seen while testing this out this afternoon, any address greater than 63 is not written properly to the decoder. I don't think CV9 is being set correctly but I can't tell for sure as I'm working with a PR-1 to read back my data. Your confirmation of such would be appreciated. Bob |
At 9:31 PM +0000 8/10/02, original_black_bart wrote:
To Jon and other testing CVP's AD4 DecoderPro file,There may well be a bug there, as that's the new code that I wrote without a way to test directly. There are a couple of things that might help figure out what it's doing wrong. The "Simple Programmer" from the tools menu will let you read back the value from CV9 to see what it was sent to. Using the "Comprehensive" programmer format will give you a CV pane where you can see the intended contents (although you might not want to trust it, as the bug could have effected that too). And adding the line: log4j.category.jmri.jmrit.symbolicprog=DEBUG to the default.lcf file will generate trace information from the programming operations. (You might want to send that to a file; there are instructions at the top of the file for how to do that) Sorry for the trouble. Bob -- -------------- Bob Jacobsen (Bob_Jacobsen@..., 510-486-7355, fax 510-495-2957) At CERN until August 10, replies may be slow. |
Jon Miller
Bob,
I thought everything worked yesterday but today is a different day. I had no luck with the PR1DOS and MS100. Using DecoderPro it didn't want to read either but I could change the address. Using the single bit programmer would change the address everytime but to strange values. I bought a booklet from Keith when I order the AD4 so I could read it.CV513 (CV1*) is the and CV521 (CV9*) is the but it says this. "Long" ard numbers are accessory decoder card numbers above 63. When higher than 63 must be split into two values--sic--- strange split because CV513 only has 6 bits (NMRA specs). 3 more bits are stored in CV521. Thus 9 bits gives 511 unique decoder addresses. I tested and put a 10 in CV1 and a 1 in CV9 and this resulted in an address of 266, as if I had a 10 and a 4 programmed. Keith uses a special macro in his command station to do it. *Digitrax Chief CV's Jon Miller AT&SF For me time has stopped in 1941 Digitrax DCC owner, Chief system NMRA Life member #2623 Member SFRH&MS |
Jon Miller
Ok, I'm starting to figure this out, I think. AD4's only program by
"card number" so a card number of say 26 has decoder addresses of 101, 102, 103, and 104. So using the addresses of 1 to 63 in CV521 (CV1) shows me a card address in DecoderPro, not the output addresses. Remember now that Card address #64 is skipped, which are output addresses of 253, 254, 255, and 256. Now when I put a number in CV521 (CV9) I start getting numbers that resemble output addresses. Remember I said I put a 10 and a 1 in their respective CV's and got the number 266. That's starting to sound like an output address not a card number. |
original_black_bart
Bob,
toggle quoted message
Show quoted text
Please don't see this as being trouble. For me, it's pure education and enjoyment! My Digitrax DB150 won't allow read back, thus the need to use the PR- 1. With an intended address of 65, the CV pane shows CV7= and CV9=. Looks like a bug that I think I validated by using the Monotoring tool to see what data is being sent across the loconet to CV9. Regardless of the address it looks like CV9 is always being programmed with a zero. If I program an address of 65, the result is an address of 1. CV7=1, CV9=0. Bob --- In jmriusers@y..., Bob Jacobsen <Bob_Jacobsen@l...> wrote:
<Snip, Snip, Snip...> Using the "Comprehensive" programmer format will give you a CV panewhere you can see the intended contents (although you might not want to |
Jon Miller
Bob (black bart type<G>,
Notice also that DecoderPro has two boxes and they both read the same address which is not correct. The DCC address should be something like 793-796 and the card number (address ) should be 199, as an example. I not sure what is supposed to read back. Also Digitrax will not program the full capacity of this card because it's limited to 999 stationary decoder output addresses and the AD4's will do 2044 output addresses. So a Digitrax command station is only good for card numbers to 249 which are output addresses 993 to 996. And I'm getting totally confused about this unit<VBG>. Also remember that the AD4 can have "ganged" addresses. Like for setting up a path through a yard. [The tomorrow file!] |
Oops.
Sorry, I misunderstood where the address is split between the two CVs. In the as-shipped AD4 file, you'll find this: <variable label="Card Address" item="Short Address" CV="1" mask="VVVVVVVV"> <splitVal highCV="9"/> </variable> That says that this value is to be split between CV1 and CV9, with the low bits in CV1, and that _8_ bits are to be put in CV1. That's at least part of what's wrong. Could you try changing the mask attribute to mask="XXVVVVVV" to put only 0-63 values in CV1? Bob -- -------------- Bob Jacobsen (Bob_Jacobsen@..., 510-486-7355, fax 510-495-2957) At CERN until August 10, replies may be slow. |
original_black_bart
Jon,
Now I think I'm getting confused! Did a little checking and found a good explanation of "the numbers" on Digitrax's Web; "Each DS54 has a stationary decoder address: 01- 511. Each DS54 has four independent function cells: A, B, C & D. Each function cell has both output and input wires. Each cell has its own switch address that controls the device attached to the function cell. This means the DS54 has 4 switch addresses available for each stationary decoder address." If we ignore the fact that the AD4 doesn't have both input and output wires and concentrate on the last sentence, we'll see similarity between the DS54 and AD4. Specifically, reference to a stationary decoder address and switch addresses. When programming an AD4 accessory decoder, a "Decoder Address" is programmed into CV 1. In cases where the address of an accessory decoder is greater that 63, CV9 is also used to store part of the decoder address. Switch numbers, not decoder numbers are utilized to operate each of the decoders' four function cells. Each decoder has four switch numbers associated with its assigned address. The key here is not to confuse a decoder address with switch address. I like to keep it simple by always referring to the accessory decoders address when programming is being discussed. Through a little experimentation, I've found that Digitrax systems will operate switches numbered greater than 999. However since the throttle, which appears to be the limiting factor here, will only address 999 switch addresses, a software solution is required. My test was performed using RR&Co software on a PC connected to the Loconet via a LocoBuffer interface, a DB150 and an AD4 programmed to utilize switch addresses 2037, 2038, 2039 and 2040. Using this hardware software combination, the above mentioned switch addresses were operated without problem. My conclusion is that as long as a means exists to establish communication with the accessory decoders switch address, the AD4 is fully functional with our Digitrax systems. Bob --- In jmriusers@y..., "Jon Miller" <atsf@i...> wrote: Bob (black bart type<G>,the same address which is not correct. The DCC address should be somethinglike 793-796 and the card number (address ) should be 199, as anexample. I not sure what is supposed to read back. Also Digitrax will notprogram the full capacity of this card because it's limited to 999 stationarydecoder output addresses and the AD4's will do 2044 output addresses.249 which are output addresses 993 to 996.for setting up a path through a yard. [The tomorrow file!] |
original_black_bart
Bob,
Changing the mask has done the trick. The accesory decoder can now be programmed with valid addresses between 1 and 511. I've also made changes to the Pane Format of the CVPRoducts_AD4.xml file and would like to submit them to you as Rev 2 but I'm having trouble with a couple functions; I can't get the vslider or hslider functions to work. In reference to the following line, can you see what I'm doing wrong? <display item="Output_A_On_Time" format="vslider" label="On Time (1/10th Sec) "/> Also, as the decoder supports only Direct and Ops Mode Programming, I've made adjustments in the code that allow use of only those two modes. Even though Paged and Register Mode are set to "no", I've noticed that they are still selectable on the bottom of the programming screen. Why is that? The code has been edited to read; <programming direct="byteOnly" paged="no" register="no" ops="yes"></programming> I assume it to be correct but don't understand why the options are still available? Bob --- In jmriusers@y..., Bob Jacobsen <Bob_Jacobsen@l...> wrote: Oops.CVs. mask="VVVVVVVV"> <splitVal highCV="9"/>That's at least part of what's wrong. |
At 3:31 PM +0000 8/11/02, original_black_bart wrote:
I've also made changes to the Pane Format of the CVPRoducts_AD4.xmlThere's a typo in the definition file for the decoder XML that wasn't present in the definition for the programmer files. So this option wasn't valid in a decoder file. I've attached an updated decoder-config.dtd which should replace the file of the same name in the xml\DTD folder. You'll get this by direct reply, and I'll cc: Jon Miller, but the list will remove the attachment. If anybody else wants a copy just let me know. Also, I had to change the item in that example to "On time for output 1" to make it work. Perhaps you've renamed some of the variables in the file, which would explain that. It's traditionally OK to use spaces in XML values, as they're meant to be human-friendly values. Also, as the decoder supports only Direct and Ops Mode Programming,Have you remade the decoder index? It might be that information is taken from the index, not directly from the file. But I'm not sure. Bob -- -------------- Bob Jacobsen (Bob_Jacobsen@..., 510-486-7355, fax 510-495-2957) At CERN until August 10, replies may be slow. |
At 1:12 PM +0000 8/11/02, original_black_bart wrote:
Through a little experimentation, I've found that Digitrax systemsIt would be interesting to know if there's a limitation in the JMRI library. I don't think so, but you never know... To try it, start the JMRIdemo app, and pull down "Turnout Control" from the "Tools" menu, and then enter an output (turnout) number in the little panel you get. I think it should work up to 2047. Bob -- -------------- Bob Jacobsen (Bob_Jacobsen@..., 510-486-7355, fax 510-495-2957) At CERN until August 10, replies may be slow. |
original_black_bart
Bob,
It appears as though there's an error in the decoder-config.dtd file that was provided. With the file in place, one cannot open any of the programming windows and the following error occurs when I use the Check XML Tool; " Error parsing decoder file: org.jdom.JDOMException: Error on line 1 of document file C:/Program Files/JMRI/xml/DTD/decoder-config.dtd: External parameter entity "%(dtd);" has characters after markup." Restoring the old file eliminates the error. BTW, recreating the Decoder Index did not resolve the ability to select other then the intended Programing Mode. Bob --- In jmriusers@y..., Bob Jacobsen <Bob_Jacobsen@l...> wrote: Snip, Snip, Snip.... I've attached an updatedin the xml\DTD folder. You'll get this by direct reply, and I'll cc:else wants a copy just let me know. |
At 6:13 PM +0000 8/11/02, original_black_bart wrote:
Bob,That seems to indicate that something bad happened to the file during the transfer. Sometimes mail software and browsers get over-enthused about .xml and .dtd files and try to interpret them. Perhaps that happened here. The first lines should look like: <!-- Defines XML documenting a DCC decoder as a component, esp. information --> <!-- on how to program it. --> with no entities present (an XML "entity" is something that starts with a percent sign "%") In any case, the change you need is to replace the 2nd-to-last line with <!ATTLIST display format (default | vslider | hslider | radiobuttons | checkbox | onradiobutton | offradiobutton) "default" > Instead of a single "slider", this has the separate "vslider" and "hslider" entries. Restoring the old file eliminates the error.OK, thanks, will look into it. -- -------------- Bob Jacobsen (Bob_Jacobsen@..., 510-486-7355, fax 510-495-2957) |
Jon Miller
Bob and Bob,
I've also noticed/read some other items. Certain CV's take effect on next power up (like the infamous DZ121), page 7 programming tips. CV8 will do a factory reset so might be good to add that function. This also only happens on next power up. ---------------------------------------------------------------------------- Now on to this morning testing. Probably happened yesterday but it was so hot (triple digit) I wasn't thinking. When I bring up the AD4 pane and do a read it seems fine, but I can't then change the address. I must exit and then come back up to change the address and then the LED's flash and the address changes to 0. i.e. any attempted write seems to reset the address to 0. Am I have cockpit problems? Have you remade the decoder index?<'tools'--'create decoder index' Yes I did that. I use the individual CV programmer as it always works to get back to a starting point (an address) again! Using the individual CV programmer to enter numbers and using the program to read back the address results in correct card numbers. ---------------------------------------------------------------------------- ------ Even though Paged and Register Mode are set to "no", I've noticed thatthey are still selectable on the bottom of the programming screen.< And they do lockup the programmer as I have forgotten to change it a few times. Testing the new file Bob sent and nothing seems to have changed. The red LED also flashes during read which is not supposed to happen according to CVP. They say it only works when programming on the main (curious). ---------------------------------------------------------------------------- ------ >I've found that Digitrax systems will operate switches numbered greater than 999.< This might depend on how we define 999. I checked with Don C. on the Digitrax site a few months ago and he confirmed 999. BUT it may not have to do with the actual addresses but how many are stored and this is a question I have asked on the Digitrax list. ---------------------------------------------------------------------------- ------ Changing CV7 recognition to 62 allowed it to pick up my AD4. ---------------------------------------------------------------------------- ---------- error in the decoder-config.dtd file<I don't seem to have this problem with the new file! Jon Miller AT&SF For me time has stopped in 1941 Digitrax DCC owner, Chief system NMRA Life member #2623 Member SFRH&MS |
original_black_bart
I checked the contents of the D/Led file but it didn't look anything
like it should have. Looks like a bad file transfer was at the heart of the issue. Using the old file, I modified the appropriate line and managed to get the sliders working. Oh, there no numerical display on the slider! Sorry to be a pest, but can you identify how I might calcualte and display switch numbers and slider values on the AD4 Pane? Bob --- In jmriusers@y..., Bob Jacobsen <Bob_Jacobsen@l...> wrote: during the transfer. Sometimes mail software and browsers get over-enthused about .xml and .dtd files and try to interpret them. Perhaps thatinformation --> <!-- on how to program it. -->with
|
original_black_bart
Jon,
Drop me a line off-list if you wish to test out version 2 of the AD4 programmer. With Bob's help, I've moified the address mask and revised the AD4 Pane. Addressing now works as it should - excpet one can program the none existant address 64! I've yet to configure sliders and radio buttons for mode selection, but the changes I've made may eliminate the problem your having. I'd also like a second opinion on the changes I've made. Black Bart (Bob) --- In jmriusers@y..., "Jon Miller" <atsf@i...> wrote: Snip, Snip, Snip....but it was so hot (triple digit) I wasn't thinking. When I bring up the AD4pane and do a read it seems fine, but I can't then change the address. Imust exit and then come back up to change the address and then the LED'sflash and the address changes to 0. i.e. any attempted write seems to resetthe address to 0.back to a starting point (an address) again! Using the individual CVprogrammer to enter numbers and using the program to read back the addressresults in correct card numbers.-------- ------thatEven though Paged and Register Mode are set to "no", I've noticed they are still selectable on the bottom of the programming screen.<it a few times. Testing the new file Bob sent and nothing seems to havechanged. The red LED also flashes during read which is not supposed to happenmain (curious).-------- ------numbered greater than 999.<on the Digitrax site a few months ago and he confirmed 999. BUT it maynot have to do with the actual addresses but how many are stored and this is aquestion I have asked on the Digitrax list.-------- -------------- ----------error in the decoder-config.dtd file<I don't seem to have this problem with the new file! |
At 7:37 PM +0000 8/11/02, original_black_bart wrote:
Sorry to be a pest, but can you identify how I might calcualte andFor slider values, take a look at the "Speed" pane (I think) in the programmers/Comprehensive.xml file. Basically, you display a variable multiple times, once as a slider, and another time as a numeric field. You can then orient them as you'd like, put the labels as desired, etc. I think switch numbers is going to require some code, as there's no way right now to add, subtract and multiply in between the numeric values and the CV contents. What exactly would you like to do? I can set up another variable type pretty easily. Bob -- -------------- Bob Jacobsen (Bob_Jacobsen@..., 510-486-7355, fax 510-495-2957) |
Jon Miller
Bob and Bob,
Just hooked up a "Switchmaster", switch machine motor to test programming and actual control using a DT400. I programmed (using the individual CV programmer) for card #250 and put the switch motor on the first output #997. It worked. The DT400 will only go to 999 so am guess as Bob did it's the software in the throttles that prevent higher numbers. The Chief seems to be able to program the numbers it just that the throttles can't select them. Jon Miller AT&SF For me time has stopped in 1941 Digitrax DCC owner, Chief system NMRA Life member #2623 Member SFRH&MS |
Jon Miller
Forget my previous remark about not being able to program. It seems if
you enter a number in "DCC Address" even if it changes in "Card Address" you can't program! However if you enter the number in "Card Address" it still changes in both locations but you can program. Would "Card Number" be better than "Card Address" as that's the way CVP refers to it? Is there any way for the "DCC Address" to actually show the addresses without referring to some kind of lookup table? As in; Card Number=128 DCC Addresses=509-512 Jon Miller AT&SF For me time has stopped in 1941 Digitrax DCC owner, Chief system NMRA Life member #2623 Member SFRH&MS |
original_black_bart
Bob
Using the card address of the AD4, I'd like calculate then display the cards range of associated switch numbers. For example, based on a decoder address of 1, switch numbers would be 1 through 4. With a decoder address of 10, switch numbers would be 37 through 40. Switch addresses can be calculated as follows; SwitchNumber_High = Card Address * 4 SwitchNumber_Low = SwitchNumber_High - 3 Thanks, found the slider information. Know to figure out how to make it work with the radio buttons! Bob --- In jmriusers@y..., Bob Jacobsen <Bob_Jacobsen@l...> wrote: At 7:37 PM +0000 8/11/02, original_black_bart wrote:canSorry to be a pest, but can you identify how I might calcualte andFor slider values, take a look at the "Speed" pane (I think) in the set up another variable type pretty easily. |
to navigate to use esc to dismiss