# Maple Hardware Errata and Failure Modes

This page is a collection of known issues and warnings for each revision of the Maple board. The failure modes aren't design errors, but are easy ways to break or damage your board permanently. For a list of differences between the Maple and Arduinos, see the page on compatability.

- Maple Board rev3
- Maple Board rev1

## Maple Board rev3

This batch of boards went on sale in May 2010. They have a darker red silkscreen and the "infinity-leaf" logo.

Known design errors:

- Bad/Sticky Buttons: a number of rev3 boards sold in May-June 2010 have questionable reset and "BUT" buttons. What seems to have happened is that the flux removed we used to clean the boards before shipping erroded the plastic internals which results in intermittant functionality. All buttons on all shipped boards did function in testing, but some may have worked in testing but be unreliable in regular use. If you have this problem we will be happy to ship you new buttons if you think you can resolder them yourself, or you can ship us your board and we will swap out that part. For reference, the button part number is KMR211GLFS and the flux remover we used is "Precision Electronics Cleaner" from RadioShack, which is "Safe on most plastics" and contains Dipropylene glycol monomethyl ether, hydrotreated heavy naphtha, dipropylene glycol methyl ether acetate (really?), and carbon dioxide.
- Resistors on D0, D1: these header pins, which are RX/TX on USART2 ("Serial2"), have resistors in-line between the STM32 and the headers. These resistors increase the immpedence of the lines for ADC reads and affect the open drain GPIO functionality of the pins. These resistors were accidentally copied over from older Arduino USB designs, where they appear to protect the USB-Serial converter from TTL voltage on the headers.
- Silkscreen Errors: the silkscreen on the bottom indicated PWM functionality on pin 25 and listen the external header GND pin as number 38 (actually 38 is connected to the BUT button). We manually sharpied over both of these mistakes.

Potential failure modes:

- TTL voltage on non-tolerant pins: not all header pins are 5v compatible; connecting certain serial devices in the wrong way could over voltage the pins.

## Maple Board rev1

This batch of 100 boards shipped in later 2009. They have a red silkscreen and the logo is a single pixelated leaf.

Issues:

- ADC noise: generally very high, in particular when the USB port is being used for communications (including keep-alive pings when connected to a computer). This issue was resolved in rev3 with a 4-layer design and a geometricaly isolated ADC Vref plane.
- Resistors on D0, D1: these header pins, which are RX/TX on USART2 ("Serial2"), have (TODO) Ohm in-line. These resistors increase the immpedence of the lines for ADC reads and affect the open drain GPIO functionality of the pins. These resistors were accidentally copied over from older Arduino USB designs, where they appear to protect the USB-Serial converter from TTL voltage on the headers.
- Silkscreen Differences: the pin numbering scheme on rev1 is different from rev3, and thus rev3 software is difficult to use. Notably the analog input bank is labeled A0-A4 on rev1 but 15-20 on rev3, and the extra header bank does not have a pinout table on the bottom.
- No BUT Button: the BUT button, useful for serial bootloading, was only added in rev3. As a workaround you can directly short the appropriate MCU pin to Vcc; see this forum posting.

Potential failure modes:

- TTL voltage on non-tolerant pins: not all header pins are 5v compatible; connecting certain serial devices in the wrong way could over voltage the pins.

### About this Document

A more recent version of this document may be available from the LeafLabs website. Our documentation is versioned on github; you can track changes to the master branch at this link.

This documentation is released under a Creative Commons Attribution-Share Alike 3.0 license.

Translations are welcomed; give us a ping to make sure we aren't in the process of revising or editing first.