Neomatrix custom char

Status
Not open for further replies.

2n3055

Well-known member
Hello,

I'm using the matrixText from Adafruit and it works fine. My display is 2 pieces of 8x8. But I would like to add some custom char. Idea is to replace some special chars with mine.

Unfortunately I don't know the name of the default font char and found nothing here: /Users/abc/Documents/Arduino/libraries/Arduino-Filters/mock/Libraries/Adafruit_GFX

Do you have any idea ?

Thanks

Code:
// Adafruit_NeoMatrix example for single NeoPixel Shield.
// Scrolls 'Howdy' across the matrix in a portrait (vertical) orientation.

#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>
#ifndef PSTR
 #define PSTR // Make Arduino Due happy
#endif

#define PIN 6

// MATRIX DECLARATION:
// Parameter 1 = width of NeoPixel matrix
// Parameter 2 = height of matrix
// Parameter 3 = pin number (most are valid)
// Parameter 4 = matrix layout flags, add together as needed:
//   NEO_MATRIX_TOP, NEO_MATRIX_BOTTOM, NEO_MATRIX_LEFT, NEO_MATRIX_RIGHT:
//     Position of the FIRST LED in the matrix; pick two, e.g.
//     NEO_MATRIX_TOP + NEO_MATRIX_LEFT for the top-left corner.
//   NEO_MATRIX_ROWS, NEO_MATRIX_COLUMNS: LEDs are arranged in horizontal
//     rows or in vertical columns, respectively; pick one or the other.
//   NEO_MATRIX_PROGRESSIVE, NEO_MATRIX_ZIGZAG: all rows/columns proceed
//     in the same order, or alternate lines reverse direction; pick one.
//   See example below for these values in action.
// Parameter 5 = pixel type flags, add together as needed:
//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
//   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
//   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
//   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)


// Example for NeoPixel Shield.  In this application we'd like to use it
// as a 5x8 tall matrix, with the USB port positioned at the top of the
// Arduino.  When held that way, the first pixel is at the top right, and
// lines are arranged in columns, progressive order.  The shield uses
// 800 KHz (v2) pixels that expect GRB color data.
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(5, 8, PIN,
  NEO_MATRIX_TOP     + NEO_MATRIX_RIGHT +
  NEO_MATRIX_COLUMNS + NEO_MATRIX_PROGRESSIVE,
  NEO_GRB            + NEO_KHZ800);

const uint16_t colors[] = {
  matrix.Color(255, 0, 0), matrix.Color(0, 255, 0), matrix.Color(0, 0, 255) };

void setup() {
  matrix.begin();
  matrix.setTextWrap(false);
  matrix.setBrightness(40);
  matrix.setTextColor(colors[0]);
}

int x    = matrix.width();
int pass = 0;

void loop() {
  matrix.fillScreen(0);
  matrix.setCursor(x, 0);
  matrix.print(F("Howdy"));
  if(--x < -36) {
    x = matrix.width();
    if(++pass >= 3) pass = 0;
    matrix.setTextColor(colors[pass]);
  }
  matrix.show();
  delay(100);
}
 
Last edited by a moderator:
The fonts used for NeoMatrix displays can be found here: C:\Users\abc\Documents\Arduino\Libraries\Adafruit_GFX\Fonts.
There is a matrix.setFont() function to select a specific font.
Here is more useful info on using these fonts.
And on the Adafruit GFX GitHub page > Useful Resources, there is info on how to customize fonts.

Paul
 
Thanks PaulS,
You have right with matrix.setFont() you can change the font. But as you can see on the example there is no matrix.setFont(). Probabaly a default font is used. But wich one ?

I already read those infos, it's a bit work to create a font. And because I need to add only 5-10 special chars it's probably more easy to modified the existing library. and chage the chars < 0x20

What do you think ?

Thanks
 
Probabaly a default font is used. But wich one ?
I couldn't find that either...perhaps just give it a try with the matrix.setFont() function and see how the different fonts look on the display?

it's probably more easy to modified the existing library
Yes, agree, that's what I would do as well.

Paul
 
Status
Not open for further replies.
Back
Top