BS2pe Motherboard Networking
jamesksu
Posts: 22
Hello, I had posted a similar question on here earlier, but I would like to start a new thread addressing the problem in a different way:
I want to network 8-12 Bs2pe motherboards in a master/slaves arrangement using possibly RS485 or any alternative. Can I use the USB programming/debugging port to connect these boards in any way? I have looked at USB to 485 converters that have transceivers built in I already have my sensing robot built with the bs2pe mobo, so I would like to stick with it. I also am not interested in trying to solder any pins. Any suggestions?
I want to network 8-12 Bs2pe motherboards in a master/slaves arrangement using possibly RS485 or any alternative. Can I use the USB programming/debugging port to connect these boards in any way? I have looked at USB to 485 converters that have transceivers built in I already have my sensing robot built with the bs2pe mobo, so I would like to stick with it. I also am not interested in trying to solder any pins. Any suggestions?
Comments
How immediate is your need? Do you want to power the MoBos over the network, too? The reason I ask is that I have an RS485 daughterboard that's been in development for awhile. It's not done yet, but I could fast-track it if necessary.
-Phil
-Phil
-Phil
What Vdd are you using? 5V or 3.3V? If 5V, will your system run on 3.3V?
-Phil
Anyway, one solution I had in mind requires these parts:
Samtec SQT-106-03-F-D
Sparkfun RS485 Breakout Board
2 ea. #4 x 1.4" spacers
2 ea. #4-40 x 1/2" pan-head machine screws
Hookup wire
The Samtec socket would be installed in the Proto-DB in lieu of the one provided. You would have to be careful soldering it not to get any solder on the legs and to keep fillets to an absolute minimum. This allows the Proto-DB to be stacked between the MoBo and the PWR-I/O-DB:
That way, you can make connections to the signals (Vdd, Gnd, Rx, Tx, and RTS) required by the RS485 board. It's also possible to multiplex Rx and Tx onto one pin by connecting a 1K resistor between them and then from Tx to the Stamp pin.
BTW, the Samtec part is the same as the "elevator socket" included in Parallax's MoBo Extrusion and Panel Set. Though not typically sold separately, Parallax may be willing to do so if they have extras in their parts inventory. If not, you can always get them direct from Samtec -- possibly even as samples. Anyway, it never hurts to ask.
Also, an alternative to running at 3.3V would be to run at 5V and include a 3.3V regulator on the Proto-DB to power the Sparkfun board. This would require the addition of a regulator IC and a couple caps, and is very simple to do. It would obviate any issues with the Ping))) Sig line in the process, keeping the cable a clean straight-through connection.
Does this sound like something you'd want to attempt?
-Phil
1. To ensure I am understanding correctly, I would need to install the ProtoDB directly to the A socket on the Mobo. Then, instead of using the extender provided with the proto, I would use the other extender provided by Samtec or in the extrusion set. The extrusion socket would have to be soldered to the proto board with 12 points, correct? Then, on the proto, I'd have to solder the 5 points you describe above to the RS485 board. Finally, the PWR-I/O board would then be mounted on top of the ProtoDB. Let me know if this doesn't seem correct.
2. So if I am occupying pins 11,12,8,9 right now with the PWR-I/O board using the 3 servos and the PING))), which pin(s) should I use for the RS485 board? Do I need to switch some of the servos or PING))) to pins A0 or A1?
3. You mention two alternatives for getting around the 3.3V to 5V signal disparity. Which of these in your mind is an easier solution? Using the series resister on the signal line from the PING))) or adding a voltage regulator on the proto-db for the RS485 board? Again, I don't have much experience with soldering, so the easier installation the better.
4. Where does the 485 card sit in the arrangement you attached? Would it lie directly on top of the ProtoDB? I'm not sure how familiar you may be with the Sparkfun card, but is it possible to tie into it with an RJ45/Cat5 cable?
5. Finally, if I were to need a large quantity of these RS485 devices, say around 80-100, could Parallax possibly create these daughtercards with the RS485 mounted with the 3.3V regulator included and everything soldered for a plug and play alternative? Any increase in cost is not a huge concern.
Thanks again.
2. You can use the shared pins, P2 and P3, since the TCS230/3200 board does not.
3. If I were doing it, I'd put a 3.3V regulator on the Proto-DB and run the MoBo at 5V. It's just neater that way, instead of adding a resistor inline with the Ping))) cable.
4. I'm not familiar with the Sparkfun card, so I can't really say if it would fit under the PWR-I/O-DB. It also depends on what kind of connector you decide to use for your RS485 cable. It does have pads to solder an RJ45 socket, and Sparkfun sells the sockets.
5. I could do that for you. If one is available, I'd opt for an RS485 chip that was multi-voltage compatible, though, to obviate the need for an additional regulator. Let me think about that for awhile. In those volumes, there may be other viable options.
One thing I should mention: if the additional height on the "A" side gets in the way of the color sensor, you can always put the Proto-DB under it instead of the PWR-I/O. By using P2 and P3, no wiring or programming would change.
-Phil
Also, please let me know if you decide anything on mass producing these RS485 daughtercards...
Thank you
-Jamie
The regulator is an LP2950-3.3. The capacitors are 10 uF tantalums. Here's a layout you can follow, if you like:
The pink lines are connections that are made on the bottom.
-Phil
-Phil
I have made recent progress with this project, mostly with the fact that I have decided to use Xbee in lieu of an RS485 setup. However, I am having issues with the BS2pe Mobo talking to pins 2 and 3. There seems to be no communication happening at all. Could this possibly be an AVR firmware issue? I am using the PWR-I/O daughtercard, and pins 8,9,11, and 12 all function properly. Thanks in advance.
Can you post your entire test program, please?
-Phil
BTW, A0 and A1 can be controlled by the GPIO3 firmware for general-purpose input and output and for 10-bit analog input.
-Phil
In my setup I have a TCS-230 consuming the B socket, and then 3 additional servos, a PING))), and then 1-2 serial I/O from the Xbee device in the A socket (I can get away with simply using the serial out for the xbee, but serial in would be nice). Any other options you could think of? Could I splice together 2 servos on one control pin? I realize they would move simultaneously, but that may be an option. I would like to avoid going to a different BS2 board all together as I've investing time/money into the BS2pe Mobo, but that may be my only choice.
Let me know and thanks in advance.
2. For the servos, use a ServoPAL. This will allow one pin to control two servos, and it doesn't require constant updating by the BS2pe. Although the ServoPAL typically plugs into two 1x3 headers, the row with the "Alarm" pin doesn't need to be plugged in and can simply overhang one end of the array of header pins on the PWR-I/O-DB. (See my next post.)
Although it would certainly be possible to write a program for the on-board AVR to accommodate servos or serial I/O, and the software to do so is free, some experience with C or AVR assembly would be necessary to get the job done efficiently.
-Phil
-Phil
(Actually, if you're careful not to output from the AVR on A0 and A1, you don't really have to cut those traces, since the respective AVR pins default to inputs with the GPIO3 firmware. If it were me, I wouldn't bother with the trace cutting, making it easier to restore the board to its pristine state at a later time.)
-Phil