<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Elektronmods - Software General]]></title>
		<link>https://elektronmods.com/</link>
		<description><![CDATA[Elektronmods - https://elektronmods.com]]></description>
		<pubDate>Sun, 04 Oct 2026 23:19:28 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Overbridge Digitakt 1 not working after mod]]></title>
			<link>https://elektronmods.com/showthread.php?tid=34</link>
			<pubDate>Fri, 02 Oct 2026 21:43:44 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://elektronmods.com/member.php?action=profile&uid=115">lifer2624</a>]]></dc:creator>
			<guid isPermaLink="false">https://elektronmods.com/showthread.php?tid=34</guid>
			<description><![CDATA[Overbridge stopped working after I installed the custom firmware 1.53 with the sophie and health mod<br />
<br />
Has anyone else discovered this?<br />
<br />
I tried reverting back to 1.53 and even 1.54 and still overbridge will not recognize my Digitakt 1]]></description>
			<content:encoded><![CDATA[Overbridge stopped working after I installed the custom firmware 1.53 with the sophie and health mod<br />
<br />
Has anyone else discovered this?<br />
<br />
I tried reverting back to 1.53 and even 1.54 and still overbridge will not recognize my Digitakt 1]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Elekloader - A Mod Loader for Elektron Devices]]></title>
			<link>https://elektronmods.com/showthread.php?tid=30</link>
			<pubDate>Fri, 02 Oct 2026 14:53:23 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://elektronmods.com/member.php?action=profile&uid=9">pina</a>]]></dc:creator>
			<guid isPermaLink="false">https://elektronmods.com/showthread.php?tid=30</guid>
			<description><![CDATA[Hello, I have been working on a project that centralizes where and how people flash their Elektron devices to make it easier for End Users to get CFW on their devices! Its called Elekloader and it works both inbrowser and locally: <a href="https://github.com/irpina/elekloader" target="_blank" rel="noopener" class="mycode_url">https://github.com/irpina/elekloader</a><br />
<br />
<span style="font-family: 'Arial Black';" class="mycode_font">Features: </span><ul class="mycode_list"><li><span style="font-family: Arial;" class="mycode_font">Supports various Elektron devices</span><br />
</li>
<li><span style="font-family: Arial;" class="mycode_font">Allows for disorganized development of Mods that would otherwise cause memory conflicts</span><br />
</li>
<li><span style="font-family: Arial;" class="mycode_font">Automatic conflict detection</span><br />
</li>
<li><span style="font-family: Arial;" class="mycode_font">A core mod that features an event bus allowing two mods to address the same code. </span><br />
</li>
</ul>
<br />
<br />
Now featuring in browser support, flash your firmware without having to download Elekloader: <a href="https://irpina.github.io/elekloader/" target="_blank" rel="noopener" class="mycode_url">https://irpina.github.io/elekloader/</a><br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://elektronmods.com/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=19" target="_blank" title="">Screenshot 2026-10-03 210907.png</a> (Size: 257.87 KB / Downloads: 171)
<!-- end: postbit_attachments_attachment --> <br />
<br />
<br />
If you'd like your mod to be featured in the mod shop please let me know, I don't want to steal eyes from anyones repos so I won't be posting anything to the shop without explicit permission unless I port the mod to elemod format myself (which I am working through for Octabam).]]></description>
			<content:encoded><![CDATA[Hello, I have been working on a project that centralizes where and how people flash their Elektron devices to make it easier for End Users to get CFW on their devices! Its called Elekloader and it works both inbrowser and locally: <a href="https://github.com/irpina/elekloader" target="_blank" rel="noopener" class="mycode_url">https://github.com/irpina/elekloader</a><br />
<br />
<span style="font-family: 'Arial Black';" class="mycode_font">Features: </span><ul class="mycode_list"><li><span style="font-family: Arial;" class="mycode_font">Supports various Elektron devices</span><br />
</li>
<li><span style="font-family: Arial;" class="mycode_font">Allows for disorganized development of Mods that would otherwise cause memory conflicts</span><br />
</li>
<li><span style="font-family: Arial;" class="mycode_font">Automatic conflict detection</span><br />
</li>
<li><span style="font-family: Arial;" class="mycode_font">A core mod that features an event bus allowing two mods to address the same code. </span><br />
</li>
</ul>
<br />
<br />
Now featuring in browser support, flash your firmware without having to download Elekloader: <a href="https://irpina.github.io/elekloader/" target="_blank" rel="noopener" class="mycode_url">https://irpina.github.io/elekloader/</a><br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://elektronmods.com/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=19" target="_blank" title="">Screenshot 2026-10-03 210907.png</a> (Size: 257.87 KB / Downloads: 171)
<!-- end: postbit_attachments_attachment --> <br />
<br />
<br />
If you'd like your mod to be featured in the mod shop please let me know, I don't want to steal eyes from anyones repos so I won't be posting anything to the shop without explicit permission unless I port the mod to elemod format myself (which I am working through for Octabam).]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Auto Create .syx trough copy prompt button? Ideas?]]></title>
			<link>https://elektronmods.com/showthread.php?tid=19</link>
			<pubDate>Wed, 30 Sep 2026 22:48:42 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://elektronmods.com/member.php?action=profile&uid=1">Neutron</a>]]></dc:creator>
			<guid isPermaLink="false">https://elektronmods.com/showthread.php?tid=19</guid>
			<description><![CDATA[I made now a feature to crawl infos about the GitHub repos. I thought now to make another button called "Copy prompt" for handy installations? <img src="https://elektronmods.com/images/smilies/tongue.png" alt="Tongue" title="Tongue" class="smilie smilie_5" /><br />
<br />
The idea would be to provide a prewritten prompt for completely new users. It could first ask which device they have, remind them that they’re proceeding at their own risk, and then guide them through the installation step by step with the help of an LLM. Basically, something like a one-click install assistant, but driven by a prompt.<br />
<br />
I saw now I can even make a deep link which opens Claude with the prompt, you just press enter, and you have a finished .syx ready to flash, that is how I imagine it?<br />
<br />
Anybody ideas for designing the prompt? Or a prompt for mod devs which creates such prompt?]]></description>
			<content:encoded><![CDATA[I made now a feature to crawl infos about the GitHub repos. I thought now to make another button called "Copy prompt" for handy installations? <img src="https://elektronmods.com/images/smilies/tongue.png" alt="Tongue" title="Tongue" class="smilie smilie_5" /><br />
<br />
The idea would be to provide a prewritten prompt for completely new users. It could first ask which device they have, remind them that they’re proceeding at their own risk, and then guide them through the installation step by step with the help of an LLM. Basically, something like a one-click install assistant, but driven by a prompt.<br />
<br />
I saw now I can even make a deep link which opens Claude with the prompt, you just press enter, and you have a finished .syx ready to flash, that is how I imagine it?<br />
<br />
Anybody ideas for designing the prompt? Or a prompt for mod devs which creates such prompt?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[First Steps in Elektron Firmware Modding: Unpack, Edit & Repack]]></title>
			<link>https://elektronmods.com/showthread.php?tid=8</link>
			<pubDate>Wed, 30 Sep 2026 00:16:29 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://elektronmods.com/member.php?action=profile&uid=1">Neutron</a>]]></dc:creator>
			<guid isPermaLink="false">https://elektronmods.com/showthread.php?tid=8</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: xx-large;" class="mycode_size">Unpacking and repacking Elektron firmware</span></span><br />
<span style="font-size: large;" class="mycode_size"><span style="color: #8a94a3;" class="mycode_color">A quick start with elektron-firmware-tool - <a href="https://github.com/mischa85/elektron-firmware-tool" target="_blank" rel="noopener" class="mycode_url">https://github.com/mischa85/elektron-firmware-tool</a></span></span><br />
<br />
Elektron ships OS updates as a <span style="font-weight: bold;" class="mycode_b">.syx</span> file. It contains the firmware, wrapped in SysEx messages, compressed and protected by checksums. The open-source <a href="https://github.com/mischa85/elektron-firmware-tool" target="_blank" rel="noopener" class="mycode_url">elektron-firmware-tool</a> by mischa85 unpacks the firmware and, after you change something, packs it back into a valid file.<br />
<br />
It works with practically every Elektron device: Digitakt, Digitone, Syntakt, Analog Rytm/Four/Heat, Octatrack, Model:Samples/Cycles, Machinedrum and Monomachine. Every screenshot in this tutorial shows real output.<br />
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite><span style="color: #e05a47;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">Please read first</span></span><br />
The tool is unofficial and not affiliated with Elektron. Modified firmware can brick your device; everything you do is at your own risk. Only work with devices you own and with firmware you downloaded officially from Elektron. <span style="font-weight: bold;" class="mycode_b">Please do not post .syx files on the forum</span>; the firmware is protected by copyright.</blockquote>
<br />
<span style="font-weight: bold;" class="mycode_b">All commands at a glance</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>elektron-firmware-tool -i OS.syx                            summary, check checksums
elektron-firmware-tool -i OS.syx -v                        detailed report
elektron-firmware-tool -i OS.syx -o folder                  extract all sections
elektron-firmware-tool -i OS.syx -d 3 -o folder            extract section 3 only
elektron-firmware-tool -i OS.syx -c 3 new.bin -o mod.syx    replace section 3, repack
elektron-firmware-tool -i OS.syx -r -o copy.syx            repack unchanged (self-test)

Extra options:
  -V 1.11                  set the version string (no longer than the old one)
  -l 0..3                  compression when packing: 0 = fast, 3 = small (default)
  --emit-container c.bin    also save the raw container to a file</code></div></div><br />
<hr class="mycode_hr" />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1. Preparation</span></span><br />
<br />
You need a C compiler and Git:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">macOS:</span> <span style="font-family: monospace;" class="mycode_font">xcode-select --install</span><br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Linux (Debian/Ubuntu):</span> <span style="font-family: monospace;" class="mycode_font">sudo apt install build-essential git xxd</span><br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Windows:</span> set up WSL with Ubuntu (<span style="font-family: monospace;" class="mycode_font">wsl --install</span>), then continue as on Linux. Work in your Linux home (<span style="font-family: monospace;" class="mycode_font">~</span>), not under <span style="font-family: monospace;" class="mycode_font">/mnt/c</span>, because one file name will contain a "?", which Windows does not allow.<br />
</li>
</ul>
<br />
Create a working folder. All commands in this tutorial run inside it:<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>mkdir -p ~/elektron-mods/original &amp;&amp; cd ~/elektron-mods</code></div></div>Along the way you will add the subfolders <span style="font-family: monospace;" class="mycode_font">extracted/</span> (unpacked), <span style="font-family: monospace;" class="mycode_font">work/</span> (your changes), <span style="font-family: monospace;" class="mycode_font">build/</span> (new .syx) and <span style="font-family: monospace;" class="mycode_font">verify/</span> (checks).<br />
<br />
<hr class="mycode_hr" />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2. Install the tool</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git clone https://github.com/mischa85/elektron-firmware-tool.git
cd elektron-firmware-tool &amp;&amp; make
cd ..
export PATH="&#36;PWD/elektron-firmware-tool:&#36;PATH"</code></div></div><br />
<a href="https://ibb.co/XfSBXff2" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.ibb.co/JW5LnWWB/01-build.png" loading="lazy"  alt="[Image: 01-build.png]" class="mycode_img" /></a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">①</span> The program is built. There should be no warnings or errors.<br />
<span style="font-weight: bold;" class="mycode_b">②</span> Makes the <span style="font-family: monospace;" class="mycode_font">elektron-firmware-tool</span> command available in the current terminal window. In a new window you need to run this line again, otherwise you get "command not found". To make it permanent, add it to <span style="font-family: monospace;" class="mycode_font">~/.zshrc</span> or <span style="font-family: monospace;" class="mycode_font">~/.bashrc</span>.<br />
<br />
<hr class="mycode_hr" />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3. Get the firmware</span></span><br />
<br />
Download the OS for your device from the <a href="https://www.elektron.se" target="_blank" rel="noopener" class="mycode_url">Elektron website</a> (Support &amp; Downloads → your device → OS) and copy the .syx file into <span style="font-family: monospace;" class="mycode_font">original/</span>.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Tip:</span><span style="font-family: monospace;" class="mycode_font">chmod a-w original/*.syx</span> protects the original from being overwritten by accident.<br />
<br />
Sound, pattern and project dumps are .syx files too, but they are not firmware. For those the tool reports "is not a recognizable Elektron OS .syx".<br />
<br />
<hr class="mycode_hr" />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4. Inspect the firmware</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>elektron-firmware-tool -i original/Digitone_II_OS1.11.syx</code></div></div><br />
<a href="https://ibb.co/ksKd1rdp" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.ibb.co/1tZS6pS3/02-inspect.png" loading="lazy"  alt="[Image: 02-inspect.png]" class="mycode_img" /></a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">①</span> Device and OS version.<br />
<span style="font-weight: bold;" class="mycode_b">②</span> The firmware's sections with their <span style="font-weight: bold;" class="mycode_b">IDs</span>. You need these IDs for <span style="font-family: monospace;" class="mycode_font">-d</span> and <span style="font-family: monospace;" class="mycode_font">-c</span>. "(raw)" means stored uncompressed.<br />
<span style="font-weight: bold;" class="mycode_b">③</span> All checksums match, the file is fine.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">More detail with -v</span></span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>elektron-firmware-tool -i original/Digitone_II_OS1.11.syx -v</code></div></div><br />
<a href="https://ibb.co/nsSDPQWx" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.ibb.co/XZTzYFwc/03-verbose.png" loading="lazy"  alt="[Image: 03-verbose.png]" class="mycode_img" /></a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">① SysEx transport:</span> the data is spread across 18,668 SysEx messages. Because MIDI carries only 7 bits per byte, it is "8-in-7" encoded. Every packet has its own checksum.<br />
<span style="font-weight: bold;" class="mycode_b">② Container (ELE3):</span> model number, version and a checksum over the entire content.<br />
<span style="font-weight: bold;" class="mycode_b">③ Section table:</span> position (<span style="font-family: monospace;" class="mycode_font">off</span>), packed length (<span style="font-family: monospace;" class="mycode_font">clen</span>) and load address in memory (<span style="font-family: monospace;" class="mycode_font">dst</span>) of each section.<br />
<span style="font-weight: bold;" class="mycode_b">④</span> MAIN OS is loaded at address <span style="font-family: monospace;" class="mycode_font">0x40000400</span>. You will need this if you open the code in a disassembler later.<br />
<span style="font-weight: bold;" class="mycode_b">⑤ HMAC-SHA256:</span> a signature over the whole container. The tool recomputes it automatically when repacking. We masked the key in the screenshot.<br />
<br />
<div style="text-align: center;" class="mycode_align"><a href="https://ibb.co/ZzcXCrfK" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.ibb.co/4R4txLFM/00-anatomy-en.png" loading="lazy"  alt="[Image: 00-anatomy-en.png]" class="mycode_img" /></a></div>
<br />
<span style="font-weight: bold;" class="mycode_b">In short:</span> mods almost always go into section 3 (MAIN OS), the actual operating system. <span style="color: #e05a47;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">Keep your hands off section 2 (bootstrap) and 4 (updater)</span></span>: the bootloader holds your device's recovery menu. The tool assigns the section names based on content. On other devices the IDs and sections can differ; the output of <span style="font-family: monospace;" class="mycode_font">-i</span> is always what counts.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Self-test (optional)</span></span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>mkdir -p build
elektron-firmware-tool -i original/Digitone_II_OS1.11.syx -r -o build/repacked.syx
cmp original/Digitone_II_OS1.11.syx build/repacked.syx &amp;&amp; echo "byte-identical"</code></div></div><span style="font-family: monospace;" class="mycode_font">-r</span> repacks the file without changes. If you get exactly the same file back, the tool handles your firmware losslessly. With Digitone II firmware 1.11 it does.<br />
<br />
<hr class="mycode_hr" />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5. Extract the firmware</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>elektron-firmware-tool -i original/Digitone_II_OS1.11.syx -o extracted</code></div></div><br />
<a href="https://ibb.co/GfgMZQMZ" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.ibb.co/JWXpYjpY/04-extract.png" loading="lazy"  alt="[Image: 04-extract.png]" class="mycode_img" /></a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">①</span><span style="font-family: monospace;" class="mycode_font">.raw</span> was already uncompressed and was copied 1:1. <span style="font-family: monospace;" class="mycode_font">.bin</span> was decompressed.<br />
<span style="font-weight: bold;" class="mycode_b">②</span> Section 8 has no known name, hence the "?" in the file name. Best rename it right away:<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>mv "extracted/section_8_?.bin" extracted/section_8_unknown.bin</code></div></div><br />
To extract single sections, use <span style="font-family: monospace;" class="mycode_font">-d</span> with the ID (repeatable). If the ID does not exist, the tool reports "no section id=…".<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>elektron-firmware-tool -i original/Digitone_II_OS1.11.syx -d 3 -o extracted</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Important:</span> don't edit anything in <span style="font-family: monospace;" class="mycode_font">extracted/</span>. These are your originals for comparison.<br />
<br />
<hr class="mycode_hr" />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6. Edit a section</span></span><br />
<br />
As an example, we replace the text <span style="font-family: monospace;" class="mycode_font">UNTITLED</span> in MAIN OS with <span style="font-family: monospace;" class="mycode_font">ELEKMODS</span>. This only demonstrates the workflow and was not tested on hardware.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Three rules</span><br />
<ol type="1" class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Only overwrite, never insert or delete bytes.</span> The file must stay exactly the same size, otherwise every address after the change shifts.<br />
</li>
<li>Keep strings the same length and only use characters that already appear there (here: capital letters). The <span style="font-family: monospace;" class="mycode_font">00</span> byte at the end of the text stays in place.<br />
</li>
<li>Always work on a copy in <span style="font-family: monospace;" class="mycode_font">work/</span>.<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6.1 Find the location</span></span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>mkdir work
cp extracted/section_3_MAIN_OS.bin work/section_3_MAIN_OS.mod.bin
grep -obUa "UNTITLED" work/section_3_MAIN_OS.mod.bin
printf '0x%X&#92;n' 2170423
xxd -s 0x211E27 -l 48 work/section_3_MAIN_OS.mod.bin</code></div></div><br />
<a href="https://ibb.co/HTp7sJ9Z" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.ibb.co/Dfg4yqjd/05-find.png" loading="lazy"  alt="[Image: 05-find.png]" class="mycode_img" /></a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">①</span> Position (offset) of the text in the file, as a decimal number.<br />
<span style="font-weight: bold;" class="mycode_b">②</span> The same offset in hex. This is how hex editors show it.<br />
<span style="font-weight: bold;" class="mycode_b">③</span> The text in the hex dump, with the <span style="font-family: monospace;" class="mycode_font">00</span> byte at the end.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6.2 Change the bytes</span></span><br />
<span style="font-weight: bold;" class="mycode_b">With a hex editor</span> such as <a href="https://hexfiend.com" target="_blank" rel="noopener" class="mycode_url">Hex Fiend</a> (macOS), <a href="https://mh-nexus.de/en/hxd/" target="_blank" rel="noopener" class="mycode_url">HxD</a> (Windows) or <a href="https://imhex.werwolv.net" target="_blank" rel="noopener" class="mycode_url">ImHex</a> (all systems): open the file, jump to offset <span style="font-family: monospace;" class="mycode_font">0x211E37</span>, type the new text in overwrite mode, save.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Or in the terminal:</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>printf 'ELEKMODS' | dd of=work/section_3_MAIN_OS.mod.bin bs=1 seek=2170423 conv=notrunc
cmp -l extracted/section_3_MAIN_OS.bin work/section_3_MAIN_OS.mod.bin
xxd -s 0x211E27 -l 48 work/section_3_MAIN_OS.mod.bin</code></div></div><br />
<a href="https://ibb.co/YvCkHZp" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.ibb.co/9RDTQts/06-patch.png" loading="lazy"  alt="[Image: 06-patch.png]" class="mycode_img" /></a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">①</span> Writes exactly 8 bytes at that position. Don't forget <span style="font-family: monospace;" class="mycode_font">conv=notrunc</span>, otherwise the file is cut off after it.<br />
<span style="font-weight: bold;" class="mycode_b">②</span><span style="font-family: monospace;" class="mycode_font">cmp -l</span> shows every changed byte (position counted from 1, values in octal). 8 lines means exactly 8 bytes changed and nothing else.<br />
<span style="font-weight: bold;" class="mycode_b">③</span> Double-check: <span style="font-family: monospace;" class="mycode_font">ELEKMODS</span> is in the right place.<br />
<br />
<hr class="mycode_hr" />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">7. Repack the firmware</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>mkdir -p build
elektron-firmware-tool -i original/Digitone_II_OS1.11.syx &#92;
    -c 3 work/section_3_MAIN_OS.mod.bin &#92;
    -o build/Digitone_II_OS1.11-mod.syx</code></div></div><br />
<a href="https://ibb.co/60KpJmF7" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.ibb.co/Swk17PB4/07-rebuild.png" loading="lazy"  alt="[Image: 07-rebuild.png]" class="mycode_img" /></a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">①</span> The original serves as the template (<span style="font-family: monospace;" class="mycode_font">-i</span>), section 3 is replaced with your file (<span style="font-family: monospace;" class="mycode_font">-c 3</span>), and the new file is written to <span style="font-family: monospace;" class="mycode_font">-o</span>. All other sections stay unchanged.<br />
<span style="font-weight: bold;" class="mycode_b">②</span> The section is compressed again automatically.<br />
<span style="font-weight: bold;" class="mycode_b">③</span> Checksums and HMAC are recomputed.<br />
<span style="font-weight: bold;" class="mycode_b">④</span> The new file is smaller than the original. That is expected, because the tool compresses slightly better than Elektron. The content is still identical, see step 8.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Options when repacking</span><ul class="mycode_list"><li><span style="font-family: monospace;" class="mycode_font">-l 0</span> to <span style="font-family: monospace;" class="mycode_font">-l 3</span>: compression level. The default 3 gives the smallest file (about 14 seconds here). <span style="font-family: monospace;" class="mycode_font">-l 0</span> is roughly 18 times faster and about 3 % larger, good for experimenting.<br />
</li>
<li>Several sections at once: repeat <span style="font-family: monospace;" class="mycode_font">-c</span>, e.g. <span style="font-family: monospace;" class="mycode_font">-c 3 a.bin -c 7 b.bin</span>.<br />
</li>
<li><span style="font-family: monospace;" class="mycode_font">-V</span> sets the version string. It must be no longer than the old one (here 4 characters like "1.11"), otherwise the tool reports "too long for field; unchanged".<br />
</li>
</ul>
<br />
<hr class="mycode_hr" />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">8. Verify the result</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>elektron-firmware-tool -i build/Digitone_II_OS1.11-mod.syx
elektron-firmware-tool -i build/Digitone_II_OS1.11-mod.syx -d 3 -o verify
cmp verify/section_3_MAIN_OS.bin work/section_3_MAIN_OS.mod.bin &amp;&amp; echo OK</code></div></div><br />
<a href="https://ibb.co/bMx8s43q" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.ibb.co/PvRfc2Y3/08-verify.png" loading="lazy"  alt="[Image: 08-verify.png]" class="mycode_img" /></a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">①</span> All checksums of the new file are valid.<br />
<span style="font-weight: bold;" class="mycode_b">②</span> The section from the new .syx is byte-for-byte identical to your edited file, so packing and unpacking were lossless.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Done!</span><span style="font-family: monospace;" class="mycode_font">build/Digitone_II_OS1.11-mod.syx</span> contains your change, and all checksums match.<br />
<br />
<hr class="mycode_hr" />
Questions, additions or your own findings are welcome in this thread.<br />
<br />
<span style="font-size: small;" class="mycode_size"><span style="color: #8a94a3;" class="mycode_color">elektron-firmware-tool is written by mischa85 and released under the MIT licence (<a href="https://github.com/mischa85/elektron-firmware-tool" target="_blank" rel="noopener" class="mycode_url">GitHub</a>). Neither the tool nor this tutorial is affiliated with Elektron. Elektron, Digitone, Digitakt and other product names are trademarks of Elektron Music Machines MAV AB.</span></span>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: xx-large;" class="mycode_size">Unpacking and repacking Elektron firmware</span></span><br />
<span style="font-size: large;" class="mycode_size"><span style="color: #8a94a3;" class="mycode_color">A quick start with elektron-firmware-tool - <a href="https://github.com/mischa85/elektron-firmware-tool" target="_blank" rel="noopener" class="mycode_url">https://github.com/mischa85/elektron-firmware-tool</a></span></span><br />
<br />
Elektron ships OS updates as a <span style="font-weight: bold;" class="mycode_b">.syx</span> file. It contains the firmware, wrapped in SysEx messages, compressed and protected by checksums. The open-source <a href="https://github.com/mischa85/elektron-firmware-tool" target="_blank" rel="noopener" class="mycode_url">elektron-firmware-tool</a> by mischa85 unpacks the firmware and, after you change something, packs it back into a valid file.<br />
<br />
It works with practically every Elektron device: Digitakt, Digitone, Syntakt, Analog Rytm/Four/Heat, Octatrack, Model:Samples/Cycles, Machinedrum and Monomachine. Every screenshot in this tutorial shows real output.<br />
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite><span style="color: #e05a47;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">Please read first</span></span><br />
The tool is unofficial and not affiliated with Elektron. Modified firmware can brick your device; everything you do is at your own risk. Only work with devices you own and with firmware you downloaded officially from Elektron. <span style="font-weight: bold;" class="mycode_b">Please do not post .syx files on the forum</span>; the firmware is protected by copyright.</blockquote>
<br />
<span style="font-weight: bold;" class="mycode_b">All commands at a glance</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>elektron-firmware-tool -i OS.syx                            summary, check checksums
elektron-firmware-tool -i OS.syx -v                        detailed report
elektron-firmware-tool -i OS.syx -o folder                  extract all sections
elektron-firmware-tool -i OS.syx -d 3 -o folder            extract section 3 only
elektron-firmware-tool -i OS.syx -c 3 new.bin -o mod.syx    replace section 3, repack
elektron-firmware-tool -i OS.syx -r -o copy.syx            repack unchanged (self-test)

Extra options:
  -V 1.11                  set the version string (no longer than the old one)
  -l 0..3                  compression when packing: 0 = fast, 3 = small (default)
  --emit-container c.bin    also save the raw container to a file</code></div></div><br />
<hr class="mycode_hr" />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1. Preparation</span></span><br />
<br />
You need a C compiler and Git:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">macOS:</span> <span style="font-family: monospace;" class="mycode_font">xcode-select --install</span><br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Linux (Debian/Ubuntu):</span> <span style="font-family: monospace;" class="mycode_font">sudo apt install build-essential git xxd</span><br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Windows:</span> set up WSL with Ubuntu (<span style="font-family: monospace;" class="mycode_font">wsl --install</span>), then continue as on Linux. Work in your Linux home (<span style="font-family: monospace;" class="mycode_font">~</span>), not under <span style="font-family: monospace;" class="mycode_font">/mnt/c</span>, because one file name will contain a "?", which Windows does not allow.<br />
</li>
</ul>
<br />
Create a working folder. All commands in this tutorial run inside it:<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>mkdir -p ~/elektron-mods/original &amp;&amp; cd ~/elektron-mods</code></div></div>Along the way you will add the subfolders <span style="font-family: monospace;" class="mycode_font">extracted/</span> (unpacked), <span style="font-family: monospace;" class="mycode_font">work/</span> (your changes), <span style="font-family: monospace;" class="mycode_font">build/</span> (new .syx) and <span style="font-family: monospace;" class="mycode_font">verify/</span> (checks).<br />
<br />
<hr class="mycode_hr" />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2. Install the tool</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git clone https://github.com/mischa85/elektron-firmware-tool.git
cd elektron-firmware-tool &amp;&amp; make
cd ..
export PATH="&#36;PWD/elektron-firmware-tool:&#36;PATH"</code></div></div><br />
<a href="https://ibb.co/XfSBXff2" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.ibb.co/JW5LnWWB/01-build.png" loading="lazy"  alt="[Image: 01-build.png]" class="mycode_img" /></a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">①</span> The program is built. There should be no warnings or errors.<br />
<span style="font-weight: bold;" class="mycode_b">②</span> Makes the <span style="font-family: monospace;" class="mycode_font">elektron-firmware-tool</span> command available in the current terminal window. In a new window you need to run this line again, otherwise you get "command not found". To make it permanent, add it to <span style="font-family: monospace;" class="mycode_font">~/.zshrc</span> or <span style="font-family: monospace;" class="mycode_font">~/.bashrc</span>.<br />
<br />
<hr class="mycode_hr" />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3. Get the firmware</span></span><br />
<br />
Download the OS for your device from the <a href="https://www.elektron.se" target="_blank" rel="noopener" class="mycode_url">Elektron website</a> (Support &amp; Downloads → your device → OS) and copy the .syx file into <span style="font-family: monospace;" class="mycode_font">original/</span>.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Tip:</span><span style="font-family: monospace;" class="mycode_font">chmod a-w original/*.syx</span> protects the original from being overwritten by accident.<br />
<br />
Sound, pattern and project dumps are .syx files too, but they are not firmware. For those the tool reports "is not a recognizable Elektron OS .syx".<br />
<br />
<hr class="mycode_hr" />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4. Inspect the firmware</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>elektron-firmware-tool -i original/Digitone_II_OS1.11.syx</code></div></div><br />
<a href="https://ibb.co/ksKd1rdp" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.ibb.co/1tZS6pS3/02-inspect.png" loading="lazy"  alt="[Image: 02-inspect.png]" class="mycode_img" /></a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">①</span> Device and OS version.<br />
<span style="font-weight: bold;" class="mycode_b">②</span> The firmware's sections with their <span style="font-weight: bold;" class="mycode_b">IDs</span>. You need these IDs for <span style="font-family: monospace;" class="mycode_font">-d</span> and <span style="font-family: monospace;" class="mycode_font">-c</span>. "(raw)" means stored uncompressed.<br />
<span style="font-weight: bold;" class="mycode_b">③</span> All checksums match, the file is fine.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">More detail with -v</span></span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>elektron-firmware-tool -i original/Digitone_II_OS1.11.syx -v</code></div></div><br />
<a href="https://ibb.co/nsSDPQWx" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.ibb.co/XZTzYFwc/03-verbose.png" loading="lazy"  alt="[Image: 03-verbose.png]" class="mycode_img" /></a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">① SysEx transport:</span> the data is spread across 18,668 SysEx messages. Because MIDI carries only 7 bits per byte, it is "8-in-7" encoded. Every packet has its own checksum.<br />
<span style="font-weight: bold;" class="mycode_b">② Container (ELE3):</span> model number, version and a checksum over the entire content.<br />
<span style="font-weight: bold;" class="mycode_b">③ Section table:</span> position (<span style="font-family: monospace;" class="mycode_font">off</span>), packed length (<span style="font-family: monospace;" class="mycode_font">clen</span>) and load address in memory (<span style="font-family: monospace;" class="mycode_font">dst</span>) of each section.<br />
<span style="font-weight: bold;" class="mycode_b">④</span> MAIN OS is loaded at address <span style="font-family: monospace;" class="mycode_font">0x40000400</span>. You will need this if you open the code in a disassembler later.<br />
<span style="font-weight: bold;" class="mycode_b">⑤ HMAC-SHA256:</span> a signature over the whole container. The tool recomputes it automatically when repacking. We masked the key in the screenshot.<br />
<br />
<div style="text-align: center;" class="mycode_align"><a href="https://ibb.co/ZzcXCrfK" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.ibb.co/4R4txLFM/00-anatomy-en.png" loading="lazy"  alt="[Image: 00-anatomy-en.png]" class="mycode_img" /></a></div>
<br />
<span style="font-weight: bold;" class="mycode_b">In short:</span> mods almost always go into section 3 (MAIN OS), the actual operating system. <span style="color: #e05a47;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">Keep your hands off section 2 (bootstrap) and 4 (updater)</span></span>: the bootloader holds your device's recovery menu. The tool assigns the section names based on content. On other devices the IDs and sections can differ; the output of <span style="font-family: monospace;" class="mycode_font">-i</span> is always what counts.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Self-test (optional)</span></span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>mkdir -p build
elektron-firmware-tool -i original/Digitone_II_OS1.11.syx -r -o build/repacked.syx
cmp original/Digitone_II_OS1.11.syx build/repacked.syx &amp;&amp; echo "byte-identical"</code></div></div><span style="font-family: monospace;" class="mycode_font">-r</span> repacks the file without changes. If you get exactly the same file back, the tool handles your firmware losslessly. With Digitone II firmware 1.11 it does.<br />
<br />
<hr class="mycode_hr" />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5. Extract the firmware</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>elektron-firmware-tool -i original/Digitone_II_OS1.11.syx -o extracted</code></div></div><br />
<a href="https://ibb.co/GfgMZQMZ" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.ibb.co/JWXpYjpY/04-extract.png" loading="lazy"  alt="[Image: 04-extract.png]" class="mycode_img" /></a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">①</span><span style="font-family: monospace;" class="mycode_font">.raw</span> was already uncompressed and was copied 1:1. <span style="font-family: monospace;" class="mycode_font">.bin</span> was decompressed.<br />
<span style="font-weight: bold;" class="mycode_b">②</span> Section 8 has no known name, hence the "?" in the file name. Best rename it right away:<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>mv "extracted/section_8_?.bin" extracted/section_8_unknown.bin</code></div></div><br />
To extract single sections, use <span style="font-family: monospace;" class="mycode_font">-d</span> with the ID (repeatable). If the ID does not exist, the tool reports "no section id=…".<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>elektron-firmware-tool -i original/Digitone_II_OS1.11.syx -d 3 -o extracted</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Important:</span> don't edit anything in <span style="font-family: monospace;" class="mycode_font">extracted/</span>. These are your originals for comparison.<br />
<br />
<hr class="mycode_hr" />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6. Edit a section</span></span><br />
<br />
As an example, we replace the text <span style="font-family: monospace;" class="mycode_font">UNTITLED</span> in MAIN OS with <span style="font-family: monospace;" class="mycode_font">ELEKMODS</span>. This only demonstrates the workflow and was not tested on hardware.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Three rules</span><br />
<ol type="1" class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Only overwrite, never insert or delete bytes.</span> The file must stay exactly the same size, otherwise every address after the change shifts.<br />
</li>
<li>Keep strings the same length and only use characters that already appear there (here: capital letters). The <span style="font-family: monospace;" class="mycode_font">00</span> byte at the end of the text stays in place.<br />
</li>
<li>Always work on a copy in <span style="font-family: monospace;" class="mycode_font">work/</span>.<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6.1 Find the location</span></span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>mkdir work
cp extracted/section_3_MAIN_OS.bin work/section_3_MAIN_OS.mod.bin
grep -obUa "UNTITLED" work/section_3_MAIN_OS.mod.bin
printf '0x%X&#92;n' 2170423
xxd -s 0x211E27 -l 48 work/section_3_MAIN_OS.mod.bin</code></div></div><br />
<a href="https://ibb.co/HTp7sJ9Z" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.ibb.co/Dfg4yqjd/05-find.png" loading="lazy"  alt="[Image: 05-find.png]" class="mycode_img" /></a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">①</span> Position (offset) of the text in the file, as a decimal number.<br />
<span style="font-weight: bold;" class="mycode_b">②</span> The same offset in hex. This is how hex editors show it.<br />
<span style="font-weight: bold;" class="mycode_b">③</span> The text in the hex dump, with the <span style="font-family: monospace;" class="mycode_font">00</span> byte at the end.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6.2 Change the bytes</span></span><br />
<span style="font-weight: bold;" class="mycode_b">With a hex editor</span> such as <a href="https://hexfiend.com" target="_blank" rel="noopener" class="mycode_url">Hex Fiend</a> (macOS), <a href="https://mh-nexus.de/en/hxd/" target="_blank" rel="noopener" class="mycode_url">HxD</a> (Windows) or <a href="https://imhex.werwolv.net" target="_blank" rel="noopener" class="mycode_url">ImHex</a> (all systems): open the file, jump to offset <span style="font-family: monospace;" class="mycode_font">0x211E37</span>, type the new text in overwrite mode, save.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Or in the terminal:</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>printf 'ELEKMODS' | dd of=work/section_3_MAIN_OS.mod.bin bs=1 seek=2170423 conv=notrunc
cmp -l extracted/section_3_MAIN_OS.bin work/section_3_MAIN_OS.mod.bin
xxd -s 0x211E27 -l 48 work/section_3_MAIN_OS.mod.bin</code></div></div><br />
<a href="https://ibb.co/YvCkHZp" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.ibb.co/9RDTQts/06-patch.png" loading="lazy"  alt="[Image: 06-patch.png]" class="mycode_img" /></a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">①</span> Writes exactly 8 bytes at that position. Don't forget <span style="font-family: monospace;" class="mycode_font">conv=notrunc</span>, otherwise the file is cut off after it.<br />
<span style="font-weight: bold;" class="mycode_b">②</span><span style="font-family: monospace;" class="mycode_font">cmp -l</span> shows every changed byte (position counted from 1, values in octal). 8 lines means exactly 8 bytes changed and nothing else.<br />
<span style="font-weight: bold;" class="mycode_b">③</span> Double-check: <span style="font-family: monospace;" class="mycode_font">ELEKMODS</span> is in the right place.<br />
<br />
<hr class="mycode_hr" />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">7. Repack the firmware</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>mkdir -p build
elektron-firmware-tool -i original/Digitone_II_OS1.11.syx &#92;
    -c 3 work/section_3_MAIN_OS.mod.bin &#92;
    -o build/Digitone_II_OS1.11-mod.syx</code></div></div><br />
<a href="https://ibb.co/60KpJmF7" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.ibb.co/Swk17PB4/07-rebuild.png" loading="lazy"  alt="[Image: 07-rebuild.png]" class="mycode_img" /></a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">①</span> The original serves as the template (<span style="font-family: monospace;" class="mycode_font">-i</span>), section 3 is replaced with your file (<span style="font-family: monospace;" class="mycode_font">-c 3</span>), and the new file is written to <span style="font-family: monospace;" class="mycode_font">-o</span>. All other sections stay unchanged.<br />
<span style="font-weight: bold;" class="mycode_b">②</span> The section is compressed again automatically.<br />
<span style="font-weight: bold;" class="mycode_b">③</span> Checksums and HMAC are recomputed.<br />
<span style="font-weight: bold;" class="mycode_b">④</span> The new file is smaller than the original. That is expected, because the tool compresses slightly better than Elektron. The content is still identical, see step 8.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Options when repacking</span><ul class="mycode_list"><li><span style="font-family: monospace;" class="mycode_font">-l 0</span> to <span style="font-family: monospace;" class="mycode_font">-l 3</span>: compression level. The default 3 gives the smallest file (about 14 seconds here). <span style="font-family: monospace;" class="mycode_font">-l 0</span> is roughly 18 times faster and about 3 % larger, good for experimenting.<br />
</li>
<li>Several sections at once: repeat <span style="font-family: monospace;" class="mycode_font">-c</span>, e.g. <span style="font-family: monospace;" class="mycode_font">-c 3 a.bin -c 7 b.bin</span>.<br />
</li>
<li><span style="font-family: monospace;" class="mycode_font">-V</span> sets the version string. It must be no longer than the old one (here 4 characters like "1.11"), otherwise the tool reports "too long for field; unchanged".<br />
</li>
</ul>
<br />
<hr class="mycode_hr" />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">8. Verify the result</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>elektron-firmware-tool -i build/Digitone_II_OS1.11-mod.syx
elektron-firmware-tool -i build/Digitone_II_OS1.11-mod.syx -d 3 -o verify
cmp verify/section_3_MAIN_OS.bin work/section_3_MAIN_OS.mod.bin &amp;&amp; echo OK</code></div></div><br />
<a href="https://ibb.co/bMx8s43q" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.ibb.co/PvRfc2Y3/08-verify.png" loading="lazy"  alt="[Image: 08-verify.png]" class="mycode_img" /></a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">①</span> All checksums of the new file are valid.<br />
<span style="font-weight: bold;" class="mycode_b">②</span> The section from the new .syx is byte-for-byte identical to your edited file, so packing and unpacking were lossless.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Done!</span><span style="font-family: monospace;" class="mycode_font">build/Digitone_II_OS1.11-mod.syx</span> contains your change, and all checksums match.<br />
<br />
<hr class="mycode_hr" />
Questions, additions or your own findings are welcome in this thread.<br />
<br />
<span style="font-size: small;" class="mycode_size"><span style="color: #8a94a3;" class="mycode_color">elektron-firmware-tool is written by mischa85 and released under the MIT licence (<a href="https://github.com/mischa85/elektron-firmware-tool" target="_blank" rel="noopener" class="mycode_url">GitHub</a>). Neither the tool nor this tutorial is affiliated with Elektron. Elektron, Digitone, Digitakt and other product names are trademarks of Elektron Music Machines MAV AB.</span></span>]]></content:encoded>
		</item>
	</channel>
</rss>