Sierra

Radio

PayPal: View Cart

Arduino Compatibility

The HamStack establishes a standard physical PCB layout and electrical signal assignments to the interboard connectors.  This ensures hardware compatibility and makes the re-use of modules very easy.  Each pin in the stack has a specific purpose. There are 7 interboard connectors.  Four of them match the interboard connectors of the Arduino Uno and similar boards.   This means that you can take an Arduino shield, like a relay board or a Zigbee RF module and plug it on top of a HamStack CPU board and there is a good chance it will work.  There are hundreds of 3rd party Arduino shield boards on the market and the HamStack will not be completely compatible with all of them.  The Arduino uses an Atmel CPU while we use a PIC so there will be some differences on some boards.  Having said that, we have mapped the HamStack’s CPU IO pins as closely as possible to the Arduino pins so many functions will be “plug and play”.  Digital inputs, digital outputs, analog inputs, serial tx and rx, I2C, and SPI pins should work on most boards.  Of course, the Arduino software is not compatible with the HamStack.  However, many, if not all, Arduino IO functions are available in either the Microchip C18 or Swordfish Basic compilers.

In addition to the 4 Arduino compatible connectors, there are two additional 8 pin interboard connectors providing more IO.  The seventh interboard connector is the HamStack (PicKit compatible) in-circuit programming socket.


The two boards are positioned so you can see how the bottom 4 connectors on each board are in the same physical position.  This means that any Arduino shield designed for the Uno, will mechanically plug on top of the HamStack CPU board.


Beyond the mechanical design, the electrical signals are very closely mapped to be as compatible as possible.  The table below shows the pin assignment of the two CPU boards.


The main difference between the lower 4 connectors is the location of the two I2C serial bus pins.  They are present on both boards, but in different locations.  This is due to the PIC sharing I2C and SPI signals on the same physical pin.  We fixed the SPI pins to be the same as the Arduino so the I2C pins had to be moved with them.

HamStack

HamStack

HamStack

HamStack


CPU Board

CPU Board

CPU Chip

CPU Board

Arduino Board

Pin  #

Pin Name

Pin Name

Pin Functions

Pin Functions






J1-1

A

-

-

-

J1-2

B

-

-

-

J1-3

R2

-

RS232 Rx

-

J1-4

T2

-

RS232 Tx

-

J1-5

E2

RE2

RE2 Digital IO

-

J1-6

A4

RA4

RA4 Digital IO / Mode button

-

J1-7

C1

RC1

RC1 Digital IO / PWM 2

-

J1-8

C2

RC2

RC2 Digital IO / PWM 1

-






J2-1

C0

RC0

Status LED

-

J2-2

PD

PGD

Programming pin (data)

-

J2-3

PC

PGC

Programming pin (clock)

-

J2-4

B4

RB4

RB4 Digital IO

-

J2-5

B3

RB3

RB3 Digital IO

-

J2-6

B2

RB2

RB2 Digital IO

-

J2-7

B1

RB1

RB1 Digital IO

-

J2-8

B0

RB0

RB0 Digital IO

-






J3-1

RST

MCLR

Reset

Reset

J3-2

3V

-

3.3v

3.3v

J3-3

5V

5v

5v

5v

J3-4

GND

Ground

Ground

Ground

J3-5

GND

Ground

Ground

Ground

J3-6

Vin

-

External input voltage

External input voltage






J4-1

Bias

-

Bias (2.5v not supplied by CPU board)

Aref

J4-2

GND

Ground

Ground

Ground

J4-3

C3

RC3

RC3 Digital IO / SPI CK / I2C Clock

(13) Digital IO / SPI CK / LED

J4-4

C5

RC5

RC5 Digital IO / SPI DO

(12) Digital IO / SPI DO

J4-5

C4

RC4

RC4 Digital IO / SPI DI / I2C Data

(11) Digital IO / PWM / SPI DI

J4-6

A5

RA5

RA5 Digital IO / SPI SS /

(10) Digital IO / PWM / SPI SS

J4-7

D7

RD7

RD7 Digital IO / UART 2 Rx

(9) Digital IO / PWM

J4-8

D6

RD6

RD6 Digital IO / UART 2 Tx

(8) Digital IO






J5-1

AN0

RA0 / AN0

RA0 Digital IO / AN0 analog in 0

Analog in 0

J5-2

AN1

RA1 / AN1

RA1 Digital IO / AN1 analog in 1

Analog in 1

J5-3

AN2

RA2 / AN2

RA2 Digital IO / AN2 analog in 2

Analog in 2

J5-4

AN3

RA3 / AN3

RA3 Digital IO / AN3 analog in 3

Analog in 3

J5-5

E0

RE0 / AN4

RE0 Digital IO / AN4 analog in 4

Analog in 4 / I2C Data

J5-6

E1

RE1 / AN5

RE1 Digital IO / AN5 analog in 5

Analog in 5 / I2C Clock






J6-1

D5

RD5

RD5 Digital IO

(7) Digital IO

J6-2

D4

RD4

RD4 Digital IO

(6) Digital IO / PWM

J6-3

D3

RD3

RD3 Digital IO

(5) Digital IO / PWM

J6-4

D2

RD2

RD2 Digital IO

(4) Digital IO

J6-5

D1

RD1

RD1 Digital IO

(3) Digital IO / PWM / Interrupt input

J6-6

D0

RD0

RD0 Digital IO

(2) Digital IO / Interrupt input

J6-7

C6

RC6

RC6 Digital IO / Serial UART 1 Tx

(1) Digital IO / Serial UART Tx

J6-8

C7

RC7

RC7 Digital IO / Serial UART 1 Rx

(0) Digital IO / Serial UART Rx