[simpits-tech] ----> To Frank....... EPIC

Mark Doran simpits-tech@simpits.org
Tue, 1 Jul 2003 17:09:22 -0700


It's a slow day so I have time to share at more length than usual! ;-)
This is going to be a bit of a ramble I suppose.  And I'm sure there are
going to be a few "red rags" in here that various people may take issue
with...it's all good: these are just some of *our* thought processes for
*your* consideration and/or amusement! ;-)

I have a couple of Phidgets as well and I have some amount of experience
writing code therefore for both Phidgets and EPIC.  And of course I also
own TM FLCS/F22Pro and Cougar sets not to mention multiple XKeys and
MasterPilot units as well so I can compare those as well in this mix.
I'm the software guy in our team so programming this little lot is the
part that interests me most.  I talked about hardware reasons before but
here a bit more on the software side

Everyone's situation will be different but for what it's worth here are
some of the more software oriented things that caused us to go down the
EPIC path as opposed to some other route.

Bear in mind our context is F-16/Falcon4.  Falcon input today is all
keyboard/mouse.  Output is all shared memory.  So our solution needed to
cope with the status quo but not lock us out of working with  Falcon V
(or some other future nirvana) when we have "real" programming means to
integrate controls into an F-16 sim/game.

First let me say we discarded Hagstrom/Xkeys type approaches early.  TM
and Cougar especially ruined us there...just not enough control with
devices that are more or less fixed function like that.  So really it
was mostly EPIC or Phidgets for us to consider...(I'm intrigued lately
by the RS-USB-CCD solution the realsimulators.com guys are working on
though...future stuff though??).

- EPIC has modules for pretty much everything we wanted.  The servo
module from MicroCockpit wasn't apparent when we started planning but
that's the last thing that we had thought we needed phidgets for.

- EPL is straightforward and powerful as a programming language.  As you
know from the Cougar experience, being able to change the behavior of
the controller on a per switch basis (at the level of fine control over
timing and such) is sometimes the only way to get the sim/game code to
do what you want when you want reliably.

- Combining the two points above, EPL code can address practically all
the hardware control that we plan to use: analog channels, switches,
lamps, LEDS, 7-seg displays, encoders, gauges, motion controls, (and now
mouse too).  Having all that be in one programming environment
simplifies my job.  Software folks, face your hardware compatriots and
repeat after me: "integration is the hard part!" ;-)

- Host side programming in C++.  OK, call me weird but I just feel more
comfy in C++ than VB.  EPICIO.dll is a straightforward way to talk to
the EPIC environment from host side code.  Phidgets are a VB universe as
far as I can tell.  Yes, you can mix but it's more easily said than done
in practice with Visual Studio tools (YMMV).

- So we have just two chunks of software for device control: a host side
C++ program that hollows out Falcon4 shared memory and talks to the EPIC
and the EPL code that executes on the EPIC microcontroller.  EPL is
"almost" C -- enough to feel familiar anyway.  Nearly one source
language only??  Well sort of.

- And speaking of host side code: Martin Schmitt's F4Reader
(http://www.xflight.de/f16/pe_sim_com_epc_f4r.htm) is very slick and
ready made for Falcon4 people to glue right on top of their EPIC
solution.  The fact that it's infinitely configurable with a text editor
and zero programming skills/tools to match your chosen wiring scheme
makes it a huge short cut for anyone thinking about interfacing Falcon4
to real hardware.  It speaks EPIC not phidget.  Run don't walk if you
haven't already tried it! 

- Ralph and Steve, the brains behind EPIC/EPL, are both very helpful and
quick to respond to issues and questions.  Almost to a fault, they are
very quick on turning new versions of code with bug fixes and new
features...sometimes it's hard to keep up -- this is a good thing(tm)
over all though

- There was also a logical argument (meaning we haven't measured this to
prove it) that said one of EPIC's advantages was offloading some of the
controller intelligence processing from the host side.  Falcon4 is a CPU
hog and a network bandwidth hog.  Having to do "event catch/translate to
keystroke" processing on the host side intuitively must take more host
side MIPS than a device that just sends USB keystrokes.  Yes, you can
drive phidgets from a second machine but now you add network traffic to
get inputs back to Falcon4 again; plus latency concerns therein blah,
blah (getting data from Falcon4 is assumed already in our host load
plans since we are committed to F4DM/F4Glass).

- EPIC and Phidgets both have flexibility we think we want/need.  We
really wanted to "wire once and program many" times...I just couldn't
talk the hardware guys into believing that rewiring or device upgrade to
reconfigure was easier than recoding the control software for existing
flexible hardware.  Go figure! ;-)  The 0/256/0 phidget is still to this
day listed as proto.  I guess you could argue EPIC is too but we
actually have more than 300 switches wired to an EPIC with working code
(yes, I know that wasn't a front end consideration; more like a
shameless fishing trip to see where the state of the 0/256/0 unit it
since I haven't seen much talk about it lately -- Hi Gene! ;-).

EPIC is not without drawbacks though.

- Overall though it's expensive to buy the EPIC kit.  Compared to
phidgets, the servo controller for EPIC is 250 Euros for four servos
versus $75 CDN for the four servo phidget.  Big difference.  For us it's
all down to trade off of time spent integrating varied solutions versus
the near one-stop-shop and host-MIPS-offload that EPIC buys you.  To us,
capital cost (if you will) is easier to manage than being expansive with
our own time to construct integrated s/w and h/w to get to the real
point we want to spend time on -- flying the jet!

- EPIC is constantly evolving.  It's not really finished in the sense
that Ralph and Steve are still fixing problems and adding
features...good news bad news, you will likely find bugs in the
programming software you can readily download...staying in touch with
RnR though gets you access to bug fixes rapidly but may leave you
thirsting for the stuff they plan to do but haven't finished yet (array,
array, my kingdom for an array! ;-).

- No output display support in EPIC (other than lamps and 7-segs).  This
means that for RWR, DED and PFL we're looking at something like F4Glass.
But as most every Falcoholic will agree, I think, that's not too
shabby...Erwin has done a great job there.

So where does that all leave us in terms of software elements for our
project??

Today, I spend time on the project chasing EPL code and F4Reader C++
side code issues as EPIC firmware/compiler/DLL updates come along.  Add
to that, tracking Falcon4 versions, custom Falcon4 cockpit art work,
F4Glass and F4DM (data mirror)...well lots of cats to herd already so
perhaps you can see why we didn't want to add any more software themes
to weave in to integration work.

Cheers,
 
Mark.
 

> -----Original Message-----
> From: simpits-tech-admin@simpits.org [mailto:simpits-tech-
> admin@simpits.org] On Behalf Of James Hallows
> Sent: Tuesday, July 01, 2003 1:30 PM
> To: simpits-tech@simpits.org
> Subject: RE : [simpits-tech] ----> To Frank....... EPIC
> 
> I'll second this. For those of us still in the planning and deciding
phase,
> it's great to read frank posts from those with experience. I still
can't
> make up my mind on EPIC or a combination of X-Keys and Phidgets ;)
> 
> Cheers
> 
> James
> 
> >Hi Mark,
> >
> >Thanks for these comments.
> >They are welcome.
> >
> >Really Thanks,
> >Jean-Yves
> >
> >-----Message d'origine-----
> >De : simpits-tech-admin@simpits.org
> >[mailto:simpits-tech-admin@simpits.org] De la part de Mark Doran
> >Envoyé : mardi 1 juillet 2003 21:56
> >À : simpits-tech@simpits.org
> >Objet : RE: [simpits-tech] ----> To Frank....... EPIC
> >
> >I know this wasn’t addressed to me so forgive me if I’m butting in
but
> >in case it helps you, we have been using one other EPIC module that
> >might be of use to you and have another inbound that should be very
> >useful if it works as advertised.  Couple of other "lessons" we
learned
> >that might save you some time also.
> >
> >Rotary encoder support: http://www.avsim.com/bluesideup/ the module
> 
> [snip]