Javelin: Difference between revisions
(Created page with "Javelin is an embedded steno engine that can run in a keyboard's firmware. This allows the keyboard to directly translate the strokes to text, thereby bypassing the need to install Plover (or anything) on the host machine. All the dictionaries and translation occurs in the keyboard itself. Javelin allows for "plug and play stenography". It is compatible with the following hobbyist steno writers: * StarBoard * StenoKeyboards Asterisk * StenoKeyboards Polyglot * StenoKeyb...") |
No edit summary |
||
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Javelin is | [https://lim.au/#/software/javelin-steno Javelin] is a keyboard firmware that features a steno engine. This allows Javelin compatible devices to translate directly from the keys pressed to textual output. This bypasses the need to install Plover (or anything) on the host machine. All the translations are contained within the keyboard itself ("plug and play stenography"). It is compatible with several [[Choosing a hobbyist steno writer#Table summary|commercially available hobbyist writers]]. | ||
== Updating your writer to use Javelin == | |||
To use Javelin on your hobbyist steno writer, you will need to update the firmware. The general process involves downloading a Javelin firmware file, and copying it to your device. | |||
Javelin is | The following video goes through this process at 1:06: | ||
<youtube>nLBu5DZI4fY</youtube> | |||
{{Info|text=You will need a computer running a desktop OS (e.g. Linux, macOS, Windows) to update your steno writer's firmware. This will not work on an Android or iOS device.}} | |||
=== 1. Select your steno writer === | |||
Firmware files can be downloaded from the [https://lim.au/#/software/javelin-steno Javelin firmware builder]. Before proceeding, make sure the correct device is selected. | |||
[[File:Javelin firmware builder device.png|center|thumb|420x420px|Make sure you have selected the right device before proceeding.]] | |||
=== 2. Download a firmware file === | |||
==== 2a. New users ==== | |||
For new users, download either the <code>Default Plover</code> or <code>Default Lapwing</code> files depending on which theory you want to use. | |||
[[File:Javelin Firmware Builder Default.png|center|thumb|420x420px|Download either <code>Default Plover</code> or <code>Default Lapwing</code>.]] | |||
==== 2b. Advanced users ==== | |||
If you wish to customize your Javelin configuration, select the options you want, and download either incremental or standalone depending on your needs. | |||
=== 3. Copying the file to your device === | |||
The instructions to update your device differ depending on the board you are using; make sure you have selected the right board as outlined in step 1. You can find instructions to update your file's firmware at the bottom of the page. In general, most boards require you to hold down a button while plugging it in, and copying the firmware file you downloaded (in step 2) to the new drive. | |||
== Device compatibility == | |||
Javelin works on any modern device that accepts USB keyboard input. This includes smartphones, Chromebooks, tablets, etc. | |||
=== Apple iPhones === | |||
Javelin works out of the box with USB-C iPhones. For iPhones with a lightning connector, a camera kit is required. | |||
== Features == | |||
This section covers some noteworthy features of Javelin. If you wish to view all of the available settings and features, have a look through the [https://lim.au/#/software/javelin-steno Javelin firmware builder]. You may have to select <code>Show expert options</code> to find the option you are looking for. | |||
=== Embedded steno engine === | |||
==== Compatible host devices ==== | |||
Javelin can translate steno strokes to text in exactly the same way that Plover does. However, as Javelin's steno engine is embedded in the keyboard firmware itself, no extra software is required on the host device. Javelin simply sends the translations as if they were coming from a regular keyboard. Therefore, Javelin is compatible with any device that accepts regular USB keyboard input. | |||
[[File:Javelin embedded steno engine on Pixel 4.mp4|center|thumb|508x508px|Demo of Javelin's embedded steno engine on an Android phone.]] | |||
==== Dictionary management ==== | |||
Adding your own arbitrary JSON dictionaries is fully supported. Using the web tools or custom defined outlines, it is possible to temporarily disable dictionaries. | |||
[[File:Javelin dictionaries section.png|center|thumb|1065x1065px|Several programmatic dictionaries are implemented in Javelin, and arbitrary JSON dictionaries can be added.]] | |||
Compared to Plover, however, it is not possible to add your own programmatic dictionaries (such as python dictionaries) using the firmware builder. Some popular python dictionaries have been implemented in Javelin, such as Emily's symbols and Jeff's phrasing. However, there is no officially documented way to write a programmatic dictionary for Javelin (though it is technically possible). | |||
==== Non-WSI layouts ==== | |||
It is not currently possible to use a non-WSI layout with Javelin (this may change in the future). | |||
==== Unicode characters ==== | |||
Javelin supports several methods to write Unicode characters, which are all dependent on the host device. Using the settings in the web tools, the Unicode mode can be set to allow writing such characters on Linux, macOS, and Windows. Using the firmware builder, the default Unicode mode can be specified. | |||
[[File:Javelin keyboard emulation section.png|center|thumb|1021x1021px|All the methods that Javelin supports to write Unicode characters.]] | |||
==== Key map customization ==== | |||
Like with Plover, the key map can be set in Javelin to allow for tweaks such as top `S` number key, or changing the placement of the thumber keys on various boards. | |||
[[File:Javelin key map section.png|center|thumb|1009x1009px|Javelin supports setting an arbitrary key map.]] | |||
==== Adding translations ==== | |||
Using the web tools or a defined outline, it is possible to add translations to a user dictionary just like in Plover. | |||
[[File:Adding translation with Javelin's TUI.mp4|center|thumb|562x562px|On-the-fly translations can be added with Javelin. In this case, <nowiki><code>POEUT</code></nowiki> is a free outline, and "potato" is being fingerspelled for the translation.]] | |||
==== First-up and chord repeat ==== | |||
Using the firmware builder, it is trivial to add first-up chord send or chord repeat functionality to your board. | |||
[[File:Javelin first up-chord repeat section.png|center|thumb|1015x1015px|Javelin makes it very easy to add first-up/chord repeat compared to other keyboard firmwares.]] | |||
=== Layout editor === | |||
Javelin has a GUI for editing the layout of your keyboard. It is a very powerful tool, allowing you to customize any aspect of the layout. | |||
=== Web tools === | |||
Javelin provides a set of web tools for learning aids, and tweaking settings. | |||
==== Cannot connect to device on Linux ==== | |||
If you see <code>Error connecting</code> while trying to connect to your device with the web tools, you need to add a udev rule. Create a file at <code>/etc/udev/rules.d/99-keyboard-javelin.rules</code> with the following content: | |||
<pre>SUBSYSTEM=="hidraw", ATTRS{idVendor}=="9000", ATTRS{idProduct}=="400d", MODE="0666"</pre>After creating the file, reload the rule with the following commands:<pre>sudo udevadm control --reload-rules | |||
sudo udevadm trigger</pre>{{Info|text=If this does not work, try replacing <code>9000</code> with <code>feed</code>.}} | |||
=== Compatibility with existing steno protocols === | |||
Instead of outputting regular text, Javelin is also capable of outputting steno protocols such as Gemini PR or Plover HID. The Default Plover and Default Lapwing firmware files already have such layers configured. This is useful if you plan to still use Plover. |
Latest revision as of 17:11, 7 August 2024
Javelin is a keyboard firmware that features a steno engine. This allows Javelin compatible devices to translate directly from the keys pressed to textual output. This bypasses the need to install Plover (or anything) on the host machine. All the translations are contained within the keyboard itself ("plug and play stenography"). It is compatible with several commercially available hobbyist writers.
Updating your writer to use Javelin
To use Javelin on your hobbyist steno writer, you will need to update the firmware. The general process involves downloading a Javelin firmware file, and copying it to your device.
The following video goes through this process at 1:06:
You will need a computer running a desktop OS (e.g. Linux, macOS, Windows) to update your steno writer's firmware. This will not work on an Android or iOS device.
1. Select your steno writer
Firmware files can be downloaded from the Javelin firmware builder. Before proceeding, make sure the correct device is selected.
2. Download a firmware file
2a. New users
For new users, download either the Default Plover
or Default Lapwing
files depending on which theory you want to use.
2b. Advanced users
If you wish to customize your Javelin configuration, select the options you want, and download either incremental or standalone depending on your needs.
3. Copying the file to your device
The instructions to update your device differ depending on the board you are using; make sure you have selected the right board as outlined in step 1. You can find instructions to update your file's firmware at the bottom of the page. In general, most boards require you to hold down a button while plugging it in, and copying the firmware file you downloaded (in step 2) to the new drive.
Device compatibility
Javelin works on any modern device that accepts USB keyboard input. This includes smartphones, Chromebooks, tablets, etc.
Apple iPhones
Javelin works out of the box with USB-C iPhones. For iPhones with a lightning connector, a camera kit is required.
Features
This section covers some noteworthy features of Javelin. If you wish to view all of the available settings and features, have a look through the Javelin firmware builder. You may have to select Show expert options
to find the option you are looking for.
Embedded steno engine
Compatible host devices
Javelin can translate steno strokes to text in exactly the same way that Plover does. However, as Javelin's steno engine is embedded in the keyboard firmware itself, no extra software is required on the host device. Javelin simply sends the translations as if they were coming from a regular keyboard. Therefore, Javelin is compatible with any device that accepts regular USB keyboard input.
Dictionary management
Adding your own arbitrary JSON dictionaries is fully supported. Using the web tools or custom defined outlines, it is possible to temporarily disable dictionaries.
Compared to Plover, however, it is not possible to add your own programmatic dictionaries (such as python dictionaries) using the firmware builder. Some popular python dictionaries have been implemented in Javelin, such as Emily's symbols and Jeff's phrasing. However, there is no officially documented way to write a programmatic dictionary for Javelin (though it is technically possible).
Non-WSI layouts
It is not currently possible to use a non-WSI layout with Javelin (this may change in the future).
Unicode characters
Javelin supports several methods to write Unicode characters, which are all dependent on the host device. Using the settings in the web tools, the Unicode mode can be set to allow writing such characters on Linux, macOS, and Windows. Using the firmware builder, the default Unicode mode can be specified.
Key map customization
Like with Plover, the key map can be set in Javelin to allow for tweaks such as top `S` number key, or changing the placement of the thumber keys on various boards.
Adding translations
Using the web tools or a defined outline, it is possible to add translations to a user dictionary just like in Plover.
First-up and chord repeat
Using the firmware builder, it is trivial to add first-up chord send or chord repeat functionality to your board.
Layout editor
Javelin has a GUI for editing the layout of your keyboard. It is a very powerful tool, allowing you to customize any aspect of the layout.
Web tools
Javelin provides a set of web tools for learning aids, and tweaking settings.
Cannot connect to device on Linux
If you see Error connecting
while trying to connect to your device with the web tools, you need to add a udev rule. Create a file at /etc/udev/rules.d/99-keyboard-javelin.rules
with the following content:
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="9000", ATTRS{idProduct}=="400d", MODE="0666"
After creating the file, reload the rule with the following commands:
sudo udevadm control --reload-rules sudo udevadm trigger
Compatibility with existing steno protocols
Instead of outputting regular text, Javelin is also capable of outputting steno protocols such as Gemini PR or Plover HID. The Default Plover and Default Lapwing firmware files already have such layers configured. This is useful if you plan to still use Plover.