Skip to content

Overview

Nico edited this page Aug 13, 2015 · 6 revisions

HoodLoader2 is a bootloader not a firmware. It replaces the standard (DFU for Uno/Mega, CDC for Leonardo/Micro) bootloader with a CDC bootloader + Fast USB-Serial all together.

The CDC bootloader allows to reprogram the 8/16/32u2/32u4 (USB MCU) while the Fast USB-Serial bridge allows to reprogram external microcontrollers (I/O MCU) such as the 328/2560. All MCUs will work with full duplex 2M baudrate, except baud 57600 1200(since 2.0.5) which is used for the CDC bootloader!

The original idea was to flash the 8/16/32u2 with custom programs, also via the Arduino IDE. HoodLoader2 comes with full Arduino compatible USB-Core (since 1.6.6) to create your very own custom programs with the normally unused 16u2 USB chip.

With the HID Project you can also use additional functions like Gamepad, Consumer/Media Keys, System Keys, Absolute Mouse, NKRO Keyboard and more.

With HoodLoader 2.0.5 you are also able to use it for the 32u4, meaning you can use an Arduino (Pro) Micro together with a Pro Mini for example and get the best out of both MCUs. See wiki information on how to connect them together properly.

HoodLoader2

###HoodLoader2 features:

  • Bootloader features:
  • CDC Bootloader for the 8u2/16u2/32u2/32u4 (to upload .hex files via avr-dude/Arduino IDE to the USB MCU)
  • Fast USB-Serial Bridge (to upload .hex files via avr-dude/Arduino IDE to the 328/2560 I/O MCU)
  • Improved reset features (watchdog reset, double tab reset)
  • Up to 2M baud rate, full duplex (since 2.0.5)
  • Also supports AtMega32u4 (no lock byte support, since 2.0.5)
  • EEPROM programming support for 32u2 only (since 2.0.5)
  • No drivers needed for the HoodLoader2 itself (default Arduino Uno/Mega/Leonardo/Micro drivers)
  • Self flashing sketch to burn the HoodLoader2 with a standalone or 2nd Arduino (modified version from Nick Gammon)
  • HID Project compatible

###8/16/32u2 - Uno/Mega

Normally every Uno/Mega R3 has a 16u2. Earlier versions had an 8u2 and some online shops even sell the bigger 32u2 (I've got two of them :D). It might be possible that you don't have a 16u2 on your Arduino board, if its a cheap clone. HoodLoader2 is not (yet) compatible with Arduino Due. Want Due support? Contact me.

8/16/32u2 Flash Bootloader (4kb) Program (4/12/28kb)
Before DFU Bootloader (via Flip) USB-Serial Firmware
After HoodLoader2 (CDC Bootloader + Fast USB-Serial) Custom Sketch/Firmware

####16u2 features/limitations on a normal Uno/Mega R3:

  • 16kb flash (minus 4kb for the HoodLoader2) (8 for a 8u2, 32 for a 32u2)
  • 500 bytes Ram 8u2 and 16u2 (1000 bytes Ram for a 32u2)
  • 500 bytes EEPROM 8u2 and 16u2 (1000 bytes EEPROM for a 32u2)
  • 4 usable USB Endpoints: CDC Serial, HID, MIDI (not all at once)
  • 176 bytes DPRAM (ram for USB endpoints, double bank possible)
  • 8 and 16 bit timer
  • 2 status LEDs (PD4 RX + PD5 TX)
  • 7 usable i/o pins with PCINT, SPI and 1PWM (3 pin SPI header + additional 4 pin header)
  • HW Serial connected to Serial0 of the 328/2560
  • PD7 connected to RESET of the 328/2560
  • Not all pins are broken out (SS, INT, etc)
  • No I2C (u2 series doesn't have TWI) but Serial (to 328/2560) and SPI (master only)
  • No analogue pins
  • No USB-Serial bridge at baud 57600 possible, used for CDC self reprogramming

###32u4 - Leonardo/Micro

With HoodLoader 2.0.5 the Arduino Leonardo/Micro can be used as well:

32u4 Flash Bootloader (4kb) Program (28kb)
Before CDC Bootloader (via Arduino IDE) Custom Sketch/Firmware
After HoodLoader2 (CDC Bootloader + Fast USB-Serial) Custom Sketch/Firmware