Linux Robotics and Automation Made Easy
Dual DC Motor
Dual H-Bridge Controller
Bipolar Stepper Controller
Unipolar Stepper Controller
Quad Servo Controller
Octal Servo Controller
Dual Quadrature Decoder
Maxbotix Range Sensor
Ping))) Range Sensor
Quad PWM Input
Quad PWM Output
Octal PWM Output
Quad Bidirectional IO
Octal Bidirectional IO
Quad Pattern Generator
Octal Pattern Generator
Demand Peripherals peripherals and interface cards make it easy to build a Linux based robot or other automation. Our key difference is that we have Linux device drivers for all of our peripherals.
Having a device driver as an API means you can write your high-level application in almost any programming language: C, C++, Java, Perl, PHP, or Python. Command and configuration are all ASCII lines terminated by a newline (a little like /proc or /sys) so you can even use BASH to control your robot. Your application can be CPU efficient since our drivers work with select() and epoll().
While our driver have real device nodes they are, in fact,
user space drivers. This makes them easier to understand
and modify, and of course all of our driver code is released
under the GPL Version 2.
An FPGA is nice for other reasons too. It acts as a hub or multiplexor for all of its peripherals so it's easy to have lots of peripherals without the need for a lot of serial or USB ports or the need for a slow and tricky RS-485 bus. The FPGA connects to your Linux PC or single board computer using a single USB port which can also power the FPGA.
FPGAs have an advantage too when it comes to commercializing your design. An FPGA robot controller will have a lower BOM cost, lower board space, and be much easier to manage compared to an equivalent design using eight or ten ARM or AVR chips.
Our FPGA card, the Baseboard4, has ten peripheral "slots". Slot 1 has the three buttons and eight LEDs on the BaseBoard itself. The other nine slots are available for your choice of peripherals. Eight of the slots are on four 16 pin connectors. Each connector is split into two 8 pin connectors that go to the peripheral's interface card.
Visit the support page "Build Your FPGA Image" to build an FPGA image with your selected mix of peripherals. After submitting your selection out back-end tool will generate the FPGA image and e-mail it to you. Your selection of peripherals is included in the price of the BaseBoard and as your design evolves you can request additional FPGA images at no additional cost. This point bears repeating: when you buy our FPGA card, you get the right to use every single peripheral we make for it.
Peripherals versus Interface Cards: While selecting peripherals and interface cards from this web site it is important to bear in mind the distinction between a peripheral and its interface card. The peripheral is the function built into the FPGA and made visible by the Linux device driver. An interface card provides the drive electronics or other physical interface to your robot or automation. Consider, as an example, the dual DC motor controller peripherals. It can control the speed and direction of two DC motors. It uses a dual H-bridge interface card for the physical interface to the motors. However that same dual H-bridge card is also used as the physical interface to the bipolar stepper motor controller peripherals. That is, different peripherals can sometimes use the same interface card, and a given peripheral might use different interface cards depending on the application.