draw-xod-logo

wayland/ssd1306-oled-i2c/draw-xod-logo

Draw XOD logo. Logo is 128 x 64 pixels.
draw-xod-logo
@/draw-xod-logo
Draw XOD logo. Logo is 128 x 64 pixels.
DEV@/ssd1306-oled-i2c-device
An SSD1306 OLED device.
UPDpulse
Update. Trigger write to display buffer.
DONEpulse
Pulses on completion.
To use the node in your project you should have the wayland/ssd1306-oled-i2c library installed. Use the “File → Add Library” menu item in XOD IDE if you don’t have it yet. See Using libraries for more info.

C++ implementation

nodespace{
// 'xod_logo_128_64', 128x64px
    static const unsigned char xod_logo_128_64 [] PROGMEM = {
	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	    0x00, 0x7f, 0xe0, 0x00, 0x00, 0x1f, 0xf8, 0x0f, 0xfc, 0x07, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 
	    0x00, 0x3f, 0xf0, 0x00, 0x00, 0x1f, 0xf8, 0x1f, 0xfe, 0x03, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 
	    0x00, 0x3f, 0xf0, 0x00, 0x00, 0x3f, 0xf0, 0x1f, 0xff, 0x03, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 
	    0x00, 0x1f, 0xf8, 0x00, 0x00, 0x7f, 0xe0, 0x3f, 0xff, 0x01, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 
	    0x00, 0x0f, 0xfc, 0x00, 0x00, 0x7f, 0xe0, 0x3f, 0xff, 0x81, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 
	    0x00, 0x0f, 0xfc, 0x00, 0x00, 0xff, 0xc0, 0x7f, 0xff, 0x80, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 
	    0x00, 0x07, 0xfe, 0x00, 0x00, 0xff, 0xc0, 0xff, 0xff, 0xc0, 0x7f, 0xff, 0xff, 0x80, 0x00, 0x00, 
	    0x00, 0x07, 0xfe, 0x00, 0x01, 0xff, 0x80, 0xff, 0xff, 0xc0, 0x7f, 0xff, 0xff, 0x80, 0x00, 0x00, 
	    0x00, 0x03, 0xff, 0x00, 0x01, 0xff, 0x81, 0xff, 0xff, 0xe0, 0x3f, 0xff, 0xff, 0xc0, 0x00, 0x00, 
	    0x00, 0x03, 0xff, 0x00, 0x03, 0xff, 0x01, 0xff, 0xff, 0xf0, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 
	    0x00, 0x01, 0xff, 0x80, 0x07, 0xfe, 0x03, 0xff, 0x3f, 0xf0, 0x00, 0x00, 0x7f, 0xe0, 0x00, 0x00, 
	    0x00, 0x00, 0xff, 0xc0, 0x07, 0xfe, 0x03, 0xff, 0x1f, 0xf8, 0x00, 0x00, 0x7f, 0xf0, 0x00, 0x00, 
	    0x00, 0x00, 0xff, 0xc0, 0x0f, 0xfc, 0x07, 0xfe, 0x1f, 0xf8, 0x00, 0x00, 0x3f, 0xf0, 0x00, 0x00, 
	    0x00, 0x00, 0x7f, 0xe0, 0x0f, 0xfc, 0x0f, 0xfc, 0x0f, 0xfc, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 
	    0x00, 0x00, 0x7f, 0xe0, 0x1f, 0xf8, 0x0f, 0xfc, 0x0f, 0xfc, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 
	    0x00, 0x00, 0x3f, 0xf0, 0x3f, 0xf8, 0x1f, 0xf8, 0x07, 0xfe, 0x00, 0x00, 0x0f, 0xfc, 0x00, 0x00, 
	    0x00, 0x00, 0x3f, 0xf8, 0x3f, 0xf0, 0x1f, 0xf8, 0x07, 0xff, 0x00, 0x00, 0x0f, 0xfc, 0x00, 0x00, 
	    0x00, 0x00, 0x1f, 0xf8, 0x7f, 0xe0, 0x3f, 0xf0, 0x03, 0xff, 0x00, 0x00, 0x07, 0xfe, 0x00, 0x00, 
	    0x00, 0x00, 0x0f, 0xfc, 0x7f, 0xe0, 0x3f, 0xf0, 0x01, 0xff, 0x80, 0x00, 0x07, 0xff, 0x00, 0x00, 
	    0x00, 0x00, 0x0f, 0xfc, 0xff, 0xc0, 0x7f, 0xe0, 0x01, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 
	    0x00, 0x00, 0x07, 0xfe, 0xff, 0xc0, 0xff, 0xc0, 0x00, 0xff, 0xc0, 0x00, 0x01, 0xff, 0x80, 0x00, 
	    0x00, 0x00, 0x07, 0xff, 0xff, 0x80, 0xff, 0xc0, 0x00, 0xff, 0xc0, 0x00, 0x01, 0xff, 0x80, 0x00, 
	    0x00, 0x00, 0x03, 0xff, 0xff, 0x81, 0xff, 0x80, 0x00, 0x7f, 0xe0, 0x00, 0x00, 0xff, 0xc0, 0x00, 
	    0x00, 0x00, 0x01, 0xff, 0xff, 0x01, 0xff, 0x80, 0x00, 0x3f, 0xf0, 0x00, 0x00, 0xff, 0xc0, 0x00, 
	    0x00, 0x00, 0x01, 0xff, 0xfe, 0x03, 0xff, 0x00, 0x00, 0x3f, 0xf0, 0x00, 0x00, 0x7f, 0xe0, 0x00, 
	    0x00, 0x00, 0x00, 0xff, 0xfe, 0x03, 0xff, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x7f, 0xf0, 0x00, 
	    0x00, 0x00, 0x00, 0xff, 0xfc, 0x07, 0xfe, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x3f, 0xf0, 0x00, 
	    0x00, 0x00, 0x00, 0x7f, 0xfc, 0x0f, 0xfc, 0x00, 0x00, 0x0f, 0xfc, 0x00, 0x00, 0x1f, 0xf8, 0x00, 
	    0x00, 0x00, 0x00, 0x7f, 0xf8, 0x0f, 0xfc, 0x00, 0x00, 0x0f, 0xfc, 0x00, 0x00, 0x1f, 0xf8, 0x00, 
	    0x00, 0x00, 0x00, 0x3f, 0xf8, 0x1f, 0xf8, 0x00, 0x00, 0x07, 0xfe, 0x00, 0x00, 0x0f, 0xfc, 0x00, 
	    0x00, 0x00, 0x00, 0x3f, 0xf8, 0x1f, 0xf8, 0x00, 0x00, 0x07, 0xfe, 0x00, 0x00, 0x0f, 0xfc, 0x00, 
	    0x00, 0x00, 0x00, 0x7f, 0xf8, 0x0f, 0xfc, 0x00, 0x00, 0x0f, 0xfc, 0x00, 0x00, 0x1f, 0xf8, 0x00, 
	    0x00, 0x00, 0x00, 0x7f, 0xfc, 0x0f, 0xfe, 0x00, 0x00, 0x0f, 0xfc, 0x00, 0x00, 0x1f, 0xf8, 0x00, 
	    0x00, 0x00, 0x00, 0xff, 0xfc, 0x07, 0xfe, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x3f, 0xf0, 0x00, 
	    0x00, 0x00, 0x00, 0xff, 0xfe, 0x03, 0xff, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x7f, 0xe0, 0x00, 
	    0x00, 0x00, 0x01, 0xff, 0xfe, 0x03, 0xff, 0x00, 0x00, 0x3f, 0xf0, 0x00, 0x00, 0x7f, 0xe0, 0x00, 
	    0x00, 0x00, 0x03, 0xff, 0xff, 0x01, 0xff, 0x80, 0x00, 0x7f, 0xe0, 0x00, 0x00, 0xff, 0xc0, 0x00, 
	    0x00, 0x00, 0x03, 0xff, 0xff, 0x81, 0xff, 0x80, 0x00, 0x7f, 0xe0, 0x00, 0x00, 0xff, 0xc0, 0x00, 
	    0x00, 0x00, 0x07, 0xff, 0xff, 0x80, 0xff, 0xc0, 0x00, 0xff, 0xc0, 0x00, 0x01, 0xff, 0x80, 0x00, 
	    0x00, 0x00, 0x07, 0xfe, 0xff, 0xc0, 0xff, 0xe0, 0x00, 0xff, 0xc0, 0x00, 0x01, 0xff, 0x80, 0x00, 
	    0x00, 0x00, 0x0f, 0xfc, 0xff, 0xc0, 0x7f, 0xe0, 0x01, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 
	    0x00, 0x00, 0x0f, 0xfc, 0x7f, 0xe0, 0x3f, 0xf0, 0x01, 0xff, 0x80, 0x00, 0x07, 0xfe, 0x00, 0x00, 
	    0x00, 0x00, 0x1f, 0xf8, 0x7f, 0xe0, 0x3f, 0xf0, 0x03, 0xff, 0x00, 0x00, 0x07, 0xfe, 0x00, 0x00, 
	    0x00, 0x00, 0x3f, 0xf0, 0x3f, 0xf0, 0x1f, 0xf8, 0x07, 0xfe, 0x00, 0x00, 0x0f, 0xfc, 0x00, 0x00, 
	    0x00, 0x00, 0x3f, 0xf0, 0x1f, 0xf8, 0x1f, 0xf8, 0x07, 0xfe, 0x00, 0x00, 0x0f, 0xfc, 0x00, 0x00, 
	    0x00, 0x00, 0x7f, 0xe0, 0x1f, 0xf8, 0x0f, 0xfc, 0x0f, 0xfc, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 
	    0x00, 0x00, 0x7f, 0xe0, 0x0f, 0xfc, 0x0f, 0xfe, 0x0f, 0xfc, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 
	    0x00, 0x00, 0xff, 0xc0, 0x0f, 0xfc, 0x07, 0xfe, 0x1f, 0xf8, 0x00, 0x00, 0x3f, 0xf0, 0x00, 0x00, 
	    0x00, 0x00, 0xff, 0xc0, 0x07, 0xfe, 0x03, 0xff, 0x1f, 0xf8, 0x00, 0x00, 0x7f, 0xe0, 0x00, 0x00, 
	    0x00, 0x01, 0xff, 0x80, 0x07, 0xfe, 0x03, 0xff, 0x3f, 0xf0, 0x00, 0x00, 0x7f, 0xe0, 0x00, 0x00, 
	    0x00, 0x03, 0xff, 0x00, 0x03, 0xff, 0x01, 0xff, 0xff, 0xe0, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 
	    0x00, 0x03, 0xff, 0x00, 0x01, 0xff, 0x81, 0xff, 0xff, 0xe0, 0x3f, 0xff, 0xff, 0xc0, 0x00, 0x00, 
	    0x00, 0x07, 0xfe, 0x00, 0x01, 0xff, 0x80, 0xff, 0xff, 0xc0, 0x7f, 0xff, 0xff, 0x80, 0x00, 0x00, 
	    0x00, 0x07, 0xfe, 0x00, 0x00, 0xff, 0xc0, 0x7f, 0xff, 0xc0, 0x7f, 0xff, 0xff, 0x80, 0x00, 0x00, 
	    0x00, 0x0f, 0xfc, 0x00, 0x00, 0xff, 0xc0, 0x7f, 0xff, 0x80, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 
	    0x00, 0x0f, 0xfc, 0x00, 0x00, 0x7f, 0xe0, 0x3f, 0xff, 0x81, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 
	    0x00, 0x1f, 0xf8, 0x00, 0x00, 0x7f, 0xf0, 0x3f, 0xff, 0x01, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 
	    0x00, 0x3f, 0xf0, 0x00, 0x00, 0x3f, 0xf0, 0x1f, 0xfe, 0x03, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 
	    0x00, 0x3f, 0xf0, 0x00, 0x00, 0x1f, 0xf8, 0x1f, 0xfe, 0x03, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 
	    0x00, 0x7f, 0xe0, 0x00, 0x00, 0x1f, 0xf8, 0x0f, 0xfc, 0x07, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 
	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
    };
}

node {
    void evaluate(Context ctx) {
        // The node responds only if there is an input pulse
        if (!isInputDirty<input_UPD>(ctx))
            return;

        // Get a pointer to the `Adafruit_SSD1306` class instance
        auto display = getValue<input_DEV>(ctx);
        display->drawBitmap(0,0,xod_logo_128_64,128,64,1);
        emitValue<output_DONE>(ctx, 1);
    }
}