Gen7 Board 1.3

From RepRap
Revision as of 21:58, 11 November 2013 by Schofiel (talk | contribs) (spelling)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This page describes something which is no longer the most recent version. For the replacement version see: Gen7 Board 1.4.1


Gen7 Board History   --   Gen7 Board is part of Generation 7 Electronics

Gen7 Board 1.3 was found to have a bug and is now superseded by Gen7 Board 1.3.1.

The changes between v1.3 and v1.3.1 are modified settings for the ATmega's extended fuse. This fuse decides whether the chip's Brown Out Detector (BOD) is used or not. v1.3.1 turns the BOD on, at a trigger voltage of 4.3 volts.

Hardware — PCB, schematic, layout — remains unchanged between 1.3 and 1.3.1.

Reason for the Bugfix Release

Quite a number of Gen7 users experienced corrupted bootloaders. This is nothing special if you own a programmer, but a roadblock if you don't. Uploading firmware becomes impossible, rendering the ATmega unusable.

In one of the non-working ATmegas, diagnosis found a number of randomly written bytes. This hinted to an ATmega running amuk. Another ATmega got "reliably" corrupted each time it was turned off. When turning a Gen7 (or most other electronics) off, the ATmega supply voltage doesn't drop with a sharp edge, but goes down slowly. At some point, the voltage is high enough to still run the ATmega, but no longer high enough to run it reliably. Only a few milliseconds, but each such millisecond an ATmega does 20.000 instructions -- with random results.

How to upgrade from v1.3 to v1.3.1

If your RepRap works fine, there is no need to upgrade. Upgrading doesn't make the machine run any better. Upgrade only if you have to upload new firmware and your Gen7 refuses to do so.

To upgrade, you need a programmer. Having that, do two things:

  1. Re-do your Arduino IDE support with the newest Gen7 support package from the Git repository (linked there).
  2. Renew your bootloader, especially the fuses burning part.

Technical Details

The former extended fuse was 0xFF, the new one is 0xFC. Upgrading the Arduino IDE is neccessary, as fuses are checked on each firmware upload. Extended fuse 0xFC sets the BOD to 4.3 V, just slightly under the level (4.5 V) the ATmega is specified to run reliably at 20 MHz.