<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.sandboxpedal.com/index.php?action=history&amp;feed=atom&amp;title=Using_the_Sandbox_FV-1_Editor</id>
	<title>Using the Sandbox FV-1 Editor - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sandboxpedal.com/index.php?action=history&amp;feed=atom&amp;title=Using_the_Sandbox_FV-1_Editor"/>
	<link rel="alternate" type="text/html" href="https://wiki.sandboxpedal.com/index.php?title=Using_the_Sandbox_FV-1_Editor&amp;action=history"/>
	<updated>2026-08-24T05:03:21Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.sandboxpedal.com/index.php?title=Using_the_Sandbox_FV-1_Editor&amp;diff=16&amp;oldid=prev</id>
		<title>Matthew: Add how-to guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.sandboxpedal.com/index.php?title=Using_the_Sandbox_FV-1_Editor&amp;diff=16&amp;oldid=prev"/>
		<updated>2026-08-23T23:53:24Z</updated>

		<summary type="html">&lt;p&gt;Add how-to guide&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The Sandbox FV-1 Editor is a browser-based code editor, assembler and simulator for the Spin FV-1.  Nothing is installed and nothing is uploaded — the assembler runs entirely in your browser.&lt;br /&gt;
&lt;br /&gt;
Open it at [https://fv1.sandboxpedal.com fv1.sandboxpedal.com].&lt;br /&gt;
&lt;br /&gt;
== Browser requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! What you want to do !! Browser&lt;br /&gt;
|-&lt;br /&gt;
| Write and assemble code || Any modern browser&lt;br /&gt;
|-&lt;br /&gt;
| Run the simulator || Any browser with AudioWorklet support&lt;br /&gt;
|-&lt;br /&gt;
| Save straight to hardware, or use a project folder || &amp;#039;&amp;#039;&amp;#039;Chrome or Edge only&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Firefox and Safari do not implement the File System Access API, so they cannot write files to your pedal&amp;#039;s drive.  You can still assemble and download a HEX file by hand and copy it across yourself.&lt;br /&gt;
&lt;br /&gt;
If Chrome refuses to talk to your hardware, see [[Troubleshooting]] for the site permission settings.&lt;br /&gt;
&lt;br /&gt;
== The layout ==&lt;br /&gt;
&lt;br /&gt;
The main window has a &amp;#039;&amp;#039;&amp;#039;Source Input&amp;#039;&amp;#039;&amp;#039; pane with the code editor and a &amp;#039;&amp;#039;&amp;#039;Build Results&amp;#039;&amp;#039;&amp;#039; pane underneath showing the assembled Intel HEX output.  Three tabs along the edge open flyout panels:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;OPTIONS&amp;#039;&amp;#039;&amp;#039; — editor preferences and hardware setup.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;HELP&amp;#039;&amp;#039;&amp;#039; — the FV-1 instruction set reference.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;SIM&amp;#039;&amp;#039;&amp;#039; — the [[Using the FV-1 simulator|built-in simulator]].&lt;br /&gt;
&lt;br /&gt;
== Assembling code ==&lt;br /&gt;
&lt;br /&gt;
Write or load your source, then press &amp;#039;&amp;#039;&amp;#039;Assemble&amp;#039;&amp;#039;&amp;#039; (or Alt+A on Windows, Ctrl+A on Mac).&lt;br /&gt;
&lt;br /&gt;
Warnings and errors appear in the message area with the line number.  The FV-1 has a hard limit of 128 instructions; anything shorter is padded out with NOPs automatically, so you do not need to fill the space yourself.&lt;br /&gt;
&lt;br /&gt;
Once a build succeeds you can save it in several formats:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Download HEX&amp;#039;&amp;#039;&amp;#039; — Intel HEX, the format the programmer wants.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Download Binary&amp;#039;&amp;#039;&amp;#039; — raw &amp;lt;code&amp;gt;.bin&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Download C Headers&amp;#039;&amp;#039;&amp;#039; — the program as a C array, for embedding in other firmware.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Save Source…&amp;#039;&amp;#039;&amp;#039; — your assembly source.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Load File…&amp;#039;&amp;#039;&amp;#039; opens a source file from disk, and also offers four built-in examples: Pass-through, Delay, Chorus and Tremolo.  These are a good starting point if you want something working in front of you before you start editing.&lt;br /&gt;
&lt;br /&gt;
== Sending a build to the pedal ==&lt;br /&gt;
&lt;br /&gt;
This is the part that needs Chrome or Edge.&lt;br /&gt;
&lt;br /&gt;
# Open the &amp;#039;&amp;#039;&amp;#039;OPTIONS&amp;#039;&amp;#039;&amp;#039; panel.&lt;br /&gt;
# Under &amp;#039;&amp;#039;&amp;#039;Hardware Options&amp;#039;&amp;#039;&amp;#039;, press &amp;#039;&amp;#039;&amp;#039;Select Output Directory&amp;#039;&amp;#039;&amp;#039; and choose your pedal&amp;#039;s &amp;#039;&amp;#039;&amp;#039;SANDBOX-FV1&amp;#039;&amp;#039;&amp;#039; drive.&lt;br /&gt;
# Pick a destination from the &amp;#039;&amp;#039;&amp;#039;Filename / Toggle Position&amp;#039;&amp;#039;&amp;#039; grid.  The buttons are labelled by physical switch position — ▲ is switch up, ● is middle, ▼ is down — with the slot number in the middle.&lt;br /&gt;
# Assemble, then press &amp;#039;&amp;#039;&amp;#039;Download to Hardware&amp;#039;&amp;#039;&amp;#039; (Alt+D / Ctrl+D).&lt;br /&gt;
&lt;br /&gt;
The editor writes the HEX file into the drive under the right filename, the programmer picks it up, and the FV-1 reloads.  See [[Programming an EEPROM with HEX files]] for what happens at the hardware end.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Download to Hardware&amp;#039;&amp;#039;&amp;#039; stays greyed out until all three of a directory, a filename and a successful build are in place.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Clear Hardware&amp;#039;&amp;#039;&amp;#039; (Alt+C / Ctrl+C) writes empty files over &amp;lt;code&amp;gt;0.hex&amp;lt;/code&amp;gt; through &amp;lt;code&amp;gt;7.hex&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;all.hex&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;dump.txt&amp;lt;/code&amp;gt;, wiping the slots.  It only touches files that currently have content.&lt;br /&gt;
&lt;br /&gt;
== Working from a project folder ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Select Project Folder&amp;#039;&amp;#039;&amp;#039; in the Editor Options section points the editor at a directory of source files, so you can move between the files of a multi-program project without opening each one through a file dialog.&lt;br /&gt;
&lt;br /&gt;
== Editor options ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Large editor window&amp;#039;&amp;#039;&amp;#039; — a taller code pane.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Show editor mini-map&amp;#039;&amp;#039;&amp;#039; — the Monaco overview strip down the right-hand side.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Show full build results&amp;#039;&amp;#039;&amp;#039; — verbose assembler output rather than just errors.  Useful when you are debugging an instruction encoding.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Theme&amp;#039;&amp;#039;&amp;#039; — System, Light or Dark.&lt;br /&gt;
&lt;br /&gt;
These preferences persist between sessions.&lt;br /&gt;
&lt;br /&gt;
== Keyboard shortcuts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Windows !! Mac&lt;br /&gt;
|-&lt;br /&gt;
| Find || Ctrl+F || ⌘+F&lt;br /&gt;
|-&lt;br /&gt;
| Replace || Ctrl+Shift+F || ⌘+⌥+F&lt;br /&gt;
|-&lt;br /&gt;
| Find next || F3 || F3&lt;br /&gt;
|-&lt;br /&gt;
| Assemble || Alt+A || ⌃+A&lt;br /&gt;
|-&lt;br /&gt;
| Download to Hardware || Alt+D || ⌃+D&lt;br /&gt;
|-&lt;br /&gt;
| Clear Hardware || Alt+C || ⌃+C&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Running the editor locally ==&lt;br /&gt;
&lt;br /&gt;
The web app must be served over HTTP.  Opening &amp;lt;code&amp;gt;Assembler/index.html&amp;lt;/code&amp;gt; as a &amp;lt;code&amp;gt;file://&amp;lt;/code&amp;gt; page will not work — browsers block the audio engine the simulator needs from &amp;lt;code&amp;gt;file://&amp;lt;/code&amp;gt; origins, and the directory and serial access need a secure context.  &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; counts as secure, so any static file server will do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 -m http.server 8000 --directory Assembler&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then open &amp;lt;code&amp;gt;http://localhost:8000&amp;lt;/code&amp;gt;.  If you prefer Node, &amp;lt;code&amp;gt;npx serve Assembler&amp;lt;/code&amp;gt; works the same way.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Writing your first FV-1 program]]&lt;br /&gt;
* [[Using the FV-1 simulator]]&lt;br /&gt;
* [[Programming an EEPROM with HEX files]]&lt;br /&gt;
&lt;br /&gt;
[[Category:How-to]]&lt;/div&gt;</summary>
		<author><name>Matthew</name></author>
	</entry>
</feed>