Beagleboard I/O to the Real World...

Howdy all,

All this discussion about compilers has the old brain going again...

Is anyone out there doing real I/O to the real world?

The expansion header is not pinned out on my C2 but I was thinking
more of the hobby USB I/O modules out there:
  http://www.electronics123.com/s.nl/it.A/id.1899/.f

Any ideas?

Thanks!
- dan

Yes, I expect a board to arrive today from the fabricator that
converts
voltage levels and pinouts to emulate a PC's parallel port enough to
do EPP transfers to some hardware that I make. I will be working on
porting some diagnostic programs while waiting for the RTAI guys
to finish a port of RTAI to the OMAP3530. When that is in hand, I
will try to port the EMC2 package to the Beagle. It is a full-blown
CNC control program. It has an option to split the GUI from the RT
motion control side and run these on two different computers via
the net.

I also have a number of other devices that are interfaced via the
EPP or generic parallel port, and will be able to use those as well
with my adaptor board.

Jon

Just out of curiosity, why do you decide for RTAI? I was not looking
on real-time staff since quite some time, but my last impression was
that RTAI is somehow superseded by Xenomai with the general trend
towards PREEMPT_RT patches if there is no need for very hard
real-time.
Would be interesting to hear about your reasons.

Thank you,
Andrey.

The point of this exercise is to find a new platform for our CNC
control
program (EMC2), which currently depends on rtai on X86 hardware. It
used to run under
rtlinux, but I have no idea what condition the interface to that rt
system
is now in, but probably not working. This system needs pretty hard
real time,
typically we dispatch servo cycles at 1 ms, but some people run
software
stepper pulse generators at 25 us intervals on X86 hardware. If we
can't
support that, it will make a lot of people mad.

So, our reason is entirely historical and due to inertia.

Jon

jmelson wrote:

The point of this exercise is to find a new platform for our CNC
control
program (EMC2), which currently depends on rtai on X86 hardware. It
used to run under
rtlinux, but I have no idea what condition the interface to that rt
system
is now in, but probably not working. This system needs pretty hard
real time,
typically we dispatch servo cycles at 1 ms, but some people run
software
stepper pulse generators at 25 us intervals on X86 hardware. If we
can't
support that, it will make a lot of people mad.

So, our reason is entirely historical and due to inertia.
  
All perfectly valid reasons.

You won't get reliably below 1ms with the current mainline kernels, even
with CONFIG_RT. Statistically speaking, you'll get well below that but
with occasional excursions. But the kernel is getting better all the
time...

I would not recommend either RTAI or rtlinux. Xenomai is a much more
compelling solution, because among other things it has a very active
developer community, is cross-architecture, and is fully GPL.

I have considered Beagleboard (or another ARM11/Cortex A8 platform) for
EMC2 as well, I think it might be a pretty good idea. Definitely better
hardware for working with servos and limit switches than a modified
PC-class machine.

b.g.

Hello, sorry if I’m hijacking this thread but I’m also interested in I/O with the beagleboard but I can only understand this first e-mail of the thread :slight_smile:

What I would like to do is control 8 relay ports, just open and close with no feedback.
What would be the easiest way to acomplish this using a beagleboard with angstrom distribution? Is there any expansion board for this purpose? (for what I read the usb one you posted only delivers dlls for windows)

Thank’s.

Marc,

You can use the I2C-2 available on the expansion header. opkg install i2c-tools_3.0.2-r0.1_armv7a.ipk. After that, you are ready to control the relays.
i2c-tools_3.0.2-r0.1_armv7a.ipk can be downloaded from . --Eric Marc wrote:

jmelson wrote:

The point of this exercise is to find a new platform for our CNC
control
program (EMC2), which currently depends on rtai on X86 hardware. It
used to run under
rtlinux, but I have no idea what condition the interface to that rt
system
is now in, but probably not working. This system needs pretty hard
real time,
typically we dispatch servo cycles at 1 ms, but some people run
software
stepper pulse generators at 25 us intervals on X86 hardware. If we
can't
support that, it will make a lot of people mad.

So, our reason is entirely historical and due to inertia.

All perfectly valid reasons.

You won't get reliably below 1ms with the current mainline kernels, even
with CONFIG_RT. Statistically speaking, you'll get well below that but
with occasional excursions. But the kernel is getting better all the
time...

I would not recommend either RTAI or rtlinux. Xenomai is a much more
compelling solution, because among other things it has a very active
developer community, is cross-architecture, and is fully GPL.

I would agree that currently Xenomai is preferred solution for hard
real-time requirements. Especially taking in account their posix skin,
which makes it easier to port the Xenomai based solution to the
standard one, i.e. PREEMPT_RT when it would be good enough for
particular project requirements.

Speaking about it - are there anybody on the list already tried Xenomai with BB?

Regards,
Andrey.

You can use 8 GPIO bits from the expansion port. But, those pins have
1.8 V signal levels, so you need a voltage level translator. I have a
board for this, but haven't tested it yet, maybe I could even get to
that
tomorrow. If the board checks out, I could give you the info on how
to do this. You would then need a driver chip, solid state relays or
whatever to drive your relay coils from the 5V levels.

There are some simple programs that allow you to even access the GPIO
from
a shell script! I needed more performance, so I wrote a user-mode
program
that takes over the GPIO pins from C code, but I couldn't come up with
the
right include files to do this in Angstrom. I did get it to work from
a
Debian system.

Jon