Mojo (n) is defined as "the art or practice of casting magic spells." With the Mojo v3 FPGA you will definitely discover what kind of magic you can make! This development board is a field-programmable gate array (FPGA), meaning that you (yes, you) get the pleasure of configuring the digital circuits on the Mojo v3 to your own specifications! What separates this FPGA from the others is ease of use and the thorough tutorials that Embedded Micro provide (which can be found below). The goal of the Mojo v3 is to get you up and running with a FPGA as easily as possible
The Mojo v3 FPGA uses the logic optimized Spartan 6 Lx9 and the high performance ATmega32U4. Needless to say this board has no shortage of processing power. The ATmega32U4 comes with a USB (DFU) bootloader which will allow you to install future upgrades to the firmware without having to buy a programmer. Once the board is powered on, the ATmega configures the FPGA from the flash memory. After the FPGA is successfully configured the ATmega enters slave mode. This allows your FPGA designs to talk to the microcontroller; giving you access to the serial port and the analog inputs.
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Expert - You should be extremely comfortable programming on various hardware in several languages.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Noob - You don't need to reference a datasheet, but you will need to know basic power requirements.
See all skill levels
Based on 17 ratings:
2 of 2 found this helpful:
in the future, id like to see capes and sheilds from this manufacturer. in other words, i'd like to see capes for beaglebone,raspberrypi, and a shield for arduino.
4 of 4 found this helpful:
It may not have the bells and whistles of other dev boards, but I think this is an excellent product. It handles the configuration of the FPGA on power-up, and breaks out all of the remaining I/O. It is sized very well for embedding inside a project and is easily powered. Also has an on-board oscillator to provide a clock to the FPGA, as well as a button for a reset and a handful of LEDs for debug. They even break out the JTAG interface if you wish to use it. Also, the analog inputs via the AVR are an excellent addition!
The only major downfall of note is that all I/O are configured for 3.3V LVTTL. This is a slight annoyance if you wish to use LVDS or other signaling standards, but I can't say that it has held me back yet. Also, the LEDs were placed on global clock inputs which seems like an odd choice for such valuable input pins. However, they can still be used for clocking if you aren't worried about SI from the LED hanging off the pin. So far I haven't found a need to provide it with a global clock other than the on-board oscillator, so again, not an issue for me.
I have not used their programming GUI yet (I'm a Makefile person myself), but the Mojo works great for me. A tool is provided to upload any .bit file onto the Mojo that you wish. Haven't taken advantage of the Arduino boot loader on the AVR yet either, but it is nice to know I have the option if I want it.
If you are new to FPGAs, check the Embedded Micro website for a variety of excellent tutorials. As mentioned in the comments, there is a LOT more documentation out there for the Spartan 6 if you check the Xilinx website (particularly for those familiar with FPGAs who wish to take advantage of the more complex primitives).
1 of 1 found this helpful:
I have been away from doing FPGA work for about 10 years. I was a little bit timid at first, but having the Mojo V3 board and the support from the Embedded Micro website was awesome. Justin Rajewski is a great teacher. I've learned so much from the website. I would highly recommended the Mojo V3 board to anyone who wants to learn FPGA. The Mojo V3 board is very easy to work with. It is very well documented. Justin, thank you for making this board and share it with the world. Your grateful student.
1 of 1 found this helpful:
This little board makes getting into FPGA extremely easy. The board is compact and feels well built. The pin-headers work great when you throw in some M/M jumper wires (from SF). The biggest down side is that you have to download the latest vintage ISE tools from Xilinx which are around 6.5GB. I prefixed ISE with vintage as Xilinx's latest development toolsuite (Vivado) doesn't run with the older Spartan-6 :-(
Other than the issues above, a great way to get into FPGA's! Working on driving HDMI with mine right now!
4 of 4 found this helpful:
I bought this product to explore the world of FPGAs and I'm glad I did. The tutorials on Embedded Micro are great and the added functionality of an onboard Arduino is a bonus. I use it with a 2012 MacBook Pro Retina, running Linux Mint in Parallels Desktop 10. I've had no issues with the Xilinx ISE Design Suite software or the Mojo Loader in the virtual machine. Of note, you do need a Micro USB cable and an optional 5-12 V DC power supply. The documentation is a little lacking, but it is out there (dig through the Xilinx datasheets and the Mojo v3 schematic).
1 of 7 found this helpful:
I thought I would be able to use this as a starting platform for some design work I was doing. The examples looked close.My background is a senior electrical eng- primarily analog- but have designed computers from the gate level and use lots of design software. I liked the idea of being able to work from a schematic- make changes and retest. None of the spark-fun samples were schematic based. I tried to work backwards to create schematics and that did not work. After wasting about 20 to 30 hours I set it aside and have bought another system.
The learning curve for FPGAs is admittedly somewhat steep. I was pleasantly surprised that I got the first demo working in just over an hour, and the slowest part was getting all the Xilinx software downloaded and getting the license set up. I was very pleasantly surprised that everything seems to be working without issues on a very current Linux release (Ubuntu 17.10). Aside from the basic demos I haven't actually done anything with this, but the point was to learn the technology, and it is accomplishing that.
Gonna have tons of fun with it
Very solid board. LEDs and a push button to get started. Nice hand holding documentation to get all the software installed and example code running. The book "Learning FPGAs" by Justin Rajewski is a big help if you're just getting started. Once the software is installed and licensed (Xilinx ISE is free but the process is a bit convoluted, MOJO IDE installation is easy), plug the board into the computer (Linux in my case) and fire up a few examples!
As long as you follow the online tutorials, everything works perfectly. Mojo IDE made it very easy to start programming verilog code. The silk screen (letters/numbers) printed on the board itself is a little hard to see without the proper lighting due to the black PCB color. But that is a minor detail, board is great.
I'm learning VHDL and was able to setup and test my designs with no prior FPGA experience on Windows 10. The legacy Xilinx toolset (ISE 14.7) is no longer officially supported and it shows. Come with some patience and persistence : )
Here's how to get started with the Mojo IDE: https://alchitry.com/products/mojo-v3
Here's a translation of the Verilog base project to VHDL: https://sourceforge.net/projects/mojovhdl/ In PlanAhead you will need to run bitstream generation (bitgen) with the additional arguments: -g Binary:Yes -g Compress. Then you can copy the *.bit file into the Mojo IDE's working directory to upload to the Mojo board.
I found this extremely helpful in getting PlanAhead 14.7 simulations up and running with iSim: https://stackoverflow.com/questions/23033297/error-in-vhdl-xilinx-failed-to-link-the-design
Has a lot of usable I/Os, has and IDE that takes care of "compiling" and transferring over to the board.My only complaint on this is the the IDE needs a bit of work. They also have own HDL, which I haven't touched, since I am more comfortable with Verilog.
Just a bunch of IO and no extras that you don't need.
WARNING TO WINDOWS 8/10 USERS: Xilinx has made it abundantly clear that they have no intention to support the Spartan 6 going forward. The toolchain that you have to install in order to make the Mojo IDE build your project is not supported. The 64 bit version of the toolchain doesn't work on Windows 10. If you do use Windows 10, I've written up how I got it working in the forum (https://forum.sparkfun.com/viewtopic.php?f=43&t=45971) but your mileage may vary.
Other than that the tutorials are awesome. Mojo IDE is clean and works reasonably well. The board itself is really well put together. I like the aesthetics of the black solder mask with the green silkscreen, which looks better in person than in the pictures on the site. The price is also good for what it is.
I came to this board from a Lattice iCEblink40 with which I had been growing increasingly frustrated as the manufacturer seems to have effectively abandoned it in place. When I switched to the Mojo, I had my existing project ported over and working within a couple hours and I've never looked back. The thorough silkscreen pinout markings made it a breeze to hook up and create a new constraints file, and loading via Mojo Loader workeed without any hassle. The board's small footprint and minimalist design makes it a good candidate for simply embedding into a project by putting a custom shield on top. I wouldn't mind seeing a couple of user pushbuttons added off in the one empty corner of the board, just for rudimentary debugging.
I did not try to use the vendor's custom IDE; I used Xilinx ISE WebPACK; I got it running just fine in minutes on Win10 x64 by using the instructions that Xilinx published on their support page (swapping out two DLL files). Xilinx now claims to have a Win10 version of ISE due to popular demand, however I was informed by my rep that it is not actually a native Win10 application, but rather a canned Linux VM running the Linux version of ISE. You can currently only obtain that by getting it from a sales rep, so enterprising hobbyists may prefer to just set up their own VM if they want to go that route.
Looking for answers to technical questions?
We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.
Log in or register to post comments.
Mojo Board is good choice for starter. Only thing it lags is on board interfacing. We have to purchase external interfaces separately.
EDGE Spartan 6 FPGA Development Board is also a good choice. It features Spartan 6 XC6SLX9 FPGA, SPI FLASH, WiFi, Bluetooth, ADC, DAC, Camera, TFT, LCD, Seven Segment, 12 bit VGA, USB JTAG, USB UART and lot more.
Hi, is it possible to know the exact model of the MOSFET NCHANNEL on the PCB? in the eagle files only the type is shown (MOSFET-N CHANNEL SMD SOP23-3) . thanks
Edit: I found this model SSM3K333R https://www.digikey.it/product-detail/it/toshiba-semiconductor-and-storage/SSM3K333RLF/SSM3K333RLFCT-ND/3522391 is correct?
I believe there's bitcoin mining software for this chip....
I would appreciate if someone can tell me if this is a good starter fpga board. In other words, I am trying to learn the basics of fpga and want a fpga board that has good tutorials/material to learn about. Thus this board meet that criteria?
I found this to be a good intro board. I am learning about FPGAs with it now. Embedded Micro also has a decent set of tutorials to read through although any Verilog or Lucid guide should be fine.
While they do not offer Mac support I was able to quickly get this running on my Mac in a virtual machine (Ubuntu in virtual box) the only two tricks were that I needed to give permission for the virtual machine to access the usb device, and I needed to give my user serial communication privileges (mentioned in the mojo install but I missed it the first time through).
I'd like to see more with Xilinx Zynq (FPGA + dual-core ARM on one chip). Search: Zybo
They seem to be available but the cheapest is ~$1000 and they range to $2500. A bit out range for most of us Sparkfun groupies.
Is the Mac supported for this?
Unfortunately, Xilinx's tools only support Linux and Windows. Macs are not supported. However some people have gotten it to work on Macs with virtual machines. http://embeddedmicro.com/forum/viewtopic.php?f=2&t=55&hilit=mac
As I've stated on all other S6 LX9 products. The datasheet that is linked is less than 1% of the total documentation for the Spartan6. Go to Xilinx's Support Page and get DocNav to get all the other docs.
Also, this chip is the SAME as the Papilio Pro. So you can target either or, the only problem is the pinout constraints will be different.
As a suggestion, can you guys provide the UCF files for each board? It helps out a lot and one less thing to worry about.
If you download our base project from http://embeddedmicro.com/tutorials/mojo/creating-a-project it includes a ucf file for the board.
Is there any daughter board for this development board that has a 16-bit ADC with sampling rate at least 4 MSps? Thanks in advance
This is quite disappointing. How do you think people would use such a device with no memory and no flash storage for offline use? Would it be such a disaster to add 128Mbits of memory and 4MB flash ?? the cost would be so negligible but productivity would be much higher. I had no choice but get a different board, cheaper, More gates, both SRAM & flash, power protection, a couple of buttons and some more features..
Hey, this board comes with the headers soldered?? I needed one without it!
I need to sample three low frequency sensors (~150 Hz) as fast as possible, at least 300 times/sec. I was told I needed to implement this in a FPGA and that the mojo v3 would do the job. Would this board be the best choice for this function? Thanks in advance!
VHDL PROGRAM CAN THIS CARD OR ONLY IN VERILOG?
This is can be programmed using free Xilinx tools. They support programming via VHDL, Verilog as well as other methods like Schematics.
How many gates? 500K ? 900K ?
Check out http://embeddedmicro.com/tutorials/mojo/how-does-an-fpga-work to understand why gates is a confusing metric in FPGAs.
could you mimic a arduino mega with this guy.?
i would like to make one with a better ADC
"What separates this FPGA from the others is ease of use and the thorough tutorials that Embedded Micro provide"
....ummm no. As far as I can tell the tutorials are both pithy and fungible and add very little value. Its a shame the designers spent so much time on a product and seem to have missed what their target audience wants as hobbyists and basement engineers. A complet, hands-on learning experience with reconfigurable logic. My suggestion is spend 1% of the time you spent developing your board and make a real tutorial section otherwise you are giving us absolutely no reason to replace our Papilio's with this product.
I know a reason for replacing a papilio: The board has an onboard ATmega for analog input and HID emulation, which would be useful for many things.
The Papilio has a AVR8 Soft Processor in the FPGA for use with their Arduino like IDE. Nice try though
Heh. It also has the option of a ZPU variant in the fabric.
Depends on just what you're wanting to do with everything there with the FPGA, really. Adding softcores takes away functionality from you and makes routing the fabric for the real FPGA functionality more "entertaining" to the point of possibly rendering what you're attempting as impossible.
If you're needing an AVR and you're not using Wings, you might be better served with a Mojo board because of this- because of the presence of the AVR at a better (even with a discount) price.
A soft processor is not a replacement for a an on-board mcu. He even mentioned analog input, something a Spartan cannot do without an add-on board. Nice try though.
Really? So you have a list of requirements that cant be met by NIOSII running on my Altera chip or MicroBlaze running on my Xilinx chip, but can be meet by a M3 running as hardcore on the ASIC portion of my Cypress chip? Also I have worked with boards with analog inputs on soft core CPU's on Spartan -3 and Spartan -6 FPGAs with ADC's implemented in HDL so I dont know where you got that info from.
Yes, soft processors can fill most of the same requirements as a discreet mcu, but there are many situations, particularly with small FPGAs like a Spartan, where resource constraints don't allow enough space/resources on the FPGA for both a soft core processor and the application logic.
More importantly, no, you cannot implement an ADC entirely in HDL on a Spartan FPGA so I don't know where you got that info from. Please provide one example of a functional HDL ADC working on an FPGA with no additional external components.
spoken like a typical narrow-minded engineer. google for "LVDS FPGA sigma-delta" and see what you've been missing for the past decade :D
Hi Folks, External components include passives. To implement an LVDS ADC, you have to perform external RC filtering. So, there is no way to implement an ADC (including the “LVDS FPGA sigma-delta”) without external components. Having a hard core with and ADC and easy access headers is a boon for folks who want to quickly use sensors with their FPGA and with full use of the resources.
Heh... Spoken like someone that thinks he knows what he's talking about and doesn't grok there's something called tradeoffs- and sometimes the tradeoffs of being all on one FPGA device works, SOMETIMES THEY DON'T.
You do know what "fungible" means, right?
(of goods contracted for without an individual specimen being specified) able to replace or be replaced by another identical item; mutually interchangeable. "money is fungible—money that is raised for one purpose can easily be used for another"
This means you just said the examples are interchangeable for other things. (You keep using that word...I don't think it means what you think it means...)
You might want to check out this board UnoProLogic its a CPLD but the tutorials are really cool!
I didn't see any tutorials , just a couple of videos on youtube, please post a link to these extensive tutorials if they exist, - thanks. The UnoProLogic has a nice price-point and it seems like a pretty cool device considering its fit with the arduino.
UnoProLogic Analog Monitor User Manual
UnoProLogic User Manual
So... Is this like an FPGA Arduino?
Yeah, it's a fusion of an amped up Arduino coupled to an LX9 Spartan6 FPGA device.
I wish we could see a FPGA that could be programmed in a OS neutral way as usually I can't even use MacOS without a lot of hassle and I'd like to be able to program it directly from my iPad.
That and I'd like to see a Raspberry Pi with on-board FPGA.
Raspberry Pi is a proprietary board. You'd be much more likely to see a Beagle variation with an on-board FPGA.
WOW !!! This is very powerful
Error in the description: "pleasure of configure the digital circuits" -> "pleasure of configuring the digital circuits"
Is the Serial/SPI FLASH, SST25VF010, directly accessible from the FPGA? Say I wanted to use an embedded processor, MicroBlaze, in the FPGA could I store the code in the Serial/SPI FLASH and the MicroBlaze get access to it?
All memory in the FPGA is initialized at power-up by the FLASH. This all occurs automatically - there is nothing special you need to do. By default, the tools initialize the memory to zero. You can design the FPGA to create RAM that is initialized at power-up with your code or create something that looks like ROM - i.e., initialized RAM that you can't change...
Sooo.... no board file in the "Eagle Files" download, just the schematic? Is this an over-site or on purpose?
Thanks! - Steve
That wasn't intentional. The file is fixed on our website and you can download it here http://embeddedmicro.com/development-boards/mojo-v3.html