--- tools/font/bdf2u8g/bdf2u8g.c	2017-04-08 01:04:48.000000000 -0400
+++ tools/font/bdf2u8g/bdf2u8g.c	2018-02-24 17:24:26.368926703 -0500
@@ -175,9 +175,9 @@
   for( i = 0; i < data_pos; i++ )
   {
 #ifdef BDF2U8G_COMPACT_OUTPUT
-    fprintf(out_fp, "%d", data_buf[i]);
+    fprintf(out_fp, "0x%02x", data_buf[i]);
 #else
-    fprintf(out_fp, "%3d", data_buf[i]);
+    fprintf(out_fp, "0x%02x", data_buf[i]);
 #endif
     if ( i+1 != data_pos )
       fprintf(out_fp, ",");
@@ -484,7 +484,8 @@
 int bdf_char_max_y;
 int bdf_char_min_y;
 
-int bdf_delta_x;           /* DWIDTH arg 1 */
+int bdf_delta_x_default = -1;
+int bdf_delta_x = -1;           /* DWIDTH arg 1 */
 int bdf_delta_max_x;
 int bdf_delta_min_x;
 int bdf_delta_y;           /* DWIDTH arg 2 */
@@ -1095,6 +1096,22 @@
       bdf_char_ascent = bdf_char_height + bdf_char_y;
       //printf("h:%d w:%d ascent: %d\n", bdf_char_height, bdf_char_width, bdf_char_ascent);
     }
+    else if ( strcmp(p_buf, "CHARS") == 0 )
+    {
+        if (bdf_delta_x < 0) {
+            bdf_delta_x = 0;
+        }
+        if (bdf_delta_x_default < 0) {
+            bdf_delta_x_default = bdf_delta_x;
+        }
+    }
+    else if ( strcmp(p_buf, "STARTCHAR") == 0 )
+    {
+        if (bdf_delta_x_default < 0) {
+            bdf_delta_x_default = 0;
+        }
+        bdf_delta_x = bdf_delta_x_default;
+    }
     else if ( strcmp(p_buf, "BITMAP") == 0 )
     {
       bdf_line_state = BDF_LINE_STATE_BITMAP;