Valent F(x) has been hard at work to bring out the LOGi FPGA development boards that are designed to work in conjunction with the Raspberry Pi and Beaglebone. We are excited to see so many homebrew/professional applications that users have come up using the Raspberry Pi platform alone. Adding an FPGA to the picture of an already pretty amazing platform really opens up the door for some stellar applications.
Currently the LOGi-Team has put together some fun applications that showcase machine vision, autonomous vehicle control, robotic control, bitcoin mining and more. These applications are great examples of how an FPGA is able to handle very time deterministic, computational intensive processing while allowing the CPU platforms to do do what they do best without the need to break a sweat.
Lately we have been thinking about how we might add some new functions while using the LOGi-Boards and the Raspberry Pi or Beaglebone. Some users have asked about the ability of being able to easily add on hardware to the LOGi boards that would allow them to run through some educational examples. Typically such hardware would be designed as an expansion module that would be plugged into the development board, then discarded when not needed anymore. Some hardware expansion modules can costs a lot of money and may not be used again after serving their initial purpose.
This got us thinking about how we might use the LOGi / ARM CPU host to solve this problem. We thought about the little HDMI output port on the Pi that can turn an LCD screen into a 2 dimensional 1920x1200 pixel canvas that could be used as a visual output to the user and a physical input to the LOGi/CPU environment. This would open up user interactivity that at one time was limited to seven segment leds, 2x18 character LCD’s or just a few LEDs. How does 2304000 individually controllable pixels compare!
We thought of a few ways that we might easily implement the HDMI controller and an LCD to create some useful functions while using a LOGi and Raspberry Pi or Beaglebone. We would like show the implementations for customizable Virtual Components and a Virtual Logic Analyzer by Mike Field which both of which are implemented on a cute little LOGi-Pi/Rpi package.
Using Virtual components is a great way of implementing hardware in the loop at the hobbyist/education level. Using Virtual components allows the user to maximize their use of the LOGi Development boards by being able to easily add components to a project that may not be needed as primary functionality on the development board. There is no need to have an FPGA board with multiple LEDs, Switches, Buttons, 7 seg. You can use virtual components to add components you need to use. You can mix and match pre-designed virtual component modules any configuration needed for the project with no cost, no hardware and no chance of burning anything up.
Usually when you buy a FPGA platform to learn HDL, you will inevitably feel the need to drop the board and move to hardware specialized for your next application. Using virtual components solves this issue by allowing the user to add and remove the components to fit and meet the needs of progressing projects. This adds a great amount of flexibility for users of the LOGi-Boards and will hopefully allow the boards to be used in a maximum array of applications.
We have designed some base virtual components to test with the current LOGi-boards. We have developed a full frame-work from HDL to API wrappers that can interface with the virtual components on the Raspberry Pi or beaglebone. Below is a listing of the current components, potential future components, video of components running on the LOGi-Pi and a top level block diagram of the architecture.
- Virtual LED
- Virtual SSEG Display
- Virtual Push button
- Virtual DIP Switch
- Virtual Gauge Output
- Virtual Dial Input
- Virtual PWM LED
- Virtual PWM DAC
- Virtual 8x8 led matrix
- Virtual Servo
In the last update we introduced LOGi Virtual instruments that allows LOGi users to easily add virtual components to a project by using the power of the Raspberry Pi/Desktop. By using the Raspberry Pi in conjunction with the LOGi FPGA boards brings a new realm of possible ways of user interfacing with FPGA’s. In this update we want to show a new example that implements a Virtual Logic Analyzer in a standalone LOGi-Pi/Raspberry Package.
By combining the use of the LOGi FPGA with the Raspberry Pi or Beaglebone, the flexibility and available options for functionality are significantly increased. For instance the Raspberry Pi has built in HDMI video output capability that when used with the LOGi FPGA could be utilized to enable a standard desktop LCD monitor to easily be used as a graphical interface between the user and the FPGA. Valent F(x) previously showed how the user could add Virtual Hardware components to the LOGi boards by quickly and easily using pygame, logi wishbone wrapper and python to create a virtual panel of components that has bidirectional communication between the FPGA. Such a method of adding components enables no cost virtual hardware functionality to the LOGi FPGA user. Valent F(x) has utilized the same method of using the FPGA in conjunction with the Raspberry Pi and utilizing the graphical components of Raspbian desktop to create a Virtual Logic Analyzer, Cheapscope, that was written by Mike Field.
For detailed information about the design of Cheapscope logic Analyzer see Mike Field’s detailed wiki explanation about the Cheapscope design. In short, the cheapscope is a hardware buffering implementation that is constantly monitoring predefined FPGA signals. The user can set a pre-defined trigger pattern that once detected, writes the buffered signal data to the Raspberry Pi through it’s UART connection. The Raspberry Pi host software receives the buffered data and creates visual representation of the data directly within a terminal window. The user then has options to scroll through the channel data, view and interpret the captured channel data.
See the demo video here of cheapscope in action on the LOGi-Pi and the Raspberry Pi.
There are some potential upgrades that would make Cheapscope a much more dynamically usable tool for different types of uses.
Front End GUI to configure Cheapscope
Software Side programmable Analyzer triggers
Configurable Baud Rate to decrease TX/RX latency
Potential for port to pygame graphics for many feature add-on functions
Use SPI/GPMC communication rather than uart to increase throughput/ latency between capture and display
Are any of you guys interested in helping us make any of these improvements? We can can only do so much in a given amount of time and would love to have YOUR help! Strength in numbers is what we are talking about! Or maybe more like, Cool functionality much quicker! If you have any interest in getting involved us a holler!
We were able to create LOGi Virtual Component project using the pre-existing LOGi-Tools including the wishbone HDL, API , python wrapper. Fortunately for us the drivers are very flexible and lend themselves well be easily being adapted to new and contrasting projects. Based on the ease of integration we were able quickly put together the Virtual Component demo (2 days). We hope this showcases some of the flexibility and capability of being able to easily create and interface to a variety of potential applications. So what kind of projects would you like to implement with the LOGi-Tools? Have more ideas of you would like to share that we might think about implementing?
We hope to continue to create useful FPGA tools that fully utilize the wide array of existing Raspberry Pi and Beaglebone software and hardware components. We believe that using the graphical functionality of the Pi/Bone is the beginning of many possible case usage scenarios for the FPGA. What kind of possible case scenarios do you see available? What would you like to us to implement? Let’s create some Cool Stuff!
Well I said you’re amazing, before. I am going to have to say you’re freaking amazing now! Wait, more like Rockstar Freaking Amazing!
I never would have expected this and it has been humbling beyond words. We have been working on this for a long time, but never would have expected this outcome. We are now in a position not only to deliver, but to deliver with style what we have promised and to continue on this path in creating FPGA goodies for you. I think that I will take a moment and finish my diet pepsi, maybe grab another, and do some serious guzzling of pepsi bubbly. Then, back to work.
We have come a long way, but we have a lot of work left to do. We have laid out our plan and will be hard at work making it happen.
I hope you all can take a moment and down some pepsi in the name of LOGi!
Cheers and Thanks for your unspeakably immense support!
Michael Jones, Co-Founder of the LOGi-Boards
I have had so much pleasure working on this project with Michael for the past year. The last 30 days of craziness proved it was worth it.
We had the base idea and the prototype but with all your inputs through the messages and comments and your funding we are going to make it even better. We hope that the end of this Kickstarter campaign is the beginning of a great adventure that will lead to delivery of the LOGI-boards to your door step and then to create a community of hardware designers, software developers and educators. This is only the beginning ...
Thank you !
Jonathan Piat, Co-Founder of the LOGi-boards
The subject of Virtual Components was mentioned in the kickstarter comments in regard to the potential of being able to add components to your project when you just don’t have it physically available. The LOGi-Team likes to take suggestions and put them into action and would like to introduce to the first beta version of LOGi Virtual Components.
For more information on the Virtual Components see our LOGi Virtual Component Wiki Page
Michael Jones wrote an article for MagPi that introduces users to the basic architecture of FPGAs, why they work well with low cost existing embedded CPU systems such as the Raspberry Pi and how the Logi-Pi opens the doors to many applications for Raspberry Pi users.
Be sure the check out the article in Issue 16 of MagPi magazine.
Jonathan Piat, wrote a great article about the API and driver implementation of the Logi-pi in this months issue of MagPi. Be sure to have a look.
Stay Tuned for a Logi Board Kickstarter!
The Logi-Team is hard at work preparing documentation, drivers, MFG logistics and support to initiate a kickstarter campaign, which will be the launch of the Logi FPGA boards into the wild. We plan to offer an array of peripheral boards that will allow users to learn to work with FPGAs and run some fun and interesting high performance applications using the Raspberry Pi and the Logi-Pi.
If you just can’t wait to get your hands on a Logi-Pi and you have a great idea for an interesting project, see our Logi board competition page. You can submit a project plan and we if it looks like a winner we will get a Logi-Pi out to you right away. Stay tuned for further updates!
BBot! A remote controlled robot that talks, sees and serves drinks at the pool! And is hilarious! This open source robot design is based on the BeagleBone Black micro embedded Linux computer and has a low cost FPGA cape attached. Embedded Linux coupled with an FPGA can dramatically augment any DIY electronics design - the possibilities are practically endless when these two technologies are combined. We'll be discussing this robot's software and hardware architecture as well as highlight some of the amazing capabilities of such a platform! Come learn about these two affordable and important next generation DIY technologies!
Featuring the ValentF(x) Mark 1 FPGA Board integrated with a BeagleBone Black embedded Linux minicomputer, this open source robot design is a great reference for advanced DIY robotics enthusiasts!
With the novel goal of serving beverages poolside, this hilarious remote controlled robot can interact with customers through wireless video and audio, display information about drink specials, crack jokes using the voice of Stephen Hawking, and drive the contents of its cooler around with a range of 1000 meters!
Coupling the power and flexibility of FPGAs with an embedded Linux software and hardware stack opens up some very interesting possibilities for DIY robotics. The fact that sophisticated electronics and software platforms are now readily available and extremely affordable for the average DIY’er makes this a unique time for hackers everywhere
All that’s typically needed are some good examples of what’s possible! Here’s a list of some fun electronics / software features the BBot reference design includes:
Here you can find a block diagram and source code for his project. The BBot can be found doing what he does best, bringing you beer in style, along with many other tricks. Check out Andy's bio and description of his project on the makerfaire site. Source code for BBot can be found on Andy's Github repository.
We have kicked off the valentfx FPGA LOGi Wiki.
LOGi Project Contest - Win a board to create your Project
The LOGi FPGA boards were designed with the goal of unifying the use of existing hardware modules and embedded development platforms. The use of Arduino shields, PMOD modules FPGA technology in conjunction with high performance CPU technology creates a framework for a wide array of electronics projects that can be created in a seamless plug and play manner. What projects can you work-up with your imagination? Submit your project idea and plans for implementing the project and you may receive a complementary LOGi board of your choice to create your project!
Maximum Interfacing Compatibility with existing modules
The LOGi FPGA boards were designed to allow as much plug-and-play expansion to existing available hardware as possible by using widely available and low-cost, off-the-shelf hardware.PMODs andArduino Shields were chosen to be used as a standard interface, based on their wide market usage, availability, and cost. There are currently 59 PMODs and 281 Arduino Shields available that could be used to add direct functionality to the LOGi-Pi. Additionally, high bandwidth SATA interconnects implementing impedance controlled LVDS lines can be interfaced. By using LVDS, such applications as HDMI, SDR, LVDS camera interfaces, and other high bandwidth applications can easily be developed on the LOGi-Pi. All applications are intended to be implemented without needing soldering, jumper wires, or “perf” board expansion as is generally required to interface to many existing FPGA boards.
High Performance Applications
The LOGi FPGA boards were designed to allow implementation of many high performance applications in a straightforward manner. Many popular applications are best served by the processing capabilities of an FPGA, including SDR (Software defined Radio), quad-copter control, computer vision, and bitcoin mining. Applications have been created for the LOGi FPGA boards that implement machine vision, andbitcoin mining, and autonomous vehicle controller using GPS, 9-axis IMU, WIFI, and machine vision to run blog detection and color detection algorithms. These applications are representative of a few of the applications that can be developed by using off-the-shelf components and integrating high performance CPU and FPGA technology.
Your Project
So what kind of a project can you think of that uses some combination of Arduino shields, PMOD modules with the LOGi FPGA boards and Raspberry Pi or Beaglebone? Submit your project ideas and plans for implementing the project and the LOGi-Team will review your submission. If your project is selected as a winner, you will receive a complementary LOGi board of choice to create your project.
The Catch
All that we ask is that you keep your project open source so others can learn and enjoy from you ingenious project!
Submit your project plans to support@valentfx.com and we will get in touch with you!