<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>firmware - Ultimate Hacking Keyboard</title>
	<atom:link href="https://uhk.io/blog/category/firmware/feed" rel="self" type="application/rss+xml" />
	<link>https://uhk.io</link>
	<description>The keyboard. For professionals.</description>
	<lastBuildDate>Tue, 27 May 2025 07:22:29 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://uhk.io/wp-content/uploads/2024/01/cropped-android-chrome-512x512-1-32x32.png</url>
	<title>firmware - Ultimate Hacking Keyboard</title>
	<link>https://uhk.io</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Advanced UHK configuration</title>
		<link>https://uhk.io/blog/2024/06/28/advanced-uhk-configuration</link>
		
		<dc:creator><![CDATA[László Monda]]></dc:creator>
		<pubDate>Fri, 28 Jun 2024 15:44:51 +0000</pubDate>
				<category><![CDATA[agent]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[modules]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[tech talk]]></category>
		<guid isPermaLink="false">https://uhk.io/?p=40081</guid>

					<description><![CDATA[Hi there, and welcome to this much-overdue UHK update! Agent and the UHK firmware have been getting increasingly powerful, but we haven't done a good job showcasing these capabilities. Luckily, John came to the rescue and created an excellent YouTube tutorial featuring the following points: John has also made these macros available on a dedicated [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Hi there, and welcome to this much-overdue UHK update!</p>



<p class="wp-block-paragraph">Agent and the UHK firmware have been getting increasingly powerful, but we haven't done a good job showcasing these capabilities. Luckily, John came to the rescue and created an excellent YouTube tutorial featuring the following points:</p>



<ul class="wp-block-list">
<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=0s">00:00</a> What are smart macros?</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=62s">01:02</a> Dual function backtick</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=178s">02:58</a> Special macros for initialization and keymap changes</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=235s">03:55</a> OS-specific settings by keymap</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=287s">04:47</a> Capslock shift</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=338s">05:38</a> Record macro and playback to avoid tedious repetition</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=391s">06:31</a> Reassign keymap during alt-tab to close apps with one hand</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=472s">07:52</a> Function keys EVERYWHERE</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=544s">09:04</a> Delete line and easy-to-use macro wizard form</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=564s">09:24</a> Mouse jiggler to avoid screen timeouts</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=648s">10:48</a> Gaming macro shift walk tap or hold</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=685s">11:25</a> One shot modifier for fluid typing</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=718s">11:58</a> Creating your macros, community support, and GPT4</li>
</ul>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Ultimate Hacking Keyboard Smart Macros Tutorial (.. unlock EXTREME productivity!)" width="800" height="450" src="https://www.youtube.com/embed/gLWX4P5JC8I?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">John has also made these macros available on <a href="https://github.com/TransitNow/uhk-agent-macro-gpt-prompt/blob/main/macros.md">a dedicated GitHub page</a>, so you can easily copy-paste them into Agent.</p>



<p class="wp-block-paragraph">Speaking of Agent, we've been adding some new features worth mentioning, especially in the context of smart macros. See the following screenshot.</p>



<figure class="wp-block-image size-medium"><img fetchpriority="high" decoding="async" width="640" height="250" src="https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-640x250.png" alt="" class="wp-image-40083" srcset="https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-640x250.png 640w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-1024x399.png 1024w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-100x39.png 100w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-1536x599.png 1536w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-2048x799.png 2048w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-669x261.png 669w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-320x125.png 320w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-700x273.png 700w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-66x26.png 66w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-200x78.png 200w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-400x156.png 400w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-600x234.png 600w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-800x312.png 800w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-1200x468.png 1200w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-500x195.png 500w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<p class="wp-block-paragraph">As you can see, we've added syntax highlighting and autocomplete. Autocomplete is thoroughly implemented, using the actual grammar and a generic parser. As such, its completions should be close to 100% contextually accurate. It's also worth mentioning that Agent pulls the grammar of the exact firmware revision actually used.</p>



<p class="wp-block-paragraph"> Agent also displays the error of a macro I intentionally made when saving the configuration. Clicking on the error makes the cursor jump to the relevant position of the affected macro. Thanks to these improvements, writing your macros is easier than ever.</p>



<p class="wp-block-paragraph">Smart macros are a big deal because they enable features traditionally only possible with QMK and ZMK in a highly integrated manner without installing a toolchain. If you want to learn more about smart macros, the following resources should be useful:</p>



<ul class="wp-block-list">
<li><a href="https://github.com/UltimateHackingKeyboard/firmware/blob/master/doc-dev/user-guide.md">smart macro user guide</a> - a light introduction to basic concepts, including many examples</li>



<li><a href="https://github.com/UltimateHackingKeyboard/firmware/blob/master/doc-dev/reference-manual.md">smart macro reference manual</a> - an exhaustive (although dry and formal) list of all commands</li>



<li>The forum's <a href="https://forum.ultimatehackingkeyboard.com/c/my-configuration/7https://forum.ultimatehackingkeyboard.com/c/my-configuration/7">"my configuration"</a> and <a href="https://forum.ultimatehackingkeyboard.com/c/configuration-questions/5">"configuration question"</a> categories contain many examples and are the place to share your ideas and get help with their implementation.</li>



<li>Agent has an integrated, interactive smart macro reference that mostly describes configuration commands. See the "smart macro reference" tab on the right side of the previous screenshot. This side pane will eventually include all the smart macro documentation.</li>
</ul>



<p class="wp-block-paragraph">Finally, I want to share two recent UHK reviews. The first was made by John, and in his true style, he's done a deep dive featuring Riser, the palm rests, the modules, the keycaps and switches, and many layout-related and smart macro-related topics, even gaming.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="UHK60 V2 Review - I can&#039;t stand traditional keyboards anymore! (Ultimate Hacking Keyboard)" width="800" height="450" src="https://www.youtube.com/embed/Bk2DUI3-El4?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">Evan has also made a UHK review, largely featuring the ergonomic benefits and accessories of the UHK, especially the modules.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="This is the CRAZIEST Keyboard I&#039;ve Ever Used!" width="800" height="450" src="https://www.youtube.com/embed/F7dKNJ8lu9M?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">That's it for now! I hope you found this update useful. Talk to you later!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Agent 4: Module configuration and advanced typing settings</title>
		<link>https://uhk.io/blog/2024/03/22/agent-4-module-configuration-and-advanced-typing-settings</link>
		
		<dc:creator><![CDATA[László Monda]]></dc:creator>
		<pubDate>Fri, 22 Mar 2024 19:45:59 +0000</pubDate>
				<category><![CDATA[agent]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[modules]]></category>
		<category><![CDATA[news]]></category>
		<guid isPermaLink="false">https://uhk.io/?p=39341</guid>

					<description><![CDATA[Hi there, and welcome to this UHK update! We've released Agent 4, which features dedicated module configuration pages, a new "typing behavior" page, and additional settings on the "mouse key speed" page. I think it’s a huge release because even though the newly exposed settings were available via smart macros, I’m sure many of you [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Hi there, and welcome to this UHK update!</p>



<p class="wp-block-paragraph">We've released <a href="https://uhk.io/agent">Agent 4</a>, which features dedicated module configuration pages, a new "typing behavior" page, and additional settings on the "mouse key speed" page.</p>



<p class="wp-block-paragraph">I think it’s a huge release because even though the newly exposed settings were available via smart macros, I’m sure many of you didn’t use them due to their complexity. Now, they’re super easy to use.</p>



<p class="wp-block-paragraph">If you use smart macros that already set the newly exposed settings, they’ll overwrite these settings, so make sure to delete the related smart macro commands.</p>



<p class="wp-block-paragraph">Now, let me show you the settings pages.</p>



<h2 class="wp-block-heading">Module configuration</h2>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="503" src="https://uhk.io/wp-content/uploads/2024/03/agent-keymap-modules-1-1024x503.png" alt="" class="wp-image-39343" srcset="https://uhk.io/wp-content/uploads/2024/03/agent-keymap-modules-1-1024x503.png 1024w, https://uhk.io/wp-content/uploads/2024/03/agent-keymap-modules-1-640x315.png 640w, https://uhk.io/wp-content/uploads/2024/03/agent-keymap-modules-1-100x49.png 100w, https://uhk.io/wp-content/uploads/2024/03/agent-keymap-modules-1-1536x755.png 1536w, https://uhk.io/wp-content/uploads/2024/03/agent-keymap-modules-1-2048x1007.png 2048w, https://uhk.io/wp-content/uploads/2024/03/agent-keymap-modules-1-200x98.png 200w, https://uhk.io/wp-content/uploads/2024/03/agent-keymap-modules-1-400x197.png 400w, https://uhk.io/wp-content/uploads/2024/03/agent-keymap-modules-1-600x295.png 600w, https://uhk.io/wp-content/uploads/2024/03/agent-keymap-modules-1-800x393.png 800w, https://uhk.io/wp-content/uploads/2024/03/agent-keymap-modules-1-1200x590.png 1200w, https://uhk.io/wp-content/uploads/2024/03/agent-keymap-modules-1-500x246.png 500w, https://uhk.io/wp-content/uploads/2024/03/agent-keymap-modules-1-700x344.png 700w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Notice the puzzle icons just above the modules. You'll be taken to the relevant module configuration page if you click on one of them. Alternatively, you can click on the desired module under the Modules menu in the side menu.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="601" src="https://uhk.io/wp-content/uploads/2024/03/agent-trackpoint-settings-1024x601.png" alt="" class="wp-image-39344" srcset="https://uhk.io/wp-content/uploads/2024/03/agent-trackpoint-settings-1024x601.png 1024w, https://uhk.io/wp-content/uploads/2024/03/agent-trackpoint-settings-640x375.png 640w, https://uhk.io/wp-content/uploads/2024/03/agent-trackpoint-settings-100x59.png 100w, https://uhk.io/wp-content/uploads/2024/03/agent-trackpoint-settings-1536x901.png 1536w, https://uhk.io/wp-content/uploads/2024/03/agent-trackpoint-settings-2048x1201.png 2048w, https://uhk.io/wp-content/uploads/2024/03/agent-trackpoint-settings-200x117.png 200w, https://uhk.io/wp-content/uploads/2024/03/agent-trackpoint-settings-400x235.png 400w, https://uhk.io/wp-content/uploads/2024/03/agent-trackpoint-settings-600x352.png 600w, https://uhk.io/wp-content/uploads/2024/03/agent-trackpoint-settings-800x469.png 800w, https://uhk.io/wp-content/uploads/2024/03/agent-trackpoint-settings-1200x704.png 1200w, https://uhk.io/wp-content/uploads/2024/03/agent-trackpoint-settings-500x293.png 500w, https://uhk.io/wp-content/uploads/2024/03/agent-trackpoint-settings-700x411.png 700w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">A lot is going on, but fear not; hovering over the little question mark icons reveals tooltips that explain the settings.</p>



<p class="wp-block-paragraph">You can adjust the speed and acceleration of modules and fine-tune axis locking settings to prevent unintended movements on the non-dominant axis while scrolling or using the caret mode. There are also some module-specific settings. Most notably, you can tweak the touchpad's pinch-to-zoom and drag-and-drop behavior.</p>



<p class="wp-block-paragraph">On the right side of the screen, you can assign per-layer navigation modes. The navigation mode describes what the module does when moving its pointer device. For example, the cursor mode moves the mouse cursor. The scroll mode scrolls, just like the scroll wheel of a mouse. The caret mode moves the text cursor, which is useful in editors.</p>



<h2 class="wp-block-heading">Typing behavior</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="653" src="https://uhk.io/wp-content/uploads/2024/03/agent-typing-behavior-1024x653.png" alt="" class="wp-image-39346" srcset="https://uhk.io/wp-content/uploads/2024/03/agent-typing-behavior-1024x653.png 1024w, https://uhk.io/wp-content/uploads/2024/03/agent-typing-behavior-640x408.png 640w, https://uhk.io/wp-content/uploads/2024/03/agent-typing-behavior-100x64.png 100w, https://uhk.io/wp-content/uploads/2024/03/agent-typing-behavior-1536x980.png 1536w, https://uhk.io/wp-content/uploads/2024/03/agent-typing-behavior-200x128.png 200w, https://uhk.io/wp-content/uploads/2024/03/agent-typing-behavior-400x255.png 400w, https://uhk.io/wp-content/uploads/2024/03/agent-typing-behavior-600x383.png 600w, https://uhk.io/wp-content/uploads/2024/03/agent-typing-behavior-800x510.png 800w, https://uhk.io/wp-content/uploads/2024/03/agent-typing-behavior-1200x765.png 1200w, https://uhk.io/wp-content/uploads/2024/03/agent-typing-behavior-500x319.png 500w, https://uhk.io/wp-content/uploads/2024/03/agent-typing-behavior-700x446.png 700w, https://uhk.io/wp-content/uploads/2024/03/agent-typing-behavior.png 2032w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">The advanced secondary role resolution strategy is useful if you want to use secondary roles on alphanumeric keys, in which case the simple resolution strategy tends to interfere with writing.</p>



<p class="wp-block-paragraph">With the keystroke delay setting, you can add artificial delay to keystrokes, which can be useful for some applications, especially for RDP clients that have problems accepting fast input.</p>



<h2 class="wp-block-heading">Mouse key speed settings</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="563" src="https://uhk.io/wp-content/uploads/2024/03/mouse-key-speed-axis-skew-1024x563.png" alt="" class="wp-image-39347" srcset="https://uhk.io/wp-content/uploads/2024/03/mouse-key-speed-axis-skew-1024x563.png 1024w, https://uhk.io/wp-content/uploads/2024/03/mouse-key-speed-axis-skew-640x352.png 640w, https://uhk.io/wp-content/uploads/2024/03/mouse-key-speed-axis-skew-100x55.png 100w, https://uhk.io/wp-content/uploads/2024/03/mouse-key-speed-axis-skew-1536x845.png 1536w, https://uhk.io/wp-content/uploads/2024/03/mouse-key-speed-axis-skew-2048x1127.png 2048w, https://uhk.io/wp-content/uploads/2024/03/mouse-key-speed-axis-skew-200x110.png 200w, https://uhk.io/wp-content/uploads/2024/03/mouse-key-speed-axis-skew-400x220.png 400w, https://uhk.io/wp-content/uploads/2024/03/mouse-key-speed-axis-skew-600x330.png 600w, https://uhk.io/wp-content/uploads/2024/03/mouse-key-speed-axis-skew-800x440.png 800w, https://uhk.io/wp-content/uploads/2024/03/mouse-key-speed-axis-skew-1200x660.png 1200w, https://uhk.io/wp-content/uploads/2024/03/mouse-key-speed-axis-skew-500x275.png 500w, https://uhk.io/wp-content/uploads/2024/03/mouse-key-speed-axis-skew-700x385.png 700w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">The newly added axis skew settings allow you to move/scroll faster horizontally than vertically or vice versa, which can be useful for ultrawide monitors or moving through multiple workspaces.</p>



<p class="wp-block-paragraph">When moving diagonally with mouse keys, vertical and horizontal speeds add up. However, when checking the "compensate diagonal speed" option, the diagonal speed will match the horizontal/vertical speed.</p>



<h2 class="wp-block-heading">Further improvements</h2>



<p class="wp-block-paragraph">In addition to the above, the firmware keeps evolving. It now automatically recovers from occasional trackpoint drifts after a few seconds, and we've improved compatibility with some KVM switches.</p>



<p class="wp-block-paragraph">I hope you're as excited about these developments as we are and that they'll make your UHK even more useful. Speaking of the UHK, we have stock of every product and ship in a week, so don't delay; buy today.</p>



<p class="wp-block-paragraph">Talk to you later!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Setting LED fade timeout</title>
		<link>https://uhk.io/blog/2023/02/10/setting-led-fade-timeout</link>
					<comments>https://uhk.io/blog/2023/02/10/setting-led-fade-timeout#comments</comments>
		
		<dc:creator><![CDATA[László Monda]]></dc:creator>
		<pubDate>Fri, 10 Feb 2023 08:52:46 +0000</pubDate>
				<category><![CDATA[agent]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[howto]]></category>
		<guid isPermaLink="false">https://uhk.io/?p=34004</guid>

					<description><![CDATA[Update 2023-08-19: Now the "LED settings" page contains the "LED fade timeout" setting, so you don't have to use smart macros to use it. Some of you want your UHK to automatically turn off its LEDs after some idle time, which can be configured by setting the leds.fadeTimeout smart macro variable in the $onInit macro [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><em>Update 2023-08-19: Now the "LED settings" page contains the "LED fade timeout" setting, so you don't have to use smart macros to use it.</em></p>



<p class="wp-block-paragraph">Some of you want your UHK to automatically turn off its LEDs after some idle time, which can be configured by setting the <strong>leds.fadeTimeout</strong> smart macro variable in the <strong>$onInit</strong> macro as follows.</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="2870" height="631" src="https://uhk.io/wp-content/uploads/2023/02/agent-led-fade-timeout-1.png" alt="" class="wp-image-34010" style="width:1435px" srcset="https://uhk.io/wp-content/uploads/2023/02/agent-led-fade-timeout-1.png 2870w, https://uhk.io/wp-content/uploads/2023/02/agent-led-fade-timeout-1-640x141.png 640w, https://uhk.io/wp-content/uploads/2023/02/agent-led-fade-timeout-1-1024x225.png 1024w" sizes="(max-width: 2870px) 100vw, 2870px" /></figure>



<p class="wp-block-paragraph">You can learn more about <a href="/blog/2022/11/18/agent-2-next-level-uhk-and-module-configuration">smart macros</a>.</p>



<p class="wp-block-paragraph">We realize that this setting is not as accessible as it should be, and we'll make it easier to adjust it in later Agent versions.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://uhk.io/blog/2023/02/10/setting-led-fade-timeout/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Agent 2: Next-level UHK and module configuration</title>
		<link>https://uhk.io/blog/2022/11/18/agent-2-next-level-uhk-and-module-configuration</link>
					<comments>https://uhk.io/blog/2022/11/18/agent-2-next-level-uhk-and-module-configuration#comments</comments>
		
		<dc:creator><![CDATA[László Monda]]></dc:creator>
		<pubDate>Fri, 18 Nov 2022 15:43:41 +0000</pubDate>
				<category><![CDATA[agent]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[modules]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[tech talk]]></category>
		<guid isPermaLink="false">https://uhk.io/?p=33022</guid>

					<description><![CDATA[TL;DR: Say hi to 12 layers per keymap, module speed and acceleration settings, and loads of advanced features, mostly enabled by the new smart macros functionality of the latest UHK Agent and firmware releases. I don’t usually write dedicated posts about new releases, but this is a major one, we’ve been working on it for [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><em>TL;DR: Say hi to 12 layers per keymap, module speed and acceleration settings, and loads of advanced features, mostly enabled by the new smart macros functionality of the latest UHK Agent and firmware releases.</em></p>



<p class="wp-block-paragraph">I don’t usually write dedicated posts about new releases, but this is a major one, we’ve been working on it for a year, and it delivers a huge punch that can elevate your UHK experience to the next level, so it mustn’t go unnoticed.</p>



<p class="wp-block-paragraph">A summary of new features to whet your appetite:</p>



<ul class="wp-block-list">
<li>Extended the original four layers per keymap with four regular layers (Fn2, Fn3, Fn4, Fn5) and four modifier layers (Shift, Ctrl, Alt, Super).</li>



<li>All modules: speed and acceleration settings, axis locking settings, per-layer navigation modes</li>



<li>Key cluster module: Added the ability to fine-tune or disable the behavior of the mini trackball.</li>



<li>Trackpoint module: Fixed occasional trackpoint pointer jumps and made it easy to stop drifting if it occurred.</li>



<li>Touchpad module: Implemented pinch-to-zoom, two-finger scrolling, doubletap-to-drag, and made the tap action configurable.</li>



<li>Advanced configuration scenarios via smart macros, such as configurable modifier layer triggers, mouse key axis skew, and LED fade timeout</li>



<li>Super-advanced configuration scenarios via extended macro commands, such as variables, loops, double tap actions, and runtime macro recording.</li>



<li>Implemented N-key rollover.</li>



<li>Made accelerate and decelerate actions work with modules.</li>



<li>Fixed USB descriptors which caused high CPU load on Macintosh computers.</li>
</ul>



<p class="wp-block-paragraph">Let’s go over the main features, but first, <a href="https://uhk.io/agent">install the new Agent</a>. Then it’ll upgrade your UHK to the new firmware.</p>



<h2 class="wp-block-heading">12 layers per keymap</h2>



<p class="wp-block-paragraph">Instead of 4 layers, you can now have 12 layers per keymap.</p>



<figure class="wp-block-image size-medium"><img loading="lazy" decoding="async" width="640" height="488" src="https://uhk.io/wp-content/uploads/2022/11/12-layers-640x488.png" alt="" class="wp-image-33023" srcset="https://uhk.io/wp-content/uploads/2022/11/12-layers-640x488.png 640w, https://uhk.io/wp-content/uploads/2022/11/12-layers-1024x781.png 1024w, https://uhk.io/wp-content/uploads/2022/11/12-layers-100x76.png 100w, https://uhk.io/wp-content/uploads/2022/11/12-layers-200x153.png 200w, https://uhk.io/wp-content/uploads/2022/11/12-layers-400x305.png 400w, https://uhk.io/wp-content/uploads/2022/11/12-layers-600x458.png 600w, https://uhk.io/wp-content/uploads/2022/11/12-layers-800x610.png 800w, https://uhk.io/wp-content/uploads/2022/11/12-layers-500x381.png 500w, https://uhk.io/wp-content/uploads/2022/11/12-layers-700x534.png 700w, https://uhk.io/wp-content/uploads/2022/11/12-layers.png 1063w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<p class="wp-block-paragraph">You can enable/disable any of the above layers per keymap except for the base layer, which is mandatory.</p>



<p class="wp-block-paragraph">The Fn2, Fn3, Fn4, and Fn5 layers work just like the existing layers, but Shift, Ctrl, Alt, and Super are modifier layers.</p>



<p class="wp-block-paragraph">On modifier layers, you can map alternative actions per key, which trigger when the key is pressed with the relevant modifier. For example, now you can implement the Programmer Dvorak layout solely on the UHK.</p>



<figure class="wp-block-image size-medium"><img loading="lazy" decoding="async" width="640" height="213" src="https://uhk.io/wp-content/uploads/2022/11/KB_Programmer_Dvorak-640x213.png" alt="" class="wp-image-33024" srcset="https://uhk.io/wp-content/uploads/2022/11/KB_Programmer_Dvorak-640x213.png 640w, https://uhk.io/wp-content/uploads/2022/11/KB_Programmer_Dvorak-100x33.png 100w, https://uhk.io/wp-content/uploads/2022/11/KB_Programmer_Dvorak-200x67.png 200w, https://uhk.io/wp-content/uploads/2022/11/KB_Programmer_Dvorak-400x133.png 400w, https://uhk.io/wp-content/uploads/2022/11/KB_Programmer_Dvorak-600x200.png 600w, https://uhk.io/wp-content/uploads/2022/11/KB_Programmer_Dvorak-800x267.png 800w, https://uhk.io/wp-content/uploads/2022/11/KB_Programmer_Dvorak-500x167.png 500w, https://uhk.io/wp-content/uploads/2022/11/KB_Programmer_Dvorak-700x233.png 700w, https://uhk.io/wp-content/uploads/2022/11/KB_Programmer_Dvorak.png 900w" sizes="(max-width: 640px) 100vw, 640px" /><figcaption class="wp-element-caption"><em>Credit: “</em><a href="https://spin.atomicobject.com/2021/09/09/programmers-keyboard-layout/"><em>The Case for the Programmers’ Keyboard Layout</em></a>” by Zachary Johnson</figcaption></figure>



<h2 class="wp-block-heading" id="smart-macros">Smart macros introduction</h2>



<p class="wp-block-paragraph">You’re probably already familiar with regular macros, which are a sequence of macro actions, such as keypresses and mouse movements.</p>



<p class="wp-block-paragraph">Smart macros, however, enable the advanced customization of your UHK and its modules. See the following screenshot, which shows a macro named $onInit containing a command macro action that contains multiple macro commands:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="2158" height="1036" src="https://uhk.io/wp-content/uploads/2022/11/agent-onInit.png" alt="" class="wp-image-33025" srcset="https://uhk.io/wp-content/uploads/2022/11/agent-onInit.png 2158w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-640x307.png 640w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-1024x492.png 1024w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-1536x737.png 1536w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-2048x983.png 2048w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-100x48.png 100w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-200x96.png 200w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-400x192.png 400w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-600x288.png 600w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-800x384.png 800w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-1200x576.png 1200w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-500x240.png 500w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-700x336.png 700w" sizes="(max-width: 2158px) 100vw, 2158px" /></figure>



<p class="wp-block-paragraph">$onInit is a special macro name. It's a <strong>macro event</strong> that executes each time your UHK gets powered and when you save its configuration.</p>



<p class="wp-block-paragraph">"set module.trackball.baseSpeed 1" is a <strong>macro command</strong> that sets the base speed of the trackball module to 1.</p>



<p class="wp-block-paragraph">Macro commands work in any macros, not only in macro events, and you can bind them to any key. This way, you can make Fn+1 set your trackball base speed to 1, and make Fn+2 set it to 2, for example.</p>



<h2 class="wp-block-heading">Interactive smart macro editing</h2>



<p class="wp-block-paragraph">Adjusting values by editing text is tedious. This is why we created a smart macro sidebar that can be opened on macro pages. This sidebar contains easy-to-read documentation and provides interactive widgets that make configuration a breeze.</p>



<figure class="wp-block-image size-medium"><img decoding="async" src="https://uhk.io/wp-content/uploads/2022/11/agent-macro-variable-slider-1.gif" alt="" class="wp-image-33026"/></figure>



<p class="wp-block-paragraph">When clicking on a macro command action, the widgets of the smart macro sidebar display the actual values of the commands, and module-specific widgets appear. You just have to interact with these widgets, hit the usual “Save to keyboard” button, and your settings will be applied immediately.</p>



<p class="wp-block-paragraph">I strongly recommend you delve into these settings, as they can make a huge difference. The default sensitivity settings of the modules are reasonable, but by tweaking them to your needs, you can make them so much more usable. Maybe, just maybe, you can finally get rid of your mouse.</p>



<h2 class="wp-block-heading">Advanced configuration scenarios</h2>



<p class="wp-block-paragraph">Besides $onInit, there’s also the “$onKeymapChange {keymapId}” macro event, such as $onKeymapChange QWR, which is executed when the QWR keymap is activated.</p>



<p class="wp-block-paragraph">This event enables you to have keymap-specific settings, which allows for many advanced use cases. For example, different operating systems have different mouse sensitivity. This feature allows you to have different speed and acceleration settings for your mouse keys and modules via different operating system-specific keymaps.</p>



<p class="wp-block-paragraph">Believe it or not, I’m still scratching the surface. If you really want to go crazy, you can use the set "macroEngine.extendedCommands 1" command to enable the extended macro engine, allowing for variables, loops, and countless advanced commands. If you’re comfortable with delving into manual pages, check out the extended macro engine <a href="https://github.com/UltimateHackingKeyboard/firmware/blob/master/doc-dev/user-guide.md">user guide</a> and <a href="https://github.com/UltimateHackingKeyboard/firmware/blob/master/doc-dev/reference-manual.md">reference manual</a>.</p>



<h2 class="wp-block-heading">Smart macros history and credit</h2>



<p class="wp-block-paragraph">Smart macros have an interesting history, starting out as <a href="https://github.com/kareltucek/firmware">Karel Tuček’s UHK firmware fork</a> on GitHub.</p>



<p class="wp-block-paragraph">Karel wanted special firmware features, and he originally (ab)used the text macro actions of Agent by making the firmware interpret the lines starting with the $ character as special commands. He’s essentially implemented a command interpreter in the UHK firmware that allowed for his advanced use cases.</p>



<p class="wp-block-paragraph">I saw his efforts early on, and I was impressed, but I considered his work quite niche and wasn’t too interested. (In retrospect, I can see that his advanced commands are used and loved by many.)</p>



<p class="wp-block-paragraph">Then it struck me that smart macros could enable the configuration of many UHK and module features without developing Agent, which is a huge win, as adding new features both to Agent and the firmware takes a ton of work. Exposing new features only via the macro engine of the firmware is so much easier.&nbsp;</p>



<p class="wp-block-paragraph">I came up with the idea of macro events and making smart macros a first-class citizen in Agent, then implemented the smart macro sidebar. Karel has implemented the acceleration driver of the modules, macro events, and, nowadays, pretty much everything that has to be done with firmware logic. His work is hard to overstate.</p>



<p class="wp-block-paragraph">As an interesting trivia, the macro command editor of Agent might feel familiar. This is because we use Monaco editor, which also powers Visual Studio Code. In a way, Agent became an integrated development environment, supporting a special keyboard language whose interpreter runs in the UHK firmware.</p>



<h2 class="wp-block-heading">The future of smart macros</h2>



<p class="wp-block-paragraph">I eventually want to expose basic smart macro settings, such as module settings or the LED fade timeout, not only via the smart macro sidebar but dedicated Agent widgets for better usability.</p>



<p class="wp-block-paragraph">Nonetheless, we’ll keep and extend the currently available smart macro commands and settings because they allow for advanced configuration scenarios.</p>



<p class="wp-block-paragraph">I plan to gradually move the extended macro commands from the current markdown macro documentation into the smart macro sidebar of Agent to make them easier to digest and not hide them behind the set "macroEngine.extendedCommands 1" command.</p>



<h2 class="wp-block-heading">Closing words</h2>



<p class="wp-block-paragraph">To this day, we’ve released 60 Agent versions and 66 firmware versions, and we’re still going strong. I’m excited about our progress and grateful to our wonderful customers for their support. We keep moving forward because of you.</p>



<p class="wp-block-paragraph">Thank you for reading this update! As usual, we plan to publish a manufacturing update around the end of the month. Stay safe!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://uhk.io/blog/2022/11/18/agent-2-next-level-uhk-and-module-configuration/feed</wfw:commentRss>
			<slash:comments>17</slash:comments>
		
		
			</item>
		<item>
		<title>Right-side module mold progress, part two</title>
		<link>https://uhk.io/blog/2020/10/01/right-side-module-mold-progress-part-two</link>
					<comments>https://uhk.io/blog/2020/10/01/right-side-module-mold-progress-part-two#comments</comments>
		
		<dc:creator><![CDATA[László Monda]]></dc:creator>
		<pubDate>Thu, 01 Oct 2020 05:13:37 +0000</pubDate>
				<category><![CDATA[features]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[manufacturing]]></category>
		<category><![CDATA[modules]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[tech talk]]></category>
		<guid isPermaLink="false">https://uhk.io/?p=24363</guid>

					<description><![CDATA[Hi there, and welcome to the monthly status update of the UHK! TL; DR: Machining of the right-side module molds is still underway, and it's taking longer than expected; hence, we’re now estimating that modules will begin shipping closer to the end of November In the meantime, we keep testing the modules, making small refinements, [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Hi there, and welcome to the monthly status update of the UHK!</p>



<p class="wp-block-paragraph"><em>TL; DR: Machining of the right-side module molds is still underway, and it's taking longer than expected; hence, we’re now estimating that modules will begin shipping closer to the end of November In the meantime, we keep testing the modules, making small refinements, and improving their firmware.</em></p>



<p class="wp-block-paragraph">Our contractor has been making further progress with the right-side module molds.</p>



<figure class="wp-block-image size-medium"><img loading="lazy" decoding="async" width="640" height="422" src="https://uhk.io/wp-content/uploads/2020/10/molds1-640x422.jpg" alt="" class="wp-image-24364" srcset="https://uhk.io/wp-content/uploads/2020/10/molds1-640x422.jpg 640w, https://uhk.io/wp-content/uploads/2020/10/molds1-100x66.jpg 100w, https://uhk.io/wp-content/uploads/2020/10/molds1-200x132.jpg 200w, https://uhk.io/wp-content/uploads/2020/10/molds1-400x264.jpg 400w, https://uhk.io/wp-content/uploads/2020/10/molds1-600x396.jpg 600w, https://uhk.io/wp-content/uploads/2020/10/molds1-800x527.jpg 800w, https://uhk.io/wp-content/uploads/2020/10/molds1-500x330.jpg 500w, https://uhk.io/wp-content/uploads/2020/10/molds1-700x461.jpg 700w, https://uhk.io/wp-content/uploads/2020/10/molds1-rotated.jpg 1024w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<figure class="wp-block-image size-medium"><img loading="lazy" decoding="async" width="640" height="533" src="https://uhk.io/wp-content/uploads/2020/10/molds2-640x533.jpg" alt="" class="wp-image-24365" srcset="https://uhk.io/wp-content/uploads/2020/10/molds2-640x533.jpg 640w, https://uhk.io/wp-content/uploads/2020/10/molds2-100x83.jpg 100w, https://uhk.io/wp-content/uploads/2020/10/molds2-200x166.jpg 200w, https://uhk.io/wp-content/uploads/2020/10/molds2-400x333.jpg 400w, https://uhk.io/wp-content/uploads/2020/10/molds2-600x499.jpg 600w, https://uhk.io/wp-content/uploads/2020/10/molds2-800x666.jpg 800w, https://uhk.io/wp-content/uploads/2020/10/molds2-500x416.jpg 500w, https://uhk.io/wp-content/uploads/2020/10/molds2-700x582.jpg 700w, https://uhk.io/wp-content/uploads/2020/10/molds2-rotated.jpg 923w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<figure class="wp-block-image size-medium"><img loading="lazy" decoding="async" width="640" height="229" src="https://uhk.io/wp-content/uploads/2020/10/molds3-640x229.jpg" alt="" class="wp-image-24366" srcset="https://uhk.io/wp-content/uploads/2020/10/molds3-640x229.jpg 640w, https://uhk.io/wp-content/uploads/2020/10/molds3-1024x366.jpg 1024w, https://uhk.io/wp-content/uploads/2020/10/molds3-1536x548.jpg 1536w, https://uhk.io/wp-content/uploads/2020/10/molds3-100x36.jpg 100w, https://uhk.io/wp-content/uploads/2020/10/molds3-200x71.jpg 200w, https://uhk.io/wp-content/uploads/2020/10/molds3-400x143.jpg 400w, https://uhk.io/wp-content/uploads/2020/10/molds3-600x214.jpg 600w, https://uhk.io/wp-content/uploads/2020/10/molds3-800x286.jpg 800w, https://uhk.io/wp-content/uploads/2020/10/molds3-1200x428.jpg 1200w, https://uhk.io/wp-content/uploads/2020/10/molds3-500x179.jpg 500w, https://uhk.io/wp-content/uploads/2020/10/molds3-700x250.jpg 700w, https://uhk.io/wp-content/uploads/2020/10/molds3.jpg 1882w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<p class="wp-block-paragraph">I spoke to our contractor yesterday. Unfortunately, the production of the molds is taking more time than originally anticipated, so we now expect to begin shipping the modules towards the end of November.</p>



<p class="wp-block-paragraph">Understandably, production delays are always unwelcome. However, I know that the molds take so long because our contractor is doing his best in terms of quality. If you have been following us for a while, you know that the UHK was also delayed, and the reception was overwhelmingly positive. I’m firmly convinced that the modules will receive the same reception as the UHK with the care we give them.</p>



<p class="wp-block-paragraph">We use the extra time available to us wisely and spend these days obsessing over the details of the modules. For example, we noticed that the mini trackball PCB of the key cluster module interfered a bit with the lower right keycap when pressed at certain angles, so we slightly modified the PCB. We also saw that the FPCs are very sensitive to sharp bends, so we redesigned the affected parts mechanically to minimize the bending.</p>



<p class="wp-block-paragraph">The extra time allows me to polish the firmware and add more features. Recently, I implemented two-finger tapping and scrolling for the touchpad, and zooming is now also recognized. As for the trackball, I've just noticed that it's possible to double the resolution of the trackball sensor IC, which allows a higher sensitivity. These developments will improve the overall experience of the modules.</p>



<p class="wp-block-paragraph">Speaking of the trackball, some of you have asked whether it's possible to clean the ball quickly. I'm happy to say that it only takes seconds to rotate the outer ring around the ball, which releases the ball.</p>



<p class="wp-block-paragraph">As for the modules, some of you asked if the modules will remain firmly attached to the keyboard when it’s tented. The answer is a resounding “yes” because the precision-milled steel guides of the UHK keep very stable under all circumstances.</p>



<p class="wp-block-paragraph">We’ll keep you informed about the development of the modules every month. They may take a while, but we work very hard to make them worth the wait.</p>



<h2 class="wp-block-heading">Your tweets</h2>



<p class="wp-block-paragraph">You guys keep sending your awesome tweets, and we're always eager to read and feature them! If you got your UHK, please share your love!</p>



<blockquote class="twitter-tweet" data-conversation="none"><p lang="en" dir="ltr">Outer left wrist pain for months here, almost 100% cleared up from switching to the <a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a>! I hoped it was going to have this much better effect and it certainly did.</p>— Todd Motto ⚡ (@toddmotto) <a href="https://twitter.com/toddmotto/status/1304887515787206658?ref_src=twsrc%5Etfw">September 12, 2020</a></blockquote> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet"><p lang="en" dir="ltr">I've been eyeing this super nice keyboard from <a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a>, and I finally received it a couple of days ago 🤩<br><br>I can safely say:<br>Yes! It is exactly as AWESOME as expected!<br><br>I'm faster, more productive, I cut down my trips to the mouse by 10x, and it's SO satisfying to use 😍 <a href="https://t.co/mgA6oSxhaJ">pic.twitter.com/mgA6oSxhaJ</a></p>— Simon Høiberg (@SimonHoiberg) <a href="https://twitter.com/SimonHoiberg/status/1301886438187978752?ref_src=twsrc%5Etfw">September 4, 2020</a></blockquote> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet" data-conversation="none"><p lang="en" dir="ltr">And here's the result.<br><br>The setting up on the chair's armrest is still WIP. <a href="https://t.co/JEjUnejXdi">pic.twitter.com/JEjUnejXdi</a></p>— Felixoid Sage 🔞 (@mr_felixoid) <a href="https://twitter.com/mr_felixoid/status/1308760284807520256?ref_src=twsrc%5Etfw">September 23, 2020</a></blockquote> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet"><p lang="en" dir="ltr"><a href="https://twitter.com/hashtag/GotMyUHK?src=hash&amp;ref_src=twsrc%5Etfw">#GotMyUHK</a> about 2 weeks ago now and loving it. Has a lot of features I didn’t know I even needed. Bit of a learning curve in the beginning typing tented and split but not bad if you touch type. Excited to try out the modules when available. <a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a> <a href="https://twitter.com/hashtag/MechanicalKeyboard?src=hash&amp;ref_src=twsrc%5Etfw">#MechanicalKeyboard</a> <a href="https://t.co/3bxuEzOUZ1">pic.twitter.com/3bxuEzOUZ1</a></p>— josh mcdaniel (@josh_mcdaniel1) <a href="https://twitter.com/josh_mcdaniel1/status/1296460259725324294?ref_src=twsrc%5Etfw">August 20, 2020</a></blockquote> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet"><p lang="en" dir="ltr"><a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a> been using your keyboard for the last 6 months and it exceeds expectations in efficiency and ergonomics. Made some palm rests from purple hart (harder to make than I thought). Thanks for a great product. <a href="https://t.co/6TLctIfmg3">pic.twitter.com/6TLctIfmg3</a></p>— Chad (@syxxty) <a href="https://twitter.com/syxxty/status/1296432814708215808?ref_src=twsrc%5Etfw">August 20, 2020</a></blockquote> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<p class="wp-block-paragraph">We’ll be keeping you updated on all things UHK, and are looking forward to talking to you around the end of October.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://uhk.io/blog/2020/10/01/right-side-module-mold-progress-part-two/feed</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>Right-side module mold progress</title>
		<link>https://uhk.io/blog/2020/08/20/right-side-module-mold-progress</link>
					<comments>https://uhk.io/blog/2020/08/20/right-side-module-mold-progress#comments</comments>
		
		<dc:creator><![CDATA[László Monda]]></dc:creator>
		<pubDate>Thu, 20 Aug 2020 08:55:22 +0000</pubDate>
				<category><![CDATA[agent]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[manufacturing]]></category>
		<category><![CDATA[modules]]></category>
		<category><![CDATA[news]]></category>
		<guid isPermaLink="false">https://uhk.io/?p=23927</guid>

					<description><![CDATA[Hi there, and welcome to the monthly UHK status update! TL;DR: Machining of the right-side module molds is well underway, and we should have plastic parts by the end of August. We keep developing the UHK firmware and Agent, and it’s worth updating - not just because of module support. Our contractor has been making [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Hi there, and welcome to the monthly UHK status update!</p>



<p class="wp-block-paragraph"><em>TL;DR: Machining of the right-side module molds is well underway, and we should have plastic parts by the end of August. We keep developing the UHK firmware and Agent, and it’s worth updating - not just because of module support.</em></p>



<p class="wp-block-paragraph">Our contractor has been making solid progress with the right-side module molds.</p>



<figure class="wp-block-image size-medium"><img loading="lazy" decoding="async" width="640" height="212" src="https://uhk.io/wp-content/uploads/2020/08/right-side-modules-1-640x212.jpg" alt="" class="wp-image-23928" srcset="https://uhk.io/wp-content/uploads/2020/08/right-side-modules-1-640x212.jpg 640w, https://uhk.io/wp-content/uploads/2020/08/right-side-modules-1-100x33.jpg 100w, https://uhk.io/wp-content/uploads/2020/08/right-side-modules-1-200x66.jpg 200w, https://uhk.io/wp-content/uploads/2020/08/right-side-modules-1-400x132.jpg 400w, https://uhk.io/wp-content/uploads/2020/08/right-side-modules-1-600x199.jpg 600w, https://uhk.io/wp-content/uploads/2020/08/right-side-modules-1-800x265.jpg 800w, https://uhk.io/wp-content/uploads/2020/08/right-side-modules-1-500x166.jpg 500w, https://uhk.io/wp-content/uploads/2020/08/right-side-modules-1-700x232.jpg 700w, https://uhk.io/wp-content/uploads/2020/08/right-side-modules-1.jpg 1024w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<figure class="wp-block-image size-medium"><img loading="lazy" decoding="async" width="640" height="208" src="https://uhk.io/wp-content/uploads/2020/08/right-side-modules-2-640x208.jpg" alt="" class="wp-image-23929" srcset="https://uhk.io/wp-content/uploads/2020/08/right-side-modules-2-640x208.jpg 640w, https://uhk.io/wp-content/uploads/2020/08/right-side-modules-2-100x32.jpg 100w, https://uhk.io/wp-content/uploads/2020/08/right-side-modules-2-200x65.jpg 200w, https://uhk.io/wp-content/uploads/2020/08/right-side-modules-2-400x130.jpg 400w, https://uhk.io/wp-content/uploads/2020/08/right-side-modules-2-600x195.jpg 600w, https://uhk.io/wp-content/uploads/2020/08/right-side-modules-2-800x260.jpg 800w, https://uhk.io/wp-content/uploads/2020/08/right-side-modules-2-500x162.jpg 500w, https://uhk.io/wp-content/uploads/2020/08/right-side-modules-2-700x227.jpg 700w, https://uhk.io/wp-content/uploads/2020/08/right-side-modules-2.jpg 1007w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<p class="wp-block-paragraph">If everything goes as planned, we’ll have injection-molded right-side module plastic pieces by the end of August, and we’ll start shipping the modules in September.</p>



<p class="wp-block-paragraph">We’ll be keeping you updated on a monthly basis, and feel free to <a href="https://uhk.io/knowledgebase/how-can-i-change-my-shipping-address">change your shipping address</a> any time.</p>



<h2 class="wp-block-heading">Agent and firmware progress</h2>



<p class="wp-block-paragraph">We’ve been publishing about one Agent and one firmware release per month over the past couple years. These releases contain numerous improvements, so feel free to check out <a href="https://github.com/UltimateHackingKeyboard/agent/releases">recent Agent releases</a> and <a href="https://github.com/UltimateHackingKeyboard/firmware/releases">recent firmware releases</a> to see them along with their changelog. Also make sure to star these projects to get notifications about their activity on GitHub.</p>



<p class="wp-block-paragraph">Regarding the firmware, it’s worth mentioning a recent fix which made the UHK play nicely with Ryzen PCs. Previously, in some cases, the UHK only worked via USB hubs when connected to Ryzen PCs. Strictly speaking, the UHK firmware was actually bug-free in this respect. The Ryzen platform just happens to be unreasonably picky regarding USB descriptors.</p>



<p class="wp-block-paragraph">Speaking of Agent, a new feature makes key swapping extremely easy. You just have to drag a key to another key to swap them.</p>



<figure class="wp-block-image size-medium"><img decoding="async" width="640" src="https://uhk.io/wp-content/uploads/2020/08/agent-swap-keys.gif" alt="" class="wp-image-23930"></figure>



<p class="wp-block-paragraph">Now we’re working on making Agent handle the modules. Agent will display the actual state of the UHK just as <a href="https://www.youtube.com/watch?v=vBO9NyRpDXc">previously demonstrated</a>, but with the modules included. This will result in a very seamless and intuitive experience.</p>



<h2 class="wp-block-heading">Your tweets</h2>



<p class="wp-block-paragraph">You guys keep sending your awesome tweets, and we're always eager to read and feature them! If you got your UHK, please share your love!</p>



<blockquote class="twitter-tweet" data-conversation="none"><p lang="en" dir="ltr">Palm rest attached and plugged in. Typing tweet with new keyboard. Wrist rest appears to solve my problems (of having to bend your wrists inwards to type on a normal keyboard). I hope I can get used to the split! Does anyone else use one? <a href="https://t.co/Zo1HznJP61">pic.twitter.com/Zo1HznJP61</a></p>— Todd Motto ⚡ (@toddmotto) <a href="https://twitter.com/toddmotto/status/1295389920870256642?ref_src=twsrc%5Etfw">August 17, 2020</a></blockquote> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Got my hacker keyboard a week ago and I’m Loving it. Now I really feel the part! <br><br>It does need wrist rests though... <a href="https://twitter.com/hashtag/GotMyUHK?src=hash&amp;ref_src=twsrc%5Etfw">#GotMyUHK</a> ⁦<a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a>⁩ <a href="https://t.co/hgfwR2MXFN">pic.twitter.com/hgfwR2MXFN</a></p>— Rahul Bose (@garagisti) <a href="https://twitter.com/garagisti/status/1288715941157548032?ref_src=twsrc%5Etfw">July 30, 2020</a></blockquote> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Finally arrived <a href="https://twitter.com/hashtag/GotMyUHK?src=hash&amp;ref_src=twsrc%5Etfw">#GotMyUHK</a> ! Now it's time to excercise, excercise, excercise ... First impression: It will be an exciting journey 🙂 <a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a> <a href="https://t.co/2Ik5uEkk7x">pic.twitter.com/2Ik5uEkk7x</a></p>— Roland Huß 🌶 (@ro14nd) <a href="https://twitter.com/ro14nd/status/1295642432714035200?ref_src=twsrc%5Etfw">August 18, 2020</a></blockquote> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<p class="wp-block-paragraph">We’ll be keeping you updated on all things UHK, and are looking forward to talking to you on 2020-09-15.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://uhk.io/blog/2020/08/20/right-side-module-mold-progress/feed</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
			</item>
		<item>
		<title>Every module prototype is functional</title>
		<link>https://uhk.io/blog/2020/02/19/every-module-prototype-is-functional</link>
					<comments>https://uhk.io/blog/2020/02/19/every-module-prototype-is-functional#comments</comments>
		
		<dc:creator><![CDATA[László Monda]]></dc:creator>
		<pubDate>Wed, 19 Feb 2020 18:14:40 +0000</pubDate>
				<category><![CDATA[agent]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[modules]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[tech talk]]></category>
		<guid isPermaLink="false">https://uhk.io/?p=21380</guid>

					<description><![CDATA[Hi there, and welcome to the monthly UHK status update! TL;DR: The trackpoint and touchpad modules are functional, and we’ve got demo videos. The mouse mode of the UHK is usable to create digital art. Agent had a Linux security bug, so it’s worth upgrading. Module demos This update is quite late, but I think [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Hi there, and welcome to the monthly UHK status update!</p>



<p class="wp-block-paragraph"><em>TL;DR: The trackpoint and touchpad modules are functional, and we’ve got demo videos. The mouse mode of the UHK is usable to create digital art. Agent had a Linux security bug, so it’s worth upgrading.</em></p>



<h2 class="wp-block-heading">Module demos</h2>



<p class="wp-block-paragraph">This update is quite late, but I think it’s the coolest one so far. I’ve been knee-deep in the firmware of the modules recently which bore some delicious fruits… I mean functional modules.</p>



<p class="wp-block-paragraph">The trackpoint turned out great, and it’s very precise. Thanks to the dexterity of the thumb, I find the usability of the trackpoint module to be excellent despite the unusual trackpoint nib position compared to other trackpoint implementations.</p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-rich is-provider-embed-handler wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="UHK trackpoint and key cluster module demo" width="800" height="450" src="https://www.youtube.com/embed/04vkYPodPic?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">The touchpad is also finally usable now. It’s excellent for swift, long distance movements, but it has to be optimized a bit more for precision movements. The touchpad IC has numerous parameters, so my hopes are high that precision control can be sufficiently improved purely on the firmware side.</p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-rich is-provider-embed-handler wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="UHK touchpad and key cluster demo" width="800" height="450" src="https://www.youtube.com/embed/ey0A2_M3k3g?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">For the sake of completeness and comparison, see the trackball module demo, too. This demo was featured in our previous update.</p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-rich is-provider-embed-handler wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="UHK trackball and key cluster module demo" width="800" height="450" src="https://www.youtube.com/embed/cvkFvFA6kps?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">As you can see, all of the four module prototypes are functional. This is a huge milestone as far as the modules are concerned. Now that we have functional prototypes, it’s time to mass produce them.</p>



<p class="wp-block-paragraph">Mass production will take a number of steps such as creating tooling, procuring parts, doing EMC tests, and minor manufacturing optimizations - just to name a few. Luckily, many of these steps can be done in parallel, but they’ll still take months. We’ll announce an ETA in our next monthly update.</p>



<h2 class="wp-block-heading">Creating digital art with the UHK</h2>



<p class="wp-block-paragraph">Speaking of mouse control, although not as capable as the modules, let’s not forget about the venerable mouse layer of the UHK, as it’s very powerful for what it is. So much so that apparently it’s possible to create digital art with it. Give it up for Brandon Yu, who’s about to demonstrate the seemingly impossible.</p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-rich is-provider-embed-handler wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Creating digital art with the Ultimate Hacking Keyboard" width="800" height="450" src="https://www.youtube.com/embed/jt0Ky21FIww?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">I don’t know about you, but I’m officially blown away by Brandon’s skills and talent. Brandon also happens to be a game developer, so feel free to get in touch with him <a href="https://twitter.com/Chaoclypse" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">on Twitter</a>.</p>



<h2 class="wp-block-heading">New Agent features and security fix</h2>



<p class="wp-block-paragraph">Bill Gates used to say that 640K ought to be enough for everybody. I’m here to say that 32K is enough for every UHK user. Well, as far as the on-board memory of the UHK goes.</p>



<p class="wp-block-paragraph">Now that Agent shows the allocation of the on-board EEPROM memory of the UHK, it’s easy to see that about 4K is used by the default configuration of the total 32K. Even if you have dozens of keymaps and macros, it should still be enough.</p>



<figure class="wp-block-image size-medium"><img loading="lazy" decoding="async" width="640" height="406" src="https://uhk.io/wp-content/uploads/2020/02/agent-config-features-640x406.png" alt="" class="wp-image-21381" srcset="https://uhk.io/wp-content/uploads/2020/02/agent-config-features-640x406.png 640w, https://uhk.io/wp-content/uploads/2020/02/agent-config-features-1024x649.png 1024w, https://uhk.io/wp-content/uploads/2020/02/agent-config-features-1536x973.png 1536w, https://uhk.io/wp-content/uploads/2020/02/agent-config-features-100x63.png 100w, https://uhk.io/wp-content/uploads/2020/02/agent-config-features-320x202.png 320w, https://uhk.io/wp-content/uploads/2020/02/agent-config-features-200x127.png 200w, https://uhk.io/wp-content/uploads/2020/02/agent-config-features-400x253.png 400w, https://uhk.io/wp-content/uploads/2020/02/agent-config-features-600x380.png 600w, https://uhk.io/wp-content/uploads/2020/02/agent-config-features-800x507.png 800w, https://uhk.io/wp-content/uploads/2020/02/agent-config-features-1200x760.png 1200w, https://uhk.io/wp-content/uploads/2020/02/agent-config-features-500x317.png 500w, https://uhk.io/wp-content/uploads/2020/02/agent-config-features-700x444.png 700w, https://uhk.io/wp-content/uploads/2020/02/agent-config-features.png 1870w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<p class="wp-block-paragraph">If you take another look at the above picture, you can notice the newly added configuration history section. Every time you save your configuration, a new entry gets created here, and you can restore any previous configuration with a click of a button.</p>



<p class="wp-block-paragraph">Last, but not least, we’ve fixed a <a href="https://github.com/UltimateHackingKeyboard/agent/issues/1116" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">major security bug</a> which affected the Linux versions of Agent. We suggest installing the <a href="https://github.com/UltimateHackingKeyboard/agent/releases/latest" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">latest Agent version</a> which will fix the affected udev file upon starting it. Mad props go to Joel Eriksson of <a href="http://www.clevcode.org/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">ClevCode</a> for spotting this one!</p>



<h2 class="wp-block-heading">Your tweets</h2>



<p class="wp-block-paragraph">You guys keep sending your awesome tweets, and we’re always eager to read and feature them! If you got your UHK, please share your love!</p>



<blockquote class="twitter-tweet"><p lang="en" dir="ltr">I finally <a href="https://twitter.com/hashtag/GotMyUHK?src=hash&amp;ref_src=twsrc%5Etfw">#GotMyUHK</a> and it's wonderful <a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a> <a href="https://t.co/KuXMEugUQc">pic.twitter.com/KuXMEugUQc</a></p>— Alberto Munguia (@albertone_9) <a href="https://twitter.com/albertone_9/status/1220261257384611840?ref_src=twsrc%5Etfw">January 23, 2020</a></blockquote> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Goodbye strain injuries! Goodbye cursor keys! <a href="https://twitter.com/hashtag/GotMyUHK?src=hash&amp;ref_src=twsrc%5Etfw">#GotMyUHK</a> <a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a> <a href="https://t.co/ajBxv0mIbM">pic.twitter.com/ajBxv0mIbM</a></p>— Diederick de Vries (@diederickdvries) <a href="https://twitter.com/diederickdvries/status/1217516757990232066?ref_src=twsrc%5Etfw">January 15, 2020</a></blockquote> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet"><p lang="en" dir="ltr"><a href="https://twitter.com/hashtag/GotMyUHK?src=hash&amp;ref_src=twsrc%5Etfw">#GotMyUHK</a> several month ago and loving it more each day. Can‘t wait for the add-on modules to ship. <a href="https://t.co/D34vzmipQ7">pic.twitter.com/D34vzmipQ7</a></p>— Holger Hartmann (@HartmannHolger) <a href="https://twitter.com/HartmannHolger/status/1219230361013583872?ref_src=twsrc%5Etfw">January 20, 2020</a></blockquote> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet"><p lang="en" dir="ltr">And I got it set up. This is definitely gonna take some getting used to, but I'm gonna enjoy the process. And both it, the starter guide, even the packaging is so well done. This is gonna be worth every damn penny and then some. <a href="https://twitter.com/hashtag/GotMyUHK?src=hash&amp;ref_src=twsrc%5Etfw">#GotMyUHK</a> <a href="https://t.co/QQVLrOJ4nJ">pic.twitter.com/QQVLrOJ4nJ</a></p>— Sam Block, surly mystic hooligan 𐠎 (@polyphanes) <a href="https://twitter.com/polyphanes/status/1220488649667686401?ref_src=twsrc%5Etfw">January 23, 2020</a></blockquote> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Aside from the still-to-be-released trackball module, my UHK is ready for daily use! Current customizations; long &amp; straight rj11 cable reaches behind the laptop screen, custom tenting solution and some blank white keycaps.<a href="https://twitter.com/hashtag/gotmyuhk?src=hash&amp;ref_src=twsrc%5Etfw">#gotmyuhk</a> <a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a> <a href="https://t.co/kxM99TkdVR">pic.twitter.com/kxM99TkdVR</a></p>— Thykka (@Thykka) <a href="https://twitter.com/Thykka/status/1221750520790102016?ref_src=twsrc%5Etfw">January 27, 2020</a></blockquote> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<p class="wp-block-paragraph">We’ll be keeping you updated on all things UHK, and are looking forward to talking to you on 2020-03-10.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://uhk.io/blog/2020/02/19/every-module-prototype-is-functional/feed</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>The trackball module is fully functional</title>
		<link>https://uhk.io/blog/2020/01/10/the-trackball-module-is-fully-functional</link>
					<comments>https://uhk.io/blog/2020/01/10/the-trackball-module-is-fully-functional#comments</comments>
		
		<dc:creator><![CDATA[László Monda]]></dc:creator>
		<pubDate>Fri, 10 Jan 2020 21:49:46 +0000</pubDate>
				<category><![CDATA[demo]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[modules]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[tech talk]]></category>
		<guid isPermaLink="false">https://uhk.io/?p=20867</guid>

					<description><![CDATA[Hi there, and welcome to the monthly UHK status update! TL;DR: The trackball module is now fully functional. Modules will be more portable than expected. Some great UHK reviews have been published. Trackball module demo I really wanted to show up the trackball module in the previous UHK newsletter, but couldn’t because the pointer moved [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Hi there, and welcome to the monthly UHK status update!</p>



<p class="wp-block-paragraph"><em>TL;DR: The trackball module is now fully functional. Modules will be more portable than expected. Some great UHK reviews have been published.</em></p>



<h2 class="wp-block-heading">Trackball module demo</h2>



<p class="wp-block-paragraph">I really wanted to show up the trackball module in the previous UHK newsletter, but couldn’t because the pointer moved in a very erratic fashion. I’m happy to report that I’ve managed to fix the problem, so here comes the obligatory demo.</p>



<iframe width="560" height="315" src="https://www.youtube.com/embed/cvkFvFA6kps" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>



<p class="wp-block-paragraph">We’re very pleased with the usability of both the trackball and key cluster modules. They allow for fine-grained mouse control without leaving the home row, and work just as envisioned. The mini trackball of the key cluster is very handy for scrolling, and the trackball module is a great tool for moving the pointer.</p>



<p class="wp-block-paragraph">Although the schematic of the trackball prototype contained minor errors, the fix mostly involved <a href="https://github.com/UltimateHackingKeyboard/firmware/commit/50bc59a92edf7caa265eca58bfb2d4b0aefe8f42" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">changing a couple of lines</a> of the trackball module firmware. This was followed by the refactoring of the trackball module firmware, specifically, and then a massive refactoring of the module firmware codebase in general. As a result, the source code of the modules shrunk to merely 100-200 lines per module, allowing me to develop the firmwares of the remaining modules with minimum effort.</p>



<p class="wp-block-paragraph">I’ve already started to develop the firmware of the trackpoint module, and the new touchpad PCB has just arrived, ready to be assembled. I’m looking forward to making these modules work, too. We’ll be keeping you updated.</p>



<h2 class="wp-block-heading">Module portability</h2>



<p class="wp-block-paragraph">The modules make the UHK less portable in the sense that one can’t just merge the halves and pick them up with one hand, but as it turns out, even with the modules, portability is exceptionally good for a modular keyboard.</p>



<p class="wp-block-paragraph">It spontaneously occurred to us when playing with the modules that the left and right modules merge, just as the keyboard halves. This isn’t surprising given that the keyboard halves merge, and the shape of the modules is the inverse of the keyboard halves.</p>



<p class="wp-block-paragraph">Then it also occurred to us that, given that the back of the modules feature magnets and magnet counterparts just as the UHK does, the modules and the UHK can be stuck together.</p>



<figure class="wp-block-image size-medium is-style-default"><img loading="lazy" decoding="async" width="640" height="324" src="https://uhk.io/wp-content/uploads/2020/01/trackball-keycluster-stuck-on-the-back-of-uhk60-640x324.jpg" alt="" class="wp-image-20868" srcset="https://uhk.io/wp-content/uploads/2020/01/trackball-keycluster-stuck-on-the-back-of-uhk60-640x324.jpg 640w, https://uhk.io/wp-content/uploads/2020/01/trackball-keycluster-stuck-on-the-back-of-uhk60-1024x519.jpg 1024w, https://uhk.io/wp-content/uploads/2020/01/trackball-keycluster-stuck-on-the-back-of-uhk60-1536x778.jpg 1536w, https://uhk.io/wp-content/uploads/2020/01/trackball-keycluster-stuck-on-the-back-of-uhk60-2048x1037.jpg 2048w, https://uhk.io/wp-content/uploads/2020/01/trackball-keycluster-stuck-on-the-back-of-uhk60-100x51.jpg 100w, https://uhk.io/wp-content/uploads/2020/01/trackball-keycluster-stuck-on-the-back-of-uhk60-540x272.jpg 540w, https://uhk.io/wp-content/uploads/2020/01/trackball-keycluster-stuck-on-the-back-of-uhk60-200x101.jpg 200w, https://uhk.io/wp-content/uploads/2020/01/trackball-keycluster-stuck-on-the-back-of-uhk60-400x203.jpg 400w, https://uhk.io/wp-content/uploads/2020/01/trackball-keycluster-stuck-on-the-back-of-uhk60-600x304.jpg 600w, https://uhk.io/wp-content/uploads/2020/01/trackball-keycluster-stuck-on-the-back-of-uhk60-800x405.jpg 800w, https://uhk.io/wp-content/uploads/2020/01/trackball-keycluster-stuck-on-the-back-of-uhk60-1200x608.jpg 1200w, https://uhk.io/wp-content/uploads/2020/01/trackball-keycluster-stuck-on-the-back-of-uhk60-500x253.jpg 500w, https://uhk.io/wp-content/uploads/2020/01/trackball-keycluster-stuck-on-the-back-of-uhk60-700x355.jpg 700w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<p class="wp-block-paragraph">This allows for great portability despite the modular nature of the UHK, and as a bonus, it’s quite a conversation piece.</p>



<h2 class="wp-block-heading">UHK reviews</h2>



<p class="wp-block-paragraph">LearnCode.academy has made an outstanding video review of the UHK, which we were quite flattered by. Will has praised many facets of the UHK, including its build quality, feature set, and ease of configurability.</p>



<iframe width="560" height="315" src="https://www.youtube.com/embed/v38H67xWfOI" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>



<p class="wp-block-paragraph">Another spectacular <a href="https://www.techpowerup.com/review/ultimate-hacking-keyboard/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">review has been made by TechPowerUp</a>. This one is extremely in-depth, contains tons of high quality pictures, and doesn’t only explore the outside of the UHK but its inside, too.</p>



<h2 class="wp-block-heading">Your tweets</h2>



<p class="wp-block-paragraph">You guys keep sending your awesome tweets, and we’re always eager to read and feature them! If you got your UHK, please share your love!</p>



<blockquote class="twitter-tweet"><p lang="en" dir="ltr">It's been about 13 months since I <a href="https://twitter.com/hashtag/GotMyUHK?src=hash&amp;ref_src=twsrc%5Etfw">#GotMyUHK</a>....and it's been 13 months since I've used a traditional mouse. <a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a> has produced the best computing peripheral I've ever purchased, bar none.</p>— Justin Angel (@4rch4ngel86) <a href="https://twitter.com/4rch4ngel86/status/1209441978741600256?ref_src=twsrc%5Etfw">December 24, 2019</a></blockquote> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet"><p lang="en" dir="ltr">I gave second try to <a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a> and absolutely love it <a href="https://t.co/8ER8taPfO3">pic.twitter.com/8ER8taPfO3</a></p>— Tygas (@Tygas) <a href="https://twitter.com/Tygas/status/1214451261128552448?ref_src=twsrc%5Etfw">January 7, 2020</a></blockquote> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet"><p lang="en" dir="ltr">I've been using my <a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a> for three weeks now. It's amazing. The build quality is such that typing is enjoyable. Still get the hang of switching between the various mod keys. If you're thinking about getting one do so. It's so worth it.</p>— Ben Schmidt (@SurRobin) <a href="https://twitter.com/SurRobin/status/1209378671871479808?ref_src=twsrc%5Etfw">December 24, 2019</a></blockquote> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet"><p lang="en" dir="ltr">I <a href="https://twitter.com/hashtag/GotMyUHK?src=hash&amp;ref_src=twsrc%5Etfw">#GotMyUHK</a> from <a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a> and I'm really liking it. Beyond the quality hardware, the team really thought about the details (packaging, onboarding, Agent). Paired with a Surface Book 2, I'm really happy with my mobile setup. <a href="https://t.co/L5MciQO4Bl">pic.twitter.com/L5MciQO4Bl</a></p>— Matt Robinson (@artPlusPlus) <a href="https://twitter.com/artPlusPlus/status/1210202599531700229?ref_src=twsrc%5Etfw">December 26, 2019</a></blockquote> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Okay, I've been using my <a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a> full time for a year now. It was hard to learn how to use a separate keyboard, but the main goal was achieved, I feel no more pain in my wrists when working for more than 3 hours, and it's awesome. I'm very happy about it.</p>— アルテミ ・ ステパノフ (@0xk175un3) <a href="https://twitter.com/0xk175un3/status/1210372428754489344?ref_src=twsrc%5Etfw">December 27, 2019</a></blockquote> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet"><p lang="en" dir="ltr">New colours for #2020 🥳 <a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a> <a href="https://t.co/UBM8Skxcq6">pic.twitter.com/UBM8Skxcq6</a></p>— Lukasz 👨‍💻😀 (@lplotni) <a href="https://twitter.com/lplotni/status/1211667962408656904?ref_src=twsrc%5Etfw">December 30, 2019</a></blockquote> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet" data-conversation="none"><p lang="en" dir="ltr">I preordered when they first announced then cancelled when the project was delayed. Just got one last month now that they are in stock. The build quality and typing experience are both exceptional. I got white case with clear switches and the wrist rest. Happy to field any Qs</p>— Josh Greenwood (@JoshTGreenwood) <a href="https://twitter.com/JoshTGreenwood/status/1209883849678884867?ref_src=twsrc%5Etfw">December 25, 2019</a></blockquote> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Just <a href="https://twitter.com/hashtag/GotMyUHK?src=hash&amp;ref_src=twsrc%5Etfw">#GotMyUHK</a> from <a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a>! <a href="https://t.co/PAVxzjTCAJ">pic.twitter.com/PAVxzjTCAJ</a></p>— Gastón (@gargrag) <a href="https://twitter.com/gargrag/status/1215513701941272578?ref_src=twsrc%5Etfw">January 10, 2020</a></blockquote> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<p class="wp-block-paragraph">We’ll be keeping you updated on all things UHK, and are looking forward to talking to you on 2020-02-10.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://uhk.io/blog/2020/01/10/the-trackball-module-is-fully-functional/feed</wfw:commentRss>
			<slash:comments>19</slash:comments>
		
		
			</item>
		<item>
		<title>Trackball and touchpad module progress</title>
		<link>https://uhk.io/blog/2019/12/11/trackball-and-touchpad-module-progress</link>
		
		<dc:creator><![CDATA[László Monda]]></dc:creator>
		<pubDate>Wed, 11 Dec 2019 21:06:18 +0000</pubDate>
				<category><![CDATA[demo]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[modules]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[tech talk]]></category>
		<guid isPermaLink="false">https://uhk.io/?p=20484</guid>

					<description><![CDATA[Hi there, and welcome to the monthly UHK status update! TL;DR: We’ve made progress with the trackball and touchpad modules. Some outstanding UHK reviews have been published. Trackball and touchpad module progress I recently thought I’d finished the firmware for the trackball module and it would be ready to demonstrate for all of you. I [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Hi there, and welcome to the monthly UHK status update!</p>



<p class="wp-block-paragraph"><em>TL;DR: We’ve made progress with the trackball and touchpad modules. Some outstanding UHK reviews have been published.</em></p>



<h2 class="wp-block-heading">Trackball and touchpad module progress</h2>



<p class="wp-block-paragraph">I recently thought I’d finished the firmware for the trackball module and it would be ready to demonstrate for all of you. I can give you a demonstration, but it’s not what I was hoping for.</p>



<iframe width="560" height="315" src="https://www.youtube.com/embed/OCd6pzXzJhs" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>



<p class="wp-block-paragraph">As you can see, the pointer moves in highly erratic fashion, and it heavily drifts toward the top right corner. I can affect the pointer by moving the trackball toward the bottom left corner, but the erratic movement usually overpowers my movements. I believe that this is a side-effect of insufficient filtering on the PCB, but it’s really just a wild guess on my part, and I’ve contacted PixArt, the manufacturer of the optical sensor who will help.</p>



<p class="wp-block-paragraph">As for the touchpad, we’ve increased its resolution and sensing area.</p>



<figure class="wp-block-image size-medium"><img loading="lazy" decoding="async" width="640" height="451" src="https://uhk.io/wp-content/uploads/2019/12/touchpad-pcb-640x451.png" alt="" class="wp-image-20485" srcset="https://uhk.io/wp-content/uploads/2019/12/touchpad-pcb-640x451.png 640w, https://uhk.io/wp-content/uploads/2019/12/touchpad-pcb-1024x721.png 1024w, https://uhk.io/wp-content/uploads/2019/12/touchpad-pcb-100x70.png 100w, https://uhk.io/wp-content/uploads/2019/12/touchpad-pcb-200x141.png 200w, https://uhk.io/wp-content/uploads/2019/12/touchpad-pcb-400x282.png 400w, https://uhk.io/wp-content/uploads/2019/12/touchpad-pcb-600x423.png 600w, https://uhk.io/wp-content/uploads/2019/12/touchpad-pcb-800x563.png 800w, https://uhk.io/wp-content/uploads/2019/12/touchpad-pcb-1200x845.png 1200w, https://uhk.io/wp-content/uploads/2019/12/touchpad-pcb-500x352.png 500w, https://uhk.io/wp-content/uploads/2019/12/touchpad-pcb-700x493.png 700w, https://uhk.io/wp-content/uploads/2019/12/touchpad-pcb.png 1339w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<p class="wp-block-paragraph">The big footprint is for an optionally solderable 2x20 pin 0.1" connector that directly mates with the Azoteq CT210A-S dongle for configuration and diagnostics purposes.</p>



<p class="wp-block-paragraph">The new design is a clear improvement over the old one, but we still have some work to do based Azoteq’s new feedback. The ground must be routed in a very specific way to maximize sensor performance. It’s not rocket science, just finicky. István is working on the next PCB version.</p>



<p class="wp-block-paragraph">Next up, I’ll be working on the firmware for the trackpoint module, and will implement the suggestions of PixArt to make the trackball module work flawlessly. I hope that I’ll be able to showcase at least one, but hopefully both of these modules in our next monthly update. The key cluster module prototype is already fully functional, and the touchpad module will come last.</p>



<h2 class="wp-block-heading">UHK reviews</h2>



<p class="wp-block-paragraph">Quite a few UHK reviews have been made recently. Let’s take a look at them!</p>



<p class="wp-block-paragraph">ShopzadaPH has made an extremely thorough review featuring an unboxing, the keycaps, layout, switches, and configuration of the UHK. He really left no stone unturned, and the production quality is great. This one is highly recommended if you’re considering purchasing a UHK.</p>



<iframe width="560" height="315" src="https://www.youtube.com/embed/jebZ34eBueE" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>



<p class="wp-block-paragraph">Thomas Ran is the king of the hill when it comes to mechanical keyboard reviews on YouTube, and he’s just reviewed the UHK. In his review, he emphasizes that he’s not an ergo guy, and yet, he’s done a great job of explaining the fundamentals of ergo boards and reviewing the UHK.</p>



<iframe width="560" height="315" src="https://www.youtube.com/embed/3KVEK98AHRs" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>



<p class="wp-block-paragraph">I met Christian Bäuerlein in 2018, as he's the organizer of Mechanicon, the meetup for mechanical keyboard enthusiasts in Germany. He recently offered to review the UHK, and given his formidable experience with mechanical keyboards, I gladly said yes. I think he’s done a great job of capturing the essence of the UHK in <a href="https://www.christianbaeuerlein.com/ultimate-hacking-keyboard-review">his review</a>, including unboxing, assembly, layout, configuration, switches and keycaps.</p>



<p class="wp-block-paragraph">Hardware.Info may well be the largest testing lab for computer hardware, peripherals and consumer electronics in the Benelux, which shows in their UHK review, as it’s so detailed, it’s almost like a mad science experiment. Thanks to the magic of Google Translate, English readers can read the <a href="https://translate.google.com/translate?sl=auto&amp;tl=en&amp;u=https%3A%2F%2Fnl.hardware.info%2Fartikel%2F9783%2Fultimate-hacking-keyboard-review-mechanisch-ergonomisch-en-aanpasbaar-toetsenbord">translated English review</a>, or read the <a href="https://nl.hardware.info/artikel/9783/ultimate-hacking-keyboard-review-mechanisch-ergonomisch-en-aanpasbaar-toetsenbord">original Dutch review</a>.</p>



<h2 class="wp-block-heading">Your tweets</h2>



<p class="wp-block-paragraph">You guys keep sending your awesome tweets, and we’re always eager to read and feature them! If you got your UHK, please share your love!</p>



<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Okay, I&#39;ve been using my <a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a> full time for a few weeks now. My mind is blown on what I can do with it. The UHK Agent has truly changed how I navigate my machine and the tools I use. <a href="https://twitter.com/hashtag/VeryVeryHappy?src=hash&amp;ref_src=twsrc%5Etfw">#VeryVeryHappy</a></p>&mdash; Mark Pearl (@MarkPearlCoZa) <a href="https://twitter.com/MarkPearlCoZa/status/1197593402323304449?ref_src=twsrc%5Etfw">November 21, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet"><p lang="en" dir="ltr"><a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a> I&#39;ve got to the point where I&#39;m bringing my UHK back and forth between home and work, because I don&#39;t want to use anything else.</p>&mdash; Mikkel Munch Mortensen (@decibyte) <a href="https://twitter.com/decibyte/status/1202894828352225280?ref_src=twsrc%5Etfw">December 6, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Loving my <a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a> <br>Hands down the most:<br>-Beautiful unboxing<br>-Helpful onboarding process<br>-Comfortable keyboard<br><br>Bravo! <a href="https://t.co/GSZZHVFLVb">pic.twitter.com/GSZZHVFLVb</a></p>&mdash; Noam Tenne (@NoamTenne) <a href="https://twitter.com/NoamTenne/status/1202882213584527360?ref_src=twsrc%5Etfw">December 6, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Got my first artisan keycap for my <a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a> <a href="https://twitter.com/hashtag/thelegendofzelda?src=hash&amp;ref_src=twsrc%5Etfw">#thelegendofzelda</a><br><br>Loving it! <a href="https://t.co/931Tt7Zdh1">pic.twitter.com/931Tt7Zdh1</a></p>&mdash; Manuel Iglesias (@menyao) <a href="https://twitter.com/menyao/status/1198018444194504707?ref_src=twsrc%5Etfw">November 22, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Hey <a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a> <a href="https://twitter.com/hashtag/GotMyUHK?src=hash&amp;ref_src=twsrc%5Etfw">#GotMyUHK</a> today. Fantastic build, love the mod keys, looking forward to coding with it 😁 <a href="https://t.co/rHoRu5Mmv8">pic.twitter.com/rHoRu5Mmv8</a></p>&mdash; Ben Schmidt (@SurRobin) <a href="https://twitter.com/SurRobin/status/1204706993753083905?ref_src=twsrc%5Etfw">December 11, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">色々買い揃えてお仕事環境が整いました<br>自分への誕プレ <a href="https://t.co/jonQiJRdTq">pic.twitter.com/jonQiJRdTq</a></p>&mdash; るしあん🥀過疎鯖メーカー (@Rusian0) <a href="https://twitter.com/Rusian0/status/1203981616495751169?ref_src=twsrc%5Etfw">December 9, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<p class="wp-block-paragraph">We’ll be keeping you updated on all things UHK, and are looking forward to talking to you on 2020-01-10.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Key cluster and trackpoint module progress</title>
		<link>https://uhk.io/blog/2019/06/13/key-cluster-and-trackpoint-module-progress</link>
					<comments>https://uhk.io/blog/2019/06/13/key-cluster-and-trackpoint-module-progress#comments</comments>
		
		<dc:creator><![CDATA[László Monda]]></dc:creator>
		<pubDate>Thu, 13 Jun 2019 23:23:08 +0000</pubDate>
				<category><![CDATA[demo]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[modules]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[tech talk]]></category>
		<guid isPermaLink="false">https://uhk.io/?p=17891</guid>

					<description><![CDATA[TL;DR: We’ve been making progress with the key cluster and trackpoint modules. New orders ship in a week, except non-black UHK cases. Hi there, and welcome to our monthly status update! Let’s get right to it! Production status If you want your UHK shipped in a week, you should pick the black UHK case option. [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><em>TL;DR: We’ve been making progress with the key cluster and trackpoint modules. New orders ship in a week, except non-black UHK cases.</em></p>



<p class="wp-block-paragraph">Hi there, and welcome to our monthly status update! Let’s get right to it!</p>



<h2 class="wp-block-heading">Production status</h2>



<p class="wp-block-paragraph">If you want your UHK shipped in a week, you should pick the black UHK case option. Otherwise your order will take longer due to temporary parts shortages. This shortage was mentioned in our previous monthly update, and we’ve been working on resolving it, but it’s taking more time than anticipated.</p>



<p class="wp-block-paragraph">If you have any questions about the ETA of your order, please do read the <a href="https://uhk.io/delivery-status">delivery status page</a>. We keep this page up-to-date, and we’re unable to provide more accurate information, not even if you email us.</p>



<h2 class="wp-block-heading">Module progress</h2>



<p class="wp-block-paragraph">In our previous monthly update, I included a picture of the development board for the key cluster module. In the meantime, I’ve also written firmware to drive it, so here comes its obligatory demonstration:</p>



<p class="wp-block-paragraph"><iframe width="560" height="315" src="https://www.youtube.com/embed/ZGpz8dPfGdE" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe></p>



<p class="wp-block-paragraph">From a technical standpoint, the BlackBerry trackball is an interesting little beast. The ball itself is not even electrically connected to the PCB. Instead, its four spindles rotate when pushed in the four directions. The spindles contain magnets which alter their magnetic fields about 9 times during a 360 degree rotation, and the alternating magnetic field is detected by the hall-effect sensors on the PCB.</p>



<p class="wp-block-paragraph">Given its limited resolution, the BlackBerry trackball is hardly an ideal device for controlling the mouse pointer (right-sided modules will perform far better in that department), but it’s very well suited for scrolling in every direction. I’m actually surprised how well it’s already working, even though it’s the first working prototype. Over time, we’ll make the acceleration and speed of the mini trackball configurable, which will make it even more useful.</p>



<p class="wp-block-paragraph">As far as the firmware goes, firstly, I slightly extended the UHK module protocol responsible for the keyboard halves and modules to communicate with each other. This allowed for the transmission of not only key states, but also pointer movement information. Then I wrote a driver for the BlackBerry trackball purely using interrupt handlers, which is the most efficient approach there is. Finally, I made the key cluster transmit the pointer movement information of the BlackBerry trackball to the right keyboard half which is the brain of the UHK.</p>



<figure class="wp-block-image"><a href="https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-no-top.jpg"><img loading="lazy" decoding="async" width="640" height="306" src="https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-no-top-640x306.jpg" alt="" class="wp-image-17892" srcset="https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-no-top-640x306.jpg 640w, https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-no-top-1024x490.jpg 1024w, https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-no-top-100x48.jpg 100w, https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-no-top-200x96.jpg 200w, https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-no-top-400x191.jpg 400w, https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-no-top-600x287.jpg 600w, https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-no-top-800x382.jpg 800w, https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-no-top-1200x574.jpg 1200w, https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-no-top-500x239.jpg 500w, https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-no-top-700x335.jpg 700w" sizes="(max-width: 640px) 100vw, 640px" /></a></figure>



<figure class="wp-block-image"><a href="https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-outside.jpg"><img loading="lazy" decoding="async" width="640" height="306" src="https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-outside-640x306.jpg" alt="" class="wp-image-17893" srcset="https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-outside-640x306.jpg 640w, https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-outside-1024x490.jpg 1024w, https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-outside-100x48.jpg 100w, https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-outside-200x96.jpg 200w, https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-outside-400x191.jpg 400w, https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-outside-600x287.jpg 600w, https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-outside-800x382.jpg 800w, https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-outside-1200x574.jpg 1200w, https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-outside-500x239.jpg 500w, https://uhk.io/wp-content/uploads/2019/06/key-cluster-prototype-outside-700x335.jpg 700w" sizes="(max-width: 640px) 100vw, 640px" /></a></figure>



<p class="wp-block-paragraph">The above pictures feature our most recent mechanical key cluster prototype. The creation of a working PCB is underway.</p>



<p class="wp-block-paragraph">We’ve also made a mechanical prototype of the inside of the trackpoint module:</p>



<figure class="wp-block-image"><a href="https://uhk.io/wp-content/uploads/2019/06/trackpoint-inside.jpg"><img loading="lazy" decoding="async" width="640" height="306" src="https://uhk.io/wp-content/uploads/2019/06/trackpoint-inside-640x306.jpg" alt="" class="wp-image-17894" srcset="https://uhk.io/wp-content/uploads/2019/06/trackpoint-inside-640x306.jpg 640w, https://uhk.io/wp-content/uploads/2019/06/trackpoint-inside-1024x490.jpg 1024w, https://uhk.io/wp-content/uploads/2019/06/trackpoint-inside-100x48.jpg 100w, https://uhk.io/wp-content/uploads/2019/06/trackpoint-inside-200x96.jpg 200w, https://uhk.io/wp-content/uploads/2019/06/trackpoint-inside-400x191.jpg 400w, https://uhk.io/wp-content/uploads/2019/06/trackpoint-inside-600x287.jpg 600w, https://uhk.io/wp-content/uploads/2019/06/trackpoint-inside-800x382.jpg 800w, https://uhk.io/wp-content/uploads/2019/06/trackpoint-inside-1200x574.jpg 1200w, https://uhk.io/wp-content/uploads/2019/06/trackpoint-inside-500x239.jpg 500w, https://uhk.io/wp-content/uploads/2019/06/trackpoint-inside-700x335.jpg 700w" sizes="(max-width: 640px) 100vw, 640px" /></a></figure>



<p class="wp-block-paragraph">We may change the trackpoint component depending on various design constraints, but the overall mechanical design is expected to be close to final.</p>



<p class="wp-block-paragraph">We’ve actually made progress with every one of the modules, but haven’t yet prototyped the others. We’ll be sharing all their juicy details in our upcoming newsletters.</p>



<h2 class="wp-block-heading">Your feedback</h2>



<p class="wp-block-paragraph">You keep sending your nice tweets which we’re grateful for! Please keep them coming!</p>



<blockquote class="twitter-tweet" data-conversation="none" data-lang="en"><p lang="en" dir="ltr">This is an incredibly good keyboard. Love how thoroughly well thought-out all the functions are, optimizing the functionality available within reach for your fingers, leading to better ergonomy and less pain, incl the kb-based "mouse" (which is awesome!). 👈 <a href="https://twitter.com/hashtag/TypedOnMyUHK?src=hash&amp;ref_src=twsrc%5Etfw">#TypedOnMyUHK</a></p>— Samuel Lampa (@smllmp) <a href="https://twitter.com/smllmp/status/1138060632278913026?ref_src=twsrc%5Etfw">June 10, 2019</a></blockquote>
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">From ordering to delivery, setup and ease of use, the <a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a> is simply fantastic!! Loving mouse mode. <a href="https://twitter.com/hashtag/productiveprogrammer?src=hash&amp;ref_src=twsrc%5Etfw">#productiveprogrammer</a> <a href="https://twitter.com/hashtag/lifehacks?src=hash&amp;ref_src=twsrc%5Etfw">#lifehacks</a> <a href="https://t.co/9TaLI4llBQ">pic.twitter.com/9TaLI4llBQ</a></p>— Paul Usher (@paul__usher) <a href="https://twitter.com/paul__usher/status/1130680552464367617?ref_src=twsrc%5Etfw">May 21, 2019</a></blockquote>
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">So there is about a month since i get my <a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a>. And i like everything about it, it will be perfect it there was topre switches! Still definitely recommended to everyone! <a href="https://t.co/DOlh77RWs8">pic.twitter.com/DOlh77RWs8</a></p>— アルテミ ・ ステパノフ (@0xk175un3) <a href="https://twitter.com/0xk175un3/status/1130602006085820417?ref_src=twsrc%5Etfw">May 20, 2019</a></blockquote>
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">Thanks <a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a> and <a href="https://twitter.com/ZealPC?ref_src=twsrc%5Etfw">@ZealPC</a> best keyboard I've ever had the pleasure of typing on. <a href="https://t.co/TyhMEeREuH">pic.twitter.com/TyhMEeREuH</a></p>— Karl Sabo (@karlsabo) <a href="https://twitter.com/karlsabo/status/1131350093825597440?ref_src=twsrc%5Etfw">May 23, 2019</a></blockquote>
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">It arrived! Unpacking in progress. It looks great. Cannot wait to use it. Thanks <a href="https://twitter.com/UltHackKeyboard?ref_src=twsrc%5Etfw">@UltHackKeyboard</a> for the speedy delivery! (just 2 days) <a href="https://t.co/leL5eI8AaO">pic.twitter.com/leL5eI8AaO</a></p>— Zaiste (@zaiste) <a href="https://twitter.com/zaiste/status/1130450967663656962?ref_src=twsrc%5Etfw">May 20, 2019</a></blockquote>
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<p class="wp-block-paragraph">We’ll be keeping you updated on all things UHK, and we’re looking forward to talking to you on 2019-07-10.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://uhk.io/blog/2019/06/13/key-cluster-and-trackpoint-module-progress/feed</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
	</channel>
</rss>
