--- /dev/null
+#include <cstdio>
+#include <stdint.h>
+#include <wiringPi.h>
+
+static int digits [3] = { 17, 27, 22 };
+static int segments [3] = { 23, 24, 25 };
+
+static int binWriteDisplay(uint8_t digit, uint8_t segment)
+{
+ if (digit > 0b111 || segment > 0b111)
+ {
+ printf("Digit or Segment must not exceed 0b111 | %d %d \n", digit, segment);
+ return 1;
+ }
+
+ digitalWrite(digits[0], digit % 2);
+ digitalWrite(digits[1], (digit / 2) % 2);
+ digitalWrite(digits[2], (digit / 4) % 2);
+
+ digitalWrite(segments[0], segment % 2);
+ digitalWrite(segments[1], (segment / 2) % 2);
+ digitalWrite(segments[2], (segment / 4) % 2);
+
+ return 0;
+}
+
+static void displayOff (void)
+{
+ binWriteDisplay(0b111, 0b111);
+}
+
+
+static void printBinary (int num)
+{
+ for (int i = 3; i >= 0; i--)
+ {
+ printf("%d", (num >> i) & 1);
+ }
+ printf("\n");
+}
+
+static void testDisplay (void)
+{
+ for (int i = 0; i < 0b111; i++)
+ {
+ for (int j = 0; j < 0b111; j++)
+ {
+ printBinary(i);
+ printBinary(j);
+ printf("\n");
+ binWriteDisplay(i, j);
+ delay(1000);
+ }
+ }
+}
+
+static void setupDisplay (void)
+{
+ for (int i = 0; i < 3; i++)
+ {
+ pinMode(digits[i], OUTPUT);
+ digitalWrite(digits[i], 0);
+
+ pinMode(segments[i], OUTPUT);
+ digitalWrite(segments[i], 0);
+ }
+
+ displayOff();
+}
\ No newline at end of file