Here are some common problems you might encounter when using your MHVBoard.

The MHVboard R2 does not appear as a USB device for uploading.

Connect the MHVboard to your computer with a USB cable. Make sure the upload jumper is installed on JP6, set the power jumper (JP5) to USB by placing the jumper over the pins 1 and 2 (pin 1 is near the resistors), then press the reset button. LED1 on Pin13 (placed between the USB connector and the power regulator) should blink three times and then turn off) and the MHVboard should be placed in programming mode and your computer should acknowledge that the USB device has been connected.

If LED1 blinks as described above but your computer does not see it as an USB ASP programmer you may have bridged some of the pins on the board when soldering it together. Unplug all anything you have attached to your MHVBoard and inspect the back of the board for bridges between solder points. The most likely place is between R2 and C6 as these parts are quite close. If you find a bridge, heat up the solder with your iron and try to disconnect the two points. You may need to use solder wick or a solder sucker to remove excess solder.

Some USB cables do not play nicely with the MHVBoard, you can try another cable (verified to work with another device) in case your cable is faulty.

Another cause is a faulty crystal (possibly by overheating). Replace the crystal if the problems still appear.

I can't send data back to the computer?

The serial port is not related to the USB port on the MHVBoard. You can connect a USB to TTL adapter to the TTL header (JP7), or alternatively, a bluetooth serial.

USB drivers are also provided in the Flame runtime to allow communication back to the computer as a USB HID device.

PD7/Pin7 does not work as expected on my R2 board.

PD7 is used by the boot loader to determine if the MHVBoard should be placed in programming mode or if it should jump to the user uploaded code. The Jumper at JP6 pulls the pin to Gnd when installed. After you have programmed your MHVBoard remember to remove this jumper if you are using PD7/Pin7, otherwise it will always be held low.

You can reflash your bootloader with the R7 bootloader and throw away the upload jumper, if you have an ICSP programmer available.

PD2/PIn2 or PD4/Pin4 do not work as expected

These pins are used for USB communication, and have additional hardware connected to them. Refer to the schematics to see if your usage is reasonable. Rmemeber that these lines will also be driven by the computer when USB is connected.

I can't program the MHVBoard under Linux without root access.

By default Linux will create the device node without permissions that allow users to write to the USB device.

  1. As root, open the file /etc/udev/rules.d/60-objdev.rules in a text editor.
  2. Add the following lines into that file:
    SUBSYSTEM!="usb_device", ACTION!="add", GOTO="objdev_rules_end"
    # USBasp
    SYSFS{idVendor}=="16c0", SYSFS{idProduct}=="05dc", GROUP="users", MODE="666"

    If you are not a member of the group 'users', you can change the value in the file to a group you are a member of or add yourself to the 'users' group. If you do add yourself to the group 'users' remember that, if you are currently logged in, the changes wont take effect until a new session has been created, you can do that by logging out and logging back in again or running the newgrp command to spawn a new shell as a temporary measure until you start a new session.

  3. As root, restart the udev system: /etc/init.d/udev restart

  4. Plug your MHVBoard in, set the JP6 jumper and restart your board. You should now have access to program it from any user account that is a member of the 'users' group.

Thanks to ABD on the Objective Development forums for his post on configuring udev for USB ASP programmer.