Positional performance

I've been experimenting with Jurjen's Serial Power network. I have a small network set up, and am more than a little confused about a problem that I'm seeing.

Here's what's supposed to happen:

  • The master node powers up the network. The slave node turns on an indicator LED, showing that it has power and is listening.
  • The master node turns on an indicator LED and starts sending messages that interrupts the slave node, looking for processes on the slave node that want to send data on the network.
  • The slave node looks for a specific byte value in the network message indicating that the slave should register its sending processes, and runs a subroutine in response.
  • In the subroutine, the slave node looks for another byte value in the network message that tells it what specific process the master is expecting to be registered. If it matches the sending process ID on the slave, the slave responds to the master node and turns off the indicator LED.
  • When the master node is finished with its network discovery routine, it turns off the indicator LED to show that the network in entering normal operations.
  • Both the master node and the slave node drop into their main processing loops, sending and receiving messages on the network.

With the network nodes sitting on my desk, it works perfectly. During the network discovery process the slave node sees the registration request message, recognizes that it is for a process on the slave node, registers and turns off the indicator LED. After the node registration process is complete the network settles into routine processing. On the master there is an LED that shows network activity, it flickers away like I'd expect. On the slave the indicator LED is turned on every time it takes a sensor reading, it flashes every 5 seconds, just like it's supposed to.

When I put the same set of breadboards on my window sill (about 18 inches away) and turn it on, it doesn't work. The master node goes through its discovery process and starts its main processing loop. The slave node, however, never recognizes its sending process ID, so it never turns off the LED, never breaks out of its initialization loop, and never starts sending messages. The master node does not show any network activity either, but that's what I'd expect: since the slave node did not register a sending process, the master node doesn't send out anything on the network.

If I start the network on my desk, and then move it to the window sill, it continues to work normally.

Normally, in a situation like this, I'd suspect that when I move the breadboards from the desk to the window sill that I'm causing the network connection to be broken. In this case, the network connection and the power connection are the same, so if the slave node is getting power (it is), then it has to be getting the network connection as well.

This is repeatable, I've done it 4 or 5 times this morning, and it was doing the same thing last night. I've attached a couple of photos so you can see what I'm talking about.

I'm happy to hear any ideas you have about why this network will work on my desk, but not on the window sill 18 inches away.

Chuck
 

Attachments

Michael 2727

Senior Member
Not really into the networking side of things,
but try insulation under the sill version.
Sometimes the BB backing can be peirced
by long wires or the internal bridges and
if the sill was damp it could introduce
very weak shorting or odd capacitance
into the circuit, $0.02c worth.
 

hippy

Ex-Staff (retired)
I used an old SWTPC 6800 system to develop with. It was a two part design, CPU chassis plus external disk drives on 40-pin ribbon cable and had been sitting on a shelf and working for years. Redecorated the office and no joy. With a bit of heavy lifting it was found that everything was fine if the system was put back exactly where it had been but nowhere else. Tore down new shelving, bolted back the old and it lasted until it was no longer needed without a single problem.

It could be a capacitive problem, eltromagnetic interference or some kind of noise pickup, even flexing of cables can cause slight changes in resistance values or separate a wire you don't know is broken within its sleeve.

Not sure what to suggest except moving it around to see if you can break it elsewhere and thus determine why it works in one place and not another. Going back to more simpler code to check comms asc a less complicated system is a possibility.

Added : I recall it only worked with the exact wooden shelf and original brackets which we rescued from the skip, or we simply weren't taking any chances once we'd got it working again :)
 
Last edited:

kranenborg

Senior Member
A very short reply due to lack of time ...

Very nicely done, you project website (will you publish a link?) is also a very good tutorial in building the nodes.

I realized that the network activity indicator LED that I proposed in the project thread may be potentially a cause of trouble you reported, as it increases the effective network impedance during network timeslots because it creates a voltage drop (suggested by Hippy and Michael). Maybe it is thus better to use a FET-buffer connected to the network in order to add this LED.

The network without the activity indicator LED should be extremely robust against both capacitive and inductive disturbances: the pullup resistor (1K) defines the DC network impedance, and it allowed me to put a 0,1uF (100nF) capacitor between the network wires without adverse effects. My network functions in an environment that is full with 50Hz apparatus ...

Thanks for your information, and I will find the time to reply on some other issues that you addressed in the project thread

/Jurjen
 
Last edited:
Top