Skip to content

Commit

Permalink
commit
Browse files Browse the repository at this point in the history
  • Loading branch information
therealdreg committed Apr 4, 2024
1 parent 666a041 commit a68944d
Show file tree
Hide file tree
Showing 19 changed files with 272 additions and 29 deletions.
8 changes: 8 additions & 0 deletions content/en/docs/AVRDude/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@ weight: 20

[AVRDude](https://github.com/avrdudes/avrdude/), which stands for AVR Downloader Uploader, is a software utility used for programming the onboard memory of Microchip's AVR microcontrollers, typically found in popular Arduino boards. This tool allows for the downloading and uploading of data to the chip's Flash and EEPROM memory. Additionally, when supported by the programming protocol, AVRDUDE can program fuse and lock bits, which are essential for configuring the microcontroller's settings and security features. A distinctive feature of AVRDUDE is its direct instruction mode. This mode empowers users to send any programming instruction directly to the AVR chip, bypassing the limitations of the software's built-in functions. This flexibility makes it an invaluable tool for developers working with AVR-based systems, particularly in the Arduino ecosystem, where customization and direct hardware control are often required

{{< alert color="warning" title="Warning" >}}
Use short & high-quality USB&Dupont cables. Long or low-quality cables can cause communication issues.
{{< /alert >}}

{{< alert color="warning" title="Warning" >}}
Use VMs is not recommended, as it can cause communication issues.
{{< /alert >}}

## Update AVRDude & Buzzpirat

AVRDude supports Buzzpirat out of the box
Expand Down
24 changes: 22 additions & 2 deletions content/en/docs/Flashrom/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@ weight: 20

[Flashrom](https://www.flashrom.org) is a versatile utility for managing flash chips, capable of identifying, reading, writing, verifying, and erasing them. It's particularly adept at flashing BIOS/EFI/coreboot/firmware/optionROM images on a variety of hardware, including mainboards, network/graphics/storage controllers, and other programmer devices.

{{< alert color="warning" title="Warning" >}}
Use short & high-quality USB&Dupont cables. Long or low-quality cables can cause communication issues.
{{< /alert >}}

{{< alert color="warning" title="Warning" >}}
Use VMs is not recommended, as it can cause communication issues.
{{< /alert >}}

**Key features include:**

- Support for over 476 flash chips, 291 chipsets, 500 mainboards, 79 PCI devices, 17 USB devices, and a range of programmers via parallel/serial ports.
Expand Down Expand Up @@ -117,7 +125,7 @@ flashrom.exe --progress -V -c "W25Q64BV/W25Q64CV/W25Q64FV" -p buspirate_spi:dev=
* **dev=COM8**: This part of the parameter specifies the device name. {{< alert color="warning" title="Warning" >}}
COM8 refers to the COM port where the Buzzpirat is connected. This will vary depending on your system’s configuration. You can find the COM port number by opening the Device Manager in Windows and looking for the Bus Pirate device under the Ports (COM & LPT) section. {{< /alert >}}
* **spispeed=1M**: Sets the SPI communication speed to 1 MHz. Adjusting the SPI speed can be necessary depending on the flash chip's specifications and the quality of the connections.
* **serialspeed=115200**: Sets the serial communication speed (baud rate) between the computer and the Buzzpirat to 115200 bits per second. This is a common baud rate for serial communication.
* **serialspeed=115200**: Sets the serial communication speed (baud rate) between the computer and the Buzzpirat to 115200 bits per second. This is a common baud rate for serial communication.
* **-r flash_content.bin**: This part of the command tells flashrom to read the flash memory's content and save it into a file named flash_content.bin

The read operation may take about 15 minutes to complete. Once it's done, you can use a hex editor / binwalk etc to open the flash_content.bin file and inspect its contents.
Expand All @@ -130,6 +138,12 @@ flashrom.exe --progress -V -c "W25Q64BV/W25Q64CV/W25Q64FV" -p buspirate_spi:dev=

The difference between the read and write commands is the `-w` parameter, which tells flashrom to write the content of the flash_content.bin file to the flash memory chip.

{{< alert color="warning" title="Warning" >}}
Warninng 1M can be too fast for some "setups", try 250k or 125k if you have issues: spispeed=250k or spispeed=125k
{{< /alert >}}



## Tutorial Winbond 1.8V 64M-BIT W25Q64FW board

After testing with the 3.3V memory, buy a 1.8V Winbond W25Q64FW. Desolder the 3.3V memory and solder the 1.8V one in its place. Ensure the chip's orientation remains the same as the original one.
Expand Down Expand Up @@ -162,7 +176,7 @@ For this case, simply use the official Buzzpirat cables with the female Dupont c
{{< alert color="warning" title="Warning" >}}It's crucial not to use the Buzzpirat in 3.3V mode as it could endanger the 1.8V chips. Additionally, activating the BuzzPirate's pull-ups is necessary to ensure everything operates at the voltage set in VPU pin (in this case, 1.8V). To do this, we must execute flashrom as follows:{{< /alert >}}

```bash
flashrom.exe --progress -V -c "W25Q64.W" -p buspirate_spi:dev=COM8,spispeed=1M,serialspeed=115200,pullups=on -r flash_content.bin
flashrom.exe --progress -V -c "W25Q64.W" -p buspirate_spi:dev=COM8,spispeed=30k,serialspeed=115200,pullups=on -r flash_content.bin
```

pullups=on means that the pull-ups are activated + the Buzzpirat is in hi-z mode.
Expand All @@ -173,3 +187,9 @@ COM8 refers to the COM port where the Buzzpirat is connected. This will vary dep

The read operation may take about 15 minutes to complete. Once it's done, you can use a hex editor / binwalk etc to open the flash_content.bin file and inspect its contents.

{{< alert color="warning" title="Warning" >}}
30k is the lowest speed, and it's recommended to use it when working with 1.8V chips.
{{< /alert >}}



8 changes: 8 additions & 0 deletions content/en/docs/Getting Started/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,3 +74,11 @@ For this case, simply use the official Buzzpirat cables with the female Dupont c
| +5.0v(SW5V0) | +5volt switchable power supply |
| GND | Ground, connect to ground of test circuit |


{{< alert color="warning" title="Warning" >}}
Use short & high-quality USB&Dupont cables. Long or low-quality cables can cause communication issues.
{{< /alert >}}

{{< alert color="warning" title="Warning" >}}
Use VMs is not recommended, as it can cause communication issues.
{{< /alert >}}
79 changes: 74 additions & 5 deletions docs/docs/_print/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -549,6 +549,24 @@ <h4 class="alert-heading">Warning</h4>
</tbody>
</table>


<div class="alert alert-warning" role="alert">
<h4 class="alert-heading">Warning</h4>

Use short &amp; high-quality USB&amp;Dupont cables. Long or low-quality cables can cause communication issues.

</div>



<div class="alert alert-warning" role="alert">
<h4 class="alert-heading">Warning</h4>

Use VMs is not recommended, as it can cause communication issues.

</div>


</div>


Expand Down Expand Up @@ -3965,6 +3983,24 @@ <h2 id="legacy-bpv3-firmware--bootloader">Legacy BPv3 firmware &amp; bootloader<
<h1 id="pg-6b758cfd7e576dd18fee3c05f62ee978">6 - AVRDude</h1>

<p><a href="https://github.com/avrdudes/avrdude/">AVRDude</a>, which stands for AVR Downloader Uploader, is a software utility used for programming the onboard memory of Microchip&rsquo;s AVR microcontrollers, typically found in popular Arduino boards. This tool allows for the downloading and uploading of data to the chip&rsquo;s Flash and EEPROM memory. Additionally, when supported by the programming protocol, AVRDUDE can program fuse and lock bits, which are essential for configuring the microcontroller&rsquo;s settings and security features. A distinctive feature of AVRDUDE is its direct instruction mode. This mode empowers users to send any programming instruction directly to the AVR chip, bypassing the limitations of the software&rsquo;s built-in functions. This flexibility makes it an invaluable tool for developers working with AVR-based systems, particularly in the Arduino ecosystem, where customization and direct hardware control are often required</p>


<div class="alert alert-warning" role="alert">
<h4 class="alert-heading">Warning</h4>

Use short &amp; high-quality USB&amp;Dupont cables. Long or low-quality cables can cause communication issues.

</div>



<div class="alert alert-warning" role="alert">
<h4 class="alert-heading">Warning</h4>

Use VMs is not recommended, as it can cause communication issues.

</div>

<h2 id="update-avrdude--buzzpirat">Update AVRDude &amp; Buzzpirat</h2>
<p>AVRDude supports Buzzpirat out of the box</p>
<p>Ensure you have the latest stable firmware installed; learn how in the <a href="/docs/firmware-update">Firmware Update</a> section.</p>
Expand Down Expand Up @@ -4110,6 +4146,24 @@ <h4 class="alert-heading">Warning</h4>
<h1 id="pg-d33db6d5cfbb7ff60d1e19cd08607f8c">7 - Flashrom</h1>

<p><a href="https://www.flashrom.org">Flashrom</a> is a versatile utility for managing flash chips, capable of identifying, reading, writing, verifying, and erasing them. It&rsquo;s particularly adept at flashing BIOS/EFI/coreboot/firmware/optionROM images on a variety of hardware, including mainboards, network/graphics/storage controllers, and other programmer devices.</p>


<div class="alert alert-warning" role="alert">
<h4 class="alert-heading">Warning</h4>

Use short &amp; high-quality USB&amp;Dupont cables. Long or low-quality cables can cause communication issues.

</div>



<div class="alert alert-warning" role="alert">
<h4 class="alert-heading">Warning</h4>

Use VMs is not recommended, as it can cause communication issues.

</div>

<p><strong>Key features include:</strong></p>
<ul>
<li>Support for over 476 flash chips, 291 chipsets, 500 mainboards, 79 PCI devices, 17 USB devices, and a range of programmers via parallel/serial ports.</li>
Expand Down Expand Up @@ -4207,19 +4261,25 @@ <h4 class="alert-heading">Warning</h4>

</div>
</li>
<li><strong>spispeed=1M</strong>: Sets the SPI communication speed to 1 MHz. Adjusting the SPI speed can be necessary depending on the flash chip&rsquo;s specifications and the quality of the connections.
<ul>
<li><strong>spispeed=1M</strong>: Sets the SPI communication speed to 1 MHz. Adjusting the SPI speed can be necessary depending on the flash chip&rsquo;s specifications and the quality of the connections.</li>
<li><strong>serialspeed=115200</strong>: Sets the serial communication speed (baud rate) between the computer and the Buzzpirat to 115200 bits per second. This is a common baud rate for serial communication.</li>
</ul>
</li>
</ul>
</li>
<li><strong>-r flash_content.bin</strong>: This part of the command tells flashrom to read the flash memory&rsquo;s content and save it into a file named flash_content.bin</li>
</ul>
<p>The read operation may take about 15 minutes to complete. Once it&rsquo;s done, you can use a hex editor / binwalk etc to open the flash_content.bin file and inspect its contents.</p>
<p>To write the content of a flash memory chip using <code>flashrom</code> with Buzzpirat, execute the following command:</p>
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>flashrom.exe --progress -V -c <span style="color:#4e9a06">&#34;W25Q64BV/W25Q64CV/W25Q64FV&#34;</span> -p buspirate_spi:dev<span style="color:#ce5c00;font-weight:bold">=</span>COM8,spispeed<span style="color:#ce5c00;font-weight:bold">=</span>1M,serialspeed<span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#0000cf;font-weight:bold">115200</span> -w flash_content.bin
</span></span></code></pre></div><p>The difference between the read and write commands is the <code>-w</code> parameter, which tells flashrom to write the content of the flash_content.bin file to the flash memory chip.</p>


<div class="alert alert-warning" role="alert">
<h4 class="alert-heading">Warning</h4>

Warninng 1M can be too fast for some &ldquo;setups&rdquo;, try 250k or 125k if you have issues: spispeed=250k or spispeed=125k

</div>

<h2 id="tutorial-winbond-18v-64m-bit-w25q64fw-board">Tutorial Winbond 1.8V 64M-BIT W25Q64FW board</h2>
<p>After testing with the 3.3V memory, buy a 1.8V Winbond W25Q64FW. Desolder the 3.3V memory and solder the 1.8V one in its place. Ensure the chip&rsquo;s orientation remains the same as the original one.</p>
<p>For this case, simply use the official Buzzpirat cables with the female Dupont connector they come with; there&rsquo;s no need to use SMD IC clips. Connect the Buzzpirat to the w25q64fv board by attaching the +1v8(SW1V8) to VCC, CS to CS, MISO to DO, GND to GND, CLK to CLK, and MOSI to DI, ensuring each connection is secure for proper functionality.</p>
Expand Down Expand Up @@ -4290,7 +4350,7 @@ <h4 class="alert-heading">Warning</h4>

</div>

<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>flashrom.exe --progress -V -c <span style="color:#4e9a06">&#34;W25Q64.W&#34;</span> -p buspirate_spi:dev<span style="color:#ce5c00;font-weight:bold">=</span>COM8,spispeed<span style="color:#ce5c00;font-weight:bold">=</span>1M,serialspeed<span style="color:#ce5c00;font-weight:bold">=</span>115200,pullups<span style="color:#ce5c00;font-weight:bold">=</span>on -r flash_content.bin
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>flashrom.exe --progress -V -c <span style="color:#4e9a06">&#34;W25Q64.W&#34;</span> -p buspirate_spi:dev<span style="color:#ce5c00;font-weight:bold">=</span>COM8,spispeed<span style="color:#ce5c00;font-weight:bold">=</span>30k,serialspeed<span style="color:#ce5c00;font-weight:bold">=</span>115200,pullups<span style="color:#ce5c00;font-weight:bold">=</span>on -r flash_content.bin
</span></span></code></pre></div><p>pullups=on means that the pull-ups are activated + the Buzzpirat is in hi-z mode.</p>


Expand All @@ -4303,6 +4363,15 @@ <h4 class="alert-heading">Warning</h4>

<p>The read operation may take about 15 minutes to complete. Once it&rsquo;s done, you can use a hex editor / binwalk etc to open the flash_content.bin file and inspect its contents.</p>


<div class="alert alert-warning" role="alert">
<h4 class="alert-heading">Warning</h4>

30k is the lowest speed, and it&rsquo;s recommended to use it when working with 1.8V chips.

</div>


</div>


Expand Down
18 changes: 18 additions & 0 deletions docs/docs/avrdude/_print/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,24 @@ <h1 class="title">AVRDude</h1>

<div class="content">
<p><a href="https://github.com/avrdudes/avrdude/">AVRDude</a>, which stands for AVR Downloader Uploader, is a software utility used for programming the onboard memory of Microchip&rsquo;s AVR microcontrollers, typically found in popular Arduino boards. This tool allows for the downloading and uploading of data to the chip&rsquo;s Flash and EEPROM memory. Additionally, when supported by the programming protocol, AVRDUDE can program fuse and lock bits, which are essential for configuring the microcontroller&rsquo;s settings and security features. A distinctive feature of AVRDUDE is its direct instruction mode. This mode empowers users to send any programming instruction directly to the AVR chip, bypassing the limitations of the software&rsquo;s built-in functions. This flexibility makes it an invaluable tool for developers working with AVR-based systems, particularly in the Arduino ecosystem, where customization and direct hardware control are often required</p>


<div class="alert alert-warning" role="alert">
<h4 class="alert-heading">Warning</h4>

Use short &amp; high-quality USB&amp;Dupont cables. Long or low-quality cables can cause communication issues.

</div>



<div class="alert alert-warning" role="alert">
<h4 class="alert-heading">Warning</h4>

Use VMs is not recommended, as it can cause communication issues.

</div>

<h2 id="update-avrdude--buzzpirat">Update AVRDude &amp; Buzzpirat</h2>
<p>AVRDude supports Buzzpirat out of the box</p>
<p>Ensure you have the latest stable firmware installed; learn how in the <a href="/docs/firmware-update">Firmware Update</a> section.</p>
Expand Down
20 changes: 19 additions & 1 deletion docs/docs/avrdude/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@
aria-label="Search this site…"
autocomplete="off"

data-offline-search-index-json-src="/offline-search-index.2efd89e988a2e45636fef866203e3322.json"
data-offline-search-index-json-src="/offline-search-index.1cfc7ba6a3f2ec080f624f4aad6b9945.json"
data-offline-search-base-href="/"
data-offline-search-max-results="10"
>
Expand Down Expand Up @@ -225,6 +225,24 @@ <h1>AVRDude</h1>

</header>
<p><a href="https://github.com/avrdudes/avrdude/">AVRDude</a>, which stands for AVR Downloader Uploader, is a software utility used for programming the onboard memory of Microchip&rsquo;s AVR microcontrollers, typically found in popular Arduino boards. This tool allows for the downloading and uploading of data to the chip&rsquo;s Flash and EEPROM memory. Additionally, when supported by the programming protocol, AVRDUDE can program fuse and lock bits, which are essential for configuring the microcontroller&rsquo;s settings and security features. A distinctive feature of AVRDUDE is its direct instruction mode. This mode empowers users to send any programming instruction directly to the AVR chip, bypassing the limitations of the software&rsquo;s built-in functions. This flexibility makes it an invaluable tool for developers working with AVR-based systems, particularly in the Arduino ecosystem, where customization and direct hardware control are often required</p>


<div class="alert alert-warning" role="alert">
<h4 class="alert-heading">Warning</h4>

Use short &amp; high-quality USB&amp;Dupont cables. Long or low-quality cables can cause communication issues.

</div>



<div class="alert alert-warning" role="alert">
<h4 class="alert-heading">Warning</h4>

Use VMs is not recommended, as it can cause communication issues.

</div>

<h2 id="update-avrdude--buzzpirat">Update AVRDude &amp; Buzzpirat</h2>
<p>AVRDude supports Buzzpirat out of the box</p>
<p>Ensure you have the latest stable firmware installed; learn how in the <a href="/docs/firmware-update">Firmware Update</a> section.</p>
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/binaryio/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@
aria-label="Search this site…"
autocomplete="off"

data-offline-search-index-json-src="/offline-search-index.2efd89e988a2e45636fef866203e3322.json"
data-offline-search-index-json-src="/offline-search-index.1cfc7ba6a3f2ec080f624f4aad6b9945.json"
data-offline-search-base-href="/"
data-offline-search-max-results="10"
>
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/firmware-update/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@
aria-label="Search this site…"
autocomplete="off"

data-offline-search-index-json-src="/offline-search-index.2efd89e988a2e45636fef866203e3322.json"
data-offline-search-index-json-src="/offline-search-index.1cfc7ba6a3f2ec080f624f4aad6b9945.json"
data-offline-search-base-href="/"
data-offline-search-max-results="10"
>
Expand Down

0 comments on commit a68944d

Please sign in to comment.