puddlehaven
Member
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:
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
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
-
35.6 KB Views: 29
-
50.1 KB Views: 27