Group Projects
Members' Projects
MHVBoard - an Arduino Clone
The MHVBoard is a low cost Arduino clone, based off the Metaboard.
It offers a TTL serial port, USB programming, ICSP, breadboard compatible headers and hardware already set up for software USB via V-USB.
While the original Metaboard did not choose to issue a license, our revisions are licensed under TAPR Noncommercial Hardware License.
Getting one
You can pre-order an MHVBoard R7 from the MHVBoard Pozible project page.
Features
- Supports native USB direct to the microcontroller via V-USB
- TTL level serial port
- Programming via USB
- Onboard prototyping area for additional hardware
- Shield compatible - Revision 4+ only
- Plugs into double-width breadboards (Revision 1-3), and single width breadboards (Revision 4+)
- Atmega328P microcontroller with 30kB flash, 2kB RAM, 1023Bytes EEPROM available
- ICSP header to update the bootloader
- All through-hole construction (except for a voltage regulator with large easy to solder legs) for easy hand assembly
- Supports Arduino and MHVLib runtimes, as well as raw AVR-GCC
- 20MHz clock - your code runs faster than the Arduino boards
- Pins labelled both with Arduino pin numbers and port/pin numbers
- Automatic detection of power source - USB or external power
- 4 mounting holes for extra stability
- AREF decoupled for improved ADC accuracy
- Onboard LED can be disabled to reduce loading on the line
- Up to 1A can be drawn from the 3.3V line, and 1.5A from the 5V line (when using an external power supply)
Differences to the Arduino series
- Native USB interface for uploading (USBasp), no serial ports involved
- Serial port brought out on a TTL Header
- Arduino pins 2 and 4 are used for USB communication. If you connect additional hardware to these pins, your program should not use the USB port. This hardware should also be disconnected before connecting to your computer
- Arduino pins 0 and 1 are normally used for the Serial port, if your program does not use the Serial port (since USB is available), these pins are available for use
- Breadboard compatible pin headers (no shields) - Revision 1-3
- Arduino shield and breadboard compatible headers - Revision 4+
- 20MHz clock vs 16MHz on the Arduino
- Due to the additional filtering on AREF, it takes time for AREF to stabilize after a different reference voltage has been selected. The first reading after the reference has changed should be discarded.
- 3.3V current up to 1A (vs 50mA), and 5V current up to 1.5A (with a suitable heatsink on the 7805 regulator)
Instructions
- R7 Assembly
- R2 Assembly
- Getting Started in the Arduino Environment
- Troubleshooting
- Useful Information
Credits
Big thanks go out to the many open-source and commercial projects that made this project happen.
- Metalabs MetaBoard - the starting point for our board
- Cadsoft Eagle - the free for noncommerical use PCB program used to create our board
- GCC - the Gnu C Compiler
- Objective Development's V-USB & USBAspLoader - the software USB library and bootloader we recommend
- Sparkfun - for providing the DC jack & mini USB footprints
Changelog
8 Oct 2011 R7
- Remove upload jumper
- Reroute traces away from the crystal
- Fix silkscreen for Arduino analog input
6 October 2011 R6
- Add 3.3V SMD Regulator
- Use displaced drills for pin headers to hold them better while soldering
1 November 2010 R5
- Widened power traces
- Relocated ICSP header for compatibility with shields that require it
1 October 2010 R4
- Tidied silkscreen
- Removed ICSP2 (the board can no longer function single-sided - use revision 3 if you cannot fabricate a double sided board)
- Added a power LED
- Fixed header spacing for Arduino shield compatibility
- Added pin header for breadboard interfacing
- Board relaid out from scratch
- Extended JP8 to add reset for greater shield compatibility
- Marked LED polarity on the silkscreen
16 September 2010 R3
- Added a solder pad to disable the LED
- Change clock crystal to 20MHz
26th August 2010 R2
- Board is now double sided to support a standard ICSP header & 3mm LED (don't worry, a single side version will still work!)
- Changed prototype area to pads only on the bottom layer to leave space for text
- Changed clock crystal to 20MHz (backported from R3 for kits, but schematic & board still show 16MHz)
25th August 2010 R1
First MHV Revision
- Added TTL serial
- Added ICSP header
- Widened power traces
- Changed USB connector to mini-USB
- Changed DC jack footprint to one with wider holes
- Use ATmega328P instead of ATmega168
Wishlist
- Automatic power detection @Bluebie
Download
The latest version can be obtained from our Git Repository:
git clone http://git.makehackvoid.com/mhvboard.git
| Attachment | Size |
|---|---|
| USBaspLoader.2010-07-27-mhvboard.zip | 175.06 KB |
| MHVBoardR7.7z | 187.34 KB |
- Login or register to post comments
- Printer-friendly version
Search
MHV On Twitter
@MakeHackVoid
1 week 1 day ago —
Space is closed (was open six hours) (link)
1 week 1 day ago —
Space is closed (was open six hours) (link)
@dev_dsp
1 week 1 day ago —
Point the little red PCB north and the grey cylinder vibrates. #makehackvoid http://t.co/TYy1oQNIvp (link)
1 week 1 day ago —
Point the little red PCB north and the grey cylinder vibrates. #makehackvoid http://t.co/TYy1oQNIvp (link)
@MakeHackVoid
1 week 2 days ago —
Space is open until 22:45 (estimate) (link)
1 week 2 days ago —
Space is open until 22:45 (estimate) (link)
@MakeHackVoid
1 week 3 days ago —
Space is closed (was open 15 hours) (link)
1 week 3 days ago —
Space is closed (was open 15 hours) (link)
@MakeHackVoid
1 week 3 days ago —
Space staying open until 09:30 (estimate) (link)
1 week 3 days ago —
Space staying open until 09:30 (estimate) (link)
@MakeHackVoid
1 week 3 days ago —
Space staying open until 04:45 (estimate) (link)
1 week 3 days ago —
Space staying open until 04:45 (estimate) (link)
@MakeHackVoid
1 week 4 days ago —
Space is open until 19:30 (estimate) (link)
1 week 4 days ago —
Space is open until 19:30 (estimate) (link)
@mikeebinum
1 week 5 days ago —
@stevage1 @unlockdgov aims to create a quick/easy way to get insight to any dataset,it would compliment govpond cc @itgrrl @MakeHackVoid (link)
1 week 5 days ago —
@stevage1 @unlockdgov aims to create a quick/easy way to get insight to any dataset,it would compliment govpond cc @itgrrl @MakeHackVoid (link)
@dev_dsp
1 week 5 days ago —
Productive day for Jeffery and me at #makehackvoid http://t.co/XcuPlO4Ulj (link)
1 week 5 days ago —
Productive day for Jeffery and me at #makehackvoid http://t.co/XcuPlO4Ulj (link)
@dev_dsp
1 week 5 days ago —
Combust making orc armor. #makehackvoid http://t.co/xsnl16ST3g (link)
1 week 5 days ago —
Combust making orc armor. #makehackvoid http://t.co/xsnl16ST3g (link)

Some assistance
bowlerhatman — Sat, 23/10/2010 - 5:55pmHi guys, I'm having difficulty getting my MHV board running, it's assembled fine, and tests out OK, but I can't get my computer to recognise the drivers. Exactly which drivers are needed, and are there any tips for setting it up?
Thanks for your help.
Drivers
deece — Sun, 24/10/2010 - 9:10amIf you are under Windows, please check the driver instructions under the Getting Started in the Arduino Environment page. I think I'll move this to a seperate page to make it easier to find.
Note that in order for the programmer to detect, you must connect the Upload jumper, and press the reset button.
I tried
bowlerhatman — Sun, 24/10/2010 - 2:18pmI downloaded and extracted all those file, I'm running XP, and I extracted the MHV enhancements into the Arduino 0021 folder in the program files(I hope that was right). Then I plugged the MHVboard in, with all the jumpers in the right spots, and the 'device not recognised' message appeared, as expected. I went into its properties and selected 'update drivers' and went to the USBasp folder that I had extracted, and the only file that the system would show 'had no information about my hardware'. Have I done something wrong?
Thanks!
Assistance
deece — Tue, 26/10/2010 - 7:10amWe will have a look at your board this evening at the Maker meeting in the Braddon club.
Fixed
deece — Wed, 27/10/2010 - 11:55amProblem was 2-fold - a short on the board, and a dodgy USB cable.
Wishing for a ChangeList
Bluebie — Mon, 01/11/2010 - 6:31amIt sure would be incredibly handy to have a summary of all the differences between MetaBoard, and MHVboard. I'm just now trying to figure these things out to get an AVR ISP Programmer shield working on mine.
Schematics/board layouts
bowlerhatman — Mon, 01/11/2010 - 8:46amCould you please put these up for all revisions of the board? In particular revision 2.
Thanks.
Schematics & Board layouts
deece — Mon, 01/11/2010 - 5:12pmAll the schematics & board layouts are available in the git repository above.
Problems again...
bowlerhatman — Tue, 09/11/2010 - 10:01amI hate to be annoying, but the second board I bought is displaying the same problem, although this time there is no short on the board, and the cable is fine. I've buzzed out all the traces according to the only schematic I could find, which was on the metaboard website from memory. The Atmega works, because I tested it in my working MHV board, which is how I know that the cable and software on the computer are working as well. Do you have any suggestions for errors to look for? I've checked and triple checked the components, and pulled it all to bits and reassembled it again, but still no dice.
Thanks for your help.
I'd double check the USB pins
deece — Tue, 09/11/2010 - 12:21pmI'd double check the USB pins and components along that path: the 68 ohm, 1k5 & 1M resistors, zener diode polarity & values. You can also refer to the board layout for R2 here.
Dodgy
Bluebie — Tue, 09/11/2010 - 11:49amSome of the MHVBoards Gav received seemed to have dodgy crystals. We don't know how they're dodgy, but when they were replaced, the board started working better. The software usb implementation requires a fairly precise crystal, so perhaps there is too much variance in the ones supplied, or maybe they're a bit sensitive to heat and some are getting upset by the DIY soldering? The only other thing to ponder is that the older MHVBoards and the MetaBoards I believe used a 16mhz crystal, while the newer revisions use a 20mhz crystal, so perhaps the USBaspLoader burnt to the chips supplied aren't always matched to the crystals supplied. Worth investigating if you have an ISP programmer.
Crystals
deece — Tue, 09/11/2010 - 12:27pmI don't think the firmware is a problem - I never released an MHVBoard firmware at 16MHz.
I think you may be on to something with the crystals though - I had picked up a bulk batch from the cheapest vendor I could find at quantity - perhaps not such a good idea.
The heat issue may also be a problem - I made up my test boards with a 20W fine tipped soldering iron, which would have had minimal heat being transferred to the crystal itself.
I've got more kits on hand, and can bring desoldering gear to the meeting tonight if you want to try swapping the crystal.
Data path
bowlerhatman — Tue, 09/11/2010 - 1:12pmThe components along the traces from the USB to the Atmega seem to be fine, but I'll try the crystal fix. I'll also re-check the traces against that layout.
Thanks guys.
Crystals
bowlerhatman — Tue, 09/11/2010 - 8:41pmIt was indeed the crystal, problem solved.
Two minute 3.3V MHVBoard mod
matt — Wed, 08/12/2010 - 10:15pmI want to experiment with some LCDs & sensors that are 3.3V only. I added a 3.3V regulator in place of the 5V 7805 that comes with the kit and can confirm that the USB operation is unaffected & everything works nicely. In addition I don't need the external power jack (for now) so added the wire depicted below in order to power the regulator from USB 5V. Thus, JP5 switches between "USB supply, 5V" and "USB supply through regulator, 3.3V".
Great
deece — Wed, 08/12/2010 - 10:31pmNicely done - did the Atmega328P complain too much at being undervolted for that clock speed?
Haven't given it much of a
matt — Wed, 08/12/2010 - 11:17pmHaven't given it much of a kicking -- but figured if the V-USB bootloader is working then it should be exercising it a bit at least!
Good point though, I'll watch out for misbehaviour (and it may be more sensitive to noise on power rails, may need extra decoupling?).
don't know how to use git
lrng — Thu, 09/12/2010 - 1:20pmmy goal is to find the schematic for MHV BOARD
i click on the git clone http://git.makehackvoid.com/mhvboard.git
it has parents..objects.. and everything else but schematic
I don't know Linux what does a Windows person do?
second question I spent a day to find out that the LED is connected to pin 19, why the software refers to pin 13 Arduino
please why do you say Arduino pin 13 in the blinking LED example.
LED
bowlerhatman — Thu, 09/12/2010 - 1:46pmThe answer to your question about the LED pin is that the LED is connected to the I/O pin 13, but pin 19 on the package equates to I/O pin 13. The two pins are the same.
Git
deece — Thu, 09/12/2010 - 2:49pmYou will need to install git to clone the respository. There is a good beginner's tutorial available here. Within the repository, you will find the schematics & board layout in Eagle format.
If you want to look at older versions of the schematic, you can select "Visualize master's history" under the repository menu. Select the revision you want, right click on it, and select "Reset master branch to here".
Regarding the pins, pin 13 (as labelled on the board) refers to the Arduino pin, not the physical pin on the AVR package. Note that if you want to program the board in C, rather than the Arduino runtime, I have also labelled the pins with port/pin details, so Arduino pin 13 is equivalent to B5.
About sources of bootloader
saeki — Wed, 05/01/2011 - 4:38pmHello. I want to compile mhvboard_firmware_1.0. Can I get its sources?
Sure
deece — Wed, 05/01/2011 - 5:17pmI'll see if I can dig it up and post it when I get home (will be in a few hours).
In the meantime, if you are desperate, it is USBAspLoader with a trivial patch to blink the LED when the bootloader is entered.
Firmware Source
deece — Wed, 05/01/2011 - 8:16pmI've attached the firmware source to this page. I was unable to find the original so I had to rewrite it - the binary will not be identical but is functionally the same.
The fader program that is loaded initially in the firmware image can be found in the MHVlib repository.
Thanks!
saeki — Wed, 05/01/2011 - 9:31pmI downloaded the firmware source.
But... the size of mhvboard_1.0.hex (that is obtainable by unzip mhvboard_firmware_1.0.zip) is 78752 bytes, isn't it? Meanwhile, the size of the each firmware you attached is about 5300 bytes.
I got mhvboard_1.0.hex from http://www.makehackvoid.com/other/mhvboard-r2-assembly-instructions .
Why is it so big?
Building the hex
deece — Wed, 05/01/2011 - 9:48pmThat hex includes both the bootloader and the fader program from MHVlib. I created the hex by flashing the loader, then the program, then reading the whole flash back.
Thank you for your speedy response.
saeki — Wed, 05/01/2011 - 9:56pmI understood. I'll try.
mhvboard.brd will not open
twinkel — Wed, 26/01/2011 - 5:34amHi, I wanted to have a look at the board design in the Git. My problem is that the schematic will open in eagle but the board will not. Eagle reports an error when opening the board design, both in windows and linux. file properties of mhvboard.brd are: filesize = 287955 bytes, md5sum = e1b42b64e41c39227278142de1696640. Any ideas how to proceed? kind regards twinkel
Thanks for letting me know
deece — Wed, 26/01/2011 - 9:04amNot sure what happened, but I've pushed a new version up and verified it checks out correctly.
Please try again.
file loads ok now
twinkel — Wed, 26/01/2011 - 11:46pmEagle loads the board file now. Thanks for you work.
On thing that I saw in the design was that 2 texts on the Tnames layer are exceeding the board dimensions. No problem, but I thought I' d just mention it.
Serial monitor
bowlerhatman — Fri, 18/02/2011 - 8:15pmSpeaking to Alistair the other night, I learnt that the MHV board needs a USB-TTL converter to utilise the Serial Monitor function of the Arduino IDE. I've ordered some spares, so if anyone needs one in a hurry, just let me know.
"Serial" debug window for PC
monsonite — Wed, 18/05/2011 - 6:44pmHi
I am a member of the London Hackspace developing open source low cost hardware.
I have made up a web connected "Arduino" board which is compatible with MHVboard/Metaboard - I think it is a great way of saving the cost of a FTDI IC or cable.
We're just about to build 100 of these for Hackspace members
http://wiki.hackspace.org.uk/wiki/Project:Nanode
However, has anyone come up with an app running on the PC which emulates the serial debug monitor, sending and receiving data to and from the ATmega328 via the Vusb interface?
Is this possible? Vusb is a great idea - but I miss the serial debug window.
Any advice appreciated
Ken
Debug output
deece — Wed, 18/05/2011 - 6:51pmNot as yet.
I have some vague plans to emulate the debug monitor from the Teensy when I add V-USB support to MHVlib, but I haven't started on it yet (and won't be doing so for a while).
unable to choose "MHVBoard" from the Boards menu
greg schiemer — Fri, 14/10/2011 - 10:37pmHelp, I'm new to MHV and having trouble making the Arduino IDE see the MHV board. I'm running the IDE under Windows XP. Here's what I've done
[1] unzipped "arduino-0022" (latest version of Arduino IDE)
(Directory path is c:/program files/arduino-0022)
[2] unzipped "arduino-0021-mhv" and "extracted all files", extracted files and pointed to "arduino-0022" folder.
(Directory path to MHV specifications is c:/program files/arduino-0022/hardware/arduino/boards.txt)
[3] installed USBasp driver, device is detected, driver is pointed at USBasp folder, MHV board appears to run under Windows
(Directory path to USBasp driver is c:/program files/arduino-0022/usbasp-windriver.2011-05-28)
[4] not running on 64-bit machine, skipped 6 Driver Signature steps
[5] connected Upload jumper (J6) to power MHV board from USB port
[6] pressed Reset button, LED winks rapidly
[7] launched Arduino 0022, and select: File, Examples, 1.Basics, Blink
[8] I'm unable to choose "MHVBoard" from the Boards menu I think the problem is my understooding of "extract it over the top of your Arduino installation" in the 2nd bullet-point instruction of "Getting Started with the MHVBoard in the Arduino Environment".
Here is a directory of folders within "arduino-0022"
arduino-0021
drivers
examples
hardware
java
lib
libraries
reference
tools
usbasp-windriver.2011-05-28
I'm sure it is possible to edit hardware/arduino/boards.txt and paste the following lines ############################################################## mhvboard.name=MHV Board
mhvboard.upload.protocol=usbasp
mhvboard.upload.maximum_size=30720
mhvboard.upload.speed=19200
mhvboard.upload.disable_flushing=true
mhvboard.build.mcu=atmega328p
mhvboard.build.f_cpu=20000000L
mhvboard.build.core=arduino
mhvboard.bootloader.low_fuses=0xf7
mhvboard.bootloader.high_fuses=0xda
mhvboard.bootloader.extended_fuses=0x03
mhvboard.bootloader.path=mhvboard
mhvboard.bootloader.file=mhvboard_1.0.hex
mhvboard.bootloader.unlock_bits=0x3F
mhvboard.bootloader.lock_bits=0x2F ##############################################################
but it would be better to know why the instruction I tried to follow didn't cause that to happen automatically.
What do I need to do to make that happen ? Any suggestions welcome. Thanks. Greg S
Arduino 22 compatibility
deece — Fri, 14/10/2011 - 10:41pmHmm, I haven't tested it under 22, I'll install it now and upload a fresh patch.
Solution
deece — Fri, 14/10/2011 - 10:51pmI see the problem, the zip contains "arduino-0021", which is now within your "arduino-0022" directory
Just move the contents of it up one level and you should be good.
I've also uploaded a patch for Arduino 22 (which includes some new boards, but is otherwise identical).
MHV blinks 1/sec
greg schiemer — Sat, 15/10/2011 - 9:18amThanks for your reply. In response
[1] I moved the contents of arduino-0021 up to next level, allowing the move to overwrite
C:\ProgramFiles\arduino-0022\hardware\*.*
I believe this is what you suggested
[2] I then ran Arduino IDE, selected: Tools, Board, MHV Board
The Arduino IDE found the MHV Board! Solved, thank you.
[3] I then compiled "Blink"
Binary sketch size: 1046 bytes (of a 30720 byte maximum) (as before)
[4] and uploaded "Blink"
Binary sketch size: 1046 bytes (of a 30720 byte maximum)
I had mixed results.
First time, the following message appeared
avrdude: error: could not find USB device "USBasp" with vid=0x16c0 pid=0x5dc
This suggested the contents of the usbasp-windriver.2011-05-28 directory need to be moved
somewhere else so the IDE can find them.
My best guess was:
[5] copy C:\ProgramFiles\arduino-0022\usbasp-windriver.2011-05-28\libusb_0.1.12.1\USBasp.* (i.e. copying rather than moving USBasp setup information and USBasp security catalogue) to
C:\ProgramFiles\arduino-0022\drivers\USBasp.* where setup information for arduino UNO and MEGA 2560 is found.
[6] When I uploaded the "Blink" example it seemed to get into a loop (sorry I didn't capture the details)
[7] When I hit "reset" and uploaded "Blink" again, the light blinked once per second.
[8] Believing I had the MHV running, I hit "reset" and uploaded the "Fade" example. Nothing happened so I repeated step 7, and again the light blinked.
So I believe my MHV is working, again, thanks to your help. But I don't understand why step 8 (the Fade example) doesn't appear to work.
Greg S
Fade sample
deece — Sat, 15/10/2011 - 1:20pmHi Greg,
The MHVBoard only enters the bootloader upon reset. You need to hit the reset button every time you want to upload to the board.
The fade sample in the Arduino environment works on a different pin to the one the LED is hardwired to. You will need to connect an LED between ground and the pin it is trying to alter. The pin it is trying to alter is Aruduino pin 9 (port B1).
Cheers
Feedback via Serial.xxxxx commands?
bik0z — Sun, 23/10/2011 - 11:22pmHi,
As long as I understand the design of the MHVBoard, there is no serial communication between the MCU and the computer via the USB link. The USB link is used for code uploads only. Right?
So, if I'm correct, is there a simple way to get feedback from the MCU via the traditional Serial.xxxxx set of commands?
In addition, I have a few questions regarding the pozible.com page:
1 - Will you continue to accept funds when the $500 is reached, which will happen today I guess? :-)
2 - Will you accept orders after 13 dec. 2011?
3 - When will you ship the boards ordered before 13. dec. 2011? In other word, would I get my Christmas present in time? :-)
Thanks in advance.
Serial support
deece — Mon, 24/10/2011 - 8:20pmFor now, that is right.
At some point, I'll write a USB Serial driver, but everything so far indicates that performance is going to be horrible.
The next thing I plan on writing is a USB HID console driver for MHVLib (which should be easy enough to port to Arduino), which will allow bidirectional comms via a command line app.
The best solution at this point is to use a USB to TTL adapter (~$3 on Ebay), until I complete one of the above drivers. A much more awesome solution is to wedge a bluetooth ttl board (~$7 on Ebay) onto the prototyping area, for wireless serial shenanigans.
In reply to your Pozible project questions:
1. Yes, I would love your money
2. Yes, but probably not through Pozible. Australian Robotics will likely carry some, and I'll also make them available through NMN.
3. The first boards (for those who have confirmed payments) will ship out as soon as I have all the parts, completed the bootloader and written some assembly instructions.