[simpits-tech] SeeedStudio ethernet shield

Cris Harrison phoenixcomm at gmail.com
Wed Sep 10 15:17:35 PDT 2014


On 09/09/2014 11:40 PM, Matt Bailey wrote:
> On Tue, 09 Sep 2014 17:10:52 -0500
> Cris Harrison <phoenixcomm at gmail.com> wrote:
>
>> and why usb free???? use IOPs like I do each pc can run a bunch of
>> interface processors (arduino(s), Phi, etc)
>> ~~Cris
> Oh Cris, you asked for the rant. :)
>
> USB is the devil. USB devices require a specific state-based session be
> maintained with a host (the PC)...any disconnection, interference, or
> interruption of this session completely screws up the whole simulator,
> usually requiring a reboot of at least the sim software itself (I
> have experienced this firsthand, with DC relays causing Arduinos to
> reset, or lose their connection momentarily). This by itself is enough
> to disqualify USB from simulator use. But allow me to digress...
>
> The enumeration order, and virtual device instances on the host, are
> pseudo-random...I can only maintain a semi-sane state on my Linux-based
> simulator by not adding or removing devices (Arduinos and joystick
> controllers, mainly). Changing ports, or throwing another Arduino or
> joystick device into the mix, has the potential to completely screw up
> my device order. So, any changes to the sim require that I touch code
> again to make it address an Arduino or joystick device that has
> "migrated" to another device node. This is unacceptable. The devices
> also require special drivers, and processing power from the host. And I
> don't even have any AC voltage based interfaces in my sim...just ask
> Justin how robust USB is when it's within a few feet of 400hz aircraft
> voltage. :)
>
> USB is a closed, proprietary standard. Ethernet is an open standard that
> has been around for decades. Even in Python, I have fairly low-level
> access to a number of different protocols that use ethernet...I can
> choose how I want to do error-handling, for instance, or at what rate
> my devices need to refresh.
>
> To top it all off, even the physical connectors suck. USB connectors
> becoming disconnected, getting damaged, or causing other mayhem, are a
> CONSTANT issue on embedded systems (which is really what a flight
> simulator is).
>
> Ethernet, on the other hand, does NOT require a "lifeline" to the PC. I
> have been using UDP in my sim (for my various pieces of software to
> talk to each other) since day 1, and it has literally been ZERO hassle.
> UDP especially is very nice. My various bits of software blast out UDP
> packets to each other. If a packet is dropped here or there, or even if
> a device goes completely offline, it doesn't bring the whole sim down.
> I can completely reboot my instrument PC (or my radar PC) with X-Plane
> running, and nothing bad happens. There is no server-client
> relationship, all the devices and software instances are just clients
> on the network. IP addresses are STATIC, they NEVER change. I can code
> up my altimeter on one IP address today, and never have to worry about
> it again. And if I want to check a device's online status, I simply
> ping it from ANY PC on the network.
>
> Ethernet also means I get a nice locking connector. What's more, the
> connector is cheap, and easy to replace (or make entirely new cable) if
> it does ever get damaged. I can also do longer cable runs, which is very
> important as I start on a much larger cockpit...no "booster" required.
> And did I mention gigabit ethernet is (reliably) over twice the speed
> of USB 2.0 in USB's IDEAL conditions?
>
> There are three applications I can think of that are good for USB, and
> two of them have a reliable alternative: mice, keyboards, and portable
> storage devices. It's nice to be able to plug a USB keyboard into one
> of my systems on-the-fly to do debugging, or clear an error message or
> some such. So I guess I don't COMPLETELY hate USB, just 95% hate. :)
>
ok so you have raised up some valid points..  my simulator is based on 
message passing between 4 entities maybe more:

    1. end item or radio, etc.
    2. interface processor ( arduino max )
    3. Local_IOP
    4. Simulation CPU banging master frames at 100fps (Ethernet)

between 4 & 3 yes Ethernet rules!
between 1 & 2 mostly wire and cable.

between 2 & 3 this is where the problem lives..  so for instance my six 
radios,  with have eight tuners with 10 independent interface processors.
so now we need Ethernet interfaces on each of the 10 processors and a 
separate nic in the IOP. That's not counting the interface to the audio 
panel(s).

before I fire up my sim I have to check lsusb() to get there info and I 
put it into a flat file that the IOP has on start up. with USB if you 
reset you arduino and the plug it back into the SAME USB jack you should 
have the same settings as before...

and then how do you handle all of the device address or ports:? so would 
my 10 tuners all be on 1 IP but have 10 ports.. really never mess about 
with UDP..
~~
Cirs

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.simpits.org/pipermail/simpits-tech/attachments/20140910/686d7f6b/attachment-0001.html 


More information about the Simpits-tech mailing list