DEV Community

Cover image for Day 5: CPX, Gizmo TFT

Day 5: CPX, Gizmo TFT

Hmm, running Circuit Playground library stops me using the tft library. Had a sounding out with Mick and came to same conclusion to bypass Circuit Python, he said they wrapped it around code for the accelerometer anyway.

So went looking at the Circuit Playground source code on github:

I noticed in the header file it included Adafruit_CPlay_LIS3DH.h, so I commented looked for examples that use LIS3DH libraries, and thankfully there were a few out there, so I added

#include <Adafruit_LIS3DH.h>
#include <Adafruit_Sensor.h>
Enter fullscreen mode Exit fullscreen mode

plus the following declarations

// Used for software SPI
#define LIS3DH_CLK 13
#define LIS3DH_MISO 12
#define LIS3DH_MOSI 11
// Used for hardware & software SPI
#define LIS3DH_CS 10

// software SPI 
//Adafruit_LIS3DH lis = Adafruit_LIS3DH(LIS3DH_CS, LIS3DH_MOSI, LIS3DH_MISO, LIS3DH_CLK);
// hardware SPI 
//Adafruit_LIS3DH lis = Adafruit_LIS3DH(LIS3DH_CS);
// I2C 
Adafruit_LIS3DH lis = Adafruit_LIS3DH(&Wire1);
Enter fullscreen mode Exit fullscreen mode

Not sure if the additional code worked for LIS3DH, so I found the following snippet to check if it was found or not:

if (! lis.begin(0x19)) {   // change this to 0x19 from 0x18 for alternative     i2c address
    Serial.println("Couldnt start");
    while (1) yield();
}
Serial.println("LIS3DH found!");
Enter fullscreen mode Exit fullscreen mode

And that's where I got stuck... no matter what iterations of commenting out and in I did, or change the i2C address, it came back with

"Couldnt start"
Enter fullscreen mode Exit fullscreen mode

😫 This was head-wrecking for most of the day.'

Later that evening

Still having problems getting to connect with the accelerometer. I needed another pair of eyes... well, in truth, I wasn't going to turn in for bed (it was getting really late) as I was being stubborn on trying to figure this out. So Mick took a look as well, and spotted the CPP file I had open in the "begin" function to see how they declared it. Now this was staring in my face the whole time

lis = Adafruit_CPlay_LIS3DH(&Wire1);

Enter fullscreen mode Exit fullscreen mode

Why didn't I try putting &Wire1 as an argument?! 😳

Added the argument, saved and compiled. Hit that upload button, held breath when no errors appeared and.... IT WORKED!

Sample Output from Accelerometer

X:  608     Y:  5344    Z:  -15376
Screen should be blue now!
X:  592     Y:  5296    Z:  -15584
Screen should be blue now!
X:  752     Y:  5248    Z:  -15456
Screen should be blue now!
X:  512     Y:  5184    Z:  -15424
Screen should be blue now!
X:  608     Y:  5200    Z:  -15488
Enter fullscreen mode Exit fullscreen mode

💤 Bedtime! #KThxBai

Top comments (0)