Meet Quokka!
Quokka IoT is FPGA-based controller with WiFi on board, allowing you to connect any application with the world of assorted sensors and actuators.
Base hardware specs:
- 50MHz clock
- Altera Cyclone IV, 6K logic elements, EP4CE6E22C8
- 40 GPIO (3 banks by 8 pins, with direction and voltage (3.3V or 5V) configuration, 16 raw IO pins 3.3V)
- 2x Dual Channel 10 bit ADC (3.3V)
- 2x Dual Channel 10 bit DAC (3.3V)
- H-Bridge for DC motors with support for external power
- Input voltage range 5-24V
- WiFi module (WiPy)
There is a plan to replace FPGA with bigger one e.g. 20K cells, potentially it may happen on this project if funding goes above planned. All part numbers will be provided once final revision of the board is completed.
What is QDT?
Quokka Develpment Toolkit (QDT) is a cloud-based SaaS, allowing to program FPGA with high-level programming language. C# (not .NET) is used at the moment and shows great productivity enhancements. Toolkit is in preview mode right now, you can check it here https://quokka-fpga.net
There are drivers for each hardware component on the board including ADC and DAC drivers, UART, JSON serializer\deserializer and much more.
QDT goal is to bring software and hardware people together to create amazing integration products. Working with low-level hardware is a pain due to timing, synchronization, protocol implementations etc. There are IPs available for different tasks, but bringing it all together is a challenge, which is costly and time consuming process. Quokka Development Toolkit is focused on solving this last mile problem, it allows to quickly shuffle your hardware configuration, coordinate components and does all the heavy lifting of VHDL programming.
NOTE: There is no binding between Quokka board and QDT. They are two independent products that can work together or on their own. You can use boards by themselves and write code on VHDL, you can use QDT to program other boards from major vendors.
What is FPGA?
FPGA is really cool technology that has been around for year, but has not get much attention from general development community due to various factors like metastability, obscure language and high cost of development tools. In essence, it allows you to change internal configuration of the chip according to specific application needs. Traditionally, it is used in low-level real-time applications like networking and video processing. Over the couple of years it gained traction and was approved for use in US Military and Defense. Another factor was acquisition of Altera (one of the biggest manufacturers of FPGAs) by Intel. There are plenty information around on how to program FPGAs and which tools to use, please make sure you read about advantages and limitations of FPGA before committing to this project.
Some of the advantages are
- Low latency, handling logic is activated withing one clock cycle after getting event, which is about 20ns (when signal only used as a trigger) on 50MHz clock
- Predictable performance, there are no interrupts happening during handling of events, it is as real-time as hardware can be
- Parallel computations makes FPGA a natural choice for areas like Neural Networks and Video Processing
Some of limitations are
- Major limitation is the amount of resources available for design. Once you exceed it, you have to choose bigger chip
- FPGAs are limited by clock frequency under 1GHz at best. Enormous amount of work is required to optimize design to run on high frequencies
Why Quokka?
Quokka IoT is a hardware lab rat. Ideal for quick prototyping of robotics, hardware systems and protocols. When used with https://quokka-fpga.net toolkit, it unleashes the great power of FPGA. Implement hardware integrations in minutes, communicate with upstream to report state and receive commands.
Risks and challenges
WiFi module that originally was chosen for the board is discontinued now. Work has been done to replace it with WiPy (https://pycom.io/), all schematics are ready, but has not been manufactured and tested. Production will be split into two stages - first will be test order for 5 boards, most of the board components are already tested, so only WiFi module needs to be integrated. Once everything is working fine, main order will be placed and then dispatched after manufacturing.
There is a piece of software that has to be written in order to support JSON comms with FPGA - Forwarder from UART to HTTP. Considered low risk as there are plenty of examples on how to do that with this module.
There might be some challenges in dispatching large amount of boards in estimated delivery date, but that will be an awesome problem to solve. Chinese manufacturer has dispatching service available, so this might be considered as low risk
Learn about accountability on Kickstarter