Developing an array of Basic Stamp subsupercomputers is possible with the software. (another great idea). Because the current node array is handled like a cluster that reports to a single master, arrays of masters (each in charge of "subsupercomputer" node array), can report to the OverLord. The OverLord is in charge of all Masters just as the Masters are in charge of all Workers. The cluster of all Masters is handled like a supersupercomputer. Since we are dealing with a one wire supercomputer interface, to avoid traffic speaking-listening jams from the supercomputing node arrays, the Masters would be on their own one wire along with the OverLord. That would only take up one extra pin on the Master processor, entirely do-able.
humanoido
Post Edited (humanoido) : 12/9/2008 11:14:26 PM GMT
It's important NOT to simulate the human brain down to the neuron level with a mainframe because there may not be supercomputers powerful enough to do that for many decades to come, and one would not want to do that on a wire by wire basis!!! That would create so many wires it would be pure insanity and does anyone really think the whole world can actually hold all that copper, or even have enough natural resources to manufacture that much?!!! It's like trying to go to the Moon and Mars and the stars with old vacuum tubes, a giant air conditioner, and a long extension cord. [noparse]:)[/noparse]
What IS important is to develop simulations that take advantage of the powerful integration of software - what the BSS brain project is all about, is taking a tiny section of the human brain that's relatively mapped and understood, interesting for biped and humanoid robots, AI and Motion Control for example, and co-developing simulation constructs of artificial intelligence. As in the original app post, it's always good to hear about the possibilities of what we can do, rather than what we cannot do.
humanoido
Post Edited (humanoido) : 12/9/2008 11:16:11 PM GMT
I'm working hard to wrap up the software, and have
now increased the number of worker programs from 14 to
20. This number now matches the Master program capabilities.
The new codes, for computers 15 through 20 match the
version numbers for the previous Workers code. This is a design
that works no matter how many computers you put into the
collective. It can be 2 computers or 20, for example. It's a tested
design because the BSS began with only 2 computers and worked its
way up.
Computer Distance Exam
Computer distances are relatively short, the max from computer
1 to computer 11 approaches 2-feet, give or take some distance for
added wire length from stamp to stamp, and everything is
functioning rock solid. Computer 20 will be mounted in obverse
at about the same distance. Some tests at greater distances can
be performed with the robot tether.
Question: why are you building one worker program at a time? My thoughts on mass computing would be to have a "worker program" that is generic. This would be a subroutine in the BS2 (for those with only one program slot), and the only custom part is sensor interfacing and data processing. The master computer should then be able to figure out what each slave is collecting and doing, and save their data appropriately. Just a thought.
Very good SRLM, I think you're describing exactly the way this works. The worker programs are "relatively generic." The main difference from one Worker program to the next is the identity. Each worker program can "wake up" and respond when it hears its name called (asked to speak). It must also send its identity to let the Master know it has finished. You are also right about the Master program. While the demo falls through to access each Worker, other Master code can simply use subroutines that call upon various Workers for their work results.
Of course, this protocol is necessary for the one wire interface. This one wire interface, in terms of simplicity, is one of the greatest Parallax and PBASIC/Stamp inventions of all time. I was following the thread about the PC not having this protocol built in so we'll have to do some work to make it communicate with our stamp master.
The thinking about programming with 20 stamps operating at the same time is very unique. First, it can do 20 priority things at the same time. It will be interesting to share such programming ideas and give the super-pod of stamps all new capabilities. The one important thing to note when programming with one wire statements - syntax must be exact! I'm sure you knew that! [noparse]:)[/noparse]
humanoido
Post Edited (humanoido) : 12/9/2008 11:18:01 PM GMT
One Wire Interface
I received some email over the weekend talking about my wording regarding the BSS one wire interface. To clarify here, with BSS software and its hardware interface, I am not using Dallas commands or Dallas type sensors or products. The talk about one wire is not to be mistaken with the Dallas One Wire Protocol. The BSS is sending serial communication along one wire, which is NOT in any Dallas configuration, does not get the Dallas commands, does not use the Dallas protocol, and does not have any Dallas numerical signatures or peripherals/sensors with Dallas format IDs.
Open Drain & Open Source
For a matter of educational interest, the BSS uses an interface with open baud mode simplified to one pin communications. This quote from the PBASIC Help File will clarify: "The SEROUT command supports open-drain and open-source output, which makes it possible to network multiple BASIC Stamps on a single pair of wires. These "open baudmodes" only actively drive the Tpin in one state (for the other state, they simply disconnect the pin; setting it to an input mode). If two BASIC Stamps in a network had their SEROUT lines connected together (while a third device listened on that line) and the BASIC Stamps were using always-driven baudmodes, they could simultaneously output two opposite states (i.e., +5 volts and ground). This would create a short circuit. The heavy current flow would likely damage the I/O pins or the BASIC Stamps themselves. Since the open baudmodes only drive in one state and float in the other, there's no chance of this kind of short. The polarity selected for SEROUT determines which state is driven and which is open. Open baudmodes allow the BASIC Stamp to share a line, but it is up to your program to resolve other networking issues such as who talks when and how to detect, prevent and fix data errors."
PBASIC
When Dallas One Wire is used, the interface communicates with specific parts, components, sensors, built as devices for one wire, with specific IDs. The BSS handles the IDs differently. Here's why I give credit to Parallax in the manner which was posted - Parallax has invented PBASIC and has given the language the capability to command support open drain and open source output within the statements, providing the syntax is extremely precise. This method works well as the distances to the processors are short, there's shielding, and software is designed to provide the necessary checks and balances.
I have to that this is a really interesting project and I've enjoyed reading most of the posts associated with it. I hope that some of the negative comments will be taken with a grain of salt and just keep on going. No matter what I would certainly consider this the "Super Computer" of BASIC Stamps and is a worthwhile experiment for it's own merit.
It is nice that Humanoido has taken the time to share his project on the forum and I look forward to reading about future progress.
No negativity, just some misconception Robert. However, I myself think this project is great as well. I just wish I could actually see it do something besides looking pretty (which it is very good at).
This project began with 2 computers (Basic Stamp boards). So if you have only 2 stamps, a project like this is entirely feasible using the same interface, same software (with some very minor changes), and same concepts. This can bring the range and scope of this project to more stamp enthusiasts.
Ken Gracey (Parallax) said...
smitty760123,
Is the C-Stamp your product or are you associated with the company?
I think the point is made and I'm trying to understand the motivation at this stage.
Ken Gracey
Parallax, Inc.
Not surprisingly, smitty760123 and Ethan123 have the same IP address.· The best information I have says this is a competitor trying to stir things up.· I don't think anything else needs to be said.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ Chris Savage Parallax Engineering
Build Plans
The complete build plans will be published in the feature article inside Penguin Tech Magazine issue #4. You'll see a link here to a posting in the Parallax Robotics Forum, when completed. Be sure to download your personal copy of Penguin Tech 4.
PT4 Progress & Publication Dates
Penguin Tech Magazine goes through a four phase proofreading. Three phases are completed. It's expected the fourth phase will be completed today. Then, proof results will be incorporated and a final master will be made over the weekend for a Monday posting if all goes as planned.
Circuit Diagram
The wiring diagram is a dual-combination of schematic and pictorial. It has features showing LED details, and all Stamps in a block of ten for simple wiring. This may be followed when wiring two or 20 stamps. The circuit diagram includes the following main parts:
Basic Stamp Array
Toggle Switch Power Bus Bar
LED Signal Bus Bar
Power Mains Distribution
Parts List
Software
Remember to download the code package. This is a separate zip file containing all the code talked about in PT4. 22 Software programs are included to run the BSS with up to 20 stamp computers. Look for the folder by the name of BSS. Two extra programs are optional and will run the Emic Speech board on computer nine, and a color uOLED Monitor on computer 10. The code will have comments on software and hardware interfacing, in particular, the pin wiring. Stamps can be mixed or matched. In theory, the design is unlimited, though it would be just as easy to connect two or three stamps using the same wiring and software with some minor code changes.
Basic Stamp Supercomputer
Index to Published Articles
Build Your Own Basic Stamp Supercomputer
BSS Basic Stamp Supercomputer
Super Stamp * Super Voice
BSS Stamp Clip In Technology
Basic Stamp BSS Parallel Architecture Processing Software
A Powerful Parallax Basic Stamp Collection
How to DIY Model a Basic Stamp Supercomputer
Basic Stamp Supercomputer BSS MPP Massively Parallel Processing
Supercomputer Shielding
Basic Stamp Supercomputer Software & Plans
BSS Software
Youtube Supercomputer Movie!
How I used the Supercomputer Model to Develop a Super Robot Brain
Basic Stamp Supercomputer BSS 10X Plans
Plans to Build Your Own Basic Stamp Supercomputer
More Information, Updates, Summary, Projects
Basic Stamp Supercomputer Code
Attached for download is a folder "BSS22.zip" with all the
software to run the Basic Stamp Supercomputer. This
includes all 22 programs.
humanoido
Post Edited (humanoido) : 12/22/2008 2:45:32 AM GMT
Attached is a new revised schematic and plans to construct the BSS.
The parts list and links are now updated. This is the first posting of a
single file that includes the BSS schematics.
Sorry it took so long to get this posted but I wanted to make some
important additions and break this off from the PT4 article as an
individual file. This is also a much higher resolution image with a
larger size for better readability.
humanoido
Post Edited (humanoido) : 12/23/2008 7:47:35 AM GMT
This is my Christmas present to all. The new Basic Stamp Supercomputer
code will self adjust to the number of stamps in the collective. This allows
the code to fully function with the minimum number of stamps (2) on up
to the present code limit (20).
The code runs on the Master only. The workers code remains the same.
Startup has a Debug screen where the number of computers is input via
the menu screen. The code for each computer is ladder logic and falls
through until the "x" computer is reached, whereupon the code is completed
and ends.
Remember to use this program for the number of computers that are
actually wired together and switched on. The code is not designed for
more computers than "x" which are wired together.
Now you can build a Basic Stamp Tiny Supercomputer on a tight
budget or a massive one, depending on your resources. Have fun!
Per request, this is the initial wiring of a 2-Stamp BSS using a BS2sx and a BS2px.
The interface is from P0 on the side of the Basic Stamp Super Carrier Board and P5
on the Penguin Bs2px board. The battery supply will now be connected and Vin is
joined together along with Vss ground.
With the SCB, a small solderless breadboard is added to make the connections.
Resistors used for this setup are 1K. Note, the SCB does not have the inline 220
ohm resistors to port side so resistors will be added to any used port, including P0
to P5. The one wire interface is still maintained.
Piezo Speakers
The SCB is wired with its Piezo Speaker on P15. The Bs2px board has its Piezo
Speaker on P12. Change code accordingly.
Software
Change the code to reflect Port P5 on the Bs2px side and input for 2 computers.
Download the Master and the Worker codes (computer 1 and computer 2) to run
simultaneously. Although it's your choice, here the BS2sx is the Master and the
BS2px is the Worker.
humanoido
Post Edited (humanoido) : 12/30/2008 10:14:41 AM GMT
Question... why does every reference I've ever seen about connecting two stamps together use two seperate pins (one for transmit, one for receive) and resistors (of 1k+ usually) to
prevent problems... when its absolutely clear that your solution of one straight transmit/receive line works fine?
Two lines means that you won't run into a bus conflict in bidirectional communication. Using one line for both Tx and Rx means your timing has to be precise. It's faster and more convent to transmit without conflicts if each has it's own line. It's a similar idea to using a switch instead of a hub.
The first version circuit made did indeed have two lines, one Rx and one Tx,
but was discontinued after performing numerous experiments and weighing
the pros and cons.
What I found - it's far more easy and simple to regulate which stamp talks
across one wire. When a stamp finishes talking, it just says so. This one wire
system works perfect, is reliable, and does not hang. The hardware design is
simple. One line never has a conflict using this method in bidirectional
communications and there is no need to worry about timing. In this way, it's
all automatic.
About the 1K resistor, it's still in place from Vss to the P0 ports. Although the
820 ohm resistor is seen on the schematic, please realize the master is on a
Basic Stamp HomeWork Board which cleverly puts a 220 ohm protection
resistor inline with each port. The resistors in series amount to 1040 ohms,
close enough to 1K. If a different board is used, add a 220 ohm resistor to
P0.
One way of looking at the operation of the single wire interface is by
comparison to a track & field relay race. At the leg of the race, each
runner passes a baton to the next.
Wikipedia said...
In sprint relays... Usually a runner will give an auditory signal, such
as "Stick!" repeated several times, for the recipient of the baton to
put out his hand.
The one wire is very similar. Each sprinter is a Basic Stamp computer.
The sprint distance is the work time. The handoff is the transfer of work
results from one stamp to the next. The total racing time of each runner
is the computational time of each computer. The auditory "Stick!" is the
stamp's identification code. The difference is that any stamp worker can
send off its work (baton) when decided by the Master. You can have one
or twenty consecutive send offs, in any order specified, or one at any
time during the race. Different code can provide different arrangements
of Master and Workers.
Humanoido, I didn't get that communication was being manged by a master worker relationships; I suppose this makes sense. The arrangement you have suits the stamps in this project well. Thank you for the clarification.
Ugha, other projects have different relationships between the two devices/chips. If they were equal peers, (say capable of both receiving and sending at the same time -- say using a prop instead of a stamp), then two lines would mean faster communication. The unpredictable nature of the peers would make a single line a bad choice, because either peer could chose anytime to send. This would open the possibility of conflicts (both trying to send at the same time). Mechanisms exist from networking to help mediate such race conditions for the shared resource (the line), but all of them involve some sort of wait time which would slow down communication. Beowulf Clusters (of computers) performance would suffer is they used a hub rather than a switch for similar reasons.
BSS Speed Increase Tip
There's the proverbial contesting of the backplane of conventional
computers, that of raw processor speed versus that of bus width.
For years it was a catch-up match of the higher processor speed
waiting for bus width speed innovations.
In the BSS project, it's still a contest between the raw basic stamp
processor speed and the baud rate sent down the interface in serial
commands. One tip for increasing BSS speed is to deactivate the
LCD. The LCD process, while incorporating high baud rates, involves
a much slower waiting period for the characters to appear on the
screen, and a pausing time period for readability.
The BSS code reports to the LCD from the Master and each Worker.
LCD selective disabling would therefore increase operating speed
significantly. The LCD use in the project is to primarily show the
proof of concept and serve as a debugging tool. The same will hold
true of the miniature uOLED color monitor.
Info Packet Development
I'm putting together a BSS info package. Is there any
new or additional information you would like to see
explored in more detail?
humanoido
Post Edited (humanoido) : 1/16/2009 1:18:29 PM GMT
Comments
Developing an array of Basic Stamp subsupercomputers is possible with the software. (another great idea). Because the current node array is handled like a cluster that reports to a single master, arrays of masters (each in charge of "subsupercomputer" node array), can report to the OverLord. The OverLord is in charge of all Masters just as the Masters are in charge of all Workers. The cluster of all Masters is handled like a supersupercomputer. Since we are dealing with a one wire supercomputer interface, to avoid traffic speaking-listening jams from the supercomputing node arrays, the Masters would be on their own one wire along with the OverLord. That would only take up one extra pin on the Master processor, entirely do-able.
humanoido
Post Edited (humanoido) : 12/9/2008 11:14:26 PM GMT
It's important NOT to simulate the human brain down to the neuron level with a mainframe because there may not be supercomputers powerful enough to do that for many decades to come, and one would not want to do that on a wire by wire basis!!! That would create so many wires it would be pure insanity and does anyone really think the whole world can actually hold all that copper, or even have enough natural resources to manufacture that much?!!! It's like trying to go to the Moon and Mars and the stars with old vacuum tubes, a giant air conditioner, and a long extension cord. [noparse]:)[/noparse]
What IS important is to develop simulations that take advantage of the powerful integration of software - what the BSS brain project is all about, is taking a tiny section of the human brain that's relatively mapped and understood, interesting for biped and humanoid robots, AI and Motion Control for example, and co-developing simulation constructs of artificial intelligence. As in the original app post, it's always good to hear about the possibilities of what we can do, rather than what we cannot do.
humanoido
Post Edited (humanoido) : 12/9/2008 11:16:11 PM GMT
Workers v1.3, Master v1.9
More Worker Programs
I'm working hard to wrap up the software, and have
now increased the number of worker programs from 14 to
20. This number now matches the Master program capabilities.
The new codes, for computers 15 through 20 match the
version numbers for the previous Workers code. This is a design
that works no matter how many computers you put into the
collective. It can be 2 computers or 20, for example. It's a tested
design because the BSS began with only 2 computers and worked its
way up.
Computer Distance Exam
Computer distances are relatively short, the max from computer
1 to computer 11 approaches 2-feet, give or take some distance for
added wire length from stamp to stamp, and everything is
functioning rock solid. Computer 20 will be mounted in obverse
at about the same distance. Some tests at greater distances can
be performed with the robot tether.
humanoido
Very good SRLM, I think you're describing exactly the way this works. The worker programs are "relatively generic." The main difference from one Worker program to the next is the identity. Each worker program can "wake up" and respond when it hears its name called (asked to speak). It must also send its identity to let the Master know it has finished. You are also right about the Master program. While the demo falls through to access each Worker, other Master code can simply use subroutines that call upon various Workers for their work results.
Of course, this protocol is necessary for the one wire interface. This one wire interface, in terms of simplicity, is one of the greatest Parallax and PBASIC/Stamp inventions of all time. I was following the thread about the PC not having this protocol built in so we'll have to do some work to make it communicate with our stamp master.
The thinking about programming with 20 stamps operating at the same time is very unique. First, it can do 20 priority things at the same time. It will be interesting to share such programming ideas and give the super-pod of stamps all new capabilities. The one important thing to note when programming with one wire statements - syntax must be exact! I'm sure you knew that! [noparse]:)[/noparse]
humanoido
Post Edited (humanoido) : 12/9/2008 11:18:01 PM GMT
I received some email over the weekend talking about my wording regarding the BSS one wire interface. To clarify here, with BSS software and its hardware interface, I am not using Dallas commands or Dallas type sensors or products. The talk about one wire is not to be mistaken with the Dallas One Wire Protocol. The BSS is sending serial communication along one wire, which is NOT in any Dallas configuration, does not get the Dallas commands, does not use the Dallas protocol, and does not have any Dallas numerical signatures or peripherals/sensors with Dallas format IDs.
Open Drain & Open Source
For a matter of educational interest, the BSS uses an interface with open baud mode simplified to one pin communications. This quote from the PBASIC Help File will clarify: "The SEROUT command supports open-drain and open-source output, which makes it possible to network multiple BASIC Stamps on a single pair of wires. These "open baudmodes" only actively drive the Tpin in one state (for the other state, they simply disconnect the pin; setting it to an input mode). If two BASIC Stamps in a network had their SEROUT lines connected together (while a third device listened on that line) and the BASIC Stamps were using always-driven baudmodes, they could simultaneously output two opposite states (i.e., +5 volts and ground). This would create a short circuit. The heavy current flow would likely damage the I/O pins or the BASIC Stamps themselves. Since the open baudmodes only drive in one state and float in the other, there's no chance of this kind of short. The polarity selected for SEROUT determines which state is driven and which is open. Open baudmodes allow the BASIC Stamp to share a line, but it is up to your program to resolve other networking issues such as who talks when and how to detect, prevent and fix data errors."
PBASIC
When Dallas One Wire is used, the interface communicates with specific parts, components, sensors, built as devices for one wire, with specific IDs. The BSS handles the IDs differently. Here's why I give credit to Parallax in the manner which was posted - Parallax has invented PBASIC and has given the language the capability to command support open drain and open source output within the statements, providing the syntax is extremely precise. This method works well as the distances to the processors are short, there's shielding, and software is designed to provide the necessary checks and balances.
humanoido
It is nice that Humanoido has taken the time to share his project on the forum and I look forward to reading about future progress.
Robert
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
PG
This project began with 2 computers (Basic Stamp boards). So if you have only 2 stamps, a project like this is entirely feasible using the same interface, same software (with some very minor changes), and same concepts. This can bring the range and scope of this project to more stamp enthusiasts.
humanoido
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Chris Savage
Parallax Engineering
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
PG
Build Plans
The complete build plans will be published in the feature article inside Penguin Tech Magazine issue #4. You'll see a link here to a posting in the Parallax Robotics Forum, when completed. Be sure to download your personal copy of Penguin Tech 4.
PT4 Progress & Publication Dates
Penguin Tech Magazine goes through a four phase proofreading. Three phases are completed. It's expected the fourth phase will be completed today. Then, proof results will be incorporated and a final master will be made over the weekend for a Monday posting if all goes as planned.
A preview of PT4 can be found here.
http://forums.parallax.com/showthread.php?p=760066
Circuit Diagram
The wiring diagram is a dual-combination of schematic and pictorial. It has features showing LED details, and all Stamps in a block of ten for simple wiring. This may be followed when wiring two or 20 stamps. The circuit diagram includes the following main parts:
Basic Stamp Array
Toggle Switch Power Bus Bar
LED Signal Bus Bar
Power Mains Distribution
Parts List
Software
Remember to download the code package. This is a separate zip file containing all the code talked about in PT4. 22 Software programs are included to run the BSS with up to 20 stamp computers. Look for the folder by the name of BSS. Two extra programs are optional and will run the Emic Speech board on computer nine, and a color uOLED Monitor on computer 10. The code will have comments on software and hardware interfacing, in particular, the pin wiring. Stamps can be mixed or matched. In theory, the design is unlimited, though it would be just as easy to connect two or three stamps using the same wiring and software with some minor code changes.
Code List
humanoido
Post Edited (humanoido) : 12/12/2008 7:36:33 PM GMT
http://forums.parallax.com/showthread.php?p=770232
- Main BSS Article
- Build Instructions
- Schematics
- Pictorial Diagrams
- Index
- 12 Photos
- 22 software programs
The plans to build the Basic Stamp Supercomputer are now posted!Read the construction details in Penguin Tech #4, pages 1, 2, 3, and 4.
humanoido
Post Edited (humanoido) : 12/14/2008 5:09:45 PM GMT
Index to Published Articles
Build Your Own Basic Stamp Supercomputer
BSS Basic Stamp Supercomputer
Super Stamp * Super Voice
BSS Stamp Clip In Technology
Basic Stamp BSS Parallel Architecture Processing Software
A Powerful Parallax Basic Stamp Collection
How to DIY Model a Basic Stamp Supercomputer
Basic Stamp Supercomputer BSS MPP Massively Parallel Processing
Supercomputer Shielding
Basic Stamp Supercomputer Software & Plans
BSS Software
Youtube Supercomputer Movie!
How I used the Supercomputer Model to Develop a Super Robot Brain
Basic Stamp Supercomputer BSS 10X Plans
Plans to Build Your Own Basic Stamp Supercomputer
More Information, Updates, Summary, Projects
http://forums.parallax.com/showthread.php?p=770232
Attached for download is a folder "BSS22.zip" with all the
software to run the Basic Stamp Supercomputer. This
includes all 22 programs.
humanoido
Post Edited (humanoido) : 12/22/2008 2:45:32 AM GMT
Attached is a new revised schematic and plans to construct the BSS.
The parts list and links are now updated. This is the first posting of a
single file that includes the BSS schematics.
http://forums.parallax.com/attachment.php?attachmentid=57520
Sorry it took so long to get this posted but I wanted to make some
important additions and break this off from the PT4 article as an
individual file. This is also a much higher resolution image with a
larger size for better readability.
humanoido
Post Edited (humanoido) : 12/23/2008 7:47:35 AM GMT
You made Reddit: www.reddit.com/r/programming/comments/7lb4c/basic_stamp_supercomputer/
-Phil
It's equally surprising to find it in MAKE Magazine.
blog.makezine.com/archive/2008/12/basic_stamp_supercomputer.html
The BSS currently has 284,000 places on the web. That's mind boggling since this
simple project began with only 2 Basic Stamps and an idea.
humanoido
Basic Stamp Supercomputer
Self Adjusting Master
This is my Christmas present to all. The new Basic Stamp Supercomputer
code will self adjust to the number of stamps in the collective. This allows
the code to fully function with the minimum number of stamps (2) on up
to the present code limit (20).
The code runs on the Master only. The workers code remains the same.
Startup has a Debug screen where the number of computers is input via
the menu screen. The code for each computer is ladder logic and falls
through until the "x" computer is reached, whereupon the code is completed
and ends.
Remember to use this program for the number of computers that are
actually wired together and switched on. The code is not designed for
more computers than "x" which are wired together.
humanoido
http://forums.parallax.com/attachment.php?attachmentid=57653
You can amplify the power of one Stamp by 2X
Per request, this is the initial wiring of a 2-Stamp BSS using a BS2sx and a BS2px.
The interface is from P0 on the side of the Basic Stamp Super Carrier Board and P5
on the Penguin Bs2px board. The battery supply will now be connected and Vin is
joined together along with Vss ground.
With the SCB, a small solderless breadboard is added to make the connections.
Resistors used for this setup are 1K. Note, the SCB does not have the inline 220
ohm resistors to port side so resistors will be added to any used port, including P0
to P5. The one wire interface is still maintained.
Piezo Speakers
The SCB is wired with its Piezo Speaker on P15. The Bs2px board has its Piezo
Speaker on P12. Change code accordingly.
Software
Change the code to reflect Port P5 on the Bs2px side and input for 2 computers.
Download the Master and the Worker codes (computer 1 and computer 2) to run
simultaneously. Although it's your choice, here the BS2sx is the Master and the
BS2px is the Worker.
humanoido
Post Edited (humanoido) : 12/30/2008 10:14:41 AM GMT
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
PG
to post updates, photos, and new information as time permits.
humanoido
prevent problems... when its absolutely clear that your solution of one straight transmit/receive line works fine?
The first version circuit made did indeed have two lines, one Rx and one Tx,
but was discontinued after performing numerous experiments and weighing
the pros and cons.
What I found - it's far more easy and simple to regulate which stamp talks
across one wire. When a stamp finishes talking, it just says so. This one wire
system works perfect, is reliable, and does not hang. The hardware design is
simple. One line never has a conflict using this method in bidirectional
communications and there is no need to worry about timing. In this way, it's
all automatic.
About the 1K resistor, it's still in place from Vss to the P0 ports. Although the
820 ohm resistor is seen on the schematic, please realize the master is on a
Basic Stamp HomeWork Board which cleverly puts a 220 ohm protection
resistor inline with each port. The resistors in series amount to 1040 ohms,
close enough to 1K. If a different board is used, add a 220 ohm resistor to
P0.
humanoido
One way of looking at the operation of the single wire interface is by
comparison to a track & field relay race. At the leg of the race, each
runner passes a baton to the next. en.wikipedia.org/wiki/Relay_race
The one wire is very similar. Each sprinter is a Basic Stamp computer.
The sprint distance is the work time. The handoff is the transfer of work
results from one stamp to the next. The total racing time of each runner
is the computational time of each computer. The auditory "Stick!" is the
stamp's identification code. The difference is that any stamp worker can
send off its work (baton) when decided by the Master. You can have one
or twenty consecutive send offs, in any order specified, or one at any
time during the race. Different code can provide different arrangements
of Master and Workers.
humanoido
Post Edited (humanoido) : 1/8/2009 5:04:38 PM GMT
Ugha, other projects have different relationships between the two devices/chips. If they were equal peers, (say capable of both receiving and sending at the same time -- say using a prop instead of a stamp), then two lines would mean faster communication. The unpredictable nature of the peers would make a single line a bad choice, because either peer could chose anytime to send. This would open the possibility of conflicts (both trying to send at the same time). Mechanisms exist from networking to help mediate such race conditions for the shared resource (the line), but all of them involve some sort of wait time which would slow down communication. Beowulf Clusters (of computers) performance would suffer is they used a hub rather than a switch for similar reasons.
There's the proverbial contesting of the backplane of conventional
computers, that of raw processor speed versus that of bus width.
For years it was a catch-up match of the higher processor speed
waiting for bus width speed innovations.
In the BSS project, it's still a contest between the raw basic stamp
processor speed and the baud rate sent down the interface in serial
commands. One tip for increasing BSS speed is to deactivate the
LCD. The LCD process, while incorporating high baud rates, involves
a much slower waiting period for the characters to appear on the
screen, and a pausing time period for readability.
The BSS code reports to the LCD from the Master and each Worker.
LCD selective disabling would therefore increase operating speed
significantly. The LCD use in the project is to primarily show the
proof of concept and serve as a debugging tool. The same will hold
true of the miniature uOLED color monitor.
humanoido
I'm putting together a BSS info package. Is there any
new or additional information you would like to see
explored in more detail?
humanoido
Post Edited (humanoido) : 1/16/2009 1:18:29 PM GMT