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) delay(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 Dec 09, 2023.

This page (Arduino Signals) was last updated on May 22, 2018.

Text editor powered by tinymce.