PDA

View Full Version : potential propeller twig system



fixmax
03-14-2012, 09:16 AM
Hi folks,

I'm kicking around an idea and I'd like some input on it. I want to build a system that will allow me to quickly connect various sensors and capabilities to a control board such as the Gadget Ganster Prop Platform USB or a Prop ASC. I want to utilize an off-the-shelf board that is common among Prop users, and I like both of those boards. I hate the thought of redesigning that part, so I will stick with one of those, or any number of boards such as the Quickstart, etc.

I have done quite a bit of testing with Phidgets, which are a similar concept, and I like the form factor and ease of use. What I don't like is the cost. A full blown Phidget system with multiple motor drivers, sensor boards, etc. can rapidly hit $500-$1000 in components. I have looked at the Grove TWIG system, which is similar, yet a less capable I2C based system, and I really like the price point. What I don't like is the Arduino-only interfacing, and the fact that everything is only I2C. I2C is fine for some applications, but I am looking for something a bit more robust. Now the Twig system uses I2C either through a chip that uses that, or an ATmega8L or similar chip local to the Twig Board, such as that with the motor driver board.

What I'm thinking of doing is designing a system that utilizes a Prop Based Main board, such as either a Gadget Gangster Prop USB, or a Prop ASC. Instead of I2C, I am thinking of using a CAN bus architecture, so that theoretically I can have nodes much further away, without dealing with noise issues. I'm not as hung up on cost, I think a prop-based "twig" board with an MCP2515 wouldn't end up too expensive. Would this be a viable architecture?

I realize that I could easily just connect two props together over a SPI or similar arrangement, but I'm looking at making a system that can be much easier to have a multi-drop layout, and only worry about addressing new sensors. Is there anything similar to this already out there? I want to utilize inexpensive 3 or 4 pin cables, similar to that with RC servos. If the CAN bus transmission speeds are turned down, I could probably get away with that for short runs.

I attached a small sketch to illustrate what I am talking about.

Any thoughts?

Circuitsoft
03-14-2012, 06:24 PM
An STM32F103R4T6 is cheaper than the MCP2515 and gives you a (small) 32-bit MCU to work with as well as the CAN interface. It has 16KB Flash, and 6KB RAM, so you're not going to do anything major, but as an I/O controller it should be fine. It'll probably allow you to make sensor modules and motor controllers much cheaper, and may even be a decent CAN controller for the mainboard. It has plenty of GPIOs to set a CAN address with DIP switches easily.

JonnyMac
03-14-2012, 08:47 PM
If you decide to go the MCP2515 route I have working circuits and code (vetted in a commercial project). Of course, you could always go with RS-485 multi-drop and get the cost down very low -- though you would have to create a protocol for your use.

Here's a project I did for my Nuts & Volts column:
-- http://forums.parallax.com/showthread.php?137251-Propeller-Platform-CAN-Shield-PCB-Available-(limit-qty)&highlight=mcp2515

fixmax
03-15-2012, 12:53 AM
If you decide to go the MCP2515 route I have working circuits and code (vetted in a commercial project). Of course, you could always go with RS-485 multi-drop and get the cost down very low -- though you would have to create a protocol for your use.

Here's a project I did for my Nuts & Volts column:
-- http://forums.parallax.com/showthread.php?137251-Propeller-Platform-CAN-Shield-PCB-Available-(limit-qty)&highlight=mcp2515

Yeah, I read that column a week or so ago, great article. It's amazing to me how little coverage CAN bus networking gets, as good as it is. The chips themselves only cost $2, and are even available in a DIP version. Your article is what prompted me to start thinking about this. At work, I regularly use CAN bus (particularly CANOpen) networks in my welding systems, and have been pretty impressed with the performance and noise immunity around welding and servos (Animatics Class 5 Can bus version motors in particular).

What I like about CAN bus, is it's similar in ease of use to Ethernet, in that the protocol is handled in hardware for you. I'm in the process of building my robot for a local robotics club I'm in, and I looked at the Grove system, and started thinking about a similar system with the Prop using CAN bus. What would be really interesting is if the CAN bus protocol could be implemented in a cog... A little bit of level shifting hardware, and it only has a 1Mbps max data rate... Yes I know your article said it would be insane, but you know the prop world...

Anyhow, thanks for the forum link. I'll get on my digital N&V edition and bring up your article.

fixmax
03-15-2012, 01:24 AM
An STM32F103R4T6 is cheaper than the MCP2515 and gives you a (small) 32-bit MCU to work with as well as the CAN interface. It has 16KB Flash, and 6KB RAM, so you're not going to do anything major, but as an I/O controller it should be fine. It'll probably allow you to make sensor modules and motor controllers much cheaper, and may even be a decent CAN controller for the mainboard. It has plenty of GPIOs to set a CAN address with DIP switches easily.

You know, that's not a bad idea actually. It would allow me to keep the hardware simpler. The only downside I have with that is I want to utilize OBEX objects for all of the various sensors I might end up using. If I go with the ARM chip, I'd have to roll my own local code for each sensor. This is one reason why I think doing that CAN bus protocol in the Prop would be a good idea, which would allow the simpler hardware. In addition, since the Prop isn't doing much, except simply talking to one sensor, having a large overhead for a CAN bus protocol wouldn't be too bad. I'm sure Parallax wouldn't be too upset either if Props are used for sensor boards in lieu of other hardware...

As a side note with this ARM chip, it would make for a pretty decent hardware-level IO controller for a Prop. It even has full speed USB. Using these in a CAN twig system might even be something other uC folks could be interested in.