Arduino Signals

The 8 GPIO pins on the Crickit are in the Signals block of pins. You have the 8 data pins, each input/output, 3.3v logic, analog or digital.

These GPIO are controlled by the Crickit's seesaw chip, not directly by the microcontroller or the Raspberry Pi. Thus programming them takes a bit more work but they provide some great benefits.

Signals on the Crickit are available on the following pins:

Silkscreen Label

Arduino Macro

Seesaw Pin

1

CRICKIT_SIGNAL1

2

2

CRICKIT_SIGNAL2

3

3

CRICKIT_SIGNAL3

40

4

CRICKIT_SIGNAL4

41

5

CRICKIT_SIGNAL5

11

6

CRICKIT_SIGNAL6

10

7

CRICKIT_SIGNAL7

9

8

CRICKIT_SIGNAL8

8

You can use these as analog or digital I/O pins, setting the mode, value and reading with the seesaw library directly:

#include "Adafruit_Crickit.h"

Adafruit_Crickit crickit;

#define BUTTON_1 CRICKIT_SIGNAL1
#define BUTTON_2 CRICKIT_SIGNAL2
#define LED_1 CRICKIT_SIGNAL3
#define LED_2 CRICKIT_SIGNAL4

void setup() {
  Serial.begin(9600);
  
  if(!crickit.begin()){
    Serial.println("ERROR!");
    while(1);
  }
  else Serial.println("Crickit started");

  //Two buttons are pullups, connect to ground to activate
  crickit.pinMode(BUTTON_1, INPUT_PULLUP);
  crickit.pinMode(BUTTON_2, INPUT_PULLUP);

  // Two LEDs are outputs, on by default
  crickit.pinMode(LED_1, OUTPUT);
  crickit.pinMode(LED_2, OUTPUT);
  crickit.digitalWrite(LED_1, HIGH);
  crickit.digitalWrite(LED_2, HIGH);
}

void loop() {
  if(!crickit.digitalRead(BUTTON_1))
    crickit.digitalWrite(LED_1, HIGH);
  else
    crickit.digitalWrite(LED_1, LOW);

  if(!crickit.digitalRead(BUTTON_2))
    crickit.digitalWrite(LED_2, HIGH);
  else
    crickit.digitalWrite(LED_2, LOW);
}
This guide was first published on May 16, 2018. It was last updated on May 16, 2018. This page (Arduino Signals) was last updated on Dec 14, 2019.