element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Arduino
  • Products
  • More
Arduino
Documents Winners Announcement: Freedom of FPGA:  Build an Arduino MKR Vidor 4000 Project for an Arduino Engineering Kit!
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Arduino requires membership for participation - click to join
Actions
  • Share
  • More
  • Cancel
Engagement
  • Author Author: tariq.ahmad
  • Date Created: 26 Oct 2018 8:11 PM Date Created
  • Last Updated Last Updated: 7 Feb 2019 7:21 PM
  • Views 4020 views
  • Likes 12 likes
  • Comments 22 comments
Related
Recommended

Winners Announcement: Freedom of FPGA:  Build an Arduino MKR Vidor 4000 Project for an Arduino Engineering Kit!

image

Arduino Home

An Open-Source platform to create digital devices and interactive objects that sense and control physical devices.

Arduino Tutorials
Arduino Projects

 

Congratulations to fyaocn for On-line battery bank monitor .   You are the winner of the Arduino Engineering Kit!

 

{tabbedtable} Tab LabelTab Content
The Winners

Congratulations to speechsupply , fyaocn , jedijeremy , pixelkind , victorwcm ,  alisterw , vimarsh_ , and mereshow  !    You are kit winners of the Freedom of FPGA Contest!  You will receive an Arduino MKR Vidor 4000 Board and an MKR Shield Combo!

 

Remember, if you've got a Freedom of FPGA project that uses an MRK Vidor 4000 board you can still win the Grand Prize, an Arduino Engineering Kit, if you submit your project in  Arduino Projects or on the element14 community using the tag MKR_freedom!

image

 

The contest is open to anyone who wants to participate.  You do not need to win kit in order to enter to win the Grand Prize, an Arduino Engineering Kit.  Simply submit your completed project in the form of a blog under Arduino Projects  or tag it with mkr_freedom by January 28th, 2019 for a chance to win.

 

On January 9th we'll announce the Grand Prize Winner of an Arduino Engineering Kit for project that best demonstrates how an engineer would use the Arduino MKR Vidor 4000 in their project.

 

Anyone that submits a completed Arduino MKR Vidor 4000 project by the deadline can win the grand prize.

 

Key Dates:

 

EventDate
Kit Winners Announced:28th November 2018
Completed Project Deadline:28th January 2019
Grand Prize Winners Announcement:5th February 2019
Winning Entries

 

Follow the Challengers

 

 

 

In the Comments Below: Propose a Project (or Repurpose an Existing Project) using the Arduino MKR Vidor 4000 Board!

 

Win an Arduino MKR Vidor 4000 Board and an MKR Shield Combo for Your Project Proposal!

Complete Your Project with an MKR Vidor 4000 for a Chance to Win an Arduino Engineering Kit!

 

MKR Giveways and Upcoming Livestream Series on MKR with Massimo Banzi Cofounder of Arduino!

 

image
image
image

 

You can do almost anything with an FPGA.  Because it is so open ended we are closing our MKR series of contest with an Open Ended contest in honor of the Arduino MKR Vidor 4000.  We want you to free your creativity, take a look at the available shields for the MKR Vidor, and propose or re-pupose an existing project using the MKR Vidor 4000.  Your project can incorporate the MKR CAN (controller area network) shield, an MKR ETH (ethernet) shield, an MKR RS 485 shield (rs-485 multcommunication standard), MKR Connector Carrier, an MKR Relay Shield, and an MKR MEM Shield.

image
image

 

The Arduino MKR Vidor 4000 features on board FPGA using the Intel Altera Cyclone 10 L016 FPGA, a Microchip SAMD21 microcontroller, WiFi and BLE with a U-blox NINA 102 module, 8 MB of SDRAM, 2 MB of QSPI Flash (1 MB for user applications), a Micro HDMI connector, and a MiPi connector.  There's been a lot of excitement on the community around FPGA. The FPGA contains 16K Logic Elements, 504Kbit of embedded RAM and 56 18x18 bit HW multipliers for high-speed DSP; Each pin can toggle at over 150 MHz and can be configured for functions such as UARTs, (Q)SPI, high res/ high freq PWM, quadrature encoder, I2C, I2S, Sigma Delta DAC, etc.

 

The on board FPGA can be also used for high-speed DSP operations for audio and video processing. Unlike programming a typical FPGA, the Arduino MKR Vidor 4000 is designed to simply programming FPGA using C or C++ commands through the the Arduino Software (IDE).  You'll also get a chance to pair it with a shield of your choice such as the MKR ETH shield, MKR CAN shield, and MKR RS485 shield.

 

In addition to facilitating the implementation of a wide variety of industrial protocols, the Intel Cyclone 10 LP FPGA fabric is also leveraged to implement pulse width modulator (PWM) and encoder interfaces, which when repeated multiple times in parallel, allows for multi-axis control. The logic and routing core fabric sea of gates is surrounded on each side by I/O elements, with a phase-locked loop (PLLs) in each corner. Embedded memory blocks (M9K) and 18 x 18 bit multipliers blocks are arranged in vertical columns. The architecture also includes highly efficient interconnect and low-skew clock networks, providing connectivity between logic structures for clock and data signals.

The Intel Cyclone 10 LP FPGAs are optimized for low static power, low cost applications, such as I/O expansions, sensor fusion, motor/motion control for general-purpose interfacing, chip-to-chip bridging, and control. It is ideal for high-volume, cost-sensitive functions, and a broad spectrum of general logic applications.  The Cyclone 10 LP FPGAs are ideally suited for interfacing between ASSPs (application-specific standard product). For example, you can interface between an image sensor and host processors or between the processor and the display.  In both cases, the Intel Cyclone 10 LP FPGA enables designers to combine interfacing with image pipeline processing for real-time applications that need high frame rates, low latency, and high-processing throughput.Configuration error detection is supported in all IntelRegistered CycloneRegistered 10 LP devices. User mode error detection is only supported in  devices with 1.2-V core voltage. Dedicated circuitry built into IntelRegistered CycloneRegistered 10 LP devices consists of a CRC error detection feature that can optionally check for a single-event upset (SEU) continuously and automatically.

 

In critical applications used in the fields of avionics, telecommunications, system control, medical, and military applications, it is important to be able to:

  • Confirm the accuracy of the configuration data stored in an FPGA device Alert the system to an occurrence of a configuration error
  • Alert the system to an occurrence of a configuration error

 

Getting Started with MKR Vidor 4000: https://www.arduino.cc/en/Guide/MKRVidor4000

 

FPGA HDL Basics: https://www.arduino.cc/en/Tutorial/VidorHDL

 

FPGA IP Blocks compatible with the Arduino Vidor family of products:  https://github.com/vidor-libraries/VidorFPGA

 

{tabbedtable} Tab LabelTab Content
Contest Details

Enter to Win:

 

Propose a Project (or Repurpose an Existing Project) using the Arduino MKR Vidor 4000 Board in the comments below!  Your project proposal should include the Arduino MKR Vidor 4000.  You can also include (1-2) of the following MKR Shields:  Arduino MKR MEM Shield, Arduino MKR Relay Proto Shield,  Arduino MKR RS 485 Shield, Arduino MKR Connector Carrier, MKR CAN Shield, and MKR ETH Shield.

 

On November 28th, we'll announce kit winners for the Arduino MKR Vidor 4000 Board and any (1-2) Shield Combo for members who submit the best Project Proposals!

 

The contest is open to anyone who wants to participate.  You do not need to win kit in order to enter to win the Grand Prize, an Arduino Engineering Kit.  Simply submit your completed project in the form of a blog under Arduino Projects  or tag it with mkr_freedom_projects by January 28th for a chance to win.image

 

On February 3rd we'll announce the Grand Prize Winner of an Arduino Engineering Kit for project that best demonstrates how an engineer would use an Arduino MKR Vidor 4000 in their project.

 

This is open to everyone.  Not just kit winners.  Anyone that submits a completed Arduino MKR Vidor 4000 project by the deadline (demonstrating how an engineer can win the grand prize!

 

Key Dates:

 

 

Key Dates:

 

EventDate
Kit Winners Announced:28th November 2018
Completed Project Deadline:28th January 2019
Grand Prize Winners Announcement:5th February 2019

 

Include the Arduino MKR Vidor 4000 in Your Project Proposal:

 

Arduino MKR Vidor 4000
imageimage
Buy NowBuy Now
You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image
You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

 

Include any of the following MKR Shields in your Project Proposal:

Arduino MKR MEM ShieldArduino MKR Relay Proto Shield
imageimage
Buy NowBuy NowBuy Now

 

Arduino MKR RS 485Arduino MKR Connector Carrier
imageimage
Buy NowBuy NowBuy Now

 

Arduino MKR CAN ShieldArduino MKR ETH Shield
imageimage
Buy NowBuy NowBuy NowBuy Now

 

Deadline for Grand Prize (Completed Project): January 28th

 

How to Win:

 

Tell Us How You Would Use the Arduino MKR Vidor 4000 in the comments below. You can propose a project that you competed in the past and upgrade it using the boards and shields.  You can also create a new project based uses the Arduino MKR Vidor 4000 board and any of the Arduino MKR Shields.  Because we want to demonstrate how an engineer, or a Maker Pro, would use the MKR line we are interested in project proposals that use the Arduino MKR Vidor 4000 and any of the listed MKR Shields.  With FPGA the possibilities are endless!

 

We will announce winners of the Arduino MKR Vidor 4000 Board on November 28th, 2018!

 

The winners are expected to turn their proposed projects to finished projects by January 28th 2018.    You do not have to win to submit a finished project.  You can simply purchase an Arduino MKR 1300 Board and post your project with the Tag MKR_Freedom.  Post them in Arduino Projects or anywhere on the element14 community with the tag so that we can find it.

 

We'll Announce the Grand Prize Winner for the Best Project that Shows How an Engineer Would Use an MKR Board on February 5th, 2019!

The Grand Prize Winner Receives an Arduino Engineering Kit!

 

Directions:

Step 1:  Log in or register on element14, it's easy and free.

Step 2: Post a project proposal in the comments below. Videos, pictures and text are all welcomed forms of submission.

Step 3:  Sit back, relax, and enjoy the Livestream!  We want you to be able to listen to all the livestreams before completing your finished project.    Sign up for these events using the links below:

 

 

Massimo Banzi, co-founder of Arduino, and Dominic Pajak, a project person and retro computing geek from Arduino, will be giving a 5 part series of livestreams on the commercial uses of Arduino.  The next livestreams will be on November 14th and will cover Commercial IoT applications with Arduino MKR  .  Be sure to tune in to ask Massimo any questions you have about commercial uses of Arduino!

 

 

Click on the "Enroll Now" buttons below to ask your questions and learn more:

 

Livestream DiscussionDate and TimeSign Up!
Commercial IoT Applications with Arduino MKR14th November 2018
13:00 (CDT)/19:00 (GMT)
Enroll Now
Industrial IoT Applications with Arduino MKR28th November 2018
13:00 (CDT)/19:00 (GMT)
Enroll Now

 

Previous Livestreams:

 

Recorded Live Stream: Massimo Banzi and Dominic Pajak: Arduino MKR: IoT Prototype to Production!

 

Recorded Live Stream: Massimo Banzi and Dominic Pajak: Arduino MKR and Wireless IoT Connectivity!

 

Recorded Live Stream: Arduino MKR VIDOR 4000 - Democratizing FPGA!

 

The deadline to submit your finished or repurposed project is January 28th in order to give you plenty of time to submit your finished projects after the boards have been shipped.

Prizes

Kit Prizes:

 

 

Arduino MKR Vidor 4000 (on board FPGA)
image
Buy NowBuy Now

With the MKR VIDOR 4000 you can configure it the way you want; you can essentially create your own controller board. It comes loaded with hardware and potential: an 8 MB SRAM; a 2 MB QSPI Flash chip — 1 MB allocated for user applications; a Micro HDMI connector; an MIPI camera connector; and Wifi & BLE powered by U-BLOX NINA W10 Series.

 

 

It also includes the classic MKR interface on which all pins are driven both by SAMD21 and FPGA. Plus, it has a Mini PCI Express connector with up to 25 user programmable pins.

 

The FPGA contains 16K Logic Elements, 504 KB of embedded RAM, and 56 18x18 bit HW multipliers for high-speed DSP.

 

 

Each pin can toggle at over 150 MHz and can be configured for functions such as UARTs, (Q)SPI, high resolution/high frequency PWM, quadrature encoder, I2C, I2S, Sigma Delta DAC, etc.

 

The on-board FPGA can be also used for high-speed DSP operations for audio and video processing. This board also features a Microchip SAMD21. Communication between FPGA and the SAMD21 is seamless.

and any of the following MKR shields you need to complete your project:



Arduino MKR MEM ShieldArduino MKR Relay Shield
imageimage
Buy NowBuy NowBuy Now

The Arduino MKR MEM shield will allow you to add more flash memory and storage. It provides 2-megabytes of flash memory. It also includes a slot for adding a microSD card to store several gigabytes of storage. This can allow you to store data for later analysis.

The MKR Relay Proto shield allows you to easily add relays to your MKR board based project. The shield provides two relays called RELAY1 and RELAY2 commanded by pin 1 and pin 2 respectively. The shield also provides easy connection by means of screw terminal blocks to A1 toA4 analog inputs, I2C and supply voltages. Operating voltage 3.3V (supplied from the host board) Two relays with NO, COM and NC connections Works with battery powered board Screw terminal blocks for easy connections Carry current: 2 A Max. operating voltage: 125 VAC, 60 VDC Max. operating current: 1 A Max. switching capacity: 62.50 VA, 30W

 

Arduino MKR RS 485Arduino MKR Connector Carrier
imageimage
Buy NowBuy NowBuy Now

Thanks to this shield, you can now connect your MKR board to any of the industrial systems that using the RS 485 protocol.

 

The MKR 485 shield is the ultimate expansion that allows MKR boards to connect to almost any legacy industrial system, such as industrial PLCs, controllers, drives and HMIs. Old industrial systems (e.g., machinery, heating systems, and conveyors) can to turned into IoT devices through a serial connection using the MKR 485.
Do you have several components to connect to your project and would rather use connectors instead of soldering? The Arduino MKR CONNECTOR CARRIER provides Seeed Studio's Grove connectors to your MKR board. The MKR CONNECTOR CARRIER shield is an essential tool for rapidly prototyping activity. It allows you to connect easily and quickly sensors with Grove connectors. This shield can allow you to build applications with different IoT connectivities by simply changing the MKR board and with almost no changes to the code.

 

Arduino MKR CAN ShieldArduino ETH Shield
imageimage
Buy NowBuy NowBuy NowBuy Now

With this shield you can easily connect to a CAN (Controller Area Network) Bus. Discover new possibilities of interaction between your Arduino MKR Board and the CAN ecosystem. The MKR CAN shield can simplify the connection of the MKR boards with industrial systems and especially with automotive applications. This shield opens a new set of possible applications like smart vehicles, autonomous cars and drones. A CAN connection also provides the possibility to connect a MKR board directly with several types of industrial grade sensors, motors and displays. The MKR CAN shield allows a MKR board to connect to the CAN bus using the MCP2515 SPI to CAN chip. The Arduino MKR CAN Shield uses the MCP2515 chip by Microchip. This chip is an industry standard. The switch close to the CAN bus connector allows to enable or disable the termination resistor.

Are you developing a project for an environment where wireless connections are unavailable or would be inefficient?

 

The MKR ETH shield allows to have a wired Ethernet connection between your MKR board and your network or the Internet. This is particularly useful for devices located where either electromagnetic noise is a problem or there are special safety requirements.

 

Deadline for Grand Prize (Completed Project): January 28th

 

 

The Grand Prize

 

After all the the MKR boards and shields have been sent out we'll be awarding an Arduino Engineering Kit to the best project that shows how an engineer would use the MKR line to repurpose an existing project or a new project.

 

 

Arduino Engineering Kit - MATLAB/SIMULINK
imageimage
Buy Now

Each Arduino Engineering Kit includes:

 

BOARDS
  • 1 Arduino MKR1000 Board
  • 1 Arduino MKR Motor Shield
  • 1 Arduino MKR IMU Shield
ELECTRICAL COMPONENTS
  • 1 DC Motor
  • 2 Geared DC Motors with Encoder
  • 1 Standard Micro Servo (180 degrees)
  • 1 Hall Sensor Module
  • 1 Ultrasonic Sensor Module
  • 1 Webcam
  • 1 LiPo Battery
  • 1 LiPo Battery Charger
  • 1 Micro USB Cable
  • 1 3-pin to 4-pin Tinkerkit Module Cable
  • 1 3-pin Tinkerkit Module Cable MECHANICAL
COMPONENTS
  • 3 Sets of Assembly Pieces
  • 2 Wheels
  • 1 Caster Wheel
  • 1 Timing Belt
  • 2 Timing Pulley
  • 2 DC Motor Mounting Brackets
  • 1 Metal Shaft (90mm)
  • 2 Metal D Shafts (50mm)
  • 2 Sets of Distance Spacers (6mm, 17mm)
  • 2 Sets of M2 Bolts (10mm, 25mm)
  • 3 Sets of M3 Bolts (10mm, 15mm, 25mm)
  • 1 Set of M2 Nuts
  • 1 Set of M3 Nuts
  • 1 Set of M3 Lock Nuts with Nylon Insert
  • 3 Shaft Collars
  • 1 Propeller Adapter Screw
  • 2 Magnets Ø8 mm
  • 1 Thread 5m
  • 2 Whiteboard Pens
  • 1 Sticker for Vision Recognition
The Arduino Engineering Kit is the ideal solution for university students, providing a state-of-the-art, hands-on incorporation of Arduino technology in an educational setting.The kit is primarily for three types of users:
  • Students learning about engineering at a university or at a vocational school (e.g., Introductory Engineering, Controls, Mechatronics courses);
  • Professors teaching engineering who also want practical resources to demonstrate engineering concepts;
  • Makers with an interest or background in engineering, either professionally or as a hobby.
The Arduino Engineering Kit covers fundamental engineering concepts, key aspects of mechatronics, and MATLAB and Simulink programming.Included projects challenges students intellectually and helps develop physical engineering skills — and they’re just fun to do.
  • Self-Balancing Motorcycle This motorcycle will maneuver on its own on various terrains and remain upright using a flywheel for balance. It’s very exciting to build and to see in action.
  • Mobile Rover This vehicle can navigate between given reference points, move objects with a forklift and much more. It’s very fun to make and use.
  • Whiteboard Drawing Robot This amazing robot can take a drawing it’s given and duplicate it on a whiteboard. It’s most impressive.

 

The kit is sold in a hard plastic, stackable tool box for storage and years of reuse. Inside the box is an easy-to-use Arduino MKR1000 board, several customized parts, and a complete set of electrical and mechanical components needed to assemble all three projects

 

 

If you're new to FPGA we suggest that you check out Getting Started with FPGAs and the recent series on The Art of FPGA Design.  FPGA stands for field programmable array.  FPGAs are typically programmed on a low level using an HDL (Hardware Description Language).  The two most popular HDLs emerged in the 80s, having seen little revision and offering a low level of abstraction to the user, are Verilog and VHDL.  ASICs, short for application-specific integrated circuit, which is a general purpose, integrated circuit that is customized for a particular use, is also typically programmed using an HDL (Hardware Description Language). Both ASICs and FPGA are really fast and can perform an number of operations at the same time in parallel. This makes them ideal for applications in digital signal processing, video & image processing, voice recognition, biometrics, cryptography, and more.

 

A modern ASIC such an SoC (system on a chip) is a custom fabricated circuit that can include entire microprocessors, memory blocks such as ROM, RAM, FLASH, EEPROM, and other large building blocks.  With an FPGA on the hand, you are literally defining the entire circuit, there is no processor to run software on, it can be as simple as an AND gate or as complex as a multi-core processor. Designing on FPGA forces you to think in terms of low level building blocks such as gates, flip-flops (aka registers), counters, latches, memory, and multiplexors.  An FPGA can be configured to literally be any digital circuit!  image

 

Using HDL hardware code, while typically used to program an FPGA or an ASIC, has never been the only option for programming an FPGA. A bitstream is the term used to describe the configuration data on an FPGA.  One solution would be to reverse engineer the bitstream.  This is considerably more difficult for an ASIC than an FPGA.  The need to reverse engineer the bitstream is necessary to operate on a low level because FPGA manufacturers use an unpublished format, that is proprietary to the manufacturer, for bitstreams. High-Level synthesis is seeing more adoption lately.  HLS (high-level syntesis) enables the ability to use C-based languages in FPGA design. Alterea and Xlinx offer HLS through their respective toolsets. A number of C-based implementations are available, such as Open CL, for software engineers who want to boost their FPGA performance without a deep understanding of FPGA design.

 

The main difference between the HDL hardware code, such as VHDL or Verilog is used to define the logic required in an ASCI or FPGA, unlike coding a microcontroller where the code runs on logic which is already defined.such as Verilog or VHL.  With a microcontroller such as an Arduino, the code goes to a compiler, such as AVR--GCC Compiler, and is then compiled to a hex file that is stored in the flash memory. When programming the FPGA for the Arduino Vidor 4000, the code you write in the IDE is primarily targeting hardware for the SAMD21 microcontrollers.  The on-board FPGAs powers-on blank and loads its bitstream from the EEPROM. The device side USB port is only connected to the SAMD21, not the FPGA. JTAG is an industry standard for interfacing, controlling, and programming chips. The Arduino Vidor 4000 uses the SAMD21 as a JTAG controller, allowing the host machine to re-program the FPGA's EEPROM.

 

FPGA applications include digital signal processing, bioinformatics, device controllers, software-defined radio, random logic, ASIC prototyping, medical imaging, computer hardware emulation, voice recognition, cryptography, and automotive.  FPGA is commonly used for applications in Aerospace and Defense, medical electronics, broadcast, monetary systems, data center, high performance computing, video and image processing, and distributed monetary systems.

 

In the Comments Below: Propose a Project (or Repurpose an Existing Project) using the Arduino MKR Vidor 4000 Board!

 

On November 28th: We'll announce kit winners for the Arduino MKR Vidor 4000 Board and any Shield Combo used in the Best Project Proposals!

 

 

On February 3rd we'll announce the Grand Prize Winner for the Arduino Engineering Kit for completed projects.

</body

Attachments:
imageFreedomofFPGA_TermsandConditions.pdf
  • ble
  • arduino mkr vidor 4000
  • intel
  • wifi
  • phase-locked loop
  • jtag
  • soc
  • pll
  • mkr_freedom
  • u-blox nina 102 module
  • asic
  • system on a chip
  • past_contest
  • arduino mkr
  • fpga
  • arduino mkr eth shield
  • vhdl
  • rs-485
  • logic elements
  • field programmable gate array
  • samd21 cortex-m0+ 32bit low power arm mcu
  • assp
  • arduino_mkr_giveaway
  • flip-flops
  • registers
  • altera
  • intel cyclone 10
  • mkr can shield
  • programmable logic
  • verilog
  • arduino relay proto shield
  • arduino mkr rs485
  • Share
  • History
  • More
  • Cancel
  • Sign in to reply

Top Comments

  • 14rhb
    14rhb over 6 years ago +4
    Congratulations to those selected for a starter pack of the MKR Vidor 4000 and I'm really interested to see how your projects develop and which of the Arduino tools and libraries you decide to use to configure…
  • michaelkellett
    michaelkellett over 6 years ago +3
    The introductory text seems to have got itself tied in knots in a few places: One solution would be to reverse engineer the bitstream. This is considerably more difficult for an ASIC than an FPGA There…
  • alisterw
    alisterw over 6 years ago +3
    Thanks for the offer of a Vidor 4000 - that is very exciting. My original plan to look at CAN-bus car engine info via its OBD2 port may take a back seat. What I would really like to try is to make an electronic…
Parents
  • jedijeremy
    jedijeremy over 6 years ago

    Initially I thought about using it to implement a hardware-accelerated LDPC (low density parity check) communications protocol, that's something I've felt for a while that microcontrollers could be using to improve comms and would be fairly straightforward (it takes a lot of math to prepare the packets, but the core algorithm isn't very hard to port. LDPC is an adaptive forward error-correction code that approaches the Shannon limit for how much information you can fit down a link.) but looking at the specs I'd probably try a slightly harder trick that I've failed to get a Raspberry Pi to do : a real-time voice modulator for cosplay.

    The hard part with that actually isn't the voice modulation. Your specs say you've got I2C which will handle the audio in/out, and the FPGA or SAM can handle the DSP to do the modulation with a forward and inverse Fourier transform and some pitch-bending in the middle. (or a vocoder since that's what's used to make most of the classic Sci-Fi voice effects, like in Mass Effect or Star Wars) The _really_ hard part (that I failed to get the Pi A+, B, or Zero to do) is the Acoustic Echo Cancellation. Without that, a generic voice modulator can't really be installed into something like a helmet (with the microphone inside and a speaker on the outside) because the audio feedback gets out of hand very quickly.

    AEC (acoustic echo cancellation) of a modulated signal requires some pretty intense DSP to build a "feedback map" so that the signal coming out of the speaker is digitally subtracted (after real-world distortion) from the signal being picked up by the microphone. There are analog methods but they're not as good as the digital version and require more audio hardware, and they can get confused when you're intentionally distorting the signal.

    I'm guessing the MKR connector carrier is what I'd use to plug I2C devices into the FPGA. (I've already got I2C microphone and speaker modules somewhere, I think) I'd also guess there's a reasonable DSP/Fast Fourier Transform library for the FPGA already. I really only need to port an AEC algorithm (not even a complicated one like the Google adaptive echo-canceller which deals with shifting delay times caused by network-based comms, just a basic self-trained phase canceller, since the FPGA DSP will probably be running in fixed time) and the vocoder itself. Then I can shove it into a helmet with some batteries and sound like anyone from Kylo Ren to a Cyberman.

    The basic vocoder and AEC parts could also be used for building speakerphone-style wireless comms devices. Vocoders were actually invented to compress voice for low-bandwidth links. I've often wondered what it would take to get real-time voice over LoRa. The more DSP you have, the smaller link budget you need. It's just a long-distance voice modulator that's trying to _not_ distort the signal too much, but otherwise has all the same components.

    So that's what I'd do. Voice processing with echo cancellation. If I could have two modules, I'd try doing it over LoRa... see how many kilometers I could get.


    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • jedijeremy
    jedijeremy over 6 years ago

    Initially I thought about using it to implement a hardware-accelerated LDPC (low density parity check) communications protocol, that's something I've felt for a while that microcontrollers could be using to improve comms and would be fairly straightforward (it takes a lot of math to prepare the packets, but the core algorithm isn't very hard to port. LDPC is an adaptive forward error-correction code that approaches the Shannon limit for how much information you can fit down a link.) but looking at the specs I'd probably try a slightly harder trick that I've failed to get a Raspberry Pi to do : a real-time voice modulator for cosplay.

    The hard part with that actually isn't the voice modulation. Your specs say you've got I2C which will handle the audio in/out, and the FPGA or SAM can handle the DSP to do the modulation with a forward and inverse Fourier transform and some pitch-bending in the middle. (or a vocoder since that's what's used to make most of the classic Sci-Fi voice effects, like in Mass Effect or Star Wars) The _really_ hard part (that I failed to get the Pi A+, B, or Zero to do) is the Acoustic Echo Cancellation. Without that, a generic voice modulator can't really be installed into something like a helmet (with the microphone inside and a speaker on the outside) because the audio feedback gets out of hand very quickly.

    AEC (acoustic echo cancellation) of a modulated signal requires some pretty intense DSP to build a "feedback map" so that the signal coming out of the speaker is digitally subtracted (after real-world distortion) from the signal being picked up by the microphone. There are analog methods but they're not as good as the digital version and require more audio hardware, and they can get confused when you're intentionally distorting the signal.

    I'm guessing the MKR connector carrier is what I'd use to plug I2C devices into the FPGA. (I've already got I2C microphone and speaker modules somewhere, I think) I'd also guess there's a reasonable DSP/Fast Fourier Transform library for the FPGA already. I really only need to port an AEC algorithm (not even a complicated one like the Google adaptive echo-canceller which deals with shifting delay times caused by network-based comms, just a basic self-trained phase canceller, since the FPGA DSP will probably be running in fixed time) and the vocoder itself. Then I can shove it into a helmet with some batteries and sound like anyone from Kylo Ren to a Cyberman.

    The basic vocoder and AEC parts could also be used for building speakerphone-style wireless comms devices. Vocoders were actually invented to compress voice for low-bandwidth links. I've often wondered what it would take to get real-time voice over LoRa. The more DSP you have, the smaller link budget you need. It's just a long-distance voice modulator that's trying to _not_ distort the signal too much, but otherwise has all the same components.

    So that's what I'd do. Voice processing with echo cancellation. If I could have two modules, I'd try doing it over LoRa... see how many kilometers I could get.


    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
  • michaelkellett
    michaelkellett over 6 years ago in reply to jedijeremy

    I think you'll find that you need a paid for Quartus license ($2995) to use Altera/Intel's DSP/FFT IP.

    The FPGA on the Vidor4K wouldn't be your first choice for this kind of work - it's not really beefy enough so you would spend time fighting to fit things in.

     

    MK

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • fyaocn
    fyaocn over 6 years ago in reply to michaelkellett

    Got it. Thanks.

    I think I shall figure out what fit best.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • alisterw
    alisterw over 6 years ago in reply to jedijeremy

    If you use LoRaWAN via TTN then there is a fair access policy which limits transmissions to one every minute.

    There are also limits on 868MHz transmit duty cycles so may not be the best bet for audio because of this.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube