Tutorial #2: Next Bus Alert - ssd1306 library issues

I have tried to do the next bus alert tutorial.

When compiling, it fails with the following error:

src/2_next_bus_alert.cpp:2:30: fatal error: Adafruit_SSD1306.h: No such file or directory


I tested and it seems to work fine. Can you try removing the library and add it again?

Also, Can you check that 0.6.1 is selected for the system firmware under the device to be flashed?

Let me know if it is still not working!

Hi @kennethlimcp, thanks for your reply. I did add and remove it several times but still nothing. I’m doing this from the IDE.
Im using the latest firmware: 0.6.2

You can see my project here: https://go.particle.io/shared_apps/592689d0504a2249280004d4

@kennethlimcp, I figured out what you mean. It worked now. :grinning:
Why is it that you have to target the code to a different firmware from what I’m using on my photon?
And how did you know that it has to be 0.6.1?

0.6.1 had introduced some unexpected side effects with some libraries (like the above).
This was the main reason why 0.6.2 was released so shortly after 0.6.1 to correct these (but this also introduced a regression about String = NULL assignment).

Elites keep close watch on the forum to detect when multiple members start to experience issues and inform eachother and Particle about possible issues.
So we usually know the symptoms since we’ve heard or experienced the same before.

1 Like

Hi @ScruffR,so what is happening in this case? On the photon I have firmware 0.6.2 and when trying to flash the code with firmware target 0.6.2 it fails. When setting the target to 0.6.1, the photon is flashed successfully.

What is happening when setting a system firmware target?
Is the compiler compiling the code for 0.6.1 although the device is running 0.6.2?

Are you flashing OTA or via USB?

With OTA a firmware mismatch shouldn’t matter as it causes Safe Mode Healer to kick in which in turn updates your system to the correct version and then flashes the app again.
For this you’d need to let the device reboot several times in order to get all the system modules flashed individually.

With USB, I’d first make sure to have most recent CLI (currently 1.22.0) and then perform

particle update
particle flash --usb yourApp.bin

But what exactly does this mean?

So the build works but the flash fails?
Or does the app flash but not work as expected?

Yes, exactly. The build farm compiles against another system version and the resulting binary will be able to run on any device with a system same as or higher than the app version.