<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <atom:link href="https://low.audioattack.de/rss.xml" rel="self" type="application/rss+xml"/>
    <title>low.audioattack.de</title>
    <link>https://low.audioattack.de</link>
    <description/>
    <lastBuildDate>Tue, 01 Jul 2025 18:53:12 +0200</lastBuildDate>
    <item>
      <title>Creating a firmware for the Mysterium keyboard with OLED support (REVISITED)</title>
      <link>https://low.audioattack.de/creating-a-firmware-for-the-mysterium-keyboard-with-oled-support-revisited</link>
      <image/>
      <description>&lt;p&gt;After &lt;a href="https://low.audioattack.de/creating-a-firmware-for-the-mysterium-keyboard-with-oled-support"&gt;creating my own firmware for the Mysterium keyboard with OLED support&lt;/a&gt; I noticed that one key (&amp;lt; &amp;gt; |) did not work. Of course! I missed that he default keymap was for ANSI keyboards and my keyboards are ISO keyboards. 🤦&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://github.com/vial-kb/vial-qmk"&gt;https://github.com/vial-kb/vial-qmk&lt;/a&gt; repository does not contain an ISO keymap for the Mysterium. That's why I tried the &lt;a href="https://github.com/piit79/qmk_firmware"&gt;https://github.com/piit79/qmk_firmware&lt;/a&gt; repository by 42Keebs. Unfortunately, it seems to be a little bit outdated. I was not able to compile the firmware without editing the code first and volume control had problems when I tested the keyboard with a Windows system (volume was unintentionally set to minimum or maximum).&lt;/p&gt;
&lt;p&gt;That's why I decided to create a Frankenstein firmware by using the vial-qmk repo with a copy of the ISO keymap from the qmk branch by 42Keebs. My fork of vial-qmk can be found at &lt;a href="https://github.com/marcnause/vial-qmk"&gt;https://github.com/marcnause/vial-qmk&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I made the following changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;add OLED support (as described in previous blog article, see link in first paragraph)&lt;/li&gt;
&lt;li&gt;change encoder resolution (volume would only be changed on every second step)&lt;/li&gt;
&lt;li&gt;add ISO keymap from 42Keebs' qmk branch&lt;/li&gt;
&lt;li&gt;change key code from KC_PAUS to KC_MUTE for the encoder to be able to mute voluem by pressing the encoder&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then I compiled the firmware with&lt;/p&gt;
&lt;pre&gt;qmk compile -kb 42keebs/mysterium/v15d -km default &lt;/pre&gt;
&lt;p&gt;and flashed it as described in &lt;a href="https://low.audioattack.de/flashing-the-firmware-of-the-mysterium-diy-keyboard"&gt;Flashing the firmware of the Mysterium DIY keyboard&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;If you don't want to compile the firmware yourself, you can download my version (right-click and save as): &lt;a href="https://low.audioattack.de/docs/42keebs_mysterium_v15d_iso.hex"&gt;42keebs_mysterium_v15d_iso.hex&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sat, 02 Nov 2024 19:22:52 +0100</pubDate>
      <guid isPermaLink="false">802f13c7e295511f6f47ea919ff6aae0</guid>
    </item>
    <item>
      <title>Creating a firmware for the Mysterium keyboard with OLED support</title>
      <link>https://low.audioattack.de/creating-a-firmware-for-the-mysterium-keyboard-with-oled-support</link>
      <image/>
      <description>&lt;p&gt;I have built two Mysterium keyboards from &lt;a href="https://42keebs.eu/shop/kits/with-discrete-mcu/mysterium-ansi-iso-tkl-kit-black-white/"&gt;kits by 42Keebs&lt;/a&gt;. Building the keyboards was fun and I use them in the office and at home nearly every day. The only thing that bugged me was that the firmware I downloaded from the 42Keebs website did not display anything on the (optional) OLED of the keyboard.&lt;/p&gt;
&lt;p&gt;I assumed that either nobody bothered or got around to utilizing the display yet or that the firmware was compiled without OLED support being configured.&lt;/p&gt;
&lt;p&gt;Since I used the &lt;a href="https://get.vial.today/"&gt;Vial&lt;/a&gt; version of the firmware, I cloned &lt;a href="https://github.com/vial-kb/vial-qmk"&gt;https://github.com/vial-kb/vial-qmk&lt;/a&gt;.&lt;/p&gt;
&lt;pre&gt;git clone git@github.com:vial-kb/vial-qmk.git&lt;/pre&gt;
&lt;p&gt;I use Debian and I had problems with QMK installed via pip. Using the QMK version provided via the Debian software repository worked much better for me.&lt;/p&gt;
&lt;pre&gt;sudo apt install qmk&lt;/pre&gt;
&lt;p&gt;QMK needs to be initialized before it can be used:&lt;/p&gt;
&lt;pre&gt;cd vial-qmk&lt;br&gt;qmk setup&lt;/pre&gt;
&lt;p&gt;The changed to the directory which contains the code for the Mysterium keyboard is located in:&lt;/p&gt;
&lt;pre&gt;cd keyboards/42keebs/mysterium/&lt;/pre&gt;
&lt;p&gt;The directory contains sub-directories with names which hint at revision 1.5c and 1.5d. My keyboards are revision 1.5e, but since there was no directory for this revision, I changed  checked the configuration in v15d:&lt;/p&gt;
&lt;pre&gt;cat v15d/rules.mk&lt;/pre&gt;
&lt;p&gt;To my surprise, OLED_ENABLE was set to "yes" already, but after I compiled and &lt;a href="https://low.audioattack.de/flashing-the-firmware-of-the-mysterium-diy-keyboard"&gt;flashed&lt;/a&gt; the firmware, the OLED of my keyboard still did not display anything. Luckily I already had some experience in &lt;a href="https://www.crowdsupply.com/anavi-technology/anavi-macro-pad-8/updates/field-report-creating-an-open-source-keymap-for-the-macro-pad-8"&gt;tinkering with QMK&lt;/a&gt; and I knew where to check.&lt;/p&gt;
&lt;pre&gt;cat v15d/v15d.c&lt;/pre&gt;
&lt;p&gt;I was surprised that the file contained code to turn the content of the OLED by 180 degree, but it did not contain the method which is required to display anything. I changed the file to:&lt;/p&gt;
&lt;pre&gt;/* Copyright 2019 coseyfannitutti&lt;br&gt; *&lt;br&gt; * This program is free software: you can redistribute it and/or modify&lt;br&gt; * it under the terms of the GNU General Public License as published by&lt;br&gt; * the Free Software Foundation, either version 2 of the License, or&lt;br&gt; * (at your option) any later version.&lt;br&gt; *&lt;br&gt; * This program is distributed in the hope that it will be useful,&lt;br&gt; * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br&gt; * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br&gt; * GNU General Public License for more details.&lt;br&gt; *&lt;br&gt; * You should have received a copy of the GNU General Public License&lt;br&gt; * along with this program.  If not, see &amp;lt;http://www.gnu.org/licenses/&amp;gt;.&lt;br&gt; */&lt;br&gt;#include "v15d.h"&lt;br&gt;&lt;br&gt;#ifdef OLED_ENABLE&lt;br&gt;oled_rotation_t oled_init_kb(oled_rotation_t rotation) {&lt;br&gt;    return OLED_ROTATION_180;&lt;br&gt;}&lt;br&gt;&lt;br&gt;bool oled_task_user(void) {&lt;br&gt;&lt;br&gt;  oled_write_ln_P(PSTR(" Mysterium  TKL "), true);&lt;br&gt;&lt;br&gt;  // Host Keyboard LED Status&lt;br&gt;  led_t led_state = host_keyboard_led_state();&lt;br&gt;  oled_write_P(PSTR("Caps Lock:   "), false);&lt;br&gt;  oled_write_ln_P(led_state.caps_lock ? PSTR("On") : PSTR("Off"), false);&lt;br&gt;  oled_write_P(PSTR("Scroll Lock: "), false);&lt;br&gt;  oled_write_ln_P(led_state.scroll_lock ? PSTR("On") : PSTR("Off"), false);&lt;br&gt;&lt;br&gt;  return false;&lt;br&gt;}&lt;br&gt;#endif&lt;/pre&gt;
&lt;p&gt;I tried to compile the firmware:&lt;/p&gt;
&lt;pre&gt;qmk compile -kb 42keebs/mysterium/v15d -km vial&lt;/pre&gt;
&lt;p&gt;Unfortunately, QMK informed me that the firmware image was too large and I did not find anything I could strip away. I guess this is the reason why the code for displaying anything in the OLED display is not contained in the repository.&lt;/p&gt;
&lt;p&gt;Luckily this was not the end of the story. Vial is cool, but to be honest, I use a pretty standard configuration of my keyboard (ISO, German keys) and I can live without Vial support in the firmware.&lt;/p&gt;
&lt;p&gt;That's why I tried compiling the firmware with:&lt;/p&gt;
&lt;pre&gt;qmk compile -kb 42keebs/mysterium/v15d -km default&lt;/pre&gt;
&lt;p&gt;The firmware image is located in the .build folder in the top directory of the cloned repository. After I flashed the firmware, the OLED is finally working and it even displays some useful information.&lt;/p&gt;
&lt;p&gt;If you don't want to compile the firmware yourself, you can download my version (right-click and save as): &lt;a href="https://low.audioattack.de/docs/42keebs_mysterium_v15d_default.hex"&gt;42keebs_mysterium_v15d_default.hex&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;update: If you have an ISO keyboard, please also read &lt;a href="https://low.audioattack.de/creating-a-firmware-for-the-mysterium-keyboard-with-oled-support-revisited"&gt;Creating a firmware for the Mysterium keyboard with OLED support (REVISITED)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://low.audioattack.de/bl-content/uploads/pages/c8153445f72570f035e517e7c44adfe0/IMG_20241021_135333.jpg" alt="" width="800" height="600"&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 22 Oct 2024 00:06:37 +0200</pubDate>
      <guid isPermaLink="false">c8153445f72570f035e517e7c44adfe0</guid>
    </item>
    <item>
      <title>Flashing the firmware of the Mysterium DIY keyboard</title>
      <link>https://low.audioattack.de/flashing-the-firmware-of-the-mysterium-diy-keyboard</link>
      <image/>
      <description>&lt;p&gt;42Keebs provides firmware images for their DIY keyboard kits on their website.&lt;/p&gt;
&lt;p&gt;The firmware of the Mysterium firmware can be flashed using &lt;a href="https://github.com/avrdudes/avrdude"&gt;avrdude&lt;/a&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Install avrdude:
&lt;pre&gt;sudo apt install avrdude&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;Download hex file to install from &lt;/span&gt;&lt;a class="anchor_af404b anchorUnderlineOnHover_af404b" href="https://42keebs.eu/firmware/" rel="noreferrer noopener" target="_blank" title="https://42keebs.eu/firmware/" role="button" tabindex="0"&gt;&lt;span&gt;https://42keebs.eu/firmware/&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;Connect the keyboard to the computer, hold boot button and press reset to enter boot mode.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Flash firmware with&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;pre&gt;sudo avrdude &lt;span&gt;&lt;span&gt;-p atmega32a &lt;/span&gt;&lt;span&gt;-c usbasp &lt;/span&gt;&lt;span&gt;-U &lt;/span&gt;&lt;span&gt;f&lt;/span&gt;&lt;span&gt;l&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;s&lt;/span&gt;&lt;span&gt;h&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;w&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;/path&lt;/span&gt;&lt;span&gt;/to&lt;/span&gt;&lt;span&gt;/42keebs&lt;/span&gt;&lt;span&gt;_mysterium&lt;/span&gt;&lt;span&gt;_v15d&lt;/span&gt;&lt;span&gt;_vial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;h&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;x&lt;/span&gt;&lt;span&gt;:i&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 21 Oct 2024 23:49:12 +0200</pubDate>
      <guid isPermaLink="false">513caf3d57c1ce30c7e980b47a00ef00</guid>
    </item>
    <item>
      <title>Flashing the firmware of the Pocket Science Lab v6 board with mcbootflash</title>
      <link>https://low.audioattack.de/flashing-pslab-with-mcbootflash</link>
      <image/>
      <description>&lt;p&gt;Updating the firmware of the PSLab v6 the way it is decribed on &lt;a href="https://github.com/fossasia/pslab-firmware"&gt;https://github.com/fossasia/pslab-firmware&lt;/a&gt; did not work for me. I used mcbootflash instead, which is installed as a dependency of the &lt;a href="https://github.com/fossasia/pslab-python"&gt;pslab Python library&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;./mcbootflash --port /dev/serial/by-id/usb-Silicon_Labs_CP2102N_USB_to_UART_Bridge_Controller_5ecc207eeba8eb11828e98374232452f-if00-port0 -b 460800 ~/Downloads/pslab-firmware_v6.hex &lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The ID is individual for each board.&lt;/p&gt;</description>
      <pubDate>Wed, 09 Oct 2024 19:12:50 +0200</pubDate>
      <guid isPermaLink="false">autosave-06d8a736ee527fbc3f33c2b556436614</guid>
    </item>
    <item>
      <title>Fix missing dependency for TuxGuitar under Debain</title>
      <link>https://low.audioattack.de/fix-missing-dependency-for-tuxguitar-under-debain</link>
      <image/>
      <description>&lt;p&gt;If TuxGuitar refuses to load GuitarPro files (.gp) with the error message "org/apache/commons/compress/archivers/zip/ZipArchiveInputStream", a dependency is is missing.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://low.audioattack.de/bl-content/uploads/pages/d95d811b330532f9c75acfd785e6a8aa/tuxguitar_commons.png" alt="An error window with a &amp;quot;do not enter&amp;quot; traffic sign and the message &amp;quot;org/apache/commons/compress/archivers/zip/ZipArchiveInputStream&amp;quot;" width="532" height="223"&gt;&lt;/p&gt;
&lt;p&gt;To install the missing dependency, execute the following command:&lt;/p&gt;
&lt;pre&gt;sudo apt install libcommons-compress-java&lt;/pre&gt;
&lt;p&gt;A bug report has been submitted already: &lt;a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1043253"&gt;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1043253&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 25 Oct 2023 22:50:08 +0200</pubDate>
      <guid isPermaLink="false">d95d811b330532f9c75acfd785e6a8aa</guid>
    </item>
  </channel>
</rss>
