Shop OBEX P1 Docs P2 Docs Learn Events
Spinneret well suited for EtherCAT? — Parallax Forums

Spinneret well suited for EtherCAT?

jammajamma Posts: 33
edited 2011-01-21 20:46 in Accessories
Researching industrial robotics control systems, I came across EtherCAT. That's Ethernet for Control Automation Technology, a high-performance Ethernet-based fieldbus:
http://en.wikipedia.org/wiki/EtherCAT

It's beyond my capabilities but it might make an interesting Spinneret-based project (and/or contest entry) for someone with good Spin / PASM skills.

Kinda cool because the implementation calls for a unique data representation and frame, so you'd be writing something low-level for which no current object exists. There's an existing open source implementation in C to get you started at: http://soem.berlios.de/

The Spinneret would need a second RJ-45 jack, though, since these devices are meant to be daisy chained. Most current hardware uses FPGAs, but I think the prop might have the horsepower to handle it.

Once implemented, you might move on to create and control an awesome robot hand like this one:
http://www.youtube.com/watch?v=7eDGA4MdkQg

Comments

  • GadgetmanGadgetman Posts: 2,436
    edited 2011-01-21 12:55
    There may be a problem with timing as the packets are expected to be 'processed on the fly'.

    'On the fly' in this case means that the unit starts retransmitting the packet within microseconds of receiving it.
    A Spinneret with two RJ45 ports will not be able to do this. Not even with two control chips for the ports as data will need to be copied from one to the other.

    In industrial robotics, that can mean anything from a shoddy paintjob to... well... a welding robot fusing the electrodes together...

    The idea is cool, but not feasible for the Spinneret, I think.

    If you want networked robotics, why not create your own implementation?
    Maybe using RS485 or something else that doesn't use most of the pins available on the Propeller?
    With a bit of planning you should even be able to make the 'downstream' units synch with the upstream controllers if you daisy-chain them. ( The receiver can 'log' the time it starts receiving a packet, and if it's a 'synch' packet, it compares the time IN the package with the logged time, then adjusts its own time according to the difference between packets. That should take care of calculation delays, setting clock at startup and a couple of other situations. The sending unit will have to calculate a slight offset in the timestamp while building the packet, but with deterministic timing, it should be possible to get decent accuracy.)

    I did a bit of brainstorming on this some years ago when I wanted to build a robot with lots of motors, sensors and a decentralized control system. (Kind of like hos the spinal cord sometimes handles 'panic reactions' and the subconscious handles 'involuntary' muscle movements like breathing, heartbeats, blinking and so on. )
    Never really got off the starting block, though.
  • Timothy D. SwieterTimothy D. Swieter Posts: 1,613
    edited 2011-01-21 20:46
    Spinneret isn't capable of EtherCAT...far, far from it. Gadgetman pretty much nailed it on the head, but there are deep technical reasons because EtherCAT is seen as ordinary Ethernet traffic. That is, EtherCAT can be wired in a ring topology rather than a star topology.

    If you want to work with EtherCAT you can purchase an ASIC from Beckhoff. I've seen and read the documentation. This ASIC would connect to a microcontroller which then has the firmware to handle the traffic and messages. The ASIC is there as the physical interface and the device managing the EtherCAT bus.
Sign In or Register to comment.