ELGATO stream deck <- OTAGLE

Post your working scripts, libraries and tools for AHK v1.1 and older
User avatar
mslonik
Posts: 145
Joined: 21 Feb 2019, 04:38
Location: Poland
Contact:

ELGATO stream deck <- OTAGLE

09 Nov 2019, 17:50

Dear Forum,

Let me present you a proof of the following concept: free (as in freedom) solution analogue to commercially available “elgato stream deck” (https://www.elgato.com/en/gaming/stream-deck).

Image

The components:
  1. Hardware:
    i. LCD combined with a touchscreen designed for Raspberry Pi, resolution: 1024 x 600 pixels.
    ii. Acrylic frame with nice brackets.
  2. Software:
    i. Autohotkey.
    ii. Script called OTAGLE as anagram to “elgato” (etymology: “a cat” in Spanish). https://github.com/mslonik/Autohotkey-scripts/tree/master/Otagle.
I've prepared a youtube video about OTAGLE:



About the hardware:
  • made in China; exact link of auction: https://www.aliexpress.com/item/32639615250.html?spm=a2g0s.9042311.0.0.1ec64c4dsXKo0Z
  • 7 ‘’, 1024 x 600 pixels,
  • cost of hardware, including shipping to Europe: € 42,37 (November 2019),
  • time of delivery (China to Central Europe): ~2-3 weeks.
  • cables included; cables:
  • LCD: 1x HDMI cable (the device end: full size HDMI, second end: full size HDMI),
  • touchscreen: 1x USB cable (the device end: micro-B USB, second end: full size USB type A).
Please see the following section comparing “elgato stream deck” and OTAGLE.



About the software
  • Disclaimer: this is just a proof of concept. It is written by a newbie just to illustrate a power of concept. The autohotkey key is not optimized, full of naive hacks.
  • One of the main of hotkey or shortcut drawback is that you need to memorize them somehow. For many people this is high / hard hurdle which discourage / daunt them.
  • User input is tripled; input alternatives:
    • pressing keys of “numeric pad” (numpad) of full size keyboard,
    • mouse and clicking on “button areas” of OTAGLE device,
    • touch of touchscreen “button areas” of OTAGLE.
  • There was prepared a dedicated graphical user interface which resembles:
    • “elgato stream deck” keys area,
    • numeric keypad.
  • The touch screen is divided into “keys area” - 17 + 1 in total, as in “classic” full keyboard numeric pad. One may divide available surface of screen into as wished. I divided it for sake of example into 18 parts.
  • Area of each “key” is divided in: picture and key name.
  • Pictures have been prepared as .svg files and converted into .png files. (Temporary solution!). There are some icon examples included.
  • Each key can be easily linked to any autohotkey script what makes the whole solution quite flexible and scalable.
  • Multilayer organization: one screen calls another; they are oriented in “chains”.
Please see section with more detailed description, including some screenshots.



More detailed description of software

Main screen
Top left button: Numlock toggle.
If ON - acts as ordinary active numlock, what can be valuable on some laptop / notebook keyboard layouts lacking by default of numeric pad.
If OFF - acts as OTAGLE enhanced functionality.

The next 3x keys are used to call (run or switch to) example applications: KeePass, Total Commander and Microsoft Word.

The bottom of a screen acts as auxiliary / informative area. In this example is occupied by some info. Upon clicking redirects to my web page.
Image

The few next screens are used to illustrate flexibility of Autohotkey when used to facilitate working in Microsoft Word. As some know Autohotkey is able to call COM (Component Object Model). Thanks to that VBA (Visual Basic for Applications) and Autohotkey are interchangable. Another words: one can write scripts in Autohotkey which resemble Microsoft Word macros.

Microsoft Word collects some of the most desirable functions into meta-containter called template files. The template files can be seen a a set of the following functions:
  1. Styles: sets of formatting features applicable for fonts / paragraphs / tables or lists.
  2. Building blocks: sets of reusable, user-defined content.
  3. VBA macros.
An example template is attached to OTAGLE software boudle.

Access to above features of Microsoft Word by default GUI is possible, but cumbersome. Especially access to building blocks is kind of nightmare if one wishes to use only mouse. To aid in this task OTAGLE uses some dedicated buttons visible after choosing of Word icon

The buttons and color codes:

Code: Select all

+========+===========================================================+=========================================================+
| Color  |                       Functionality                       |                         Comment                         |
+========+===========================================================+=========================================================+
| Beige  | Inbuilt functions of Microsoft Word                       | Just few of them were prepared.                         |
|        | (available without attaching a template file to document) |                                                         |
+--------+-----------------------------------------------------------+---------------------------------------------------------+
| Yellow | Styles                                                    | Just few of them were prepared to illustrate a concept. |
|        | (available after attaching a template file to document)   |                                                         |
+--------+-----------------------------------------------------------+---------------------------------------------------------+
| Red    | Building blocks                                           | Just few of them were prepared to illustrate a concept. |
|        | (available after attaching a template file to document)   |                                                         |
+--------+-----------------------------------------------------------+---------------------------------------------------------+
| Macros | VBA macros                                                | Just few of them were prepared to illustrate a concept. |
|        | (available after attaching a template file to document)   |                                                         |
+--------+-----------------------------------------------------------+---------------------------------------------------------+
Image


One may conveniently attach an example template to current document just by pressing beige button “Attach a template to his document”. Then use of buttons entitled “Styles”, “Building Blocks” and “Macros” start to make sense.

Example screen available upon pressing of “Building Blocks” button:
Image
And so on and so on...



Comparison of “elgato stream deck” and OTAGLE.

Code: Select all

+=================================+=============================================+===============================================+===============================================+
|             Feature             |            “elgato stream deck”             |                    OTAGLE                     |                    Comment                    |
+=================================+=============================================+===============================================+===============================================+
| Principle of concept            | hidden touch screen with rubberized overlay | apparent touch screen                         | More about hiding of touch screen:            |
|                                 |                                             |                                               | https://youtu.be/9apO--Qpz58                  |
+---------------------------------+---------------------------------------------+-----------------------------------------------+-----------------------------------------------+
| Interface / cables              | 1x USB 2.0                                  | 1x HDMI *                                     | Read more excessive comment below this table. |
|                                 |                                             | +                                             |                                               |
|                                 |                                             | 1x USB (1.0?) *                               |                                               |
+---------------------------------+---------------------------------------------+-----------------------------------------------+-----------------------------------------------+
| Amount of customizable  buttons | 15 **                                       | Unlimited?                                    | In case of OTAGLE one can divide              |
|                                 |                                             | Read more excessive comment below this table. |                                               |
|                                 |                                             |                                               | a screen into any number of buttons           |
|                                 |                                             |                                               | of variable shape.                            |
+---------------------------------+---------------------------------------------+-----------------------------------------------+-----------------------------------------------+
| License of software:            | Proprietary (?)                             | GPL v. 3                                      |                                               |
+---------------------------------+---------------------------------------------+-----------------------------------------------+-----------------------------------------------+
| Availability of software        | free                                        | free                                          |                                               |
+---------------------------------+---------------------------------------------+-----------------------------------------------+-----------------------------------------------+
| Price                           | $128.99 **                                  | $46.14                                        | Read more excessive comment below this table. |
|                                 | (source: amazon.com, Nov. 2019)             | (source: aliexpress.com, Nov. 2019)           |                                               |
+---------------------------------+---------------------------------------------+-----------------------------------------------+-----------------------------------------------+
| Scaleability                    | No                                          | Yes                                           | It’s enough to buy a bigger touchscreen.      |
+---------------------------------+---------------------------------------------+-----------------------------------------------+-----------------------------------------------+
* Interface / cables. One of potential drawback of OTAGLE is permanent occupation of quite precious HDMI port and additionally 1x USB. But is it for sure? Possible options:
  1. Dedicated adapter I:
    input: 1x HDMI, 1x USB
    output: 1x USB-C
    advantage: only one port
    disadvantage: one precious port (HDMI) exchanged to maybe even more precious USB-C port; additional cost of adapter (few $)
    tested?: yes, it works.
  2. Dedicated adapter II:
    input: 1x HDMI
    output: 1x USB 3.0
    advantage: occupied 2x USB ports: 1x 3.0 for graphics, 1x 1.0 or 2.0 or 3.0 for touch
    disadvantage: occupied 2x USB ports: 1x 3.0 for graphics, 1x 1.0 or 2.0 or 3.0 for touch
    tested?: not yet… estimated time of test: week 46 (I’ve already ordered such an adapter)
** Amount of customizable buttons - relationship between amount of buttons and prices:

Code: Select all

+=====================+================================+===============================+============+
| Elgato version name | Amount of customizable buttons |       Approximate price       |   Source   |
|                     |                                | (valid for 9th November 2019) |            |
+=====================+================================+===============================+============+
| Stream deck mini    |                             6  | $79.50                        | amazon.com |
+---------------------+--------------------------------+-------------------------------+------------+
| Stream deck         |                             15 | $128.99                       | amazon.com |
+---------------------+--------------------------------+-------------------------------+------------+
| Stream deck XL      |                             32 | ~ $286                        | ebay.com   |
+---------------------+--------------------------------+-------------------------------+------------+



WHY I decided to prepare this tool

My great adventure with Autohotkey started this year (2019) after watching of youtube film by TaranVH: https://youtu.be/GZEoss4XIgc. I realized that:
  1. I need to change my working habits NOW.
  2. Live get be easier and more enjoyable.
  3. Autohotkey exists from so many years… unnoticed by my poor being.
  4. I’m 43, so this is a right moment to learn script language.
So I’ve developed secondary keyboard based on Arduino Leonardo. Quickly realized that 104 key keyboard is too small amount for my needs and my desk started to be cluttered with additional hardware. What I really need is a “variable content keyboard”. The perfect solution would be one keyboard with context switch. After pressing of this switch pictures under keyboard keys should change.

This perfect solution doesn’t exist yet, but some attempts have been existed or are planned. Among them I mention here the famous Maximus Optimus keyboard and… “elgato stream deck”, which can be used as “variable content” input device.

I’ve found “elgato stream deck” unacceptable expensive, complicated, closed and quickly realized that with help of Autohotkey and autohotkey community I can prepare something cheaper and more flexible. And here we are.




Call for help

I have so little time that even preparation of this simple / buggy script took me a while… (more than 3 months actually). I’d really appreciate if somebody joins me. If not, I’ll continue my efforts solo, with slow pace.

To do:
  1. Software:
    • Support for .svg files; I have installed in my system Qt-based app making possible display of .svg pictures in File Explorer; I wonder if this concept can’t be used somehow with AHK, e.g. .dll calls… to be explored.
    • Configuration file (e.g. turn on / off sounds)
    • Menu
    • ...
  2. Hardware:
  3. Voice speaker attached under / beside a touch screen.
  4. Small electric under a screen like in a phone to mimic tactility.
  5. Flexible brackets under a frame.



Acknowledgements
  1. Taran van Hemert (https://youtu.be/GZEoss4XIgc) for inspiring me.
  2. Autohotkey community, especially members of this forum for patience to my sometimes embarrassing questions.
Thank you for reading and sorry for my English (this is not my mother’s language).
mslonik
Last edited by mslonik on 16 Nov 2019, 15:13, edited 1 time in total.
User avatar
mslonik
Posts: 145
Joined: 21 Feb 2019, 04:38
Location: Poland
Contact:

Re: ELGATO stream deck <- OTAGLE

11 Nov 2019, 09:00

I've prepared a youtube video about OTAGLE:
https://youtu.be/5zKbTOXBqEs

It was added also to above post.

My scripts on this forum: Hotstrings Diacritic O T A G L E
Please become my patreon: Patreon👍
Written in AutoHotkey text replacement tool: Hotstrings.technology
Courses on AutoHotkey :ugeek:
User avatar
Chunjee
Posts: 1510
Joined: 18 Apr 2014, 19:05
Contact:

Re: ELGATO stream deck <- OTAGLE

12 Nov 2019, 20:59

I think this is very cool. I'm going to see if it works well as a podcast soundboard.


Thank you!
r2997790
Posts: 71
Joined: 02 Feb 2017, 02:46

Re: ELGATO stream deck <- OTAGLE

17 Nov 2019, 17:57

Great post. Nicely done.

I did a similar proof of concept a few months ago a slightly different way using the space extender app to mirror my PC on to Mobile devices and run a full screen touch screen menu on the mobile devices to launch apps on the primary PC.
User avatar
elModo7
Posts: 217
Joined: 01 Sep 2017, 02:38
Location: Spain
Contact:

Re: ELGATO stream deck <- OTAGLE

21 Nov 2019, 08:12

I did a stream deck clone long time ago using php (android - windows) and rewrote the code last year this time using pure sockets (anything - windows).
This is the ui for the desktop tester I called the app Nova Macros with a testing period of 6 months:
Image
Maybe I continue it some day, I now use a second keyboard as I don't use more than 50 macros.
User avatar
mslonik
Posts: 145
Joined: 21 Feb 2019, 04:38
Location: Poland
Contact:

Re: ELGATO stream deck <- OTAGLE

13 Jun 2020, 15:35

Dear Forum,

Let's make PC (personal computer) personal again!

Next version of Otagle (O T A G L E) ver. 2.0 is somehow ready.
OtagleBigLogo.png
OtagleBigLogo.png (21.2 KiB) Viewed 3805 times
It took me over 6 months to completely rewrite the AutoHotkey code.

My goal was this time to make it more flexible: enable as many buttons as one would like to have. This is on screen keyboard with configurable set of AutoHotkey scripts attached to each button. The basic matrix layout is configurable with the Wizard, so do not require event touching the code. But if somebody want to make it more powerful, feel free to attach your own scripts.

The ultimate goal is to eliminate hotkeys, as some people do not like to use multiple shortcuts to call application / system functions. With multi layer on screen keyboard one can prepare personal cockpit.

There are numerous achievements also in the hardware. I've successfully deployed IR (infra red) frames / overlays, which can be attached to almost any screen. Thanks to these overlays, which are fairly cheap, one can convert its home / office monitor into touch screen. This opens a whole new world for AutoHotkey users!

Nowadays O T A G L E is used at the place where I work by a group of 4 users, mainly for authoring / editing of Microsoft Word / Sharepoint documents.

What is still missing / will be added with the next release(s):
  • 1. I'd like to have SVG icons / pictures available & scalable. I know it's possible, but don't know yet how to do that. Maybe somebody will help me at least with the road map?
    2. More functions in the menu.
    3. Drag & Drop with a mouse.
    4. Not only touch ready, but also keyboard (→, ←, ↓, ↑) ready.
    5. Your suggestion here: ...
Questions and Answers article about O T A G L E.
Short youtube.com film presenting how does it look like.

The code as always available at Github with extended example and basic example.

Again, thank you all for your support, selfless and competent help.

Kind regards, mslonik

My scripts on this forum: Hotstrings Diacritic O T A G L E
Please become my patreon: Patreon👍
Written in AutoHotkey text replacement tool: Hotstrings.technology
Courses on AutoHotkey :ugeek:

Return to “Scripts and Functions (v1)”

Who is online

Users browsing this forum: No registered users and 106 guests