Disclaimer: I am not affiliated with Waveshare in any way.
It boots Circuitpython and Ljinux all nice and fine.
The activity led also works (breathing while waiting and blinking on file activity).
1 messages · Page 1 of 1 (latest)
Disclaimer: I am not affiliated with Waveshare in any way.
It boots Circuitpython and Ljinux all nice and fine.
The activity led also works (breathing while waiting and blinking on file activity).
thank you for your PR, please check out the review question for vid/pid
The issue has been resolved.
This depends on the PIDs that have been requested from espressif:
Turns out it wasn't resolved. The vid/pid Waveshare provided were stolen from Adafruit.
Please refer to https://github.com/adafruit/circuitpython/pull/6672#discussion_r935896718
As for the new pid/vid, it was provided by Espressif
look great, you will need to add it into the ci build as well https://github.com/adafruit/tinyuf2/blob/master/.github/workflows/build_esp32.yml
I confirmed that the built firmware works for loading circuitpython uf2 files
In theory support for the LCD could be added but it's not a priority for me
In theory support for the LCD could be added but it's not a priority for me
not a problem at all, we could do it later when having time. Please add it into the ci build and this is good to merge. https://github.com/adafruit/tinyuf2/blob/master/.github/workflows/build_esp32.yml
first time posting a PR in this repo so please let me know if im missing anything or need to change/add more.
thanks
thank for the pr, please
please revert the unnecessary white space changes to the yml file.
i think its fixed. prettier was adding the additional white spaces when I saved the file.
again, please revert the unnecessary white space changes to the yml file. Don't edit the whole file, you only need to add your board to the list in ABC order.
again, please revert the unnecessary changes to the yml file. Don't edit the whole file, you only need to add your board to the list in ABC order.
What changes are you referring to? All ive done is add my two boards to the list. I thought you were originally referring to the indention being different from the master, but now I'm not sure what you're talking about.
again, please revert the unnecessary changes to the yml file. Don't edit the whole file, you only need to add your board to the list in ABC order.
What changes are you referring to? All ive done is add my two boards to the list. I thought you were originally referring to the indention being different from the master, but now I'm not sure what you're talking about.
there is the "File Changes" tab in the top of the PR, you should always double check that.
again, please revert the unnecessary changes to the yml file. Don't edit the whole file, you only need to add your board to the list in ABC order.
What changes are you referring to? All ive done is add my two boards to the list. I thought you were originally referring to the indention being different from the master, but now I'm not sure what you're talking about.
there is the "File Changes" tab in the top of the PR, you should always double check that.
Oh I think i see w...
i closed my previous PR for this, i was having issues fixing the yml file, so i started over. hopefully this works correctly this time.
look good to me. I try to find schematics in MBAdafruitBoards repo to confirm but couldn't find this board though.
Adds support for the Waveshare ESP32-S2-Pico-LCD Board with USB PID from Espressif: Espressif USB customer-allocated PID repository
Is it possible to make this an opt-in? Or provide a general erase tool?
It's frustrating when I try to erase tinyuf2 after flashed it. No tool provided. Follow tinyuf2-unlocker guide but the build artifact doesn't work at all. Try to disable write protection and erase via STM32Cube, the blackpill drive pops again. Any ideas?
@hathach
default 0x08000000 (incorrect)
This is what I encounter now. Unfortunately I only have one CMSIS-DAP so I cannot update its firmware (which must be done from the host over another downloader). I found pyocd could erase listed sectors with --sector erase option:
pyocd erase -t stm32f401cdux -s 0x08000000
Is this achievable, and which sector sould I pass?
pyocd flash -t stm32f401cdux dg_f401_default.bin ...
Windows 11
TinyUF2 Bootloader 0.10.2 - st/cmsis_device_f4 (v2.6.8) st/stm32f4xx_hal_driver (v1.8.0-8-g1d99564) tinyusb (0.12.0-203-ga4cfd1c69)
Model: STM32 STM32F401CxUx
Board-ID: BlackPill
Date: Jun 24 2022
I successfully flashed the controller with tinyuf2. The USB drive appears and I can copy the UF2 file to the controller. Then the controller restarts but the program is not loaded.
I convert a...
simply converting binary with uf2conv won't work, you will need to change the linker to start with 0x8010000 https://github.com/adafruit/tinyuf2/issues/75#issuecomment-889666036
@myst729 please open a new issue for your problem, this PR is merged and closed.
Recently I flashed 0.10.2 to my STM32F401 breakout board. When I try to erase it and flash another firmware, it fails.
By checking release notes I found write protection was introduced in an early version. Following KarlK90's guide, I build a tinyuf2-unlocker uf2 file for STM32F401. When I drag the uf2 to the blackpill drive, it ejects. Then I flash my new bin file w...
protect bootloader is already optional, you only need to define TINYUF2_PROTECT_BOOTLOADER=0 in your board if you don't want it. https://github.com/adafruit/tinyuf2/blob/master/ports/stm32f4/boards.h#L47
developing bootloader always need an programmer. Though self-update is possible, you can compile tinyuf2 without protect bootloader and do the upgrade.
for how-to, you could use discussion, post your detail setup and link to your github project. Others may help you out.
The problem is I have already flashed a firmware that enables
write protection from https://github.com/adafruit/tinyuf2/releases/download/0.10.2/tinyuf2-stm32f401_blackpill-0.10.2.zip, how can I erase it.
Added support for new board.
I'm sorry, just noticed that the length for volume label is > 11 character in #PR244.
By the way, GPIO 39 is high when entering UF2 bootloader. Is that normal?
Support double reset to tinyUF2.
PID from Espressif.
one more thing, you need to add this board to ci so that its binary is available in the release https://github.com/adafruit/tinyuf2/blob/master/.github/workflows/build_esp32.yml
Thanks for the reminder, added.
This does not include the lite version, don't know if it can just use the same build.
thank you, I think the lite version is pretty the same and can actual use this binary right ?
@hathach May I know how often a new release will be created?
BOOT (GPIO0) button to enter into tinyUF2 ;
LED on GPIO6 ;
PID from Espressif.
we made release when needed (or requested for new boards) or there is major code changes. I will made a release soon enough.
we made release when needed (or requested for new boards) or there is major code changes. I will made a release soon enough.
Ok noted. Thanks.
Thanks to @errant plover & @dusk tree, the latter who, on my request, added the ESP32-S3-BOX to the list of boards for tinyuf2 I was able to build the tinyuf2 bootloader for the 'esp-box'; copy CicruitPython latest; copy and ported one of my (ongoing) projects to the 'esp-box'. For those of you who are interested. Here is the link to the repo I just published: https://github.com/PaulskPt/ESP32-S3-Box_MSFS2020_GPSout_GPRMC_and_GPGGA
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
only add new board - lolin s3
add lolin_s3 support, also used by espressif_esp32s3_devkitc_1.1 of n16r8
@chukwon
#define USB_VID 0x239A
#define USB_PID 0x00A5 // TODO temporarily shared with S2 saola wrover
VID 0x239A is assigned to Adafruit vendor.
Would you mind to use the VID/PID from Espressif list ?
https://github.com/espressif/usb-pids/blob/main/allocated-pids.txt#L288
0x8118 | Lolin S3 - UF2 Bootloader
please provide all info in the PR template including link to the vid/pid allocation
@chukwon there is nothing new in the PR, checkout my above review request.
'adafruit_camera_esp32s2'
'adafruit_feather_esp32s2'
'adafruit_feather_esp32s2_tft'
'adafruit_feather_esp32s2_reverse_tft'
'adafruit_feather_esp32s3_reverse_tft
'adafruit_funhouse_esp32s2'
Linux
N/A
This commit https://github.com/adafruit/tinyuf2/commit/d1f9d40fd7683b9203094020edc43f26df78c74a has made the list no longer valid by entering an S3 record -
'adafruit_camera_esp32s2'
'adafruit_feather_esp32s2'
'adafruit_feather_esp32s2_tft'
'adafruit_feather_esp32s2_reverse_tft'
'adafruit_feather_esp32s3_reverse_tft
'adafruit_funhouse_esp32s2'
N/A
...
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
UF2_BOARD_ID in your board...By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
This SSD1306 OLED software component is a prerequisite before adding BSPs for boards that have the 128X64 SSD1306 OLED display hardware onboard _(such as RAK, Heltec, LilyGO and other brands)...
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
sorry, I am busy with other work, will review this later as soon as I could
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
This XPowersLib PMU software component is a prerequisite before adding BSPs for boards that have an onboard display hardware that nee...
look good, but please remove unused files such as cpp/hpp i.e only included used files.
look good, but please remove unused files such as cpp/hpp i.e only included used files.
@hathach
All the files in the 'src' folder have references onto each other.
Could you, please, be more specific on which files should be removed ?
.gitignore ? keywords.txt ? library.json ? library.properties ?
the idea is to remove all source and header aren't used. I don't know which files you use yet. Could you update the PR to also include your BSP as well instead of the component only since they aren't used anywhere.
Ok, I see your point...
Let to me to explain my one.
I am currently submitting a BSP 'step-by-step'. XPowersLib is the last component used.
Next two small PRs will contain rest of the stuff.
Idea of committing the BSP through a sequence of PRs is to ease adoption.
I don't know which files you use yet.
You may see the result in the 'master' branch of this repo:
https://github.com/lyusupov/tinyuf2
Please, trust me that the files I commit is a bare minimum.
please also submit the BSP as draft PR, I would like to check to see which files are used in compilation.
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
This draft PR is created upon request by the TinyUF2 developer.
https://github.com/adafruit/tinyuf2/pull/265#issuecomment-1333278352
can you also include the board to the ci yml file. I should run it locally, but kind of lazy for now.
the board is already in the list since October 17th:
https://github.com/adafruit/tinyuf2/pull/252/commits/b7a53a57d609ef8f0235f983824868e3115a8c39
tested compiling #266 with this components/XPowersLib. I don't have hardware to test but it compiled ok. And this component is indeed used by tbeam s3. Sorry for late in response, I could do this quickly but got switched to other task.
thank you, have tried compiled this. And merged the PR that add XPowersLib. Feel free to rebase/update this pr to finalize your BSP update for tbeam s3
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
This PR is a successor of
It contains:
Linux
TinyUF2 Bootloader 0.11.0-13-g9796a54 - tinyusb (0.12.0-203-ga4cfd1c69)
Model: Unexpected Maker TinyS3
Board-ID: ESP32S3-TinyS3-01
Date: Nov 8 2022
ESP32 build worked fine until mid november, since then it is broken, it does not enumerate. Maybe it is cause by updated docker image for esp-idf. The image used by the workflow is repressive/idf:release-v4.4 which may have been updated at that time... last updated 5 days ...
I just tested it with the unexpectedmaker pros3 board as well, same thing happens. The builds after Nov15 do not enumerate, the LED stays RED!
Confirmed on tinys3, it is boot looping
Build:Mar 27 2021
rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fcd0108,len:0x1644
load:0x403b6000,len:0xe7c
load:0x403ba000,len:0x3248
entry 0x403b6334
␛[0;32mI (25) boot: ESP-IDF v4.4.3-145-g76caa64286 2nd stage bootloader␛[0m
␛[0;32mI (25) boot: compile time 02:29:08␛[0m
␛[0;32mI (25) boot: chip revision: 0␛[0m
␛[0;32mI (28) qio_mode: Enabling default flash chip QI...
It looks like an issue that affects the tinyuf2 & Actions infrastructure only.
Manual builds ( self-hosted or hosted by Codespace ) are still doing good to me.
I checked the assert address, it wasn't really helpful...
spinlock_acquire at /opt/esp/idf/components/esp_hw_support/include/soc/spinlock.h:75
(inlined by) xPortEnterCriticalTimeout at /opt/esp/idf/components/freertos/port/xtensa/port.c:293
see also the full backtrace:
0x403756b2: panic_abort at /opt/esp/idf/components/esp_system/panic.c:408
0x40379b71: esp_system_abort at /opt/esp/idf/components/esp_system/esp_system.c:128
0x4037edfe: __assert_func at /opt/esp/id...
The following is from my ESP32-S3-DevKitC1-N32R8V. I've been struggling to get just about any UF2 implementation onto this device.
I've tried:
esptool.py (v4.4).esptool.py (v3.2) under lib/esp-idf.These are the commands that gets me the closest to a running device. The one difference from the ports/espressif/README.md is that the bootloader.bin starts at 0x0 instead of 0x1000.
tinyuf2.bin
`espto...
My next approach was to compile from source. I started by defining a new board with the associated files. In this instance, I defined it as espressif_esp32s3_devkitc_1-1 and under it, I included the following files.
partitions-32MB.csv
# ESP-IDF Partition Table
# Name, Type, SubType, Offset, Size, Flags
# bootloader.bin,, 0x1000, 32K
# partition table,, 0x8000, 4K
nvs, data, nvs, 0x9000, 20K,
...
Migrating to V5.0 would be the best but also the most effort in my opinion. In the meanwhile I contacted espressif support directly, hopefully they can help us out!
I don't have any unexpected maker boards to test this with. Can you confirm this issue on one of Adafruit or Espressif following boards:
I have built tinyuf2 for the espressif_esp32s3_box from master and it does work.
I changed the sdkconfig.defaults file as follows
# Compatibility options
#CONFIG_FLASHMODE_QIO=y
CONFIG_FLASHMODE_DIO=y
And built for the espressif_esp32s3_devkitc_1 and the unexpectedmaker_feathers3 and both worked.
I don't have time tonight to further test and i have made a lot of test changes. Will relclone the repository tomorrow and see if this all still works.
@skieast it was reported earlier that there is nothing wrong with self-hosted builds.
The original issue report is about regression of Actions build since November 15th.
https://github.com/adafruit/tinyuf2/actions/runs/3469908233
The build deploys certain 'artefacts' that don't boot on an actual ESP32-Sx hardware.
, unexpectedmaker_tinys3, and unexpectedmaker_feathers3 . All flashed and booted with an enumerated drive. Using Linux to build and test. I had an issue with the espressif_esp32s3_devkitc_1 but I bvelieve that was due to the 32mb flash and that its octal. Changing the sdkconfig file to include the line
CONFIG_FLASHMODE_DIO=y
for that board fixed tha...
CONFIG_FLASHMODE_DIO=y did not help for me, it still bootloops on the TinyS3 compatible targets... (Build using GitHub Actions, idf:release_v4.4)
Just recloned the repository, rebooted my laptop and did builds for the espressif_esp32s3_box, espressif_esp32s3_devkitc_1 (32mb flash), unexpectedmaker_tinys3, and unexpectedmaker_feathers3 . All flashed and booted with an enumerated drive. Using Linux to build and test. I had an issue with the espressif_esp32s3_devkitc_1 but I bvelieve that was due to the 32mb flash and that its octal. Changing the sdkconfig file to include the line
CONFIG_FLASHMODE_DIO=yfor that board fixed that. So c...
Linux
TinyUF2 Bootloader 0.11.0-dirty - esp-idf (v4.4-dev-3608-gbbe2a1bf34) tinyusb (0.12.0-203-ga4cfd1c69)
Model: Espressif ESP32S3 DevKitC 1
Board-ID: ESP32S3-DevKitC-v1.0
Date: Dec 21 2022
Espressif recently release a revision of the ESP32-S3 using the WROOM-2 module dubbed: ESP32-S3-DevKitC v1.1. They include the following models:
ESP32-S3-DevKitC1-N16R8V (16MB Flash, 8MB PSRAM)
**ESP32-S3-DevKitC1-N32R8V (32MB ...
This comment goes into more detail about the esptool.py flashing limitation.
https://github.com/adafruit/tinyuf2/issues/268#issuecomment-1356862612
In this comment I attempted a separate board definition.
https://github.com/adafruit/tinyuf2/issues/268#issuecomment-1356889129
At this point I feel comfortable enough to say that issues with the ESP32-S3-DevKitC-1-N16R8V and ESP32-S3-DevKitC-1-N32R8V are separate from the reportedly broken builds in this thread.
At this point I feel comfortable enough to say that issues with the ESP32-S3-DevKitC-1-N16R8V and ESP32-S3-DevKitC-1-N32R8V are separate from the reportedly broken builds in this thread.
Agreed.
I don't have the new wroom2 board for now, will try to get one later
I don't have any unexpected maker boards to test this with. Can you confirm this issue on one of Adafruit or Espressif following boards:
- 'adafruit_feather_esp32s3'
- 'adafruit_feather_esp32s3_nopsram'
- 'adafruit_feather_esp32s3_tft'
- 'adafruit_qtpy_esp32s3'
- 'espressif_esp32s3_devkitc_1'
- 'espressif_esp32s3_devkitm_1'
@hathach in order to reproduce the issue, please, try to boot a firmware binary from 'Artifacts' section of this page: https...
I think the issue may be with the docker image of the esp-idf being used
run: docker run --rm -v $PWD:/project -w /project espressif/idf:release-v4.4 /bin/bash -c "git config --global --add safe.directory /project && make -C ports/espressif/ BOARD=${{ matrix.board }} all self-update copy-artifact"
When i try to build locally using the current release-v4.4 for the TinyS3 it does not work.
If I build locally using the version of esp-idf included in the tinyuf2 repository it does...
So I built a new docker image for the esp-idf that uses the correct commit. Modified my fork to use this docker image. The artifacts for the tinys3 and feathers3 both enumerate now. I did not test any other boards.
Docker hub repo, image is v4.4-tinyuf2 : https://hub.docker.com/repository/docker/6lhasacoi/idf-custom
Fork and branch to use this image: https://github.com/skieast/tinyuf2/tree/test-workflow
Artifacts from last push: https://github.com/skieast/tinyuf2/actions/runs/3783255...
@skieast thank you for your effort creating the custom docker image, I just tested it and it works for my custom (TinyS3 compatible) esp32s3 boards! What next? Should we try to convince espressif to host this image on their official docker hub? Maybe adafruit?
@SukuWc thanks for trying this and confirming that it works, at least for you and me, Now it's up to @hathach to decide on how to proceed. If this is the route to follow (custom docker image) then on some official docker hub repository I think. Or someone can find out why the 4.4 release bootloops with the esp32s3.
I also looked briefly at hosting the image at Github Packages repository which supports Docker images (amongst others). I didn't get all the permissions right to push my local image but it should work. This would then allow the idf-custom Docker image to be hosted in the github tinyuf2 reposity. Or maybe its the adafruit account. Smarter brains will know.
Custom docker image will not be accepted. If docker image is the issue, you should report it to espressif for them to fix. If it is the tinyuf2 we should fix it here. Though I don't have the boards with this issue, therefore pr is welcome
It's an image created using espressif tools designed to get an image at a defined commit. In this case the esp-idf in the tinyuf2 repository is at commit bbe2a1bf34. The docker idf image used in the github workflow is v4.4. This image changes as espressif updates that version. So you will get times where it may work depending on what espressif has committed to that image.
In any case thanks for looking at the research.
Is your feature request related to a problem? Please describe.
I would like to encrypt uf2 file with AES128/256 encryption method so that nobody is able to disassembly the file.
Describe the solution you'd like
Add code logic to support uf2 file with some extension flags which indicated the firmware is encrypted and need run decrypt before flash it.
I have tested modifying the .github/workflows/build_esp32.yml to use the espressif/idf:v4.4.3 idf image. In this case the artifacts do enumerate on the boards I tested.
unexpectedmaker_feathers3
unexpectedmaker_tinys3
espressif_esp32s3_box
The artifacts I pulled from the master branch built a week ago did not work on the above board.
Perhaps this is an acceptable solution.
git diff master Mon Jan ...
hi, im currently playing with tinyuf2 and got this error while trying to compile, does anyone have solution?
this test looks like it is missing the trailing all
the first one isn't a valid board name
it also looks like you are windows. I'm not sure its been compiled there
yes it is on windows
I use WSL2 on Windows to do my tinyuf2 builds.
Esptool does not support a flash of more that 16MB (except for a specific Gigadevice chip) . This support is expected to be added in the future. This is commented on in the changelog for the dev version of esptool.
The octal flash support for 32 MB chips
(https://github.com/espressif/esptool/issues/795) will be added in a
follow-up commit.
https://github.com/espressif/esptool/commit/21e59148e73e384947327a0883a753685e03d143
well i can conclude that the best solution for me is to do it on linux
thx guys
thank you @skieast for testing this out, temporarily switch to v4.4.3 (released 2 months ago), seems like the latest v4.4 (released 2 weeks ago) indeed is the troublesome one.
b74c3df switch ci docker image to v4.4.3 - hathach
switch docker image from release-v4.4 to v4.4.3 as walkaround to fix #268
Then where to put the keys
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
Others
N/A
GitHub Actions is deprecating Node.js 12 and also changing how outputs are set in steps.
Run Actions.
No response
No response
I can work on this but wanted an issue so I wouldn't forget.
iirc we can fix this by update actions/setup-python@v4 . @tekktrik have you tried any code changes just yet, if not, I could try to make an PR to see if that works out.
I've updated versions for standard action steps like actions/setup-python and 'actions/checkout` in the CircuitPython libraries without issue. Same thing for how the outputs of steps are set, no issues there either.
In order to make the bootloader accessible for ESP32 Devices to the New CircuitPython Installer I'm working on and get around CORS issues, GitHub Actions needs to be updated to upload the release files to Amazon S3 like we do with CircuitPython Libraries and Firmware currently.
This should be fairly easy as we already have it implemented in other repos.
This modifies the GitHub actions so that release files are uploaded to Amazon S3. I was unable to test this in my own repo. I already set up the AWS secrets, so this should work. I'll do a release to test after this is merged.
After testing #278, I realized it was uploading everything to a file called esp32 instead of using that as a folder. This fixes that.
Since I'm 100% sure this will work and it needs to be changed ASAP, I'm just going to merge.
I realized while #279 did indeed fix the issue with it using the filename instead of the folder name, it was missing the release tag. This fixes that issue and I'd be surprised if another follow-up PR is needed.
16c95aa Update ESP32 GitHub Actions to upload to Amazon S3 - makermelissa
3329998 Merge pull request #278 from makermelissa/master - hathach
123d347 Fix pathname for AWS uploads - makermelissa
e7cd0ba Merge pull request #279 from makermelissa/master - makermelissa
79759ad Add release tag to pathname for AWS uploads - makermelissa
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
This checklist items that are not applicable to your PR can be deleted.
Updates CI files to stop using actions using Node.js 1...
This PR includes update for new Metro M7 rt1011 and bunch of other update as well including
get-deps target to fetch submodule dependencies--before no_reset optionCan we ask uf2-samdx1 questions here? It looks like there are changes both the Adafruit fork and the Microsoft source. Is there any reason to pick one over the other if the board is in both?
I think the Adafruit one is more geared towards working with circuitpython and Arduino
Setting up the status led with the neopixel/led and whatnot
It’s been a minute since I glanced at the Microsoft version though
I'm working with an Arduino MKR board so it might not matter. Thanks for the input.
Gotcha, yeah I imagine either would work.
e68c235 update nxp mcux sdk, also enable dcache in boar... - hathach
Linux
If i'm not mistaken, I believe that the default mimxrt1011 tinyuf2 starts at 500MHz. It should probably start at 400Mhz or lower to ensure that it's compatible with all chip revisions.
I might be mistaken -- I used the mcu config tools to read the clock_config.c file, so it's quite possible that process didn't work right.
I think the system is starting at 500Mhz, which is well outside the specs for the 400mhz part.
##...
Linux
NA
The .hex file generated by the linker script has the virtual memory addresses, not the load addresses, so it is not useful for loading the flash, with the Teensy loader for example. This is my mistake, if I had made the linker scripts correctly, it should be able to create a valid .hex file with the correct flash addresses.
These instructions are for the Teensy 4.x board
Note that a solution is now released in Circuitpython 8. This PR: https://github.com/adafruit/circuitpython/pull/7000 thanks to MicroDev, lets you reformat the CIRCUITPY drive so that it extends into the OAT1 partition.
https://docs.circuitpython.org/en/latest/shared-bindings/storage/index.html#storage.erase_filesystem
it is totally not your mistake nor anyone mistake. We just simply have not tested the hex file just since migrated bootloader to SRAM. And the sdphost works perfectly since then. Let me pull out my rt1011 since it has on-board daplink that I can flash the hex file with pyocd to test out your suggestion of adding --change-address
Mostly alignment to STM32F4's self-update implementation.
The bulk of the changes align board_self_update and flash_write, as well as duplicating all the ancillary files.
dfu-util
st-flash CLI instead of dfu-utilNOTE: I don't know the appropriate VID/PID -- It's currently using the 1060_evk settings and not the teensy settings. Not sure which to use
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
thank you for the PR, please check out review for suggested changes. Also what is the use of nxp_blhost_sdphost submodule ? if not needed, we should removed that
look good, thank you for your PR
Thank you for the PR, this looks perfect. Though I have an favor to ask, would you mind checking the erase nbpages since it looks awkward to me even though it exists previously, we should fix it if needed.
Look great, though I think we should add an additional flash-stflash and erase-stflash instead of using the current stlink. What do you think ?
I did have that previously, and its use can be hidden with a :flash alias. Though I do think its somewhat unintuitive for flash-stlink to not work with the connected stlink.
I believe I addressed all the issues with 9db2504e0443c3b80858c4e6203ef4e05cc2f2de. I ran and verified that things still work on teensy 4.1 and 4.0, and that the PIDs are correct, and that the boot disks show up correctly.
The only version I see here is 500mhz capable. Where is a 400mhz part documented?
Add capability to force stay in DFU (and erase app) with button if TINYUF2_DFU_BUTTON is set to 1.
This adds a check to see if a button is pressed. If the board button is pressed, stay if dfu mode.
If TINYUF2_DFU_BUTTON_ERASE is also set to 1, then the app is erased.
...
I made changes according to our discussion, also fix an assert check with SectorError (see review). Let me know if these changes still works with you.
thank you very much for the PR, I made some additional changes mostly for adding hex rule for imxrt. It shouldn't change the behavior of this PR. Will merge when ci passed
each board has its own clock_config.c/h and can be configured individually, yes ?
LGTM, not found any additional issues with my testing.
each board has its own clock_config.c/h and can be configured individually, yes ?
Yes. Now that I think about it, this really isn't a bug for the imxrt1010_evk. It's that I was using the imxrt1010_evk as a placeholder for 'all i.mx RT 1011 based boards'.
I guess it's just a policy choice: do you want the clock speed set to the maximum clock speed available for that particular board, or the maximum clock speed supported by all members of the CPU family? The former means when tran...
Definitely something I'm interested in too.
for the i.MX RT family, there are two different encryption schemes -- BEE and OTFAD. Unfortunately at the moment, I don't know much more about it ;-)
Each board should configure its preferred clock individually with clock_config. I don't think we need to set any minimum or maximum clock at all. They should run with their optimum design (crystal/power etc...). If you accept this answer, we can close this issue.
LGTM, not found any additional issues with my testing.
thank you for testing, merged !!!
Before discussing the implementation, I would suggest to bring this discussion to https://github.com/microsoft/uf2 for the author to make it into the specs first. E.g adding new flag for encrypted method/key etc..
I agree it should be left to each board to decide. They may need different
settings for a different clock source or crystal frequency. Also, some of
the settings may be required to run USB.
On Thu, Mar 2, 2023, 8:47 PM Ha Thach @.***> wrote:
Each board should configure its preferred clock individually with
clock_config. I don't think we need to set any minimum or maximum clock at
all. They should run with their optimum design (crystal/power etc...). If
you accept this answer...
Noticed a few things while comparing the two ports after recent changes.
Just to be clear, it's actually "extended", rather than "extend":
import storage
storage.erase_filesystem(extend=True)
For the i.MX RT boards, the current BOARD_FLASH_APP_START is fixed at flash_base + 0xC000. However it is sometimes useful to put the application in a different memory location. This patch allows the board.h to configure the app start address.
Slight complication on the implementation compared to F4 as HAL_FLASH_OB_Launch resets the MCU. Without specific logic to handle this case the self-updater gets into a bit of a spin.
board_flash_protect_bootloader(false)board_flash_protect_bootloader(true)Catching the reset reason allows the bootloader to re-run the self-updater with the now unlocked write protection.
Linux
placeholder
When copying update-tinyuf2-imxrt1010_evk.uf2 to the board, it does not reboot, and it requires a manual reset.
expected behavior
I would expect that the board reboots, just like it does when jumping to a new application. In its current incarnation, unattended updates are not easy, and would require a full power off and on of the entire system, which is not feasible for some embedded systems.
###...
@gsteiert I think I see what's going on here:
This issue may be limited to the i.MX RT port, which treats the self update exactly the same as a regular update. The regular update jumps to the application directly, rather than rebooting. This means, when the self-update happens, the flash gets written, but the chip doesn't go through the boot process, and so the new version doesn't get started.
Is there a way to force-boot on self-update?
smh, okay, I'll understand this eventually. It actually does start up the new firmware, however, it does not re-enumerate on the USB bus.
My experience is this:
I have 2 i.MX RT1010 builds:
make BOARD=imxrt1010_evk self-update
make BOARD=custom self-update
The drive for the imxrt1010_evk is /media/$USER/RT1010BOOT. The Drive for custom is /media/$USER/CSTMBOOT.
I initially program with the tinyuf2-imxrt1010_evk.bin file, so when I reboot, I have the RT...
Some custom i.MX boards require per board setup. Currently, I don't see a mechanism for a specific board to have a setup call.
As a specific example, For example, on the i.MX RT 1011, if you happen to have the boot LED on GPIO_AD_02, you might need to custom configure `GPR...
can you provide the full dmesg log when first attached with old firmware then copy new firmware.
indeed, we have some thought to support DFU button, but haven't put much effort since double tap serve us well. Regarding erasing app, please check out the review for detail.
It does beg the question, are there other places where there should be custom hooks on a per-board basis?
Ah ha. I hadn't changed the PID. Found that if I don't change the PID, it doesn't recognize the new firmware right. If I do change the PID, then it re-enumerates.
I created a quick dummy board here , which just has some strings and PID changed from the imxrt1010_evk board. No other code changes.
make BOARD=imxrt1010_evk -j flash
dmesg output
[ +5.309085] usb 1-9.1.4: USB disconnect, device nu...
as suspected, this is host caching, it doesn't bother to re-read any of the descriptors.
The LED write routine is meant to take a value between 0 for off and 255 for full brightness. the current 10xx port treats 0 as off, and anything else as on when dealing with non-PWM leds. This creates a case where the LED is on virtually all the time, except for a tiny blink off every 256 timer intervals.
This fix turns the LED on for (value >= 128) and off for ...
we add an optional API (weak function) to board_api.h e.g board_init_post() in conjunction with board_teardown_post()
I updated the hooks to be in main now, rather than in the port directory. Now it's easy for any board anywhere to define the functions to do per board custom stuff.
void board_init_post(void) __attribute__ ((weak));
void board_teardown_post(void) __attribute__ ((weak));
bool board_app_valid_post() __attribute__ ((weak));
Please follow review for suggested change. Also I changed my mind on the naming, please change these _post to simply
I think I've got it all. Thanks!
Add M5Stack AtomS3 Lite board
VID & PID comes from EspressIf pids repository: commit
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
Add Deneyap boards at list of supported boards
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
This part of repo is related to both ESP32-S2 and ESP32-S3.
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
Could this be due to an incorrect address in the IVT? Seems like it should be patched when written to flash. The addresses used in RAM won't work when loaded from flash. In particular, the reset handler will run from flash because it loads everything into ram.
There is a recent pr fixed by other users to tinyusb that fixes the 1024 issue. I will pull out and check this later next week when I get back from vacation.
TinyUF2 only writes itself to flash under certain conditions (from board_flash.c):
// TinyUF2 will copy its image to flash if one of conditions meets:
// - Boot Mode is '01' i.e Serial Download Mode (BootRom)
// - Flash FCFB is invalid e.g blank flash
// - Flash contents does not match running tinyuf2 in SRAM (depending on COMPARE_AND_WRITE_TINYUF2)
Here are four ways to force it to load:
This would be very handy, indeed!
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
use 'app' instead of 0, change should not effect functionality, however makes partition table more consist...
I think I got TinyUF2 writing to flash ok.
What I don't understand is that the RAM version is linked to run from the address range of RAM. How does that work when loading/running from flash?
One of the entries in the IVT is for the boot data structure.
The boot data includes the start address and image length.
The ROM reads the boot header, and if the start address is in RAM, it copies the image to RAM.
The IVT and boot data structures are in flash_config.c
The definition for BOARD_BOOT_START is in boards.h
@gsteiert Any pointers to where this is documented? How does the RAM address need to relate to the flash address? Does the start of the image start with the boot data?
See the program image section of the reference manual (9.7 in RT1010)
The i.MX RT Flashloader Use Case app note also has some additional information:
https://www.nxp.com/docs/en/nxp/application-notes/AN12238.pdf
link to VID/PID
https://github.com/espressif/usb-pids
USB_VID = 0x303A - USB_PID = 0x80DC | CircuitArt FeatherS3 - UF2 Bootloader
board has been added to /.github/workflows
UF2 board id info
#define UF2_BOARD_ID "ESP32S3-Zero-R1"
#define UF2_VOLUME_LABEL "ZEROS3BOOT"
#define UF2_INDEX_URL "https://github.com/CircuitART"
same as #308 but for 16MB partition table
same as #308 but for 4MB partition table
MacOS
When connecting to Mac or Windows, a drive is not appearing. The expected behavior is that after flashing for the UART connector, then connecting to the USB connector will show a mapped drive.
A full description appears here: https://forums.adafruit.com/viewtopic.php?t=200794
build, flash, connect. all described here: https://forums.adafruit.com/viewtopic.php?t=200794
_No respons...
not fully functional, but adding intial cmake support for imxrt (only).
65dea90 update neopixel driver for imxrt - hathach
better drive neopixel with imxrt
This bug was reported from IDF v4.4.3 on Mac.
I did a reinstall of everything on a fresh Ubuntu and got it working as expected.
so this bug can be closed. thank you!
IMO you should add a comment here:https://github.com/adafruit/tinyuf2/blob/master/ports/espressif/README.md
saying that TinyUF2 is compatible with IDF 4, not 5
Also includes changes for 1176 but I couldn't get it loading so I omitted the board def. It doesn't support sdphost. It'll need blhost support instead.
S3 boards are located in a separate list:
# ----------------------
# S3 Alphabetical order
# ----------------------
S3 boards are located in a separate list:
# ---------------------- # S3 Alphabetical order # ----------------------
thank you for spotting the issue, just fixed it
Note for the curious: TInyUF2 does not require the back-end to be an MCU's own flash, it could be another device entirely.
This allows to use a small MCU as an UF2 bootloader for another device.
Anything I can do to move this PR along?
Add M5Stack AtomS3 board
VID & PID comes from EspressIf pids repository
Also fixed UF2_BOARD_ID for AtomS3 Lite board. Now IDs are:
ah sorry for late response, I will pick this up and do some testing soon enough.
Sorry for the delay, PR looks great, everythingg is spot-on. Though I rebased & made some changes to make the should_protect local to F3 https://github.com/adafruit/tinyuf2/tree/protect as well as adding some cmake support for F3. However I couldn't push to your fork, would you mind pulling my branch and push force (since rebased) to yours to update this PR. Afterwards, I think this is ready to merge.
Windows 11
TinyUF2 Bootloader 0.14.0-10-g86a054f - st/cmsis_device_f3 (v2.3.6) st/stm32f3xx_hal_driver (v1.5.6-9-g75cf4fc) tinyusb (0.15.0-331-ge3b3229d6)
Model: ST STM32F303 Discovery
Board-ID: STM32F303 discovery
Date: Jun 5 2023
Content of CURRENT.UF2 is always just zeros, and does not reflect the current flash contents,
hexdump ~/Desktop/CURRENT.UF2
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
0080000
``...
STM32L4 support has been mentioned a few times on the QMK Discord. Eventually targeting single-bank MCU like the STM32L432, there are a few assumptions on flash layout to unpick.
Before submitting those changes, I figured it was worth a pass to tidy a few areas up so that its more consistent with the F3 and F4 port.
122747c make DISPLAY_PIN_BL optional (not defined or -1) - hathach
UF2_BOARD_ID in your board.h follow correct format from [uf2 specs](https://github.com/microsoft/uf2#files-exposed-by-b...please update your board-id
thanks for your PR, please address question in the reviews
521c2e8 add qtpy s3 n4r2 (4M flash, 2 psram) - hathach
Add qtpy s3 n4r2 (4M flash, 2 psram). @ladyada I am not sure if the n4r2 naming look good to you, please let me know if you have any other suggestion.
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
UF2_BOARD_ID in your board...Bus 001 Device 082: ID 239a:0143 Adafruit QT Py ESP32-S3 (4M Flash, 2M PSRAM)
Please follow the PR template description and make following changes
Please follow the PR template description and make following changes
- UF2_BOARD_ID is not correct
- remove adafruit favicon
- provide link to vid/pid
I added link for VID/PID to PR comment and fixed issues which you mentioned. Thanks
I added link for VID/PID to PR comment and fixed issues which you mentioned. Thanks
your PID PR is still opened, have you allocated with the PID yet ?
your PID PR is still opened, have you allocated with the PID yet ?
Sorry, I do not now what you mean by that. Could you rephrase your question? Thanks
sorry, I mean did your request for the PID is accepted yet ?
No, I'm waiting for somebody to make a review, but I do not expect to be declined. I understand if you want wait until will be accepted.
No, I'm waiting for somebody to make a review, but I do not expect to be declined. I understand if you want wait until will be accepted.
PID approval is mandatory, I will mark this PR as draft for now. Please mark it as ready when you have PID allocated.
TinyUF2 Bootloader 0.15.0-23-g598d624 - esp-idf (v4.4-dev-3608-gbbe2a1bf34) tinyusb (0.15.0-566-gf1e006d09)
Model: Adafruit Camera
Board-ID: ESP32S3-Camera-revC
Date: Jul 19 2023
Flash Size: 0x002C0000 bytes
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
[x] Please provide specific title of the PR describing the change
[x] If you are adding an new boards, please make sure
https://github.com/espressif/usb-pids/blob/main/allocated-pids.txt#L409
your PID PR is still opened, have you allocated with the PID yet ?
Sorry, I do not now what you mean by that. Could you rephrase your question? Thanks
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
https://github.com/espressif/usb-pids/blob/main/allocated-pids.txt#L425
_(Please, note that 'SoftRF Midi Edition' is actually an alias for Heltec Wi...
i haven't seen any convo here, just bot actions, but here is my question anyway (let me know if i should open an issue or whatever instead)
i just bought this very same board https://github.com/adafruit/tinyuf2/pull/144, is there anything missing that i could (try) implement to get it merged? 😄
start by building and testing it
I don't think its been reviewed since it is marked as wip still
Hey folks - has anyone successfully gotten both the lib\esp-idf installed and TinyUF2 building on Apple Silicon? If so, what Python version did you need to use?
I cant get the requirements.txt file installed on Python 3.9.17 (lots of getenv errors from gdbgui install, and I'm not even able to run install.sh 😦
Actually, I cant even install the requirements on an Intel Mac with Python 3.11.4
I'm able to install and build from the 4.4 release branch, but not the 4.4-beta idf in the lib/esp-idf included with TinyUF2.
But when I build from 4.4 release, it builds ok, no errors, but I get a RED LED and no mass storage drive appears.
Happens with any of my board I build for 😦
Ok, I brute forced the lib/esp-idf install by deleting my ~/.espressif folder - but that's not really a solution as I've lost all of my other esp-idf version stuff now as the 4.4-beta version is not compatible for 4.4-release and onwards 😦
I'd be curious to heart from anyone else that has this all working nicely on a Mac? Thanks 🙂
Added support for Unexpected Maker NanoS3.
VID/PID is provided by Espressif
Sorry, forgot the PID link
https://github.com/espressif/usb-pids
Cheers :)
Weird... I flashed it a couple days ago and it worked (like, screen turned on + drive showed up), didnt load any .uf2 at it (didnt have any)
I have since flashed a QMK firmware (.bin) on the board and now i tried compiling it as .uf2 but the board does nothing when i flash tinyuf2 back at it 🤔
i guess i could have damaged something with wrong firmware while getting everything on ChibiOS correctly setup.... But, since it runs QMK fine, im guessing this is some kind of bug on the tinyuf2 code for the board, any ideas where/what to look at?
I know there hasn't been any movement out here for 2 years, but i recently bought this board and would like having uf2 on it.
Waiting for a STLink to get delive...
I am not entirely sure as well, PR is still marked as WIP and I kind of forgot about this. @bhav97 do you think this is ready for review and/or merging ?
@hathach , @elpekenin
Unfortunately the project I was preparing this for didn't work out and I completely forgot about this WIP-PR.
As for the implementation, all the board_* callouts are available. I believe we can start a review now.
In general I have 2 concerns for this PR
tinyuf2 was overwritten
Sure, but i mean it doesnt work after flashing the tinyuf2.bin back at it.
That's not good. Does the blue LED stay on? Does double tap bring up the display?
That's not good. Does the blue LED stay on? Does double tap bring up the display?
Can double check later but Led blinked on both events (plugging wire and pressing button), screen did nothing (not even backlight i think)
Went to the mk file to add -DRAMCODE and give that a try, didnt work either.
But thanks to that i realized there is -flto, disabled it and everything seems to be working as intended again, weird as heck.
Will now try and compile a .uf2 and report whether loading user's code works
There were several bits of code that needed to be revised so that the LCD display works on the adafruit-camera-esp32s3:
This is tested on PyCam Rev C board.
per ladyada, a future rev of the camera board will ensure the LCD backlight is on without talking to the I/O expander so we may be able to back that code out in the future.
No problem, we can revert it when the hw is out
@hathach I have rebased over the latest changes, cleaned up the code and history
@hathach I have rebased over the latest changes, cleaned up the code and history
superb thank you very much, I will review this as soon as I could. There is no problem with H7 having only this as board. We can refactor this later on when new board is added. Thank you very much for updating the PR.
Hi I'm trying to build the tinyuf2 boatloader for a new esp32s2 based board. Installed everything and first tried to compile one of the existing boards but I always ran into the following error. Directory specified in EXTRA_COMPONENT_DIRS doesn't exist: /Users/x/Documents/Github/tinyuf2/ports/espressif/bootloader_components it seems like the CMakeList.txt file was changed in the last 2 weeks: https://github.com/adafruit/tinyuf2/commit/c704e12e1ab70c5a746a4d7f7a397604e2c8a387
Did I missed something to install?
I'd suggest filing an issue. Thach is most active on github
Windows 11
TinyUF2 Bootloader 0.5.1-39-gaf609f0-dirty - st/cmsis_device_h7 (v1.10.0) st/stm32h7xx_hal_driver (v1.10.0) tinyusb (0.10.1-109-g9b3ec69b2)
Model: STM32 STM32FH750VBT6
Board-ID: STM32H750VB-MiniSTM-v1.1
Date: Jul 31 2023
Going insane trying to flash my board (beware this is code from an open PR)
Using 0x900_0000 as base address for my ld (as per )
However, i have tried several things with uf2conv.py with no...
For the firmware you're trying to program, can you share the .elf and .map file from the build. You can generate a map file by passing -Wl,-Map=${PROJECT_NAME}.map to gcc
The board_app_valid performs 2 checks,
Im no expert but this looks right to me: https://gist.github.com/elpekenin/5abb3a7926a316572ff75fcaedac6500
This should be the relevant code (mainly the ld + UF2 settings on post_rules) https://github.com/elpekenin/qmk_firmware/tree/19ed6908999f2ebbbb8e02039d886032d13465c4/keyboards/handwired/onekey/weact_stm32h750vbt6
SP (in DTCM) and Reset_Handler (in QSPI) look good. I can't think of a reason why board_app_valid would fail.
I can try and debug qmk on my hardware but make handwired/onekey:default DEFAULT_FOLDER=handwired/onekey/weact_stm32h750vbt6 fails with #error "invalid STM32_PLL2_DIVP_VALUE value specified". Can you help me build qmk and reproduce this issue?
I compile with qmk compile -c - kb handwired/onekey/weact... -km default
I just realized i was working with an earlier version of you code and checked current version out. Still the same :(
Thank you! I was able to get the h750-support branch compiling but I couldn't exactly replicate the issue
My observations,
I was able to reproduce the issue if I interrupted the flash erase,
Programming would complete normally in the next attempt but board_app_valid always fails because the QSPI read 0xFFF...
Will do, i can confirm i also saw a bunch of F from QSPI yesterday, as i just received the STLink, but had very little time for test. Will have some updates in like 10h from now. Thanks again for the help
all changes look great, this PR definitely needs lots of work. I actualy don't have the hardware to test with. Therefore I could only go through changes only and so far so good. There is only minor requests
Got it to boot (and early crash), thanks!!
Time to double check my pin configs on ChibiStudio, this should be fixed tu2-wise, thus closing the issue.
@bhav97 if you are busy, I could make the review changes myself so that we could finally merge this :)
@hathach I have made the requested changes but the underlying issue from #342 is still present. I'll open another PR when I figure it out.
Thank you :)
perfect, thank you very much for your work and patient. No worry about the other issue, this PR already done an amazing lots of works. We can always fix it later, and/or add support for on-flash, refactor etc...
all is good, do you want to merge this (and change later) or just wait until we got official name for the new board ?
Just realize experimental is actual the board name (was thinking it is some kind of testing prototype 😄)
yes, it is the name but also I made some mistakes so I won't have another
pull re quest later with fixes
😅
On Sat, Aug 26, 2023 at 6:45 AM Ha Thach @.***> wrote:
Just realize experimental is actual the board name (was thinking it is
some kind of testing prototype 😄)—
Reply to this email directly, view it on GitHub
https://github.com/adafruit/tinyuf2/pull/345#issuecomment-1694255207,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAJINUP...
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
New BPI-Leaf-S3 v1.1 version support double-clicking the reset button to enter the UF2 bootloader.
UF2_BOARD_ID in your board.h follow correct format from [uf2 specs](https:...look good, though the format of board-id is not correct.
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
Upcoming revision V2.1 of the LilyGO T-TWR board uses a little bit different NeoPixel power enable signal.
This PR makes the TinyUF2 bootloader to be compatible both with version 2.0 and version 2.1 of the product.
Why the arm board's workflow failed when there is no changed files that are arm related. I'm really confused right now.
Remove linkermap usage, since some pip package is missing which cause it failed to install
look good, thank you. CI failed due to unrelated issue of python package (fixed in another PR).
02d443a Add Waveshare ESP32 S3 Pico - tirtharajsinha
21202dd Adding esp32-s3-pico to github workflow - tirtharajsinha
e491820 Adding right pid to esp32-s3-pico - tirtharajsinha
dbd0d67 added esp32-s3-pico to workflow - tirtharajsinha
2cb6fdf Merge pull request #351 from tirtharajsinha/master - hathach
This issue will be on all MCUs where the flash did not start at address 0
It just calculates it totally wrong
The issue is in ghostfat.c on lines 486 and on
// CURRENT.UF2: generate data on-the-fly
uint32_t addr = BOARD_FLASH_APP_START + (fileRelativeSector * UF2_FIRMWARE_BYTES_PER_SECTOR);
if ( addr < _flash_size ) // TODO abstract this out
{
addr is always bigger than the size of a flash
Windows 10
When attempting to program on a ESP32 S3 Rev TFT using bootloader version 0.16.0, Arduino immediately errors with "A fatal error occurred: Could not open COM9, the port doesn't exist" even though the com port is listed in device manager in windows. Downgrading to 0.12.3 bootloader, power resetting, and programming again the device programs and does the normal hang after "Hard resting via RTS Pin" that requires the push of rest button but th...
ddf7ce6 fix bootloader build with idf 5.1, remove idf a... - hathach
b064ed5 add pre-commit hook, codespell dictionary, mino... - hathach
9b4daea sync bootloader with idf 5.1 - hathach
7b89de3 add tinyusb_src as a component, fix app compili... - hathach
15a89a1 update ci to build with 5.1.1 - hathach
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
cb07051 Revert changes to s3 devkit flash size - hathach
0eda9b6 Revert incorrecr change by codespell - hathach
6c7652e Revert incorrect change by codespell - hathach
ddf7ce6 fix bootloader build with idf 5.1, remove idf a... - hathach
b064ed5 add pre-commit hook, codespell dictionary, mino... - hathach
9b4daea sync bootloader with idf 5.1 - hathach
7b89de3 add tinyusb_src as a component, fix app compili... - hathach
15a89a1 update ci to build with 5.1.1 - hathach
Thank for reporting the issue, intially, I thought it is due to the new IDF v5.1 used by latest arduino-esp32. Howver, after migrating tinyuf2 from idf v4 to v5. The issue stil persist. I did a lot more tests and finally find the root cause. It is caused by the newly-introduced periman module. I have submitting PRs with detail explanation to arduino-esp32 core
The change is very simple, just change the return from false->true in a...
Hey there!
There doesn't seem to be an Adafruit Qualia build, the product item is 5800 (Adafruit Qualia ESP32-S3 for TTL RGB-666 Displays) https://www.adafruit.com/product/5800
One to add to the list I guess :)
Having just flashed the factory reset bin file then double reset into uf2 bootloader it's shown up as the adafruit tft experimenter when Windows installed the device.
I was originally trying to install circuitpython on the qualia with the web-installer method which failed looking for a tiny uf2 qualia release zip
da3eaf9 rename tft experimental to qualia s3, also upda... - hathach
f3f82f3 update ci as wel - hathach
our bad, tftexperimental is prototype name of the board, we forgot to change it to qualia. PR #359 will address this, we will also bump up release after merged as well. Thank you for your issue.
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
UF2_BOARD_ID in your board.h follow corre...@hathach sorry for the two changes after the PR. Checks seems to be fine now and hope its okay to add a personal favicon.
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
UF2_BOARD_ID in your board.h follow correct format from [uf2 specs](https://github.com/microsof...all is good, let me know if we can merge it now, or you want to make more update ?
simple rename to make it consistent with arduino-esp32 naming of partition csv
There are applications for ESP32-S3 that soon will no longer fit 2MB APP/OTA partition size.
This project is an example of the application: https://github.com/nakhonthai/ESP32APRS_T-TWR
I've created this new layout for 16MB flash chips to support development of such application(s) and use it together with the TinyUF2 bootloader.
IDF is updated to 5.1, there is also an partition csv with 16MB. Please try it out again to see if that works.
Looks great! I can see the full 32MB of flash using the tinyuf2-espressif_esp32s3_devkitc_1-0.18.1.zip artifact.
$ df -h
Filesystem Size Used Avail Use% Mounted on
...
/dev/sdb 32M 4.1M 28M 13% /media/rgrizzell/S3DKC1BOOT
For posterity, I'm including the output from the flash operation. I couldn't figure out if ESP-IDF is stil...
For posterity, I'm including the output from the flash operation. I couldn't figure out if ESP-IDF is still included in this repository, but I was able to setup v5.1 in a separate directory.
IDF is not included as submodule anymore, since we will now try to target release version. Previous specific commit is required since esp-idf is still under develop to add s2/s3 support.
Is your feature request related to a problem? Please describe.
I have been having a frustrating time trying to find support for the 'ESP32-S3 Cam' board (an example can be found here: https://www.aliexpress.us/item/3256805913061487.html)
Describe the solution you'd like
Ideally, a pre-built release.
Describe alternatives you've considered
Either a pre-built release for this board or clear instructions on how to build one that is appropriate for these boards would b...
For 3rd party boards, please ask their maker to make the port. PR is welcome
Aren't the ESP32(-S3) Cam boards reference designs from Espressif?
fixes the example in the usage section in the README.md for the expressif borads -
as at least i needed a static cast to esp_reset_reason_t to compile cleanly..
384bb58 refactor and fix cmake build for stm32f3 and imxrt - hathach
please change to C style cast, since static_cast is C++ only and application code may be pure C
08625fa add cmake auto fetch submodule when configuring - hathach
quick check, could we close this now ? @makermelissa @jerryneedell
should be fixed by #367, pleaes check it out
I'm pretty sure this isn't an issue anymore. We can always re-open if it is.
Thanks! For some reason, I never saw the earlier prompts to me. Sorry. I was not ignoring you!
No problem at all. I forgot about this as well :)
Sorry @hathach, I forgot about this MR. Thanks for closing it.
Seasons Greetings! :christmas_tree:
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
UF2_BOARD_ID in your board...By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
UF2_BOARD_ID in your board...MacOS
I don't have one - can't even build.
ESP-IDF was removed from lib/esp-idf, but build script is still looking for it and failing when it's not there.
error: pathspec '/Users/seon/tinyuf2/ports/../lib/esp-idf' did not match any file(s) known to git
Reference here I think.
https://github.com/adafruit/tinyuf2/blob/fd8b95078ff1249c863a56ec017766921d8ae087/ports/espressif/CMakeLists.txt#L19
Even if I create a symbolic ...
UF2_DETECTION_DELAY_MS can be set to zero when PIN_BUTTON_UF2 is not GPIO0 on ESP32. This causes the board to boot application firmware instantly if the PIN_BUTTON_UF2 is not pulled low by pressing the boot button. The problem is that the RGB LEDs still turn purple momentarily indicating that the bootloader is waiting for button press. This causes unwanted flash of the LEDs. In this PR code skips board_led_on() is only called if UF2_DETECTION_DELAY_MS>0 condition ...
Hey @hathach - Happy new year :)
Any idea what's going on here? I have new boards I want to create a PR for, but I want to test them first, and I am unable to build due to this issue.
Thanks
thank you, changes look good. I take the chance to also push some update to the code while testing it out as well.
e117f70 fix build issue due to version refering to dele... - hathach
fix #370 build issue due to version refering to deleted idf submodule
Thanks! I'll give it a whirl today :)
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
thank you @hathach, I think this is all set now, please let me know if I missed anything.
@jamesjnadeau In leu of making another PR I commented the fixes for the open changes
Windows 10
TinyUF2 Bootloader 0.18.1-55-geec497e-dirty - st/cmsis_device_f3 (v2.3.6) st/stm32f3xx_hal_driver (v1.5.6-9-g75cf4fc) tinyusb (0.15.0-566-gf1e006d09)
Model: ST STM32F303 Discovery
Board-ID: STM32F303-Discovery-MB1035D
Date: Jan 31 2024
Flash Size: 0x00040000 bytes
Flashing on both win10 and win11 can generate the error. In all testing, the flash is successful and the board will reboot into the user application while...
This pull request introduces a CodeQL workflow to enhance the security analysis of this repository.
CodeQL is a static analysis tool that helps identify and mitigate security vulnerabilities. It is primarily intra-function but does provide some support for inter-function analysis. By integrating CodeQL into a GitHub Actions workflow, it can proactively identify and address potential issues before they become security threats.
For more information on Code...
This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests wi...
thank you for your PR, please rebase (with master), and fix typo. Then I think it is good to merge
@hathach Thanks for the catch. Updated
cc4511d rename to partitions-4MB-app3M5.csv - hathach
Add partions 4mb with 3.5mb app partitionn
Coming back to this after 3 years: having a single UF2 to install would make loading up all the code on the MEMENTO board a lot easier.
i have an esp32 S3 board. I've been just compiling binaries from Arduino ide but flashing them one by one seems to be quite a lot of work (compared to uf2) so i was wondering can i use tinyuf2 to share my compiled binaries in uf2 format like the pico does?
Yup! the UF2 repo has a script that can covert from bin to uf2
thanks, ill try it
should i just need to convert the app bin?
right now im looking at uf2 enabled boards from adafruit, and they only produce app, partitions, and the bootloader
C:\Users\USER\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\4.5.1/esptool.exe" --chip esp32s3 --port "COM22" --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x0 "C:\Users\USER\AppData\Local\Temp\arduino\sketches\1843405EA0EFF98690B8D8A679B1D802/Blink.ino.bootloader.bin" 0x8000 "C:\Users\USER\AppData\Local\Temp\arduino\sketches\1843405EA0EFF98690B8D8A679B1D802/Blink.ino.partitions.bin" 0xe000 "C:\Users\USER\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.14/tools/partitions/boot_app0.bin" 0x10000 "C:\Users\USER\AppData\Local\Temp\arduino\sketches\1843405EA0EFF98690B8D8A679B1D802/Blink.ino.bin" 0x2d0000 "C:\Users\USER\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.14/variants/adafruit_qtpy_esp32s3_n4r2/tinyuf2.bin
this is the flashing command from the arduino ide for the qtpy
I bet you only need to include Blink.ino.bin
the rest should already be on the board
ah also the double reset doesnt work for some reason
im assuming i just press the boot0 2 times?
we'll see
it is double reset on boards that have an extra cap to support it. otherwise reset and then boot0 when led is purple
i dont have an adafruit board by the way, only the devkit m
ok ill investigate this more
make sure you give the converter the right magic number (can't remember what it is called)
there is a number used to say what platform a uf2 is for
and the file will be ignored if it doesn't match
Hi everyone
Support ESP32C6?
Thanks
ESP32-C6 does not have regular USB support, only a USB serial and JTAG. So it can't do MSC.
I'm trying to download the bootloader for lolin s3 mini from downloads it shows this link but it seems like the file doesn't exist anymore:
https://github.com/adafruit/tinyuf2/releases/download/0.18.1/tinyuf2-lolin_s3_mini-0.18.1.zip
Where can I find the correct bootloader?
It looks like there never was a Lolin S3 mini version of the bootloader created. There is a regular "Lolin S3" but not mini.
You can load the .bin: you don't have to use the UF2. The regular S3 version of the bootloader might work, but I haven't looked to see what the board differences are.
Well I erased the flash and uploaded combined.bin of regular lolin s3 and then did the reset but it doesn't show up as a new drive.
Oh okay. I used the online installer and selected "Upgrade CircuitPython 8.2.10 Bin Only". Now it works
HA!
found the solution
Espressif IDF Component Registry
all of the details for using the uf2 converter are in there
havent tried yet with arduino ide, but with esp-idf v5.2.1 it works great 🙂
@sinful patrol thank you for your help again
Are there any plans to publish a new TinyUF2 release on github in the near future? We integrated our board last year and also adopted CP but as there is no release with the board so far nice features such as installing through the CP website or downloading the UF2 Bootloader from here: https://circuitpython.org/board/sensebox_mcu_esp32s2/ is not working
looks at who releases tinyuf2 usually
I made 0.18.2
fantastic! Thank you!
np
Is your feature request related to a problem? Please describe.
Currently, there are no definitions for the T-Deck.
Describe the solution you'd like
I would like a definition for the lilygo t-deck
Describe alternatives you've considered
I use the yd-esp32s3 but it can get buggy and there are bad defs
Add support for Lolin S2-Mini board
PID was already allocated in Espressif USB-PIDS repository
0x8169 | LOLIN S3 Mini - UF2 Bootloader
MacOS
TinyUF2 Bootloader 0.18.2 - tinyusb (0.15.0-566-gf1e006d09)
Model: Espressif ESP32S3 DevKitC 1
Board-ID: ESP32S3-DevKitC-v1.0
Date: Mar 22 2024
Flash Size: 0x00200000 bytes
Running on ESP32-S3-DevKitC on OSX, device mounts.
% ls -al
total 8198
drwx------ 1 danielmcshan staff 2048 Dec 31 1969 .
drwxr-xr-x 8 root wheel 256 May 11 15:34 ..
-rwx------ 1 danielmcshan staff 4194304 Mar ...
Apparently it does work... Micropython is installed, it's just that Micropython doesn't support the mass storage?
I guess that's good... sorry to bother :)
MacOS
TinyUF2 Bootloader 0.18.2 - tinyusb (0.15.0-566-gf1e006d09)
Model: Espressif ESP32S3 DevKitC 1
Board-ID: ESP32S3-DevKitC-v1.0
Date: Mar 22 2024
Flash Size: 0x00200000 bytes
I see the board come up as a drive, and drop my .uf2, no errors in the console, but the binary never runs. Instead the bootloader always runs.
0;I (I2032a)p_atn_t:skt rtint dchedClUrnmCPU1
I (330) m...
If i dnd update-tinyuf2.uf2 it does work, and the mcu resets.
I wonder what could be wrong with my .uf2 file, any tips?
I solved it, I was just being dumb, sorry 🙈
@hathach Do you have any idea why this occurs? Is it due to windows ejecting the drive too early?
I saw a user on the WipperSnapper subforum report this as well - https://forums.adafruit.com/viewtopic.php?p=1016725#p1016725
c2c06c4 bump up ci checkout v4, remove setup python step - hathach
update tinyusb to get wch ch32 support
0831dca adding get_deps.py to replace mcu driver submod... - hathach
f4fc96c remove f3 submodules - hathach
336f3de remove f4 submodule - hathach
515523e remove submodule for h7, l4 - hathach
e168b07 remove nxp mcu-sdk as submodules - hathach
c28baa7 selftest has issue with upload v4 - hathach
fca1144 update readme, also update get-deps target for ... - hathach
Use python script tools/get_deps.py to remove submodule for mcu driver. Make it easier to work on specific ports
0e830dc ghostfat use working-directory instead of pushd... - hathach
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
This checklist items that are not applicable to your PR can be deleted.
Fixes.
The stamp is used for the cardputer. Testing on th...
dd642be change board_flash_write() to return bool inste... - hathach
bb2d563 rename DBL_TAP_REG to TINYUF2_DBL_TAP_REG - hathach
Initial support for ch32v20x
Linux
TinyUF2 Bootloader 0.18.2-53-gbb2d563-dirty -
Model: Adafruit Dummy
Board-ID: Dummy
Date: Jun 4 2024
Flash Size: 0x00010000 bytes
DFU flashing seems successful, but board_app_jump() not working yet. Probably missing some riscv specific step.
drop uf2, reset --> app is valid, board_app_jump() run but app not running as expected
No response
No response
ok thanks. it is a little unclear about flash memory. some folks say theres 224K on a variant
https://cpldcpu.com/2024/05/01/decapsulating-the-ch32v203-reveals-a-separate-flash-die/
Hey @lone hinge - I add board support for my new FeatherS3 Neo for tinyuf2, and I want to raise a PR, but I cant find where to add my board to the github build action - is tinyuf2 not using a build list anymore? Any idea?
Thach reworked the CI, if I remember right. It may just build all the boards in the boards directory now.
Oh, fantastic. I've really been absent from all of this for a while, so have no idea what's what! Thanks for the info 🙂
Added support for my new FeatherS3 Neo board.
PID/VID supplied by Espressif
oh, that is an interesting read, the official doc only mentnion max 64KB for v20x. I will give it a try to see if that is possible :)
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
UF2_BOARD_ID in your board.h follow correct format from [uf2 specs](https://github.com/microsoft/uf2#files-exposed-by-bootloa...hihi @ladyada @hathach - adding the Vindie S2
Linux
-none-
Cannot compile the board as in the tilte described
.../tinyuf2$ python3 tools/get_deps.py stm32f4
.../tinyuf2$ python3 tools/get_deps.py --board stm32f411ce_blackpill
.../tinyuf2/ports/stm32f4$ make BOARD=stm32f411ce_blackpill all
AS startup_stm32f411xe.o
CC ghostfat.o
CC images.o
CC main.o
.../tinyuf2/src/main.c:33:10: fatal error: tusb.h: No such file or directory
...
In the compile description there is simply a line missing.
git submodule update --init --recursive
Execute this command from the directory, where the repo has been cloned.
no, you need to run, it is mentioned in the readme
python tools/get_deps.py stm32f4
Hi Ha,
i did run the command
python tools/get_deps.py stm32f4
but it did not fetch the necessary repositories like tinyusb and uf2.
It was not clear enough, that I have to clone the repo with submodules, which I didn`t.
That is the point that lacks in the docu.
Greetings
Rulaman
18.07.2024 11:29:23 Ha Thach @.***>:
no, you need to run, it is mentioned in the readme
*python tools/get_deps.py stm32f4
*
—
Reply to this email directly, ...
ah you are right, let me update the doc
61b5d00 add git clone with submodule init - hathach
update doc add git clone with submodule init
It is hoped that the uf2 ota file can be AES256 encrypted and decrypted in BootLoader,
Could this intention be achieved?
By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes
UF2_BOARD_ID in your board.h follow correct format from uf2 specs*This che...
Board added: ESP32-S3-Touch-LCD-1.69 & ESP32-S3-LCD-1.69
Pending USB VID PR: espressif/usb-pids/pull/169
The USB VID PR got merged.
This PR is ready, however if there is a way to rotate the display, please let me know.
The display is working as intended, however I do not know how to define rotation.
I suspect it is done through the MADCTRL define. You'll want to look in the ST7789V datasheet for how to set that value. Want me to merge before you sort that out?
No, there isn't a reason to rush this.
I'll look into the defines. Thanks!
Alright, the display is now rotated properly. This is ready to go.
CircuitPython 9.1.1
we don't get to run the code
nothing
in this board page https://circuitpython.org/board/lolin_s3_mini/
the link for the tinyuf2 is this:
https://github.com/adafruit/tinyuf2/releases/download/0.18.2/tinyuf2-lolin_s3_mini-0.18.2.zip
the file does not exist and the web installer locks
No response
transferred issue to tinyuf2 repo. tinyuf2 needs a new release to make new boards available.
@hathach is it fine just to do a 0.18.3 release, or is there any reason to hold off on that? Is there anything to do manually. We can do it if you are busy.
When this is done, the release version needs to be bumped in https://github.com/adafruit/[circuitpython-org](https://github.com/adafruit/circuitpython-org)
it may just be that the file is link need to be renamed
https://github.com/adafruit/tinyuf2/releases/download/0.18.2/tinyuf2-lolin_s3-0.18.2.zip
BTW also this board has the same issue
https://circuitpython.org/board/lolin_s3_pro/
where the file link is not found
https://github.com/adafruit/tinyuf2/releases/download/0.18.2/tinyuf2-lolin_s3_pro-0.18.2.zip
going further with the reaserch I found that "Lolin S3" "lolin S3 Pro" and "Lolin S3 mini" may be 3 different designs and need different tinyuf2 after all. I have checked the PID VID and found that S3 pro and mini have the same id
@dhalbert just make an release for 0.19.0, but ci seems to have some issue. I will check and fix it asap.