Say hello to our latest creation – the doppler!
A Cortex M4F Microcontroller + FPGA development board. It comes in the same tiny form factor similar to a Teensy and is open source.
We are very excited about FPGA’s but getting started with them is daunting especially because of the ecosystem of proprietary toolchains and expensive hardware. The doppler takes away most of these pains by providing all the tooling to get you up and running.
There are two chips on the board a SAMD51 ARM Microcontroller and an ICE40 FPGA. The Microcontroller is easily programmable with, for example, the beginner-friendly Arduino environment. It also needs to be used to upload the configuration as a bitstream to the FPGA. This guide goes in detail on how to set up both development environments for the SAMD51 and the ICE40.
Mine arrived this week. Will be putting it through its paces.
Haven’t done played with Arduino much in a little while. Did get a Teensy Audio board (and a Teensy 3.6) but have yet to use that setup. Will be following instructions and experimenting, hoping to get some insight into FPGA. For instance, using that to modulate a lowpass filter in as smooth a way as possible. It’d be nice to do this from breath control. Got a tiny air pressure sensor that I might try to use for this.
Has anybody else had problems with the build instructions?
I try to build icestorm with docker but it fails out during the yosys installation, as it can’t find eigen3. Yosys works fine on my local machine using homebrew.
I rarely use docker other than to occasionally test other people’s images, so there could well be something wrong with my config.
I was considering buying he Doppler but I have some questions.
I currently use the Icestorm toolchain and am comfortable with it. Do I really need to use the Docker container?
From what I can tell, it seems the SAMD uses a portion of its Flash for configuring the FPGA via [PATHTO]/top.bin.h. I see Arduino code for flashing it. So when the board is power-cycled is the FPGA configured from a “special boot” Arduino sketch? I saw this code is the examples: #include "[PATHTO]/top.bin.h" // set up the path to doppler_simple_io or custom firmware
So would I need to run a Arduino sketch manually on each power-up?
The Lattice bitstream size recommended–from the specs–indicates ~833Kb. Does this mean the rest of the SAMD Flash is available for anything else including other bitstreams?
Is there any other forums or sites catering to the Doppler?
You can use icestorm or the docker as you want. The bitstream need convert into a c header by xxd -i (dont forget to make it as const byte…) then you can include this into arduino sketch to upload on boot by iceclass. iceclass will upload bitstream when boot samd via spi. remaining flash space can use for any things else.
Hi… this works well for music and audio applications, because FPGAs do work in “close to the metal” high performance contexts. And we’ve even seen them used in some music gear. The challenge has always been configuring this hardware for use, which could easily scare off even some hardware developers.