Raspberry Pi Pico Update: Difference between revisions

From Foenix F256 / Wildbits/K2 Wiki
Jump to navigationJump to search
No edit summary
Line 9: Line 9:
* Contains the K2 LCD screen special bitmap to be shown at bootup
* Contains the K2 LCD screen special bitmap to be shown at bootup
* Has modifiable code that can invite more features and possibly a faster bootup
* Has modifiable code that can invite more features and possibly a faster bootup
=== Preparing new pico flash files ===
Check this [https://github.com/wildbitscomputing/fpga-manager fpga manager] repo from Cibee which can tweak and compile such files into .uf2. This project uses VSCode, the pico sdk and openocd in order to do everything.
Here's a summary of the booting time gains that were accomplished by Cibee:
[[File:Fpga Manager Benchmark.png|thumb]]


=== Opening the case ===
=== Opening the case ===
Line 14: Line 22:
You can refer to this section to learn how you can be [[Opening_the_F256K_case]]
You can refer to this section to learn how you can be [[Opening_the_F256K_case]]


=== Flashing using the onboard USB Header ===


=== Finding the right header and connecting a cable ===
Here are the steps to follow:
[[File:Rp2040-cable.jpeg|thumb|Connector location, Switch S3 on the left, and cable orientation]]
Installation step:


Here are the steps to follow:
* Install Cable as above (F256K2 Powered Off)
* Plug Cable in any PC that holds the new programming file.
* Keep 1 finger on the button
* Power the F256K2
* A new folder will appear on the PC's Desktop
* Drop the new .uf2 file in the newly appeared folder.
* Power off F256K2
* Remove cable
* Reinstall the system as your heart's desire
* Power On the unit
* RP2040 is updated and running (because you need it to boot the unit)
* Bob's your uncle!
 
=== Flashing using the onboard SWD Header ===
 
SWD: Serial Wire Debug. This other pin header is a second way to update your flash and gives a little more flexibility to do it piece by piece by flashing .bin at specific flash locations or .elf in one go.
 
You'll need either:


* Find the right .uf2 file from this github repo https://github.com/wildbitscomputing/fpga-manager
* a [https://www.raspberrypi.com/documentation/microcontrollers/debug-probe.html Pi Debug Probe] which comes with the necessary cable that leads to 3 female Dupont endings needed here
* Find the red circled header for USB
* openocd tool from PicoSDK v1.5.1 or more recent
* Use the provided USBA to female dupont connector cable you should have received with your K2 kit upon purchase. These fairly standard cables can be found online if it needs to be replaced
* a prepared .bin file with updated code.  
* While the K2 is powered off, hold the BOOTSEL button nearby and plug the cable into your modern computer
* a conversion tool to convert .uf2 to .bin, you can use this website https://polpo.org/tmp/uf2-to-bin.html or other known tools in the pico community
* When a special drive pops up on your modern computer, drag and drop the .uf2 replacement image for the pico into that drive - it will auto-dismount and perform the update.
* the key step is to use openocd like so: openocd -s scripts -f interface/cmsis-dap.cfg -f target/rp2040.cfg -c "adapter speed 5000; program NewFirmware.bin verify reset exit 0x10000000"

Revision as of 10:13, 14 February 2026

Raspberry Pi Pico Update

Overview

There is an onboard RP2040 chip (pi pico). It is not present on the Jr2. It's responsible for the following things:

  • the bootloader procedure that loads the right core while booting the K2.
  • it is also known as the "FPGA Manager"
  • Contains the K2 LCD screen special bitmap to be shown at bootup
  • Has modifiable code that can invite more features and possibly a faster bootup

Preparing new pico flash files

Check this fpga manager repo from Cibee which can tweak and compile such files into .uf2. This project uses VSCode, the pico sdk and openocd in order to do everything.

Here's a summary of the booting time gains that were accomplished by Cibee:

Opening the case

You can refer to this section to learn how you can be Opening_the_F256K_case

Flashing using the onboard USB Header

Here are the steps to follow:

Connector location, Switch S3 on the left, and cable orientation

Installation step:

  • Install Cable as above (F256K2 Powered Off)
  • Plug Cable in any PC that holds the new programming file.
  • Keep 1 finger on the button
  • Power the F256K2
  • A new folder will appear on the PC's Desktop
  • Drop the new .uf2 file in the newly appeared folder.
  • Power off F256K2
  • Remove cable
  • Reinstall the system as your heart's desire
  • Power On the unit
  • RP2040 is updated and running (because you need it to boot the unit)
  • Bob's your uncle!

Flashing using the onboard SWD Header

SWD: Serial Wire Debug. This other pin header is a second way to update your flash and gives a little more flexibility to do it piece by piece by flashing .bin at specific flash locations or .elf in one go.

You'll need either:

  • a Pi Debug Probe which comes with the necessary cable that leads to 3 female Dupont endings needed here
  • openocd tool from PicoSDK v1.5.1 or more recent
  • a prepared .bin file with updated code.
  • a conversion tool to convert .uf2 to .bin, you can use this website https://polpo.org/tmp/uf2-to-bin.html or other known tools in the pico community
  • the key step is to use openocd like so: openocd -s scripts -f interface/cmsis-dap.cfg -f target/rp2040.cfg -c "adapter speed 5000; program NewFirmware.bin verify reset exit 0x10000000"