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); }