开云体育

Date

Locked Re: SOUND DECODERS

 

Which decoders to buy has nothing to do with JMRI and your question should be taken to a general DCC forum.

--
Peter Ulvestad

JMRI Users Group Moderator ( )
Tam Valley Group Moderator ( )
Sprog-DCC Group Moderator ( )
Edmonton Model Railroad Association ( )


Locked SOUND DECODERS

 

I'm looking to buy my first sound decoder installed N scale loco.
I wanted to get recommendations for which decoder manufacturer to consider. I use Decoder Pro but have read that some sound decoders require additional hardware etc. to program/download sound files.

Thx


Locked Re: Throwing turnouts from NCE throttle #nce

 

Thanks, I will give that a try. I had thought maybe it was obvious but I am a bit of a beginner!
Would the same think work with semaphore signals?
regards
Andy


Locked Re: JMRI Upgrades #upgrading

 

Thanks to all!

Allan


Locked Problem with unstable warrants #warrants

 

Getter frustrated trying to run warrants. I created several warrants and tested them through the editor auto run two or three time and they work perfectly. Save the warrant and the next time it is run the train will either run past the Oblock or fail to have the entire locomotive in the block. When this happens I need to quit the program and shut down the computer including the controller.?
My system is running JMRI 4.26 on a windows 10 laptop.
Is this normal when running warrants.?
I usually run transits through the dispatcher with no problems.
Does JMRI 5 give you the option the back a train into a siding and drive back out.


Locked Re: Throwing turnouts from NCE throttle #nce

 

Andy,
make
If you have the Power Pro system box (not PowerCab, SB5, Twin) you can see those
turnout operations. Add the turnout in JMRI and make sure the feedback mode is
set for MONITORING.

-Ken Cameron, Member JMRI Dev Team
www.jmri.org
www.fingerlakeslivesteamers.org
www.cnymod.com
www.syracusemodelrr.org


Locked Re: track doesn't accept custom loads even though track is configured to accept all loads #operationspro

 

Pete,

The "receive" load in a schedule can also be blank. That allows all custom loads and default loads to be accepted by the spur if the option to accept all load names is also selected.

So in Tom's case, all he needs to do is add a schedule with the car type "XM", and leave all of the line items blank.

Dan


Locked Re: Throwing turnouts from NCE throttle #nce

 

开云体育

Andy,

On 5 May 2023, at 7:53 pm, andy.keane@... wrote:

I have panel pro working well with my NCE system via a serial cable to the five amp Pro Cab system.
what I would like to happen is if a turnout gets thrown using an accessory command on the NCE throttle that panel pro would show the change on the computer screen. All is of course fine if I throw turnouts using panel pro.
apologies if this is obvious

From:
<>


MONITORING
Default for LocoNet Turnouts (and probably XpressNet soon), and available for NCE. When selected, the network is monitored for messages about the status of the Turnout. This mode is only available for certain systems, i.e. some systems can't do the monitoring properly, and don't have this choice

Dave in Australia?in.


Locked Re: RFID Connectivity #rfid

 

Steve,

Yeah, I agree. The debugging messages are still in there if you want to use them, but they kill the serial connection. They do work with the Ethernet connection though. They ARE sort of pointless if using the Serial connection to JMRI though. I would say enable them for the Ethernet connection, but disable them for the Serial connection. I think that they might be useful for users getting everything connected and set up, but after that... I am looking forward to you connecting as many readers as you can (6 for the Uno)!


Tom


Locked Re: RFID Connectivity #rfid

 

MRFC522, Nano/Uno/Mega Serial/Etherner

Tom

Success at last! Well spotted! I have both the Serial and Network connections working in JMRI.

Pity we had to lose the debugging messages, I found those useful to see what was going on. Oh well.

Okay, so now that this works, I will try connecting up multiple readers as they have now arrived.

Steve


Locked Throwing turnouts from NCE throttle #nce

 

I have panel pro working well with my NCE system via a serial cable to the five amp Pro Cab system.
what I would like to happen is if a turnout gets thrown using an accessory command on the NCE throttle that panel pro would show the change on the computer screen. All is of course fine if I throw turnouts using panel pro.
apologies if this is obvious
Andy


Locked Re: JMRI Upgrades #upgrading

 

开云体育

I did an upgrade from 4.24 to 5.3.5 including uninstalling J8 and installing J11 all from a thumb drive on a mate’s Windows 10 computer yesterday in about 10 minutes. ?It’s just not that hard….

Mick

________________________________
Mick Moignard
m: +44 7774 652504
Skype: mickmoignard

The week may start M,T but it always ends WTF.


Locked Re: RFID Connectivity #rfid

 

Steve,

Here:




Tom


Locked Re: New user to JMRI Ops Pro requesting assistance #operationspro

 

Mel,

I believe you have been using the Text Editor when previewing your Manifests and Switch Lists.? Take a look at the Manifest Print Options window below...



This should allow to view your manifest in the manner as shared in the video.? Note that in the video, on his screen, this box I have highlighted is unchecked.

Try this and then let me know what you find out...

Happy to help, hope it helps,
<Pete Johnson>


Locked Re: RFID Connectivity #rfid

 

MFRC522, Ethernet/Serial, Nano/Uno/Mega

Steve,

OK, so after much experimenting at home, it's simply the debugging messages being sent to the serial connection. I commented ALL of them out and now the sketch works via the serial connection as expected. LOL! The reason the Ethernet connection worked was because the debugging messages only were sent via Serial. Easy squeezy.

// Import Libraries
#include <SPI.h>? ? ? ? ? ?// SPI library for communicating with the MFRC522 reader
#include <MFRC522.h>? ? ? ?// MFRC522 library for reading RFID cards
#include <Ethernet.h>? ? ? // Ethernet library for the Ethernet shield
?
// Ethernet configuration
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
IPAddress ip(192, 168, 1, 177); // Replace with the desired IP address
unsigned int serverPort = 8888;? // Replace with the desired port number
EthernetServer server(serverPort);
?
// Define the SS (Slave Select) and RST (Reset) pins for each reader
#if defined(ARDUINO_AVR_UNO) || defined(ARDUINO_AVR_NANO)
const uint8_t ssPins[] = {5, 6, 7, A0, A1, A2};
const uint8_t rstPins[] = {4, 8, 9, A3, A4, A5};
const uint8_t readerAssignment[] = {1, 2, 3, 4, 5, 6}; // Assign reader numbers based on SS and RST pins
#elif defined(ARDUINO_AVR_MEGA2560)
const uint8_t ssPins[] = {5, 6, 7, 8, 9, A0, A1, A2};
const uint8_t rstPins[] = {22, 23, 24, 25, 26, 27, 28, 29};
const uint8_t readerAssignment[] = {1, 2, 3, 4, 5, 6, 7, 8}; // Assign reader numbers based on SS and RST pins
#endif
?
const int numReaders = sizeof(ssPins) / sizeof(ssPins[0]);
const char readerID[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'};
?
struct RFIDReader {
? char id;
? uint8_t ssPin;
? uint8_t rstPin;
? MFRC522 mfrc522;
? byte nuid[7];
? bool isConnected;
?
? RFIDReader() : id(0), ssPin(0), rstPin(0), mfrc522(MFRC522(0, 0)), isConnected(false) {}
};
?
RFIDReader readers[numReaders];
EthernetClient client;
bool isEthernetConnected = false;
?
void setup() {
? Serial.begin(9600);
? SPI.begin();
? pinMode(10, OUTPUT);
? digitalWrite(10, HIGH);
?
? // Set pin 53 as OUTPUT for the Arduino Mega 2560
? #if defined(ARDUINO_AVR_MEGA2560)
? ? pinMode(53, OUTPUT);
? #endif
?
? pinMode(4, OUTPUT);
? digitalWrite(4, HIGH);
?
? Ethernet.begin(mac, ip);
?
? if (Ethernet.hardwareStatus() == EthernetNoHardware || Ethernet.linkStatus() == LinkOFF) {
? ? // Serial.println("Ethernet shield not connected or network not available");
? ? isEthernetConnected = false;
? } else {
? ? isEthernetConnected = true;
? }
?
? for (uint8_t i = 0; i < numReaders; i++) {
? ? readers[i].ssPin = ssPins[i];
? ? readers[i].rstPin = rstPins[i];
? ? readers[i].id = readerID[readerAssignment[i] - 1];
? ? readers[i].mfrc522 = MFRC522(readers[i].ssPin, readers[i].rstPin);
? ? readers[i].mfrc522.PCD_Init();
? ? readers[i].mfrc522.PCD_SetAntennaGain(readers[i].mfrc522.RxGain_max);
?
? ? // Check if the reader is connected
? ? if (readers[i].mfrc522.PCD_PerformSelfTest()) {
? ? ? readers[i].isConnected = true;
?
? ? ? // Print debugging information
? ? ? // Serial.print("Reader ");
? ? ? // Serial.print(readers[i].id);
? ? ? // Serial.print(" detected on SS pin ");
? ? ? // Serial.println(readers[i].ssPin);
? ? } else {
? ? ? readers[i].isConnected = false;
? ? }
? }
?
? if (isEthernetConnected) {
? ? server.begin();
? }
?
? // Blink the LED to indicate the number of detected readers
? pinMode(LED_BUILTIN, OUTPUT);
? for (int i = 0; i < numReaders; i++) {
? ? if (readers[i].isConnected) {
? ? ? digitalWrite(LED_BUILTIN, HIGH);
? ? ? delay(300);
? ? ? digitalWrite(LED_BUILTIN, LOW);
? ? ? delay(300);
? ? }
? }
}
?
void loop() {
? if (isEthernetConnected) {
? ? if (!client.connected()) {
? ? ? client.stop();
? ? ? client = server.accept();
? ? ? /*if (client) {
? ? ? ? Serial.println("Client connected");
? ? ? }*/
? ? }
? }
?
? for (uint8_t i = 0; i < numReaders; i++) {
? ? if (readers[i].isConnected && readers[i].mfrc522.PICC_IsNewCardPresent() && readers[i].mfrc522.PICC_ReadCardSerial()) {
? ? ? for (uint8_t j = 0; j < readers[i].mfrc522.uid.size; j++) {
? ? ? ? readers[i].nuid[j] = readers[i].mfrc522.uid.uidByte[j];
? ? ? }
?
? ? ? byte checksum = readers[i].nuid[0];
? ? ? for (uint8_t j = 1; j < 5; j++) {
? ? ? ? checksum ^= readers[i].nuid[j];
? ? ? }
?
? ? ? // Send output to Serial connection
? ? ? Serial.write(readers[i].id);
?
? ? ? // Send output to Ethernet client, if connected
? ? ? if (isEthernetConnected && client.connected()) {
? ? ? ? client.write(readers[i].id);
? ? ? }
?
? ? ? for (uint8_t j = 0; j < 5; j++) {
? ? ? ? // Send output to Serial connection
? ? ? ? Serial.print(readers[i].nuid[j] < 0x10 ? "0" : "");
? ? ? ? Serial.print(readers[i].nuid[j], HEX);
?
? ? ? ? // Send output to Ethernet client, if connected
? ? ? ? if (isEthernetConnected && client.connected()) {
? ? ? ? ? client.print(readers[i].nuid[j] < 0x10 ? "0" : "");
? ? ? ? ? client.print(readers[i].nuid[j], HEX);
? ? ? ? }
? ? ? }
?
? ? ? // Send output to Serial connection
? ? ? Serial.print(checksum < 0x10 ? "0" : "");
? ? ? Serial.print(checksum, HEX);
?
? ? ? // Send output to Ethernet client, if connected
? ? ? if (isEthernetConnected && client.connected()) {
? ? ? ? client.print(checksum < 0x10 ? "0" : "");
? ? ? ? client.print(checksum, HEX);
? ? ? }
?
? ? ? // Send output to Serial connection
? ? ? Serial.write(0x0D);
? ? ? Serial.write(0x0A);
? ? ? Serial.write('>');
?
? ? ? // Send output to Ethernet client, if connected
? ? ? if (isEthernetConnected && client.connected()) {
? ? ? ? client.write(0x0D); // CR
? ? ? ? client.write(0x0A); // LF
? ? ? ? client.write('>');? // ETX replaced by '>'
? ? ? }
?
? ? ? readers[i].mfrc522.PICC_HaltA();
? ? ? readers[i].mfrc522.PCD_StopCrypto1();
? ? }
? }
}


Tom


Locked Re: track doesn't accept custom loads even though track is configured to accept all loads #operationspro

 

Tom,
?
This particular conflict can arise when the car with the custom load has no final destination.? When the program encounters a car with a custom load but no place in mind to send it, it will search all spurs to try and find one with a schedule that calls for the car-type and load state (e.g. Box_paper, loaded, paper roll). This rule applies to cars NOT assigned a home division.
?
In the use of divisions, the search for where to move an Empty car involves the program trying to find a home division yard to which the car car be sent, then any staging in the home division.? Once that check has been made, it then tries to find a spur with a SCHEDULE to which to send the car (since it has a custom load).
?
Your issue stems from the fact that your car was unloaded at Salmon Arm (Banff Div.) where it became an "Empty".? The division rules then try to get it back to a Kamloops Div. yard or staging track.? Apparently, it cannot find a yard track or staging track in the Kamloops Div...
Could not find a reachable Yard for car (BCIT 1002) load (E(HP))
Could not find a reachable Staging for car (BCIT 1002) load (E(HP))
So then it tries to send it to a spur in the Kamloops Div.
When checking all spurs, it rejects those spurs that are in the wrong division (Banff Div.),

Ignoring spur (Revelstoke (GE-FM-Y), grain elevator) wrong division (Banff) for car (BCIT 1002) empty (E(HP))
Ignoring spur (Revelstoke (GE-FM-Y), feed mill) wrong division (Banff) for car (BCIT 1002) empty (E(HP))
Ignoring spur (Golden (MF), machinery factory) wrong division (Banff) for car (BCIT 1002) empty (E(HP))
Ignoring spur (Salmon Arm (DC-Y), distribution centre) wrong division (Banff) for car (BCIT 1002) empty (E(HP))
Ignoring spur (Banff (WH), warehouse) wrong division (Banff) for car (BCIT 1002) empty (E(HP))
?
And for those spurs that it finds in the Kamloops Div., it finds one which cannot service the car because it is the wrong type...
?
Destination (Blue River (CD-F), fuel) can't service car (BCIT 1002) with load (E(HP)) due to type (XM).
One that can service the car-type (and load) but has no room when the attempt to move was made...
?
Destination (Blue River (CD-F), cross-dock) can't service car (BCIT 1002) with load (E(HP)) due to rolling stock length 44 feet, available track space 18 feet
?
And finally, the other two spurs reject the car because (as Dan pointed out) there is no schedule calling for that custom load (which is actually a custom empty in your case).
?
Destination (Valemount (LM), lumber mill) can't service car (BCIT 1002) with load (E(HP)) due to car has a custom load (E(HP))
Destination (Jasper (FD), freight depot) can't service car (BCIT 1002) with load (E(HP)) due to car has a custom load (E(HP))
Sometimes the build report doesn't tell the whole tale, so to speak, about why the car is rejected.? In this case, you needed to have provided a optional schedule at Valemount.? This is pretty easy to do, just follow below...

Start by opening the Edit window for the "lumber mill" spur at Valemount.



This will open a new window as below...







Click "Save" and you should now have a schedule to which your XMs with their E(HP) status can be sent in the Kamloops Division.
The key is to provide a spur to which the empty (HP) cars can go.? If you have other types of cars, create additional schedules at suitable spurs at which those car-types can be accepted...

Happy to help, hope it helps,
<Pete Johnson>


Locked Re: Possible CMRI bugs #cmri

 

Bob-

I also just downloaded your fix and verified it works with my networked CMRI nodes.? I have been using a workaround for a while.? Appreciate the change.

-Eric
--
Eric Sitiko


Locked Re: New user to JMRI Ops Pro requesting assistance #operationspro

 

Hi Pete, I've been digging, trying to find answers on my own these last couple days. I've been trying to print a switchlist using the Tabular, Two Column method like what is shown in this video at 3:30 as the way I was trying to do it before just wasn't working out. I've gone into the TRAINS/TOOLS/MANIFEST PRINT OPTIONS many times to look and see if maybe I don't have something set up correctly but not able to get the result I'm looking for. I have attached two files for your review, one is the Mina Turn Manifest, generated using the Build/Preview buttons on the TRAINS page. The attached Hanford Switchlist file was generated using the "Switchlist" button at the bottom of the TRAINS page.

My question is how can I generate a switchlist using the Tabular, Two Column method or even the Default method like what's used for the DEMO Files as well as what's shown in the video? I've been going back and forth comparing the DEMO files setup to my own setup but keep coming up empty handed.

Thanks again Pete for all your help. I know I keep saying it but I really do appreciate your assistance with all of this.

Mel


Locked Re: track doesn't accept custom loads even though track is configured to accept all loads #operationspro

 

On Thu, May 4, 2023 at 08:09 PM, <jmri@...> wrote:
However, I have tracks that won't accept a custom load according to the build report even though they are configured to accept all loads.?
A spur can't receive a car with a custom load unless the spur also has a schedule, use the following help links for more info:





From your build report for spur "freight depot":?

Destination (Jasper (FD), freight depot) can't service car (TTX 25000-B) with load (E(HP)) due to car has a custom load (E(HP))


Locked track doesn't accept custom loads even though track is configured to accept all loads #operationspro

 

Hello,

I have created a new custom load called E(HP) which purpose is to prioritize some empty cars over others.? However, I have tracks that won't accept a custom load according to the build report even though they are configured to accept all loads.? Therefore cars with these loads are excluded rather than prioritized.? This is making no sense to me.? I have attached the build report, as well as a screenshot of the section of the build report indicating that the lumber mill track at Valemount doesn't accept custom loads.? Also attached a screenshot of the track configuration indicating the track accepts all loads.? I did notice as well when adding classification tracks and checking them against the location that I was getting error messages indicating the locations did not accept custom loads.? Can't figure this one out.

Thank you for your help.
--
Tom