At the Maker Faire in New York City, ValentFX showed off two open source FPGA boards that stack with BeagleBone and Raspberry Pi SBCs, and also unveiled BBot, a BeagleBone-based drink serving robot built with an earlier FPGA board version. The FPGA add-on boards use Xilinx Spartan 6 LX9 FPGAs, offer Arduino and PMOD expansion, and are supported with open source Linux code for the two ARM SBCs.
At last year’s Maker Faire in New York, ValentFX unveiled its first Logi board, the then alpha-stage Logi-Mark1, which features Arduino shield expansion and supports integration with the BeagleBone and Raspberry Pi SBCs. This past weekend at Maker Faire New York 2013, the company showed off the fully-baked Mark1, and debuted two next-generation boards: Logi-Bone for the BeagleBone Black, and Logi-Pi for the Raspberry Pi. ValentFX also showcased its BBot robot reference design, based on the Logi-Mark1 (see farther below).
Logi-Bone and Logi-Pi FPGA boards
(click images to enlarge)
None of the boards are yet available for consumer sales, but schematics, manuals, and code for the still developing designs have been posted. At the Faire, ValentFX founder Michael Jones told LinuxGizmos that they’re talking to distributors and considering launching a Kickstarter campaign in a few months.
Open source code has been posted for the Logi-Kernel Linux patch and Logi Loader Linux program that communicates from the BeagleBone and Pi boards and the Logi boards. There’s also an appstore program similarly optimized for each ARM SBC, enabling easy downloading of applications. In addition, HDL (hardware description language) code for the Xilinx Spartan 6 LX9 FPGA has been made available, along with tutorials on getting started with HDL programming.
Block diagrams: Logi-Bone and Logi-Pi
(click images to enlarge)
The Spartan-6 family lies at the low end of the Xilinx family of field programmable gate arrays (FPGAs). By contrast, Xilinx’s own hybrid ARM/FPGA Zynq system-on-chip, which has appeared in numerous Linux-ready modules and boards like the Parallella and Avnet’s ZedBoard, uses the more powerful Artix-7. The Zynq also provides dual-core Cortex-A9 ARM processors, and like the similar Cortex-A9-based Altera Cyclone V, found in Arrow’s Sockit Development Kit, offers a high-speed AXI4 interconnect between the ARM and FPGA subsystems.
Jones concedes that the GPMC and I2C connections between the Logi boards and their ARM counterparts are much slower. In addition, the compatible ARM boards offer slower Cortex-A8 processors with the 1GHz Cortex-A8 TI Sitara AM3359 SoC on the BeagleBone Black and 700MHz ARM11 Broadcom BCM2835 processor on the Raspberry Pi. The Logi-Bone can also hook up with the original BeagleBone White, but is not optimized for it.
While, the Zynq enables some Linux control of the FPGA, and in a manner that’s much easier than hacking FPGAs via HDL, it’s a lot harder to develop for than the Logi boards, claims Jones. Although pricing has not yet been announced, the Logi boards are also going to be less costly than Zynq-based boards, he says, especially if you already own a BeagleBone or Raspberry Pi.
Applications already developed by ValentFX include a bitcoin miner, a machine vision app, and autonomous vehicle and robotics controllers. Another potential application is SDR (software defined radio), says Jones.
Drivers are provided for programming and communicating with the FPGA from the ARM Linux environment. APIs and Wrappers are said to provide easy access to the FPGA’s custom hardware peripherals using the wishbone bus. Developers can use C/C++, as well as Python.
The Logi-Bone and Logi-Pi are very similar, with both models having 256MB of RAM. The main difference is in their board-optimized code and their interconnects with the FPGA subsystem. Both use I2C and SPI signals to communicate between boards, but the Logi-Bone also depends heavily on GPMC. The Logi-Pi instead offers additional UART and GPIO/PRGM connections.
Arduino Shields can be connected via the common Arduino x1 interface, said to be compatible with more than 200 Arduino Due compatible Shields. An option is provided to share some of the signals used to interconnect the FPGA and ARM systems directly with the Arduino header.
In addition, up to 59 PMOD-compatible peripherals can be hooked up via four Digilant PMOD expansion ports. ValentFX has already designed two PMOD-compatible modules optimized for the device: a Logi-Cam and a Logi-Edu module.
Displays are supported via 10 length-tuned LVDS pairs, and storage is handled with a SATA port. Pushbuttons and DIP switches are also supplied. Some 32 FPGA I/O signals are accessible via the Arduino and PMOD expansion ports.
Specifications listed for the Logi-Bone and Logi-Pi include:
- FPGA — Xilinx Spartan-6 LX9 (XC6SLX9-3TQG144C); TQFP144 package
- Memory — 256MB SDRAM
- ARM support:
- Logi-Bone — connects with (optimized) BeagleBone Black (1GHz Cortex-A8 TI Sitara AM3359) or original BeagleBone White (720MHz Sitara AM3358)
- Logi-Pi — connects with Raspberry Pi (700MHz ARM11 Broadcom BCM2835)
- ARM interconnect:
- Logi-Bone — SPI, I2C, GPMC
- Logi-Pi — SPI, I2C, UART, GPIO/PRGM
- Arduino expansion:
- 1x Arduino Due header for 200+ Arduino shields
- Optional GPMC, SPI or I2C access from BeagleBone (Logi-Bone)
- Optional I2C, SPI from Rasperry Pi (Logi-Pi)
- PMOD expansion — 2x PMOD ports (Digiilent) for 59+ modules including Logi-Cam and Logi-Edu
- Display — 10x length tuned LVDS pairs
- Storage — 1x SATA x1 connector
- Other I/O:
- 2x pushbuttons
- 2x DIP switches
- 32x FPGA I/Os (via PMOD and Arduino connectors)
FPGA-controlled BBot robot serves drinks at poolside
At the Maker Faire, ValentFX also showed off a BBot robot reference design, which uses the original Logi-Mark1 board in tandem with a BeagleBone Black. The wheeled, remote-controlled, robot is designed to serve up beverages at poolside.
BBot robot: prototype, board stack, block diagram
(click images to enlarge)
The BBot robot humorously interacts with customers via an LCD display, as well as wireless video and audio, and carries around a cooler of drinks with a range of 1,000 meters. A camera with a servo-driven pan and tilt mount can also be controlled and viewed from a connected desktop GUI.
More hardware technical details will be posted soon. In fact, as with the Logi boards, the entire design will be available as open source for anyone to recreate and tinker with. ValentFX did offer some software details, however. The BBot is controlled by a real-time C++ program running on the BeagleBone Black under Angstrom Linux. The program has a Qt-based app for controlling the LCD display via the BeagleBone’s HDMI connection. It also communicates with the Logi-Bone’s FPGA to control robot functions.
In addition, the BeagleBone program communicates via WiFi with a desktop computer running Microsoft .NET. Video, audio, and control data is exchanged between the embedded application and the .NET GUI.
The BBot can display drink specials, and tell jokes in the voice of Stephen Hawking. It even buzzes an alarm if customers try to steal drinks.