Duce

The Duce is a general purpose board for Atmel's at90usb162 and atmega8/16/32u2. Combined with open source code it can be used to easily create usb solutions. With relatively large components (tqfp, 603) the board is an excellent place to learn surface mount soldering as well as an inexpensive introduction to Atmel's 90usb family of micro controllers. Incidentally the duce uses the same micro controller as the new arduino uno. In fact the firmware for the uno is based on Dean Cameras rewrite of the original Benito firmware.

imgimgimg

Buy one

After many iterations of trying new design ideas through the DorkbotPDX Group PCB Order the new design is available through the suspect devices website.

http://suspectdevices.com/duce.html

Build one

A secret cache of the original Benito's was found when going through the lab. If you want to build one you should be able purchase them through our Etsy Store.

Old video. img

http://dorkbotpdx.org/blog/feurig/build_your_own_usb_to_serial_device

Pinouts

The current design brings out port d of the processor in an stk500 format.

img

And if you use the cable that comes during the induction (where brown is pin 1) then this cable will connect you to the dorkboard perfectly...

img

Origional Benito Pinouts.

img

Blog entries.

Firmware

The official firmware for the duce is Paul Stoffregon's alternative software. As described in the comment below.

To make this work on windows you should use his serial installer first

Original LUFA Based Firmware

INF File For the post bush Firmware

INF File For Windows 7 or Vista 64 Bit


As root (or sudo):

create file /etc/udev/rules.d/99-atmel.rules
with this as the contents:

--
SUBSYSTEM!="usb_device", ACTION!="add", GOTO="atmel_rules_end"

#AT90USB162 DFU
SYSFS{idVendor}=="03eb", SYSFS{idProduct}=="2ffa", GROUP="dialout", MODE="0660"

LABEL="atmel_rules_end"
--

run:
udevcontrol reload_rules

feel free to change the group to something that makes sense to you.


as described here http://dorkbotpdx.org/blog/feurig/98_all_your_atmel_belong_to_us

$sudo bash
<password>
# cat >/etc/udev/rules.d/98-all-your-atmel-belong-to-us.rules<<EOF
#------------------------/etc/udev/rules.d/98-all-your-atmel-belong-to-us.rules
#
# Make atmel devices (dfu, LUFA, obdev) accessible in userland
# as well as pjrcs alternative firmware.
ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", MODE="0666"
ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="047[78]", MODE="0666"
EOF
# service udev restart


I was programming fine yesterday and then moved the Notebook unplugging the Benito programmer and plugged it back in - Both LEDs came on and Windows didn't recognize the device anymore. Haven't been able to do anything with it. Seems there is no way to re-install the drivers. Any suggestions for a fix?

Check in Device Manager for the usb/serial device (I do not have a Benito so not sure where it is installed) it is probably be under ports (COM and LPT) or Human Interface devices. If it is there and has a warning sign on it look for the reason in the device status section and post the reason.

Mon, 2010-05-31 04:59    [Permalink]

paul

I wrote an alternative firmware for Benito. If your Benito is working fine, then don't fix it. But if it does stop working (several people have had theirs mysteriously need to be reprogrammed), you might try my alternative code? The download ZIP file includes a .hex file pre-compiled for Benito, so all you need to do is use the DFU programmer to load it, the same way you'd load the official firmware.

If you're using Windows, you'll also need this Serial Installer, which just installs an INF file similar to the one above. Mac OS-X and Linux recognize the serial device without loading anything special. On Linux, you'll need udev rules for non-root permissions and a symlink to create a name the Arduino IDE can find.


I have been using the alternative firmware quite happily in the classes, as well as the serial installer they have worked really well until lion. On lion the device stops working as soon as it resets the target.