¿ªÔÆÌåÓý

Date

Locked Pi 4 heat and cases

 

Group:

I was posting about the new Raspberry Pi 4 and heat issues... I've added a gallery and photo of a DIY 3D printed case and a commercial product.

The case came from Thingiverse though I can't link to it now, not sure just how I found it... The commercial case (Micro Connectors from MicroCenter) predates the 4 but being open on all sides the change in the Pi 4 connector arrangement won't matter. Tried to score a Pi 4 4GB too... all gone...

The printed case has a salvaged slice of CPU heatsink poking out... milled a chunk out of an old PC CPU heatsink held on with thermal compound, friction fit and glue to case top.

Jim Albanowski


Locked Re: Cantons / Stop trains in block with red signal

 

@Dave : Thank's ! ! !


Locked Re: Controlling Servos directly connected to Arduino with DCC++ Base Station #arduino #dccpp

 

Hello,
?
I may repeat myself but managing the servo directly in the DCC++ sketch is not a good idea. It seems simple but it is not the case, you will have to modify the DCC++ sketch.
?
A simple solution is to use another arduino, which will "listen" to the DCC signal, and act on the servos.
?
As indicated on this link: http://www.mynabay.com/dcc_monitor/_monitor/
?
Have a good day


Locked Re: Best system setup for signaling

 

Ken,

I monitored the commands being sent through jmri to the command station and found no error on the jmri side. However the light it's still missed on occasion seems like about after 4 or 5 turnout throws. Are there any problems you have heard about with the light it's missing commands? Might need to get a couple of replacement light it's and see if that clears it up.?

Thanks?
Scott Clements


On Fri, Jul 19, 2019 at 7:09 PM, Ken Cameron
<kcameron@...> wrote:
Scott,


To confirm that the Light It should have got the message, you would have to
run the monitor for the NCE connection. It will decode all the traffic sent
to the command station. If you have that proving the message went to the
command station, but the Light-It didn't change, then the Light-It becomes
suspect. There is always the chance that JMRI isn't always sending a command
when you think it should. Something could be happening at this end of the
setup too. But seeing what the monitor shows would be the best proof of what
went where. It will take some digging through the logs to see what and when
it is sending those commands.

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







Locked Re: DP feature request

 

On 07/23/2019 04:07 PM, thomasmclae wrote:
Opening the throttle with CV19 value (if set) would also make things
go faster when speed matching. (Configurable?)
I think improving how the throttle works with the roster and the
consisting tool to select locomotives in a consist has merit.

As a first step, I'd like to address how advanced consists are handled.?
I've created an issue on github to keep track of my thoughts:



Feel free to comment here or there, but the issue above has my current
thoughts on how to make this better.

Paul


Locked loco assignments #operationspro

 

Hi Dan,
I am wondering if JMRI can be configured to work locos the way RailOp used to?
Matt Greenwood


Locked Re: JMRI and NCE

 

Ken S,

I think this is a direction to try.

1. First thing is cut/paste the console log from starting up with your
working 4.12 system. This gives us a baseline of your setup.
2. Make sure you open/save any panel files you are using.
3. Make a minor change in the preferences, something you can change back,
like add a startup action.
4. Those steps make sure the files are written at the 4.12 version level.
5. Update to 4.16.
6. Startup with 4.16 and cut/paste the console log. This will show what is
or isn't not happening.

Make no other changes. From this we can see the where you start and finish.
Then we can give meaningful comments.

Sometimes there are changes that make updates along the way. If someone is
jumping too many versions, the old version might not be able to be correctly
read by the new version. Making regular updates, the issue doesn't come up.
For a while a new version will still read the old version files, but it is
using old code we have replaced with new methods. Eventually we clean up
things and remove that old code. That is when somebody who didn't do
updates, and then did a load/save to save all new way entries will have an
issue. It happens very seldom, but making a few more steps here should
figure out if this is a part of your problem or if something else is
happening.

You might also use the Help->Upload Debug Info, it will send a package or
details like your profile and log files, with some system details too. That
may also give us more clues when it isn't working.

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


Locked Re: DP feature request

 

On Jul 23, 2019, at 4:07 PM, thomasmclae <thomas_applink@...> wrote:
DP generally only has data from the last decoder read, CV19 is no exception. SO showing the last known value is still good.
The JMRI roster screen is supposed to provide summary information you can use to identify the locomotive.

I personally believe the value of CV19 is too volatile to use for this purpose.

Here are two real life use cases for why that is the case:

1) Many of us move locomotives between layouts ( club layouts, modular layouts, home layouts ) and sometimes it is necessary to change the Consist a locomotive is in when this happens.
2) During an operating session, a locomotive may go in and out of several consists as it is assigned to different trains.

At times it is necessary to change consists using a throttle or other device. On some systems, we can get information from the system about the current state of consists, on others we can¡¯t ( and on some systems, the information we get isn¡¯t as helpful as we would like).

Opening the throttle with CV19 value (if set) would also make things go faster when speed matching. (Configurable?)
If you are using the Consist Tool to manage your Consist, it will open a throttle with the lead locomotive selected for functions and the Consist address selected for speed/direction.

90% of my loks are in consists, managed by DP. So this would be a good update feature for me.
Are you managing this with the Consist tool or by programming?

Paul


Locked Connecting panel pro layout to actual layout

mnutt48414
 

I am using NCE with AIU's for sensors. I have been ?using CATS as a dispatcher panel but can't get it to keep track of the detected trains correctly. All of the blocks work correctly and all turnouts work correctly. All of the ?AIU sensors work correctly. I am trying to use the Layout editor to create my layout. I can create the layout OK. I have all of the sensors NS### in the sensor tables, I have all of the Blocks in their table. When I run it on the actual layout, I can properly throw the turnouts by clicking in the circle.

1) ?If I throw a turnout from a control panel, the Panel PRO DOES NOT RECOGNIZE the change.
2)? ? Trains do not show up in the blocks as I run them. ?In both cases the AIU sensors show the correct changes.

Is the a manual that gives this information? ?ANY HELP YOU CAN GIVE ME WILL BE GREATLY APPRECIATED

Mickey


Locked Re: JMRI and NCE

 

¿ªÔÆÌåÓý

Hello,

?

I have been doing some experimenting. I now have active JMRI 4.12 on my computer. I tried installing JMRI 4.16 without erasing 4.12. That did not work. I unstalled everything and tried JMRI 4.14. That did not work. I reinstalled 4.12 and now JMRI works with my NCE. Why?

?

Ken Skopp

?

From: [email protected] <[email protected]> On Behalf Of Jan Carr
Sent: Tuesday, July 23, 2019 1:13 PM
To: [email protected]
Subject: Re: [jmriusers] JMRI and NCE

?

the message changes to offline.

Ken S: Do you have JMRI 4.16 installed as suggested earlier in this thread? Automatically defaulting to offline simulator mode when a connection problem occurred was a feature of older JMRI versions.

Jan



Locked Re: DP feature request

 

I'd like to second this. I change the long number (to avoid conflicts with other club members) than I change the CV19 addresses. and it's really confusing when set cv19 in DecoderPro, then pull up a throttle, and it goes to the long address


On Tue, Jul 23, 2019 at 8:07 PM thomasmclae <thomas_applink@...> wrote:
DP generally only has data from the last decoder read, CV19 is no exception. SO showing the last known value is still good.
Opening the throttle with CV19 value (if set) would also make things go faster when speed matching. (Configurable?)

90% of my loks are in consists, managed by DP. So this would be a good update feature for me.
Thomas
DeSoto, TX


Locked Re: Build Pickup Problems

 

Jerry,

Use the text editor option for viewing the build report.? And for one of the cars that isn't being picked up, copy only the text for that car so we can see what is going on.

21 pages, wow!

Dan


Locked Re: Cantons / Stop trains in block with red signal

 

¿ªÔÆÌåÓý

fcot2002,


On 24 Jul 2019, at 1:29 AM, fcot2002@... wrote:

Thank's for your explain, but the question only for DecoderPro as you said :
"Decoder Pro might give you the answer also if it has the feature for you to activate."
?
Can you explain to me how to check with DecoderPro,?in which tab ?

For ESU decoders, it's on the Advanced tab.

For other decoders, it may differ...

Dave in Australia


Locked Re: Servos, Ardunios, and JMRI #arduino

 

Bob,?

Here you go - the 'P' script first, then the 'S' script.

Also, this is happening on current production 4.16.

Sam

# Transfer "TurnOut" Data from to an Arduino via Serial Transmission
# Author: Geoff Bunza 2018 based in part on a script by
# Bob Jacobsen as part of the JMRI distribution
# Version 1.1
# Connects JMRI Turnout "Watcher" to an Arduino Output Channel
# Note that JMRI must be set up to have a valid
# turnout table; if you're not using some other DCC connection,
# configure JMRI to use LocoNet Simulator
import jarray
import jmri
import java
import purejavacomm
# find the port info and open the port
global extportinP
portname = "COM5"
portID = purejavacomm.CommPortIdentifier.getPortIdentifier(portname)
try:
??? port = portID.open("JMRI", 50)
except purejavacomm.PortInUseException:
??? port = extportinP
extportinP = port
# set options on port
baudrate = 19200
port.setSerialPortParams(baudrate,
??? purejavacomm.SerialPort.DATABITS_8,
??? purejavacomm.SerialPort.STOPBITS_1,
??? purejavacomm.SerialPort.PARITY_NONE)
# get I/O connections for later
inputStream = port.getInputStream()
outputStream = port.getOutputStream()
# define a turnout listener that will
class Datatransfer(java.beans.PropertyChangeListener):
? # initialization
? # registers to receive events
? def __init__(self, id, value) :
??????? self.name = "PT"+str(id)
??????? self.closed = value???? # write this value to close
??????? self.thrown = value??? # write this value to throw
??????? turnout = turnouts.provideTurnout(self.name)
??????? turnout.addPropertyChangeListener(self)
??????? turnout.setCommandedState(CLOSED)
??????? return
?
? # on a property change event, first see if
? # right type, and then write appropriate
? # value to port based on new state
? def propertyChange(self, event):
??? #print "change",event.propertyName
??? #print "from", event.oldValue, "to", event.newValue
??? #print "source systemName", event.source.systemName
??? if (event.propertyName == "CommandedState") :
????? if (event.newValue == CLOSED and event.oldValue != CLOSED) :
??????? print "set CLOSED for", event.source.userName
??????? outputStream.write(event.source.userName)
??????? outputStream.write(",0")
????? if (event.newValue == THROWN and event.oldValue != THROWN) :
??????? print "set THROWN for", event.source.userName
??????? outputStream.write(event.source.userName)
??????? outputStream.write(",1")??
??? return
# The following will set up 5 listeners for Turnouts PT1 though PT6 (by username)
for x in range(1,6) :
??? Datatransfer(x,x+100)

# Transfer "TurnOut" Data from to an Arduino via Serial Transmission
# Author: Geoff Bunza 2018 based in part on a script by
# Bob Jacobsen as part of the JMRI distribution
# Version 1.1
# Connects JMRI Turnout "Watcher" to an Arduino Output Channel
# Note that JMRI must be set up to have a valid
# turnout table; if you're not using some other DCC connection,
# configure JMRI to use LocoNet Simulator
import jarray
import jmri
import java
import purejavacomm
# find the port info and open the port
global extportinS
portname = "COM4"
portID = purejavacomm.CommPortIdentifier.getPortIdentifier(portname)
try:
??? port = portID.open("JMRI", 50)
except purejavacomm.PortInUseException:
??? port = extportinS
extportinS = port
# set options on port
baudrate = 19200
port.setSerialPortParams(baudrate,
??? purejavacomm.SerialPort.DATABITS_8,
??? purejavacomm.SerialPort.STOPBITS_1,
??? purejavacomm.SerialPort.PARITY_NONE)
# get I/O connections for later
inputStream = port.getInputStream()
outputStream = port.getOutputStream()
# define a turnout listener that will
class Datatransfer(java.beans.PropertyChangeListener):
? # initialization
? # registers to receive events
? def __init__(self, id, value) :
??????? self.name = "ST"+str(id)
??????? self.closed = value???? # write this value to close
??????? self.thrown = value??? # write this value to throw
??????? turnout = turnouts.provideTurnout(self.name)
??????? turnout.addPropertyChangeListener(self)
??????? turnout.setCommandedState(CLOSED)
??????? return
?
? # on a property change event, first see if
? # right type, and then write appropriate
? # value to port based on new state
? def propertyChange(self, event):
??? #print "change",event.propertyName
??? #print "from", event.oldValue, "to", event.newValue
??? #print "source systemName", event.source.systemName
??? if (event.propertyName == "CommandedState") :
????? if (event.newValue == CLOSED and event.oldValue != CLOSED) :
??????? print "set CLOSED for", event.source.userName
??????? outputStream.write(event.source.userName)
??????? outputStream.write(",0")
????? if (event.newValue == THROWN and event.oldValue != THROWN) :
??????? print "set THROWN for", event.source.userName
??????? outputStream.write(event.source.userName)
??????? outputStream.write(",1")??
??? return
# The following will set up 5 listeners for Turnouts ST1 though ST6 (by username)
for x in range(1,6) :
??? Datatransfer(x,x+100)
?


Locked Re: Servos, Ardunios, and JMRI #arduino

 

Could you post your scripts so we can see the details?

I suspect they¡¯re defining objects with the same names.

Bob

On Jul 23, 2019, at 2:58 PM, Sam Simons <samusi01@...> wrote:

I've been working on getting my staging turnouts powered by servos and controlled by JMRI through Arduinos using Geoff Bunza's direct JMRI to Arduino scripts. The ends of the staging yards are far enough apart that I've ended up positioning one Arduino at each end of the yard, controlling five servos each. One Arduino is on COM4 and the other on COM5. I've got a pair of the "TurnoutDataTransfer.py" scripts created, one of which I'll refer to as P, the other S. On the one, I've renamed the global extportin to extportinP and the other script has extportinS. Com ports correspond to the Arduino ports. I've created a panel that has a basic diagram of the staging yard and can control the turnouts. This is where I am running into problems. I had JMRI automatically load the panel and run both scripts (P first, then S). The S turnouts worked normally but the P turnouts did not. I stopped the scripts from running automatically and have managed to test my way to the following:

1. If I load the P script (automatically or manually, doesn't make a difference), all the P turnouts work normally.
2. If I then load the S script, all the S turnouts work normally but the P turnouts stop responding, although the script output and panel act like they are working.
3. It doesn't matter which script is loaded first; the second script will stop the first script's turnouts.

Any thoughts on why this may be happening?

Thanks,

Sam
--
Bob Jacobsen
rgj1927@...


Locked Re: Controlling Servos directly connected to Arduino with DCC++ Base Station #arduino #dccpp

 

I had a similar problem with an Arduino based servo for turnouts; the servo was only getting a shot of current instead of a significant length of current to move the servo.? You might check how long the current is applied to the servo.

Ken Moordigian
Jackson Livery
818-522-4292




On Tuesday, July 23, 2019 rsauerbrun <[email protected]> wrote:

Thanks Paul,

I started this effort by reading the following section on the JMRI site ¡­?

If I understand correctly, I should be able to run one servo directly connected to the Arduino's 5V, GND and one digital port (mine is connected to port 7). Of the three methods available with the DCC++ sketch, only the third method using the base station "Output" approach should work. This is what I have done, and everything looks great in JMRI, but the servo never moves.

But I get your concern about the PWM. As I watch the DCC++ traffic monitor I see only a "Low" then "High" state for the JMRI turnout. And when I hold the servo next to my ear, I hear a "click" when I send the command in JMRI to go "closed" or "thrown".

Is there any way I can overcome this in the DCC++ sketch?

Richard


Locked Servos, Ardunios, and JMRI #arduino

 

I've been working on getting my staging turnouts powered by servos and controlled by JMRI through Arduinos using Geoff Bunza's direct JMRI to Arduino scripts. The ends of the staging yards are far enough apart that I've ended up positioning one Arduino at each end of the yard, controlling five servos each. One Arduino is on COM4 and the other on COM5. I've got a pair of the "TurnoutDataTransfer.py" scripts created, one of which I'll refer to as P, the other S. On the one, I've renamed the global extportin to extportinP and the other script has extportinS. Com ports correspond to the Arduino ports. I've created a panel that has a basic diagram of the staging yard and can control the turnouts. This is where I am running into problems. I had JMRI automatically load the panel and run both scripts (P first, then S). The S turnouts worked normally but the P turnouts did not. I stopped the scripts from running automatically and have managed to test my way to the following:

1. If I load the P script (automatically or manually, doesn't make a difference), all the P turnouts work normally.?
2. If I then load the S script, all the S turnouts work normally but the P turnouts stop responding, although the script output and panel act like they are working.
3. It doesn't matter which script is loaded first; the second script will stop the first script's turnouts.?

Any thoughts on why this may be happening?

Thanks,

Sam


Locked Re: Cantons / Stop trains in block with red signal

 

¿ªÔÆÌåÓý

The give away for whether a chip supports ABC is usually whether you can set cv27




Locked Re: DP feature request

 

DP generally only has data from the last decoder read, CV19 is no exception. SO showing the last known value is still good.
Opening the throttle with CV19 value (if set) would also make things go faster when speed matching. (Configurable?)

90% of my loks are in consists, managed by DP. So this would be a good update feature for me.
Thomas
DeSoto, TX


Locked Re: Cantons / Stop trains in block with red signal

 

I believe I did explain one way to see the option for the Asymmetric feature, it might be different for another brand of decoders.

It depends on who added the decoder information into Decoder Pro.

The other way is check the specification of the decoder you want to use and see if they document that feature with the CV values.

Dennis