Our new official repo is on github
LCD Smartie version 5.6 is released!
Download it now: https://github.com/LCD-Smartie/LCDSmartie/releases

BigFonts & FontCreator

Announcements of new plugins or updates.

Moderators: _X7JAY7X_, caesar, IFR, mattcro, limbo

Post Reply
hurley
Posts: 46
Joined: May 26th, 2011, 8:03 am

BigFonts & FontCreator

Post by hurley »

LCD Smartie_BigFonts Plugin_Title.png
BigFonts Plugin v0.1.5 alpha 10-05-2014

It's been a long time in the works but it's finally here.

BigFonts comes with 27 built in fonts including the original BigNum font series and can also use custom fonts saved in a generic xml format.
This plugin is also able to use any characters from your screen's CGROM table that may be useful in a custom font, like the block character for example.
This technique allows you to free up some of the 8 custom character spaces for other uses or use more than 8 custom characters in your font! (Disabled by default. See Using the CGROM Table below)

Setup is kept as simple as possible: The input text (or output from another plugin) is only needed on the first line, but as I like flexibility as well there are some extra options that can be used.

Built in Fonts:
LCD Smartie_BigFonts Plugin_Font Table.png
----------------------------------------------------------------------------------------------------------------------------------
Download:
BigFonts Plugin_v0.1.5a.zip
----------------------------------------------------------------------------------------------------------------------------------
Minimum Requirements:
- LCD Smartie 5.3 beta 3+ (for dotNET plugin support) http://lcdsmartie.sourceforge.net/smartied.htm
- dotNET Framework 2.0+
----------------------------------------------------------------------------------------------------------------------------------
Installation:
- Extract BigFonts.dll, BigFonts.ini, CGROM.xml and the Fonts Folder to LCD Smartie's plugin directory.
----------------------------------------------------------------------------------------------------------------------------------
BigFonts Plugin Setup:

Function 1-4: Is used for the line number.

Param1: Is used to select a font. (if empty the default font Blade is used)
* Internal fonts can be selected by name or by internal index.
* Custom font files are prefixed with # and can be selected by name or by alphabetical index in the font directory.
(note: The file extension .xml is not required)
* Demo Modes: Demo or #Demo loop through all the internal/custom fonts at your screen refresh interval.
(note: Some fonts are only able to display 2 unique characters/numbers at a time, so it's best to just use 2 digits for param2 in demo modes)

Param2: This is the text or data to display. You can call another plugin here to return temperature data or the time for example.
* param2 options: These can be included in any order and are case insensitive:

Code: Select all

#Font(FontnameOrIndex)...........................Override the font that is set in Param1.
#NoNums..........................................Don't apply font to numbers.
#NoAlpha.........................................Don't apply font to letters.
#NoSymb..........................................Don't apply font to symbols.
[[ignore this text]].............................Don't apply font to text between double square brackets.
#Line1(line1 text)#Line3(line3 text).............Offset two groups of text. 
 (eg: use a 2 line high font on lines 1/2 and 3/4 of a 4 line display)
#NoRom...........................................Disable mapping characters to your CGROM table.
 (fonts which use cgrom characters may not display properly on LCD Smarties on-screen display)
----------------------------------------------------------------------------------------------------------------------------------
Examples:

Code: Select all

$dll(BigFonts,1,Blade,text to display)
$dll(BigFonts,2,,)

$dll(BigFonts,1,#Fourty3Wide,text to display)
$dll(BigFonts,2,,)
$dll(BigFonts,3,,)
$dll(BigFonts,4,,)

$dll(BigFonts,1,#8,0123456789)
$dll(BigFonts,2,,)

$dll(BigFonts,1,Borg,[[Cpu Temp: ]]$dll(CoreTemp,1,,))
$dll(BigFonts,2,,)

$dll(BigFonts,1,Blade,#NoAlpha#NoSymb$dll(hwinfo,1,Core Max,))
$dll(BigFonts,2,,)

$dll(BigFonts,1,Blade,#Line1(HELLO)#Line3(WORLD))
$dll(BigFonts,2,,)
$dll(BigFonts,3,,)
$dll(BigFonts,4,,)

$dll(BigFonts,1,Demo,35)
$dll(BigFonts,2,,)
$dll(BigFonts,3,,)
$dll(BigFonts,4,,)
----------------------------------------------------------------------------------------------------------------------------------
Config File: BigFonts.ini

Code: Select all

Enable Alpha characters...........True          Enable/Disable globally for all fonts
Enable Numeric characters.........True          as above
Enable Symbol characters..........True          as above
Enable CGROM table................False         Enable using cgrom map file for font characters
Replace Undefined Degree with o...True          Replace degree with lower case o unless degree is defined in font
Custom char overflow warning......(!)           Prefix if text uses more than 8 custom characters
Dont apply font to text between:
 > StartMarker....................[[            Set the start/end markers to use here
 > EndMarker......................]]
----------------------------------------------------------------------------------------------------------------------------------
Using the CGROM Table:

** Disabled by default. To enable change the setting: Enable CGROM table to True in BigFonts.ini
** Note: At present the only included font which uses more than 8 custom chars is Fourty3WideRom.
** Note: Regardless of CGROM Table Enabled setting, all alpha-numeric characters (32-122) used in a font are automatically mapped to the cgrom table.

This is an advanced feature that allows characters in a font to map directly to existing characters in your screen's CGROM table.
Most CGROM's have some useful characters (at least the block char) which can be used in custom fonts.
Using this feature allows you to free up some of the 8 custom characters or use more than 8 custom characters in your font.

To use this feature a CGROM mapping file (CGROM.xml) which matches your screens rom table must be provided in LCD Smartie's plugin directory.

The BigFonts plugin download includes a CGROM.xml for the generic HD44780 standard screens which may or may not match your hardware.
If you know the controller brand/model number used in your screen or have a datasheet for your hardware, you can export an existing or edit/create a new CGROM.xml from the FontCreator app.

The FontCreator application includes rom tables for the following hardware:
* CrystalFontz (533/633/632/634/631/635/735)
* HD44780_Generic/HD44780U
* Matrix Orbital (Euro/Jap)
* NT3881D
* S1D13700
* SPLC780D
* SSD1311 (OLED)
* ST7066U


The very common JHD-162 / JHD-202 LCD screens from eBay and elsewhere seem to use ST7066U controller and rom table 0A which is identical to the HD44780_Generic CGROM.xml included with BigFonts plugin.

If you need any help with this feature please post to this thread.

:D hurley.
You do not have the required permissions to view the files attached to this post.
Last edited by hurley on May 14th, 2014, 6:24 pm, edited 6 times in total.

hurley
Posts: 46
Joined: May 26th, 2011, 8:03 am

Re: BigFonts & FontCreator

Post by hurley »

FontCreator v0.1.5 alpha 10-05-2014
FontCreator_Demo.png
FontCreator makes it quick and easy to create, modify and share custom fonts for use with BigFonts plugin.

This is my first publicly released Windows application. It's taken a lot of work and learning but I hope the community finds it useful.
----------------------------------------------------------------------------------------------------------------------------------
Download:
FontCreator_v0.1.5a.zip
----------------------------------------------------------------------------------------------------------------------------------
Minimum Requirements:
- dotNET Framework 2.0+
----------------------------------------------------------------------------------------------------------------------------------
Installation:
- Just extract FontCreator.exe and FontCreator.ini to LCD Smartie's plugins folder.
----------------------------------------------------------------------------------------------------------------------------------
Brief User Guide:

This Alpha release version has no help file as yet and is missing an undo/redo function planned for the next release, but it's pretty easy to navigate and all the buttons are tool-tipped.
Open up a font from LCD Smartie/plugins/Fonts or have a go at making a new font.


The Top Panel is a preview of the entire font. You can use the Preview Text box to display any text you want.
(You can save the custom preview text by clicking the drop down button.)

The Left Panel Custom Characters shows all the custom chars that are used in your font, including those which can be mapped to your selected CGROM table. Try to keep it at 8 or less.
(You can drag chars from here to either editor panel.)

The Center Panel Zoomed char editor has some extra editing tools and you can drag the character from here to the left or right using the cross-hair.

The Right Panel is the main editing window which displays the selected character.

The Top Toolbar from left to right is: Font Height/Width setting, Font Name, Font Author Credits, LCD Screen Simulation, Show/Hide Preview Text and the text editing box, and Zoom Out/Norm/In of the font preview.
You can right click the font preview and save it as a png/bmp. Use this to make an image of your font if posting it to the forum.

There are several included Colour Themes as well as a Colour Settings menu to choose your own colours and save as a User Theme.
The Character Filter menu allows you to Show/Hide different character types while editing your font.

----------------------------------------------------------------------------------------------------------------------------------
The CGROM Table tab in the left panel shows the selected cgrom table which should match the one used in your screen.
Click the tab again to show the selection drop down and choose your screen's controller hardware.

If your screen hardware or table isn't in the list of presets you can create a new CGROM table from the datasheet for your screen (make sure to tick the Enable CGROM Editing menu option first).
With right click you can set a character position to Normal, CGRAM (the first 16 positions) or Unused (Blank in the cgrom table).
To edit, create the character in the zoomed editor and drag to position in the cgrom table.

CGROM tables can also be Imported/Exported from the File menu.

Note: The CGROM table has no effect on the font files that are saved, it's used to work out which characters will use up some of the 8 spaces available on your screen hardware and which can be mapped to the cgrom table as freebies.

Please post to this forum if you need more help with this.

:D hurley
You do not have the required permissions to view the files attached to this post.
Last edited by hurley on May 13th, 2014, 7:48 am, edited 4 times in total.

hurley
Posts: 46
Joined: May 26th, 2011, 8:03 am

Re: BigFonts & FontCreator

Post by hurley »

User Font Contributions:
----------------------------------------------------------------------------------------------------------------------------------
21_Phi_Big_Font.png
Phi_Big_Font - BigFonts first user font; contributed by Liudr - http://liudr.wordpress.com
This is a full Alpha Numeric font and great work by Liudr who also writes libraries for Arduino. Check out his blog!
This one is included with BigFonts download. Access by name Phi_Big_Font or index 21.

----------------------------------------------------------------------------------------------------------------------------------
22_Phi_Super_Font.png
Phi_Super_Font - This one is really HUGE, probably needs a 4x40 screen, but it's big advantage is the entire font only uses 3 custom characters.
(Only 2 if using your cgrom table mapping). Thanks again to Liudr - http://liudr.wordpress.com
Included with BigFonts download. Access by name Phi_Super_Font or index 22.

----------------------------------------------------------------------------------------------------------------------------------
Mepo_Logo.png
MePo Logo - Not a font as such but this is the MediaPortal Logo which I assign to the tilde character in my font.
Copy the pixels from the picture into FontCreator or copy n paste the code below into your preferred font.

Code: Select all

  <char value="~" enabled="1">
    <line1 column1="07,15,28,24,24,24,24,24" column2="19,23,14,12,12,12,12,12" column3="25,29,14,06,06,06,06,06" column4="28,30,07,03,03,03,03,07" />
    <line2 column1="24,24,24,24,24,28,15,07" column2="12,12,12,12,12,28,27,19" column3="07,07,06,06,06,14,28,24" column4="30,28,00,00,00,00,00,00" />
  </char>
----------------------------------------------------------------------------------------------------------------------------------
You do not have the required permissions to view the files attached to this post.

Post Reply