DMD e caratteri

Ciao ragazzi,

è da qualche giorno che sto giocando con questi pannelli
http://www.aliexpress.com/item/factory-price-p10-semi-outdoor-blue-led-display-module/701118461.html

così ho iniziato a cercare su internet una libreria o qualcosa che mi potesse aiutare a gestirli, e ho trovato questo:

Funziona tutto bene, però adesso, per una questione di visibilità voglio qualcosa di più.
Praticamente vorrei far uscire le scritte con i led spenti e il resto con i led accesi.
Così ho pensato di modificare il font Arial_14 (incluso nella libreria) ridisegnandolo a caratteri invertiti (il nero al posto del bianco)
il problema è che non saprei come riconvertirli in hex (nel formato allegato sotto)

/*
 *
 * Arial_14
 *
 * created with FontCreator
 * written by F. Maximilian Thiele
 *
 * http://www.apetech.de/fontCreator
 * me@apetech.de
 *
 * File Name           : Arial14.h
 * Date                : 02.05.2008
 * Font size in bytes  : 7788
 * Font width          : 10
 * Font height         : 14
 * Font first char     : 32
 * Font last char      : 128
 * Font used chars     : 96
 *
 * The font data are defined as
 *
 * struct _FONT_ {
 *     uint16_t   font_Size_in_Bytes_over_all_included_Size_it_self;
 *     uint8_t    font_Width_in_Pixel_for_fixed_drawing;
 *     uint8_t    font_Height_in_Pixel_for_all_characters;
 *     unit8_t    font_First_Char;
 *     uint8_t    font_Char_Count;
 *
 *     uint8_t    font_Char_Widths[font_Last_Char - font_First_Char +1];
 *                  // for each character the separate width in pixels,
 *                  // characters < 128 have an implicit virtual right empty row
 *
 *     uint8_t    font_data[];
 *                  // bit field of all characters
 */

#include <inttypes.h>
#include <avr/pgmspace.h>

#ifndef ARIAL_14_H
#define ARIAL_14_H

#define ARIAL_14_WIDTH 10
#define ARIAL_14_HEIGHT 14

static uint8_t Arial_14[] PROGMEM = {
    0x1E, 0x6C, // size
    0x0A, // width
    0x0E, // height
    0x20, // first char
    0x60, // char count
    
    // char widths
    0x00, 0x01, 0x03, 0x08, 0x07, 0x0A, 0x08, 0x01, 0x03, 0x03, 
    0x05, 0x07, 0x01, 0x04, 0x01, 0x04, 0x06, 0x03, 0x06, 0x06, 
    0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x01, 0x01, 0x06, 0x06, 
    0x06, 0x06, 0x0D, 0x09, 0x07, 0x08, 0x08, 0x07, 0x07, 0x09, 
    0x07, 0x01, 0x05, 0x08, 0x07, 0x09, 0x07, 0x09, 0x07, 0x09, 
    0x08, 0x07, 0x07, 0x07, 0x09, 0x0D, 0x08, 0x09, 0x08, 0x02, 
    0x04, 0x02, 0x05, 0x08, 0x02, 0x06, 0x06, 0x05, 0x06, 0x06, 
    0x04, 0x06, 0x06, 0x01, 0x02, 0x06, 0x01, 0x09, 0x06, 0x06, 
    0x06, 0x06, 0x04, 0x05, 0x04, 0x06, 0x07, 0x09, 0x06, 0x07, 
    0x06, 0x03, 0x01, 0x03, 0x07, 0x07, 
    
    // font data
    0xFE, 0x14, // 33
    0x1E, 0x00, 0x1E, 0x00, 0x00, 0x00, // 34
    0x90, 0x90, 0xF8, 0x96, 0x90, 0xF8, 0x96, 0x90, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, // 35
    0x18, 0x24, 0x22, 0xFF, 0x42, 0x42, 0x84, 0x08, 0x10, 0x10, 0x3C, 0x10, 0x08, 0x04, // 36
    0x1C, 0x22, 0x22, 0x1C, 0xC0, 0x30, 0x8C, 0x42, 0x40, 0x80, 0x00, 0x00, 0x10, 0x0C, 0x00, 0x00, 0x0C, 0x10, 0x10, 0x0C, // 37
    0x80, 0x5C, 0x22, 0x62, 0x92, 0x0C, 0x80, 0x00, 0x0C, 0x10, 0x10, 0x10, 0x10, 0x0C, 0x08, 0x10, // 38
    0x1E, 0x00, // 39
    0xF0, 0x0C, 0x02, 0x1C, 0x60, 0x80, // 40
---- da 40 a 125 ( per questioni di spazio ho dovuto eliminare il resto)
    0x40, 0x20, 0x20, 0x60, 0x40, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 126
    0xFC, 0x04, 0x04, 0x04, 0x04, 0x04, 0xFC, 0x1C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1C // 127
    
};

#endif

Esiste un qualcosa che mi faciliti la conversione?

Vi spiego cosa avevo pensato di fare
volevo creare uno script che facesse una specie di calcolo.
Ipotizziamo di prendere la lettera A (0x02, 0x0C, 0xF0, 0x80, 0x60, 0x1C,)

siccome tutti i led accesi si indica con 0xFF
avevo pensato di fare 0xFF NAND 0x02 così da ricavarmi il contrario

il problema è che non vengono indicati tutti i punti (quindi anche quelli con i led spenti) ma solo quelli che “che costruiscono la lettera” .

Come posso fare?
Grazie a tutti!

ma non è una semplice NOT bit a bit (vedi bitwise operation)?

per quel che so ogni valore hex rappresenta una colonna, in cui ogni bit è un punto, se 1 acceso se 0 spento. Negando bit a bit ottieni inverti acceso/spento, voilà.

ciao, non penso sia così poichè ho notato che ogni lettera ha una dimensioni diversa.

0x00, 0x80, 0xE0, 0x9C, 0x82, 0x9C, 0xE0, 0x80, 0x00, 0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x18, // 65
    0xFE, 0x22, 0x22, 0x22, 0x22, 0x22, 0xDC, 0x1C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0C, // 66
    0xF8, 0x04, 0x02, 0x02, 0x02, 0x02, 0x04, 0x08, 0x04, 0x08, 0x10, 0x10, 0x10, 0x10, 0x08, 0x04, // 67
    0xFE, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0xF8, 0x1C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x04, // 68

tipo la lettera a è formata da 18 HEX mentre la b da 14HEX e il pannello invece è da 16x32pixel

Questo è il font Arial convertito https://github.com/freetronics/DMD/blob/master/Arial14.h