{"id":795,"date":"2026-10-17T14:05:44","date_gmt":"2026-10-17T14:05:44","guid":{"rendered":"https:\/\/www.r3tr0.net\/?page_id=795"},"modified":"2026-10-17T15:03:35","modified_gmt":"2026-10-17T15:03:35","slug":"smtdoc_firmware-update","status":"publish","type":"page","link":"https:\/\/www.r3tr0.net\/index.php\/smartdisk-ii-documentation\/smtdoc_firmware-update\/","title":{"rendered":"SmartDisk II: Firmware update"},"content":{"rendered":"\n<div class=\"wp-block-group smtdoc-hero has-text-color has-background has-link-color wp-elements-1 is-layout-constrained wp-container-core-group-is-layout-89221c49 wp-block-group-is-layout-constrained\" style=\"border-radius:10px;color:#e6f4ea;background-color:#0d1f15;margin-bottom:32px;padding-top:28px;padding-right:32px;padding-bottom:28px;padding-left:32px\">\n<p class=\"has-text-color wp-block-paragraph\" style=\"color:#5dff9a;margin-bottom:8px;font-size:13px;font-weight:600;letter-spacing:2px;text-transform:uppercase\">SmartDisk II \u00b7 User documentation \u00b7 Latest firmware<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"margin-top:0;font-size:19px;line-height:1.55\">How to put a new firmware on your SmartDisk II over USB (drag and drop a UF2 file), which file to take for the standard board and for the XL board, how to install the bootloader with an ST-Link, how to check the version, and how to go back.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"margin-top:12px;font-size:14px\"><a href=\"https:\/\/www.r3tr0.net\/index.php\/smartdisk-ii-documentation\/\">\u2190 SmartDisk II documentation home<\/a> \u00b7 Page 4 of 16<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group smtdoc-toc has-border-color has-background is-layout-constrained wp-container-core-group-is-layout-67fe145d wp-block-group-is-layout-constrained\" style=\"border-color:#dcdcde;border-width:1px;border-radius:8px;background-color:#f6f7f7;margin-bottom:32px;padding-top:16px;padding-right:24px;padding-bottom:16px;padding-left:24px\">\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\" open><summary>On this page \u2014 12 sections<\/summary>\n<ul class=\"wp-block-list\">\n<li><a href=\"#which-file-for-which-board\">Which file for which board<\/a><\/li>\n\n\n\n<li><a href=\"#which-method\">Which method<\/a><\/li>\n\n\n\n<li><a href=\"#where-the-files-are\">Where the files are<\/a><\/li>\n\n\n\n<li><a href=\"#before-you-start\">Before you start<\/a><\/li>\n\n\n\n<li><a href=\"#the-update-over-usb-uf2-drag-and-drop\">The update over USB (UF2 drag and drop)<\/a><\/li>\n\n\n\n<li><a href=\"#installing-the-bootloader-with-an-st-link\">Installing the bootloader with an ST-Link<\/a><\/li>\n\n\n\n<li><a href=\"#check-the-version\">Check the version<\/a><\/li>\n\n\n\n<li><a href=\"#after-the-update\">After the update<\/a><\/li>\n\n\n\n<li><a href=\"#if-the-update-fails\">If the update fails<\/a><\/li>\n\n\n\n<li><a href=\"#going-back-to-an-older-release\">Going back to an older release<\/a><\/li>\n\n\n\n<li><a href=\"#the-bootloader\">The bootloader<\/a><\/li>\n\n\n\n<li><a href=\"#building-the-firmware-yourself\">Building the firmware yourself<\/a><\/li>\n<\/ul>\n<\/details>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Two programs are on the flash of your board: a <strong>bootloader<\/strong> (version 0.21) and the <strong>firmware<\/strong> (the latest release). You update the firmware over USB: you drag a <code class=\"\" data-line=\"\">.UF2<\/code> file onto a drive that the bootloader shows on your computer. You install the bootloader itself only once, with an <strong>ST-Link<\/strong> programmer. The configuration is on the SD card, not on the board, so a firmware update does not touch it (<a href=\"https:\/\/www.r3tr0.net\/index.php\/smartdisk-ii-documentation\/smtdoc_sd-card\/\">The SD card<\/a>).<\/p>\n\n\n\n<div class=\"wp-block-group smtdoc-callout smtdoc-warn has-background is-layout-constrained wp-container-core-group-is-layout-1828d0e2 wp-block-group-is-layout-constrained\" style=\"border-radius:6px;border-left-color:#d63638;border-left-style:solid;border-left-width:4px;background-color:#fdecec;margin-top:24px;margin-bottom:24px;padding-top:12px;padding-right:20px;padding-bottom:12px;padding-left:20px\">\n<p class=\"wp-block-paragraph\"><strong>Warning.<\/strong> Never connect the ST-Link programmer at the same time as USB or the Apple II. Its voltage regulator is fragile.\nThe silkscreen of the board says &#8220;ONLY 1 PWR SRC&#8221; (<a href=\"https:\/\/www.r3tr0.net\/index.php\/smartdisk-ii-documentation\/smtdoc_hardware-installation\/\">Hardware and installation<\/a>, Power).<\/p>\n<\/div>\n\n\n\n<h2 id=\"which-file-for-which-board\" class=\"wp-block-heading\">Which file for which board<\/h2>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Board<\/th><th>Firmware file<\/th><\/tr><\/thead><tbody><tr><td>SmartDisk II (revisions 8 and 9: 0.96 inch OLED, four keys)<\/td><td>the standard firmware<\/td><\/tr><tr><td>SmartDisk II XL (revision 10: 1.54 inch OLED, rotary encoder)<\/td><td>the <strong>XL<\/strong> firmware<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The two files are not interchangeable. Check that you pick the one for your board. The XL board uses the same bootloader and the same update procedure as the standard board.<\/p>\n\n\n\n<h2 id=\"which-method\" class=\"wp-block-heading\">Which method<\/h2>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Method<\/th><th>What you need<\/th><th>When<\/th><\/tr><\/thead><tbody><tr><td><strong>UF2 over USB<\/strong><\/td><td>the bootloader already on the board; a USB cable and a computer<\/td><td>every normal update<\/td><\/tr><tr><td><strong>ST-Link<\/strong> (bootloader)<\/td><td>an ST-Link programmer and a header soldered on <code class=\"\" data-line=\"\">J6<\/code><\/td><td>a board without bootloader (a board you built), or to change the bootloader<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">There is no update from the SD card and none from the Apple II.<\/p>\n\n\n\n<h2 id=\"where-the-files-are\" class=\"wp-block-heading\">Where the files are<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Download the firmware from the <a href=\"https:\/\/www.r3tr0.net\/index.php\/smartdisk-firmware\/\">SmartDisk Firmware page<\/a>: the releases are there as <code class=\"\" data-line=\"\">.UF2<\/code> files. The bootloader files are there too (<code class=\"\" data-line=\"\">bootloader_smartdisk_v0.21<\/code>: <code class=\"\" data-line=\"\">.hex<\/code>, <code class=\"\" data-line=\"\">.bin<\/code> and <code class=\"\" data-line=\"\">.elf<\/code>).<\/p>\n\n\n\n<h2 id=\"before-you-start\" class=\"wp-block-heading\">Before you start<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Note the version you have.<\/strong> See &#8220;Check the version&#8221; below.<\/li>\n\n\n\n<li><strong>Copy the SD card<\/strong>, or at least <code class=\"\" data-line=\"\">sdiskConfig.json<\/code> (favorites, settings, last image, the four SmartPort volumes) to your computer. The file is at the root of the card.<\/li>\n\n\n\n<li><strong>Get the <code class=\"\" data-line=\"\">.UF2<\/code> file<\/strong> of the version you want for your board, and keep the one you have now, to go back.<\/li>\n\n\n\n<li><strong>Check the bootloader.<\/strong> The firmware needs bootloader <strong>v0.21<\/strong>. Do <strong>not<\/strong> use v0.15: it causes problems with the SmartPort of the IIgs. v0.21 is the latest. To see which bootloader you have, enter DFU mode (below): its version is on the OLED.<\/li>\n\n\n\n<li><strong>Power.<\/strong> Update with the board out of the Apple II or the Macintosh. Remove the jumpers on <code class=\"\" data-line=\"\">J1<\/code> and <code class=\"\" data-line=\"\">J7<\/code>, so that USB is the only power source (<a href=\"https:\/\/www.r3tr0.net\/index.php\/smartdisk-ii-documentation\/smtdoc_hardware-installation\/\">Hardware and installation<\/a>, Power).<\/li>\n<\/ol>\n\n\n\n<h2 id=\"the-update-over-usb-uf2-drag-and-drop\" class=\"wp-block-heading\">The update over USB (UF2 drag and drop)<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Connect the board to your computer with a USB cable (the USB connector of the BlackPill module).<\/li>\n\n\n\n<li><strong>Press the NRST (reset) button of the BlackPill twice, quickly<\/strong>: the second press must come within half a second of the first. At every reset the bootloader waits half a second before it starts the firmware. A second reset during that wait puts it in DFU mode. A single reset starts the firmware as usual. If your board is in its case, the case has a reset key for this.<\/li>\n\n\n\n<li>The board shows as a USB drive named <strong>DISKIIBOOT<\/strong>. It holds <code class=\"\" data-line=\"\">INFO_UF2.TXT<\/code>, <code class=\"\" data-line=\"\">INDEX.HTM<\/code> and <code class=\"\" data-line=\"\">CURRENT.UF2<\/code>. The OLED shows <strong>SMARTDISK II BOOTLDR<\/strong>, <strong>DFU MODE<\/strong> and the version of the bootloader (the display is optional: the drive appears even when the OLED stays blank).<\/li>\n\n\n\n<li><strong>Copy the <code class=\"\" data-line=\"\">.UF2<\/code> file onto that drive.<\/strong> The bootloader writes the firmware into the flash as the blocks arrive. It accepts only UF2 files made for the STM32F4. It ignores any other file, a <code class=\"\" data-line=\"\">.bin<\/code> for example.<\/li>\n\n\n\n<li>When the copy is complete, wait. The bootloader checks that your computer has finished writing, restarts the board by itself and starts the new firmware after its half second wait. The drive disappears and the splash shows on the OLED.<\/li>\n\n\n\n<li>Unplug the USB cable. Check the version (below).<\/li>\n<\/ol>\n\n\n\n<h3 id=\"what-the-update-does-not-touch\" class=\"wp-block-heading\">What the update does not touch<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The bootloader. The bootloader write-protects its own flash sectors, and it ignores every UF2 block that is addressed outside the firmware area (<code class=\"\" data-line=\"\">0x08010000<\/code> to <code class=\"\" data-line=\"\">0x0807FFFF<\/code>). A UF2 file cannot overwrite it.<\/li>\n\n\n\n<li>The SD card and everything on it. The firmware never writes the configuration into the flash.<\/li>\n<\/ul>\n\n\n\n<h2 id=\"installing-the-bootloader-with-an-st-link\" class=\"wp-block-heading\">Installing the bootloader with an ST-Link<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You need this only for a board that has no bootloader (for example a board you built), or to change the bootloader. No other power source may be connected to the board.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What you need: an ST-Link V2, 4 wires, the <code class=\"\" data-line=\"\">J6<\/code> header soldered on the board (the assembly house does not fit it), and the bootloader file <code class=\"\" data-line=\"\">bootloader_smartdisk_v0.21.hex<\/code> (or <code class=\"\" data-line=\"\">.bin<\/code>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wiring:<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Board <code class=\"\" data-line=\"\">J6<\/code> pin<\/th><th>Silkscreen<\/th><th>ST-Link<\/th><\/tr><\/thead><tbody><tr><td>1<\/td><td>3V<\/td><td>3.3V<\/td><\/tr><tr><td>2<\/td><td>SDIO<\/td><td>SWDIO<\/td><\/tr><tr><td>3<\/td><td>SCK<\/td><td>SWCLK<\/td><\/tr><tr><td>4<\/td><td>GND<\/td><td>GND<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The reset line of the board is not on <code class=\"\" data-line=\"\">J6<\/code>. The board takes its 3.3 V from the ST-Link: <code class=\"\" data-line=\"\">J1<\/code> and <code class=\"\" data-line=\"\">J7<\/code> stay open.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Wire the ST-Link to <code class=\"\" data-line=\"\">J6<\/code> as in the table. Connect nothing else: no USB, no Apple II.<\/li>\n\n\n\n<li>Run OpenOCD with the <code class=\"\" data-line=\"\">.hex<\/code> file:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\" data-line=\"\">openocd -f interface\/stlink.cfg -f target\/stm32f4x.cfg \\\n  -c &quot;init&quot; -c &quot;reset init&quot; -c &quot;flash protect 0 0 last off&quot; \\\n  -c &quot;program bootloader_smartdisk_v0.21.hex verify reset exit&quot;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The command removes the write protection of the first two flash sectors, writes the bootloader and verifies it. The bootloader sets the protection again the first time it starts. With another tool, write the <code class=\"\" data-line=\"\">.bin<\/code> at address <code class=\"\" data-line=\"\">0x08000000<\/code>.<\/p>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>Remove the ST-Link and the wires.<\/li>\n\n\n\n<li>Connect USB only and do the UF2 update above to put the firmware on the board.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">On a chip with no valid firmware, the bootloader goes straight to DFU mode, ready for the <code class=\"\" data-line=\"\">.UF2<\/code> file.<\/p>\n\n\n\n<h2 id=\"check-the-version\" class=\"wp-block-heading\">Check the version<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The splash<\/strong> at power up shows the version at the bottom right, for about half a second (the release number followed by two digits).<\/li>\n\n\n\n<li><strong>The footer of the image menu and of the directory options<\/strong> shows the version too.<\/li>\n\n\n\n<li><strong>The log<\/strong>: with <strong>Settings &gt; Log to SD<\/strong> on, each start writes <code class=\"\" data-line=\"\">---- SmartDisk II vX.YY.NN, run started ----<\/code> into <code class=\"\" data-line=\"\">SMARTDISK.LOG<\/code> at the root of the card. The same log comes out on the UART header <code class=\"\" data-line=\"\">J4<\/code>, 460800 baud.<\/li>\n\n\n\n<li>The first part, <code class=\"\" data-line=\"\">vX.YY.<\/code>, is the release. The two digits after it are a build number. A release file is named with its own number.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized has-custom-border\"><img loading=\"lazy\" decoding=\"async\" width=\"512\" height=\"256\" src=\"https:\/\/www.r3tr0.net\/wp-content\/uploads\/2026\/10\/smtdoc_splash.png\" alt=\"the splash with the logo and the version at the bottom right\" class=\"wp-image-789\" style=\"border-radius:6px;width:256px;height:auto\" srcset=\"https:\/\/www.r3tr0.net\/wp-content\/uploads\/2026\/10\/smtdoc_splash.png 512w, https:\/\/www.r3tr0.net\/wp-content\/uploads\/2026\/10\/smtdoc_splash-300x150.png 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><figcaption class=\"wp-element-caption\">the splash with the logo and the version at the bottom right<\/figcaption><\/figure>\n\n\n\n<h2 id=\"after-the-update\" class=\"wp-block-heading\">After the update<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Power the board and watch the splash: the version is the one you installed.<\/li>\n\n\n\n<li>The main menu appears. Your settings, favorites, last image and SmartPort volumes are read from <code class=\"\" data-line=\"\">sdiskConfig.json<\/code> on the card. Check them (<strong>Favorites<\/strong>, <strong>File manager<\/strong>, <strong>Settings<\/strong>).<\/li>\n\n\n\n<li>A setting that your old configuration does not have takes its default: <strong>5.25 write<\/strong> on, <strong>Autoboot last img<\/strong> on, the other new options off. The Settings list shows only the options of the emulation that runs (<a href=\"https:\/\/www.r3tr0.net\/index.php\/smartdisk-ii-documentation\/smtdoc_settings\/\">Settings reference<\/a>, <a href=\"https:\/\/www.r3tr0.net\/index.php\/smartdisk-ii-documentation\/smtdoc_firmware-release-notes\/\">Firmware release notes<\/a>).<\/li>\n\n\n\n<li>Mount an image and boot a machine, as in <a href=\"https:\/\/www.r3tr0.net\/index.php\/smartdisk-ii-documentation\/smtdoc_usage-guide\/\">Usage guide<\/a>. On a IIgs, test the emulation you use: SmartPort is the most sensitive to timing.<\/li>\n<\/ol>\n\n\n\n<h3 id=\"what-an-update-does-to-the-configuration\" class=\"wp-block-heading\">What an update does to the configuration<\/h3>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Case<\/th><th>Result<\/th><\/tr><\/thead><tbody><tr><td>Update from an older release, normal file<\/td><td>read as it is. The absent keys take their defaults. The file is rewritten at the next save with the new keys<\/td><\/tr><tr><td>An old file that was cut at 1024 bytes<\/td><td>Every firmware up to v0.80.45 wrote at most 1024 bytes of the file. A longer text was cut, and a cut file is not valid. The firmware uses the defaults and <strong>leaves the file as it is<\/strong> until your first save, which replaces it. Favorites beyond the cut are already lost<\/td><\/tr><tr><td>Going back to v0.80.x<\/td><td>v0.80.45 reads at most 2048 bytes of the file. A longer file written by the firmware is cut there, and the old firmware then replaces it with the defaults. Put your backup copy of <code class=\"\" data-line=\"\">sdiskConfig.json<\/code> back after the downgrade<\/td><\/tr><tr><td><strong>Clear prefs<\/strong> (Settings, ENTER, ENTER)<\/td><td>deletes <code class=\"\" data-line=\"\">sdiskConfig.json<\/code> and restarts: defaults for everything, empty favorites and volumes. Your images are not touched<\/td><\/tr><tr><td>A configuration that stops the board<\/td><td>an emulation type that does not exist is replaced by Disk II at start. Delete the file on a computer if needed<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 id=\"if-the-update-fails\" class=\"wp-block-heading\">If the update fails<\/h2>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Symptom<\/th><th>What to try<\/th><\/tr><\/thead><tbody><tr><td>No <code class=\"\" data-line=\"\">DISKIIBOOT<\/code> drive after the double press<\/td><td>Press NRST twice again, a little faster. Try another USB cable (one with data lines) and another USB port<\/td><\/tr><tr><td>The copy was interrupted and the board does not start<\/td><td>Press NRST twice to enter DFU mode and copy the <code class=\"\" data-line=\"\">.UF2<\/code> file again. A board with no valid firmware stays in DFU mode<\/td><\/tr><tr><td>The board starts, then the screen stays black<\/td><td>The display recovers by itself: the board tries it again every 5 seconds. See <a href=\"https:\/\/www.r3tr0.net\/index.php\/smartdisk-ii-documentation\/smtdoc_troubleshooting\/\">Troubleshooting, FAQ and the log<\/a><\/td><\/tr><tr><td>The board no longer enters DFU mode<\/td><td>Install the bootloader again with an ST-Link, as above<\/td><\/tr><tr><td>The Apple II no longer boots a disk after the update<\/td><td>See <a href=\"https:\/\/www.r3tr0.net\/index.php\/smartdisk-ii-documentation\/smtdoc_compatibility\/\">Compatibility<\/a>. Go back to the previous release<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 id=\"going-back-to-an-older-release\" class=\"wp-block-heading\">Going back to an older release<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Take the <code class=\"\" data-line=\"\">.UF2<\/code> file of the older release.<\/li>\n\n\n\n<li>Do the update above with that file: press NRST twice and drag the older file onto the drive. No change of bootloader is needed.<\/li>\n\n\n\n<li>Restore the copy of <code class=\"\" data-line=\"\">sdiskConfig.json<\/code> that you made before, see the table above.<\/li>\n\n\n\n<li>Check the bootloader: v0.21. A board with the v0.15 bootloader has problems with the IIgs SmartPort whatever firmware runs.<\/li>\n\n\n\n<li>Remember what an older firmware does not have: the Macintosh and 3.5 inch drive emulation, Create disk, the settings that follow the emulation, Log to SD. It ignores their keys in <code class=\"\" data-line=\"\">sdiskConfig.json<\/code>.<\/li>\n<\/ol>\n\n\n\n<h2 id=\"the-bootloader\" class=\"wp-block-heading\">The bootloader<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>At each reset a double press enters DFU mode, a single one starts the firmware, and a board with no valid firmware stays in DFU mode.<\/li>\n\n\n\n<li>The firmware has no key combination and no menu entry to enter DFU mode: you always use the NRST button.<\/li>\n\n\n\n<li>You update the bootloader only with an ST-Link, as above.<\/li>\n<\/ul>\n\n\n\n<h2 id=\"building-the-firmware-yourself\" class=\"wp-block-heading\">Building the firmware yourself<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This part is for people who build the firmware. If you only install releases, skip it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The images to use are built with CMake presets:<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Preset<\/th><th>Board<\/th><\/tr><\/thead><tbody><tr><td><code class=\"\" data-line=\"\">bootloader<\/code><\/td><td>standard board<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">bootloader-xl<\/code><\/td><td>XL board<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\" data-line=\"\">cd firmware\ncmake --preset bootloader-xl                         # or: cmake --preset bootloader\ncmake --build --preset bootloader-xl -j 8\ncmake --build --preset bootloader-xl --target uf2\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The result is in the folder <code class=\"\" data-line=\"\">build-cmake\/&lt;preset&gt;\/<\/code>, with the <code class=\"\" data-line=\"\">.UF2<\/code> file for the bootloader. The UF2 file is made from the hex file with the family id <code class=\"\" data-line=\"\">0x57755A57<\/code>. The target <code class=\"\" data-line=\"\">flash<\/code> writes the image with an ST-Link instead.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this layout the vector table of the firmware is at <code class=\"\" data-line=\"\">0x08010000<\/code> and the code starts at <code class=\"\" data-line=\"\">0x08018000<\/code>, above the bootloader.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The presets <code class=\"\" data-line=\"\">standard<\/code> and <code class=\"\" data-line=\"\">standard-xl<\/code> build a different layout, without bootloader: the image is linked at <code class=\"\" data-line=\"\">0x08000000<\/code> for the whole flash. Written with an ST-Link, it <strong>replaces the bootloader<\/strong>. Do not use it on a board that has the bootloader.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Related: <a href=\"https:\/\/www.r3tr0.net\/index.php\/smartdisk-ii-documentation\/smtdoc_hardware-installation\/\">Hardware and installation<\/a> for the board and the <code class=\"\" data-line=\"\">J6<\/code> header.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" style=\"margin-top:48px;margin-bottom:24px\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-group has-background is-layout-constrained wp-container-core-group-is-layout-0ee9f569 wp-block-group-is-layout-constrained\" style=\"border-radius:8px;background-color:#f6f7f7;padding-top:14px;padding-right:18px;padding-bottom:14px;padding-left:18px\">\n<p class=\"has-text-align-left has-text-color wp-block-paragraph\" style=\"color:#1e7a45;margin-bottom:2px;font-size:12px;font-weight:600;letter-spacing:2px;text-transform:uppercase\">\u2190 Previous<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\" style=\"margin-top:0;font-size:17px;font-weight:600\"><a href=\"https:\/\/www.r3tr0.net\/index.php\/smartdisk-ii-documentation\/smtdoc_sd-card\/\">The SD card<\/a><\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-group has-background is-layout-constrained wp-container-core-group-is-layout-0ee9f569 wp-block-group-is-layout-constrained\" style=\"border-radius:8px;background-color:#f6f7f7;padding-top:14px;padding-right:18px;padding-bottom:14px;padding-left:18px\">\n<p class=\"has-text-align-right has-text-color wp-block-paragraph\" style=\"color:#1e7a45;margin-bottom:2px;font-size:12px;font-weight:600;letter-spacing:2px;text-transform:uppercase\">Next \u2192<\/p>\n\n\n\n<p class=\"has-text-align-right wp-block-paragraph\" style=\"margin-top:0;font-size:17px;font-weight:600\"><a href=\"https:\/\/www.r3tr0.net\/index.php\/smartdisk-ii-documentation\/smtdoc_usage-guide\/\">Usage guide<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p class=\"has-text-align-center has-text-color wp-block-paragraph\" style=\"color:#787c82;margin-top:20px;font-size:13px\">SmartDisk II user documentation \u00b7 latest firmware \u00b7 <a href=\"https:\/\/www.r3tr0.net\/index.php\/smartdisk-ii-documentation\/\">Documentation home<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>How to put a new firmware on your SmartDisk II over USB (drag and drop a UF2 file), which file to take for the standard board and for the XL board, how to install the bootloader with an ST-Link, how to check the version, and how to go back.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":792,"menu_order":4,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"tags":[46,45],"class_list":["post-795","page","type-page","status-publish","hentry","tag-apple-ii","tag-smartdisk"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.r3tr0.net\/index.php\/wp-json\/wp\/v2\/pages\/795","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.r3tr0.net\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.r3tr0.net\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.r3tr0.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.r3tr0.net\/index.php\/wp-json\/wp\/v2\/comments?post=795"}],"version-history":[{"count":7,"href":"https:\/\/www.r3tr0.net\/index.php\/wp-json\/wp\/v2\/pages\/795\/revisions"}],"predecessor-version":[{"id":959,"href":"https:\/\/www.r3tr0.net\/index.php\/wp-json\/wp\/v2\/pages\/795\/revisions\/959"}],"up":[{"embeddable":true,"href":"https:\/\/www.r3tr0.net\/index.php\/wp-json\/wp\/v2\/pages\/792"}],"wp:attachment":[{"href":"https:\/\/www.r3tr0.net\/index.php\/wp-json\/wp\/v2\/media?parent=795"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.r3tr0.net\/index.php\/wp-json\/wp\/v2\/tags?post=795"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}