Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error when creating uf2 file from OpenBK firmware #7

Open
MnM001 opened this issue Aug 2, 2023 · 14 comments
Open

Error when creating uf2 file from OpenBK firmware #7

MnM001 opened this issue Aug 2, 2023 · 14 comments

Comments

@MnM001
Copy link

MnM001 commented Aug 2, 2023

Hi,

I have a device that I will like to flash with OpenBK firmware.
On my Ubuntu I have downloaded ltchiptool and did:

python3 -m ltchiptool uf2 write -b cb2s -o openbkt.uf2 OpenBK7231N_1.17.205.rbl=device:download

and a few other variants of that command. I always get this error:

Error: Invalid value for '-b' / '--board': Board cb2s does not exist

I am not sure what I am doing wrong. Can you please help?

@kuba2k2
Copy link
Member

kuba2k2 commented Aug 2, 2023

You need to have LibreTiny installed for this so that it finds the board IDs. It usually comes with ltchiptool when you install from pip, but if you install from source instead you need LT as well.

@MnM001
Copy link
Author

MnM001 commented Aug 2, 2023

I am installing ltchiptool wiht pip:

sudo pip install ltchiptool

However I always get that error.

I have installed LibreTiny too and I think it works OK:

% sudo python3 -m esphome usage: __main__.py [-h] [-v] [-q] [-s key value] command ... __main__.py: error: the following arguments are required: command

and

 % sudo python3 -m esphome wizard yourdevice.yml
Hi there!
I'm the wizard of ESPHome :)
And I'm here to help you get started with ESPHome.
In 4 steps I'm going to guide you through creating a basic configuration file for your custom ESP8266/ESP32 firmware. Yay!



============= STEP 1 =============
    _____ ____  _____  ______
   / ____/ __ \|  __ \|  ____|
  | |   | |  | | |__) | |__
  | |   | |  | |  _  /|  __|
  | |___| |__| | | \ \| |____
   \_____\____/|_|  \_\______|

===================================
First up, please choose a name for your node.
It should be a unique name that can be used to identify the device later.
For example, I like calling the node in my living room livingroom.

But this is where all stops. Running the python3 -m ltchiptool command only gets me the same error (regardless whats after -b (including bk7231n or bk7231t):

Error: Invalid value for '-b' / '--board': Board cb2s does not exist

I don't know what I am doing wrong so your assistance is still required.

@kuba2k2
Copy link
Member

kuba2k2 commented Aug 2, 2023

Try ltchiptool -vv list boards and post the output.

@MnM001
Copy link
Author

MnM001 commented Aug 2, 2023

Here it is

`+------+------+-------------------+-------------+

| Name | Code | MCU / Flash / RAM | Family name |

+------+------+-------------------+-------------+

+------+------+-------------------+-------------+

(END)
`

@kuba2k2
Copy link
Member

kuba2k2 commented Aug 3, 2023

Well, you're installing ltchiptool as sudo but running it without sudo.

Uninstall all versions of ltchiptool (pip uninstall ltchiptool and sudo pip uninstall ltchiptool), then install it without sudo and run the boards command again.

It should look like this, if it finds the LibreTiny directory:

~  λ ltchiptool -vv list boards
D: Found PlatformIO Package (v1.2.0) - C:\Users\Kuba\.platformio\platforms\libretiny
D: Found Local data snapshot (v1.0.2) - D:\Dev\tuya\tool-ltchiptool\ltchiptool
+--------------------------------+----------------------------+-----------------------------+---------------+
| Name                           | Code                       |      MCU / Flash / RAM      |  Family name  |
+--------------------------------+----------------------------+-----------------------------+---------------+
| BW12                           | bw12                       | RTL8710BX / 2 MiB / 256 KiB |  realtek-ambz |
| BW15                           | bw15                       | RTL8720CF / 2 MiB / 256 KiB | realtek-ambz2 |
.....

@MnM001
Copy link
Author

MnM001 commented Aug 3, 2023

I don't believe it was that simple :)
Thank you for helping me with his - I now get a list of boards.

I will try and covert the firmware later. Will reply here with the result.

@MnM001
Copy link
Author

MnM001 commented Aug 3, 2023

This the command I used that worked for me (for the N version)

'/home/XXXX/.local/bin/ltchiptool' uf2 write -b generic-bk7231n-qfn32-tuya -o /tmp/OpenBK7231N_1.17.205.uf2 'OpenBK7231N_1.17.205.rbl=device:download'

@kuba2k2
Copy link
Member

kuba2k2 commented Aug 3, 2023

This is not correct. Flashing this will brick your device. You're trying to flash N firmware on a T device, that will not work. The bootloader doesn't check if this is valid if you create the UF2 file this way.

@MnM001
Copy link
Author

MnM001 commented Aug 3, 2023

Yes correct - I was meant to type N version. Corrected now.

@BenJamesAndo
Copy link

BenJamesAndo commented Aug 31, 2023

Is there any easy way to help ltchiptool know where the libretiny package is? I did however manage to get it to find it by extracting libretiny into the same folder as ltchiptool on my Windows PC and running python3.11 -m ltchiptool uf2 write -b generic-bk7231t-qfn32-tuya -o OpenBeken.uf2 "OpenBK7231T_1.17.230.rbl=device:download"

@kuba2k2
Copy link
Member

kuba2k2 commented Aug 31, 2023

ltchiptool will look:

  • in Platformio packages, if you install LT with Platformio
  • in ltchiptool itself, if you install it from pip (it has a copy of the data it needs)
  • in the current working directory, where you execute the command

@rmarquet
Copy link

I'm having the issue described above - I just installed ltchiptool with "pip install ltchiptool", and it installed it in my .local/ directory. When I run the "ltchiptool -vv list boards" command, I get:

+------+------+-------------------+-------------+
| Name | Code | MCU / Flash / RAM | Family name |
+------+------+-------------------+-------------+
+------+------+-------------------+-------------+

But then after I hit Q to exit less, I get this message (username redacted):
D: Found Local data snapshot (v1.3.0) - /home/<username>/.local/lib/python3.10/site-packages/ltchiptool

Which strongly implies that it found it. The board.py, enums.py, and family.py files are in the models/ directory under that path. Board.py, at least, has data in it; it doesn't appear to be corrupted.

I tried giving it a -L parameter but no path I try results in success, either. (For what it's worth, I also tried it with sudo after uninstalling the normal user copy, and it didn't work then, either. I removed that and went back to the user installed version, no improvement.)

Running kubuntu 22.04. Debian version is bookworm-sid. Thanks for any suggestions!

@MnM001
Copy link
Author

MnM001 commented Sep 27, 2023

For anyone who is stuck and needs the files another user posted in the OpenBeken forums a link to the UF2 files:

https://github.com/BenJamesAndo/OpenBeken_uf2_firmware/releases/tag/1.17.230

@rmarquet
Copy link

For anyone who is stuck and needs the files another user posted in the OpenBeken forums a link to the UF2 files:

https://github.com/BenJamesAndo/OpenBeken_uf2_firmware/releases/tag/1.17.230

Thanks. Turned out libretiny was better for my application after all!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants