Arduino IDE on an FPGA.

Hello, I just wanted to drop by and talk to the Arduino team about the work I've been doing to get my Open Source FPGA board to work with the Arduino IDE. The FPGA runs an Open Source RISC soft processor that implements all the instructions and registers of an Atmega103. I modified the Arduino IDE board definitions to support the Atmega103 target and other specifics. Sadly, I had to modify the Arduino IDE source code in order to support a different method of loading the project onto the hardware as there is no serial bootloader. Are there any future plans to support alternative toolchains? I would prefer to stay in the Arduino universe then to create my own flavor of Wiring/Processing IDE.

What started out as an attempt to provide an Open Source IDE for my Open Source FPGA board has opened up my eyes to the brilliance of the Arduino. I didn't fully appreciate what is so special about the Arduino until I started digging into the code while adding support for my board. What I've come to realize is that the Arduino IDE hides the complexity of underlying hardware from an end user that just wants to make something. The exciting implication of this is that an Arduino sketch is portable across hardware and that portability can be transparent to the end user. The end user just designs a sketch and that sketch can run on the Arduino hardware or an extensible FPGA without modification. Brilliant!

I know you hear about a new "Arduino" compatible device everyday and maybe mine is really no different. But I would like to think that my board fits in with what the Arduino team is working towards. At the end of the day I'm making my FPGA boards because I want to make it easy for people to make Open Source gadgets. I think my board could provide an upgrade path that can open up a whole range of applications not possible with a micro. And vice versa, the Arduino board provides a very cost effective path for applications that were developed on my FPGA board but are better suited to a low cost micro.

I'm looking for some guidance on the best way to proceed here. Should I make efforts to integrate my board into the Arduino IDE or would the Arduino team prefer that I work towards my own Wiring/Processing fork?

I'm also hoping to see if anyone here is interested in putting the modifications I've made to the test. I have nine prototype boards for sale, at a reduced price, for anyone interested in helping to put the design through its paces.

Since this is my first post to the Arduino forum and I am not allowed to post links I will post a follow up message with links that provide more details.

Sincerely,
Jack Gassett

Here are some links with more details:

The project to modify the Arduino IDE to work with the FPGA is below. Once again, I'm not sure what to call it yet.
http://www.gadgetfactory.net/gf/project/wiringide/

The Open Source FPGA board - The Butterfly One. This board is still in the "prototype" stages but there are nine boards available in the store.
http://www.gadgetfactory.net/gf/project/butterfly_one/

The AVR8 Soft Processor project, a RISC soft processor that supports Atmega103 instructions.
http://www.gadgetfactory.net/gf/project/avr_core/

Prototype boards
http://shop.gadgetfactory.net/index.php?main_page=product_info&cPath=6&products_id=18

Jack.

Are you planning any board with S3E ?

I'm currently prototyping an S3E board meant to be used as arduino shield or standalone. But I'm afraid it will come out very expensive.

Álvaro

Yes,

The Butterfly One is based on the Spartan 3E.

I'm also putting a Spartan 3E Shield through its final testing right now, its tentatively called the Papilio Overshield and should cost $35-40. It's working well so far, I just need to make a couple small revision changes.

Ok this is very very interesting.

My idea is(was?) to have a S3E-250 or even 500, with SDRAM and SPI flash (+platform flash) and voltage-level converters. Plus a fast SPI ADC and DAC and USB transceivers.

Are you planning any compact large connector (hirose maybe) on your board ?

Álvaro

Just a final question for you: are you routing JTAG signals to arduino pins so you can use arduino itself to program FPGA and SPI ?

Álvaro

The Papilio (Butterfly) boards have what we call "Wing" connectors. The Wing connectors allow peripherals to easily plug into the board. We do have a SPI ADC Wing already developed but not manufactured yet.

A USB physical connection is another Wing we want to make, we have another untested Ethernet Wing that is very inexpensive but full featured. The USB would be the same situation, all that is needed is a physical interface chip which costs $2-3. The beauty of peripherals for an FPGA is that they are cheap since you just need the physical portion, the logic lives in the FPGA. They can also plug into any of the I/O pins, we have six 8 bit Wing slots and any Wing slot can handle any Wing. There is no need to develop a Wing so that it connects to SPI or PWM pins that are locked in place. The FPGA makes SPI or PWM available anywhere. Its pretty exciting technology.

Yes, that is why the Papilio Overshield board is less expensive, the Arduino is used to program it so there is no need for the expensive FT2232 chip.

Hi again,

I left you a private message but you didn't yet reply. No worries about that :slight_smile:

Just to let you know (this post, not message) that I'm very interested in acquiring a few of your Papilio boards once they're ready to ship. Maybe four, maybe more depending on their final characteristics.

I am finishing right now a SPI slave device (FPGA) for interfacing arduino with a fast-ADC like the one present on my S3E starter board (LTC1407A 14-bit 3Msps Dual-Channel Simultaneous ADC + LTC6912 Dual gain amplifier). Design is finished, validation too, will test implementation ASAP. Design is also very small (125 Slices (180 LUT+128 FF, 2 BlockRAM) ) and can store up to 1024 8-bit samples (can be expanded easily for more bits and number of samples, depending on available FPGA BRAM resources). I think many people will be interested on this design, as long as you (or any one else) develop a "Wing" based on a similar device.

As all my designs, the final implementation will be available on BSD license (the HDL part) and (L)GPL license (arduino part).

Looking forward to those boards.

Best,

Álvaro

Alvaro,

I sent you a PM in response, I didn't realize I had a new message until you mentioned it!

The SPI ADC core sounds great, we do in fact already have a couple SPI ADC Wings.
http://gadgetforge.gadgetfactory.net/gf/project/bpw5011-spiadc/
http://gadgetforge.gadgetfactory.net/gf/project/adc-signal/

But we don't have a core for them yet, so this might be a great fit.

Jack.