Archive for the ‘Guides’ Category

Guide: How to use an Arduino as an In System Programmer (ISP)

June 29th, 2011 No comments

I recently bought the “Graphic LCD Serial Backpack” from Sparkfun. When reading the comments for the product. I discovered that a user named “SummoningDark”, had made a new improved firmware. A lot of people asked Sparkfun to change the official firmware with the new one, so i decided to check it out. The problem were that I do not own a programmer, so at first I thought that I had to buy one. But after some googling I found out that the Arduino could actually be used as an In System Programmer (ISP).
After a lot of work I finally got it working and it has really improved the perfomance of the screen. The speed is much higher (SummoningDark says 10 times) and there are no more bugs (with the old firmware the screen would suddenly write the text or a line a odd place).

I will now try to explain as best as I can, how to upload the new firmware.

NB: You can also use this guide if you need a different bootloader or another hex file on any AVR. This is just meant as an example.
Read more…

Categories: Arduino, Guides Tags:

NXT Motor Shield

June 29th, 2011 12 comments

The NXT Shield is for sale in our shop: A easy to use library is also provided:
Three examples that demonstrates reading the encoders, turning the motors and using the ultrasonic sensor is found in the library as well:

More pictures of the NXT Shield can be found at the following blog post:

The shield mounted on a Arduino

Hallo everybody

I recently made a NXT motor shield for my arduino. It can control two NXT motors and also read the onboard encoders. In true Arduino spirit I decided to share it with the rest of the community. But first i will talk about how everything works, and then show the finished shield including a short video demonstration.
Read more…

Categories: Arduino, Development boards, Guides Tags:

Video Guide: How to get started with Xilinx ISE and VHDL

June 14th, 2011 31 comments

I posted this video guide on Youtube a couple of days ago, though I wanted to announce it in here too.

In this video tutorial I guide you thru how to make a counter application for the Basys2 board, which is an FPGA board from Digilent to those who are unfamiliar with it.
I will show you the required steps of setting up a project in Xilinx ISE, writing the VHDL code for the counter application, writing the pin constraints file (.UCF) and finally generating the bit-file for the Basys2 board.

This video tutorial was actually requested by a reader of the blog, so with this being my first video tutorial, I would like to show you that comments and requests ARE HEARD! 🙂

The Xilinx ISE project files for the tutorial can be downloaded here:

Categories: FPGA, Guides Tags:

Guide: Gyro and Accelerometer Kalman filtering, with the Arduino

June 14th, 2011 6 comments

Hello again everybody.
Today I agreed with my fellow classmate and team member, Kristian Lauszus, to post his guide to Kalman filtering, using the Arduino with a Gyro and Accelerometer, on my blog. So here it is, and I think it will be usefull for your guys.
Questions can be asked in the Arduino forum where the Guide was originally posted:

I recently bought this analog 6DOF (six degrees of freedom) IMU board ( from It uses three gyros and three accelerometers to calculate angles in three dimensions.

6DOF Sparkfun Board

Read more…

Categories: Arduino, Guides Tags:

Porting the LatticeMico32 to a Xilinx FPGA

February 28th, 2011 54 comments

I finally finished my work getting the LatticeMico32 ported to a Xilinx FPGA, namely the Spartan 6. I’ve used the ZTEX FPGA Module for development, as it contains a Spartan 6 XC6SLX25 – I wrote a short review about it here:

I wrote a guide about how to port the LatticeMico32 to a Xilinx FPGA, including the C-code programming stage in the Lattice system. You can download the guide here:

The LatticeMico32 is an open source soft core processor provided by Lattice. The Lattice system makes a complete set of Verilog files, which can be ported to any FPGA. I decided to port it to the Xilinx series.

The example in the guide just blinks some LEDs, but it is not just LED blinking made with Verilog or VHDL coding, it’s made with C-coding inside an Eclipse enviroment, then compiled to the LatticeMico32. In the video above I show my first example and experience with the LM32 on the Spartan 6 FPGA.

The project files used in the video above can be downloaded here:
But please note that I recommend following the guide first, instead of just downloading the project files. The project files can then be used as a reference, to check if you did it correctly!

Review/Guide: ZTEX Spartan 6 module

February 25th, 2011 3 comments

A couple of weeks ago I recieved a Spartan 6 module from ZTEX. In this blog post I will be reviewing this excellent FPGA board.

ZTEX Spartan 6 module

The ZTEX USB FPGA Module 1.11 contains not only the Spartan 6 FPGA. It contains:

  • Cypress CY7C68013A EZ-USB-Microcontroller
  • Xilinx Spartan 6 XC6SLX9 to XC6SLX25 FPGA (I’ve got the XC6SLX25)
  • 64 MByte DDR SDRAM
  • MicroSD socket
  • 128 Kbit EEPROM memory
  • 48MHz Clock for the FPGA (going out from the Cypress)

Spartan 6 module content

The first impression of the board is a nice design, it looks good and it feels good. The second great thing about the board, is that almost every pin on the FPGA has been brought out, and even also some of the Cypress microcontroller pins. It is also possible to customize the Cypress microcontroller firmware. There are also some connections between the FPGA and the Cypress microcontroller, which makes it possible to develop applications that uses both the FPGA and the Cypress microcontroller.
As the Cypress microntroller has a USB capability, it is also used to upload designs to the FPGA, but it can also be used in your own applications.

When I first got the board it was kind of difficult getting started. Though the ZTEX website contains a lot of documents, schematics and layout, and they have a nice Wiki, I kind of missed an easy “Getting Started” guide.
But after reading the Wiki a couple of times, I downloaded their Firmware/SDK package and got their FWLoader running. The FWLoader is a Java application used to communicate with the Onboard Cypress microcontroller over USB.

To communicate with the Cypress microcontroller, you can use their FWLoader, found in their ZTEX EZ-USB SDK. To begin with, you have to upload the firmware for the Cypress microcontroller, which takes care of programming the FPGA. To do so, you have to copy “standalone.ihx” to the java folder (inside the SDK), and then afterwards execute the following command.

java -cp FWLoader.jar FWLoader -c -uu standalone.ihx -ue standalone.ihx -ii

After executing this command, it was now possible to communicate with the Cypress microcontroller using the commands explained on their FWLoader Wiki page. I was able to upload my first bitfile to the FPGA using the following command.

java -cp FWLoader.jar FWLoader -uf <bit-fil>

In the video above you can see my first experience with the board, getting a couple of LEDs to blink. I’ve used the 48MHz Clock, prescaled it, and made a simple counter – it worked 🙂
So in total, it wasn’t that difficult to get it running. The things that was difficult, was figuring out how their FWLoader worked, and how I should upload new designs. Though their Wiki was a great help!

As the Spartan 6 has a lot of power, I am sure that this will be a well-used board, and I can already imagine getting the LatticeMico32, a 32-bit open soft core processor, to work on this.

Categories: FPGA, Guides, Reviews Tags: