Metaboard Drawback (and solution)

I really have enjoyed the Metaboard clones I have built, except for one annoying problem (Besides no built in serial communications). The bootloader uses data pins 2 and 4 instead of the normal 0 and 1, and I am having conflicts with shields that use pins 2 or 4.

The first problem is that if you use pins 2 or 4, those connections may have to be disconnected before you can program the device. While not show-stopping, it is annoying… especially if you have to remove a shield.

The second problem is that your shield may not work correctly since pin 2 and 4 are tied to the V-USB circuit and this can interfere with the shields operation. This is a more serious problem that can prevent you from using a Metaboard with certain shields.

I am currently working on version that will use a latching double-pole double-throw switch that can toggle the pin 2 and 4 connections between the V-USB circuit and the two header sockets.

Basically I can wire everything up to my Metaboard,

  • Plug in the programming jumper
  • Engage the V-USB to ATMega328P chip
  • Plug in the board to the USB
  • Press the reset button
  • Program from the Arduino IDE as normal
  • Unplug in the programming jumper
  • Disengage the V-USB to ATMega328P chip
  • Press the reset button

Without dissembling my circuit in any way. Lazy. But convenient.