Monday, May 17, 2010

Altium Nanoboard 3000

I've managed to get my hands on a really cool FPGA board from Altium. It's very promising with a TFT touchscreen display, RS485, RS232, 3x USB 2.0, S/PDIF in-out, SD-card reader, headphones/line-in/line-out, 4-ch DAC, 4-ch ADC, 4x relays, PWM, SVGA output, MIDI and a TSK-3000A RISC 32-bit processor.

Unfortunately, where this technology is really amazing, getting things to work on your computer is not so. Your mind will dazzle from all the license files, registrations, threats about non-compliance with export restrictions and whatever else these companies come up with to make your life difficult. For someone having gotten used to Ubuntu and the software it brings through straight installs, getting a minimal "Hello World" out of this board is proving to be extremely challenging for a newbie. And I'm saying that as an experienced programmer.

The biggest crap factor are the Xilinx tools. They offer a "webpack", but the download is around 2.6GB (not much of a "webpack" if you ask me). The 12.1 version is incompatible with Altium Designer, so that's where problems are starting. So then I downloaded 11.1 as required, but that is not supported on Windows 7. Altium Designer so far has no particular problems with Windows 7. So I upgraded Altium Designer as much as possible, but that didn't improve the chances of compatibility with 12.1.

Basically, I got a dreaded "Xilinx ISE not found" message in red above my FPGA chip, which was actually due to a missing environment variable (no longer set in 12.1?). Altium Designer just picks up the "XILINX" path variable, which should point to the "ISE" subdirectory of the Xilinx ISE installation. If XILINX is not there, it will show the above message. Populating XILINX as the env variable by itself is not enough, as even a very simple example won't compile due to differences in compilation options.

If you get: "No Process Flow", then you should simple "configure" the project by right-clicking on the nanoboard icon in the devices view and generate the constraint files.

The information about what to do next is not really available on the Internet. Most suppliers lock down their forums entirely, so you need a login to find out if others have had the same problem. Since most companies probably follow the instructions on what OS to use and so on, this doesn't seem to have occurred much. Luckily, I found one solution that seems to be going to work. You need a lot of patience and flick your common sense in "off mode" for this to work:
  1. Download the ISE Webpack 11.1 anyway (2.6 GB or so).
  2. Download the ISE Webpack 11.3 as well (another 2.7 GB..... *sigh*). Downloading only 11.3 will not work, because the installer asks for the 11.1 install directory (hooray!). Even though the size of the installation file clearly shows otherwise.
  3. Then install 11.1, but not from the main folder. Go into "bin/nt" and start "xsetup.exe" from there.
  4. Wait for this to install. Takes a while. Feel free to *not* install "webtalk", because that just sends how you use the tools to xilinx and why'd you want to do that?
  5. Then install 11.3. It will ask for where you installed 11.1 to. 11.3 is luckily compatible with x64 already.
  6. This upgrade takes quite some time (apparently it checks every file if it needs upgrading?).
  7. Restart Altium Designer... and now it should show up. ( See "XILINX" environment variable if it doesn't ).
Another word on what these companies do that I find very strange. Altium Designer and Xilinx Webtalk basically monitor the way how you use the tools and send this over to their servers "for improving your experience". So you've got basically a hidden spy on your computer now that indicates to them what you use, how long you use it, on which days etc... ugh!

I'm certainly not some experienced FPGA designer, I just decided that I wanted to learn about this technology and play around with it. My intention is to grab a board that could do a number of interesting things, rather than starting from the bottom-level basics. Altium Designer allows me to focus on certain high-level topics, such that I can create some truly interesting marvels first before having to delve into the low-level details first. I prefer it that way, because I don't get hit by the low-level nit-picky details in the face immediately. Eventually however, I already noticed that one needs to gain the knowledge about electronics, wiring and so on in order to use these things effectively and knowledgeably.


My install got finished and it's all compiling now. I'm going to check through the tutorials, see if I can write a couple of things myself, play around with things a bit. Given the software that Altium provides, if you are a learner like me, I can certainly recommend what they are offering in these nanoboards...

6 comments:

Dr Marty said...

Hi Gerard,
Great to hear you made it through the maze and are now at the point of doing something productive with the NB3000.
Your points about "The biggest crap factor are the Xilinx tools" are noted and we are working to resolve these. A fix for ISE12.1 will be released shortly as a service pack for Altium Designer.
We're also looking into ways that we can avoid customers going through multi-gigabyte downloads to use the NB3000 so stay tuned.

Gerard Toonstra said...

Sounds excellent, bring it on! :).

Hans said...

Hi,

do you still use your NB3000? Do you plan to buy an Altium license after your free one-year period ends? Mine has expired now, and it seems that I cannot use the hardware anymore since there is no standalone JTAG utility that I could use to program the board. I'd be happy to hear what you're planning to do. If you are in a situation similar to mine (i.e. no plans to spend $250 per month on an Altium license), maybe we could join forces in order to get Altium to support us.

Thanks!
Hans

P.S.: My projects: http://vaxbusters.org/workshop/secd.xml and http://code.google.com/p/rekonstrukt/

Gerard Toonstra said...

Hi Hans,

That sounds like a good idea. I know that the 'standard' licensing options are geared towards companies developing their own products. It makes sense to charge for good tools in that production process.

Altium does have specific options for students and colleges, more in the form of promotions. The link to get there is here:

http://www.altium.com/promotions/so-special/en/for-educators--students.cfm

http://www.altium.com/buy/contact-us/en/contact-us_home.cfm

Possibly when you're not talking about a huge group and just a single license, it may be easier to get one.

Anonymous said...

Dude, this blog was a lifesaver. The Altium support people should actually look at what you wrote in here, because their wiki documentation DOES NOT help anyone making the installation work, and that's very frustrating. BTW their tech support sucks too, ten days and several emails with no answer, after we got several licenses from them??...pffff. I'll make sure our Lab looks at different options next time we need to buy SW/HW Development Kits. Anyways, Thanks a lot man!!!

Biggie said...

Hi! I need help with the board. I want to flash it through xilinx ISE but xilinx isnt detecting the chip when connected through a platform cable to the soft jtag header. Is there any workaround. Also I managed to flash the host fpga which means the nanotalk controller doesnt kind of work now :| Contact me on: adam.labuznik@gmail.com