Built around an MXO GLK display!

LK/ELK/VK/PK/OK/MX/GLK/EGLK/GVK/GLT Series

Moderators: Henry, Mods

Post Reply
niston
LCD Geek
Posts: 24
Joined: Thu Sep 25, 2014 4:55 pm

Built around an MXO GLK display!

Post by niston » Sat Oct 11, 2014 7:30 am

I'd like to present to you my little embedded project, built around a GLK series display:

Image

More info: http://niston.wordpress.com/2014/10/10/ ... tream-one/
The Firmware: http://sirp.codeplex.com/

Clark
Matrix Orbital
Matrix Orbital
Posts: 861
Joined: Fri Aug 17, 2007 10:58 am
Location: Matrix Orbital
Contact:

Re: Built around an MXO GLK display!

Post by Clark » Tue Oct 14, 2014 1:01 pm

Looks great, thanks for sharing Chris!

I'm looking forward to taking your code for a spin.

Cheers,
Troy
Troy Clark
Design & Development
Matrix Orbital

niston
LCD Geek
Posts: 24
Joined: Thu Sep 25, 2014 4:55 pm

Re: Built around an MXO GLK display!

Post by niston » Tue Oct 14, 2014 3:12 pm

Troy,

I added the LCD fonts I'm using to codeplex. You may wish to program your LCD with these font ids:

Code: Select all

        public const short FONT_MONO_DEFAULT = 1;           // default monospace font 
        public const short FONT_PROP_LARGE = 2;             // default large proportional font 
        public const short FONT_PROP_SMALL = 3;             // font "clean"
        public const short FONT_PROP_LCD = 4;               // font "7 Segment 22pt"
        public const short FONT_PROP_XLARGE = 5;            // font "Arial Rounded MT 46pt"
        public const short FONT_MONO_AUDIOSYMBOLS = 6;      // font "audiosymbols 6pt"
        public const short FONT_PROP_SMALL_INVERTED = 7;    // this one is fuxx0r'd
Also expanded the menu system with ObservableMenuItem, which means we can create a Menu item in any Screen - or any other Part of the Program, and react to changes on the menu item's value (user interaction through ScrMainMenu) by setting up the YourObservableMenuItem.ValueChanged += YourObservableMenuItem_ValueChanged event handler. To demonstrate, I moved the Bool Test Menu Item into the Director so it can Enable/Disable the topmost LED.

I think the menu system's already pretty nifty. Might even grow into a nice framework for embedded LCD'ing. Also related to the Display, there's a C# API (which, so far is incomplete but does the specific job!) to the GLK display. Someone will find this handy, I concur. Motivate me and I shall complete it :P

Clark
Matrix Orbital
Matrix Orbital
Posts: 861
Joined: Fri Aug 17, 2007 10:58 am
Location: Matrix Orbital
Contact:

Re: Built around an MXO GLK display!

Post by Clark » Thu Oct 16, 2014 4:38 pm

Chris,

Thanks again, after uploading all of the fonts to my unit and throwing a copy of bass.dll and bassmix.dll into the working directory, as per this thread, I'm up and running!

[thumbnail]http://www.matrixorbital.ca/manuals/ELK ... /photo.JPG[/thumbnail]

The interface looks great, the piezo beep on keypress is a great touch (you can set that up on the unit with 254/182 if you like), and the menu is nice and clean. I was hoping the up/down buttons might control volume, and it might be neat to add a system screen to the rotation to show some temps/CPU info, but I understand with that in mind it is extremely useable already.

Cheers,
Troy
Troy Clark
Design & Development
Matrix Orbital

niston
LCD Geek
Posts: 24
Joined: Thu Sep 25, 2014 4:55 pm

Re: Built around an MXO GLK display!

Post by niston » Thu Oct 16, 2014 7:23 pm

Glad you got it to work :)

Concerning the piezo beep: As you might have noticed, a beep is only issued when the command (user interaction) is actually understood by the software, and can be executed in the current state. That's my reasoning behind not using the built-in beep function.

As for volume control: That's absolutely on my to-do list, with exactly the up/down buttons. I will have to change keypad handling from firing keypress events only, to firing key down/up events. Also, I'll need to implement both soft- and hardware volume. Software for certain USB devices and others that do not implement any hardware volume control. Hardware for devices that support it - as this offers better sound quality, especially with very low volume levels.

I keep track of these things on codeplex' issue page (http://sirp.codeplex.com/workitem/list/basic).

Also, it's easy to bring in more display functionality by adding a new ScrSomething class (in sirp.subsystems.ui.screens) that implements the IScreen interface. You're welcome to hack something up, and I'll gladly assist you in doing so :) ScrTemplate is a basic skeleton for such a Screen.

Clark
Matrix Orbital
Matrix Orbital
Posts: 861
Joined: Fri Aug 17, 2007 10:58 am
Location: Matrix Orbital
Contact:

Re: Built around an MXO GLK display!

Post by Clark » Fri Oct 17, 2014 2:37 pm

Chris,

I did notice your code, and thought the beep may have been for diagnostic purposes, just wanted to let you know the command is there if you want it.

I see volume is on your to-do list, along with a few other interesting features.

I'll take a look at your ScrSomething class when I get a chance, right now the unit is working perfectly so I'm reluctant to muck about.

Cheers,
Troy
Troy Clark
Design & Development
Matrix Orbital

Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests