• Administrator
  •  
    Support Ukraine
    If you experience any problems with the forum (it is not visible, there is no way to post messages, or some functionality does not work), please let us know. If you have problems with registration or you did not receive confirmation letter, let us know and we will activate your account manually.
    If you get an "The submitted form was invalid. Try submitting again" error, delete cookies, then try again.
     

MiBandWFTool

This forum is designed to discuss and develop tools creating watch faces.

Moderators: asoo, lvpokka, Internal error, Watchmens

Forum rules
All communication in this branch should only be in English.
To discuss tools that are not in this section, use the “Watchfaces tools (discussion)” forum.
Post Reply
lvpokka
Posts: 178
Joined: 07 Jul 2019, 20:22
Location: L1
Has thanked: 19 times
Been thanked: 152 times
Contact:

MiBandWFTool

Post by lvpokka »

Author
lvpokka

Tool Description
1. The tool is based on a modified version of AmazfitBipTools, thanks to the original open source .
2. The tool supports unpacking, packing of the official watch face bin file.
3. Mi band 4 supports 16,581,375 colors.
4. Mi band 5 supports 15,499,008 colors.

How to
1. Unzip MiBandWFTool_X.X.zip.
2. Download .bin file from catalog or get standard watchface file.
3. Drag the .bin file to WatchFace.exe (in step 1. , get the decompressed file)
(if there is only one log file, the decompression failed).

4. There are two ways to modify the dial.
  • is to modify the corresponding image file and replace it with what we want.
  • is to modify the corresponding json file and modify the position of the image.
5. After all the modifications are completed, drag the modified json into WatchFace.exe in step 1 to get the corresponding bin file
(the file name depends on the name of the bin. If the .bin file is not generated, the package is wrong)

6. Copy the newly generated bin file to the corresponding directory of the mobile phone, and the synchronization will be completed. (This step is not very clear, you can refer to the original tutorial) above, you're done!
History log
What's new
  • added animation support
  • fixed pulse and weather
  • removed color restrictions for images
  • analog clock support
ver1.2
- Added compatibility for Pulse progress bar

ver1.3
- added full support for transparent images
- drawing 20 frames for preview GIF

ver1.3.2
- bug fixes
- added 2 versions, both with transparency but Palette version uses less memory if images are simple.

ver1.3.3
- Added circular/linear step progress on preview

Stable v1.3.6
- locked transparency for palette mode, support only (0 and 255) values
- palette mode fix

Stable v1.3.7
v1.3.7 (cosmetic changes, you can use 1.3.6 if everything suits)
- Fixed GIF preview (Pulse rendering, Step segments, Kilometer drawing, Calories)
- Added the ability to choose which Set of images to use for WeekDays. (Config file WatchFace.exe.config)
- STRONGLY fixed json examples in README.
(to avoid problems, pack 1.3.6 and unpack 1.3.7 for a smooth transition)

Stable v1.3.8
- Removed image order dependency for json (sorting images no longer required)
- Fixed display bugs
Important: the order of the images should be from 0000 to XXXX without gaps.

v1.3.9
- Removed dependence on images order 0000->XXXX
- Calories rendering fixed
- Added ability to change Preview Speed (available from 50ms - 1000ms)
- TimeElement DrawingOrder hardcoded to 1234 (not used by MiBand4)

v1.4.1
- Other bugfixes
- New WF support
- Added new elements (time delimiter / step icon / linear progress )

v2.1.4
- Added support Mi Band 5 wfaces
- Pandafix (new unknown element)
- BugFixes

v2.1.5
- Preview bugfixes
- [WFPreview] Added Copy/Paste/Save ability
- [WFPreview] Added ability to replace watchface header
Mi Band 4 WF Tool
v1.4.2
- Added miles image support
NOTE:
- if your using image for MilesSuffixImageIndex, then KmSuffixImageIndex is required! you can use the same image for it

Mi Band 5 WF Tool
v2.1.6
- Preview bugfixes
- Watchfaces generating with random header identifier
- Fixed problem with Windows scaling, DPI is tied to 96
- [WFPreview] Removed ability to clone watchface header

Mi Band 6 WF Tool
v4.1.0
- Added Lunar calendar
- Bug fixes
- New preview generator, should be pixel perfect (big thx to Johnson070)

MiBandWFTool_4.1.0.zip

MiBandWFTool_2.1.6.zip [alt url] [alt url 2]

MiBandWFTool_1.4.2.zip [alt url] [alt url 2]
Last edited by lvpokka on 02 Aug 2020, 19:41, edited 24 times in total.
thankkien

Post by thankkien »

Hello GIK-Team, thank you for continuing this project. Yesterday after receiving news that bandbbs did not pursue it, I was very sad. Fortunately, they have publicized it and you are continuing this work.

But maybe this version has a more serious error. The image quality after packaging is too bad, the preview still has many errors. Even if I install it into miband, some components are gone.

Anyway, thank you, wish you have better products for the community
Max88
WF maker
Posts: 21
Joined: 30 May 2019, 17:54
Location: Italia
Has thanked: 13 times
Contact:

Post by Max88 »

weather doesn't show on band. my bin gets compiled without errors, but on band 4 i don't see info about weather.
just the icon with "?"
lvpokka
Posts: 178
Joined: 07 Jul 2019, 20:22
Location: L1
Has thanked: 19 times
Been thanked: 152 times
Contact:

Post by lvpokka »

Max88 wrote: 08 Jul 2019, 15:32
weather doesn't show on band. my bin gets compiled without errors, but on band 4 i don't see info about weather.
just the icon with "?"
Could you please provide your bin file?
Max88
WF maker
Posts: 21
Joined: 30 May 2019, 17:54
Location: Italia
Has thanked: 13 times
Contact:

Post by Max88 »

lvpokka wrote: 08 Jul 2019, 16:41
Max88 wrote: 08 Jul 2019, 15:32
weather doesn't show on band. my bin gets compiled without errors, but on band 4 i don't see info about weather.
just the icon with "?"
Could you please provide your bin file?
here it is

it could be my mistake obviously. at least that's what i hope so it could be fixed XD
thankkien

Post by thankkien »

I think in the next version(1.3), it should be re-added transparency effect. That makes image quality smoother. And there seems to be a lot of errors for the self-made watch face (no wallpaper, battery icon at no time, am / pm has disappeared)
lvpokka
Posts: 178
Joined: 07 Jul 2019, 20:22
Location: L1
Has thanked: 19 times
Been thanked: 152 times
Contact:

Post by lvpokka »

* I assume transparent effect is not possible, if you look closer on stock firmware to make smooth image they using part of background image to make "transparency" effect

* Self made - Did you extract some other watch face and use it as template? Did you resize images or just changed colors? Did you add ownwrited json items?
p.s. There is problem with BottomRight* item, if you are changing image size
thankkien

Post by thankkien »

lvpokka wrote: 09 Jul 2019, 13:32
* I assume transparent effect is not possible, if you look closer on stock firmware to make smooth image they using part of background image to make "transparency" effect

* Self made - Did you extract some other watch face and use it as template? Did you resize images or just changed colors? Did you add ownwrited json items?
p.s. There is problem with BottomRight* item, if you are changing image size
I'm not sure you developed it from any version of amazfitbiptool. But I used to use bandbbs's mod that @osmat posted on the forum. And the transparent effect can absolutely exist.

I created a completely new watch face. I have referenced some code in .json files. And as I said, It perfectly valid in the version of bandbbs.
User avatar
lukbe
WF maker
Posts: 18
Joined: 02 Jun 2018, 08:09
Location: Czech
Has thanked: 1 time
Been thanked: 8 times
Contact:

Post by lukbe »

Hello,
i tested this version (MiBandWFTool_1.2.zip) on my WF and it does not work.

After loading in to mi band is on the screen only graphic information about steps and nothin more.

It is this bin file: 00_v2_czech_09072019_nok-3080-38f2abd88c-3080-3ff76a872a.bin
here: https://amazfitwatchfaces.com/mi-band-4/view/83

here is really any prblem with transparency, because with AmazfitBipTools_Mi4_1.0.3 my WF wotk fine!
lvpokka
Posts: 178
Joined: 07 Jul 2019, 20:22
Location: L1
Has thanked: 19 times
Been thanked: 152 times
Contact:

Post by lvpokka »

UPDATE*

v1.3.3
https://yadi.sk/d/To9OZUcxNp_qGg

- bug fixes
- added 2 versions, both with transparency but Palette version uses less memory if images are simple.

P.S.(if v1.3.* is unpacking images with black background, it's mean that previously transparency was cutoff, please use new images or from previous build to fix watchface files)
Last edited by lvpokka on 10 Jul 2019, 17:29, edited 5 times in total.
gavan82

Post by gavan82 »

hi there,
can anyone please tell precisely, what I need to carefully do to edit the 0000.png
does it need to have same color palette or else?
mutlab
WF maker
Posts: 3
Joined: 09 Jul 2019, 13:26
Contact:

Post by mutlab »

Ciao,
I used the version 1.3.2 : the package is compiled with my .json but while the .gif show what I (think) is right, the .bin on the Mi Band 4 is wrong!

If you want to debug:
*ThisSite*/mi-band-4/view/770

v1.2

I used the RAW compiler.
Thanks in advance

L
User avatar
lukbe
WF maker
Posts: 18
Joined: 02 Jun 2018, 08:09
Location: Czech
Has thanked: 1 time
Been thanked: 8 times
Contact:

Post by lukbe »

I used version of this tool 1.3.2 and here is problem with part of json named like: Status. Please can you share example of this part. Thank you

As you can see bellow, here is few commands named unknown. This is unpacked json from original WF.

Code: Select all

  "Status": {
    "DoNotDisturb": {
      "Coordinates": {
        "X": 6,
        "Y": 10,
        "Unknown3": 17,
        "Unknown4": 2,
        "Unknown5": 1
      },
      "ImageIndexOn": 43
    },
    "Lock": {
      "Coordinates": {
        "X": 23,
        "Y": 10,
        "Unknown3": 17,
        "Unknown4": 2,
        "Unknown5": 1
      },
      "ImageIndexOn": 44
    },
    "Bluetooth": {
      "Coordinates": {
        "X": 40,
        "Y": 10,
        "Unknown3": 12,
        "Unknown4": 2,
        "Unknown5": 1
      },
      "ImageIndexOff": 42
    },
    "Battery": {
      "Unknown1": 0,
      "Icon": {
        "X": 93,
        "Y": 10,
        "ImageIndex": 45,
        "ImagesCount": 9
      }
    }
  }
}
lvpokka
Posts: 178
Joined: 07 Jul 2019, 20:22
Location: L1
Has thanked: 19 times
Been thanked: 152 times
Contact:

Post by lvpokka »

Please check fixed one https://yadi.sk/d/To9OZUcxNp_qGg v1.3.3

Updated*
Added circular/linear step progress on preview
Last edited by lvpokka on 10 Jul 2019, 19:56, edited 2 times in total.
User avatar
lukbe
WF maker
Posts: 18
Joined: 02 Jun 2018, 08:09
Location: Czech
Has thanked: 1 time
Been thanked: 8 times
Contact:

Post by lukbe »

Perfect, now it is ok...
Do you have idea why weather does not work ? Is it problem with FW?
lvpokka
Posts: 178
Joined: 07 Jul 2019, 20:22
Location: L1
Has thanked: 19 times
Been thanked: 152 times
Contact:

Post by lvpokka »

Not exposed still, looks like its part of "fantastic" upgrade with new watchfaces :D
gavan82

Post by gavan82 »

what is the difference pallete image mode and raw image mode?
lvpokka
Posts: 178
Joined: 07 Jul 2019, 20:22
Location: L1
Has thanked: 19 times
Been thanked: 152 times
Contact:

Post by lvpokka »

Palette mode store only unique pixels for image (like zip file) but if hq image is used then it's more efficient to use raw mode, it will store image pixel by pixel)
Therefore if image is simple and use 5-20 unique pixels, it's good to use palette mode.
Solution: Just check .bin size and use smaller one.
mutlab
WF maker
Posts: 3
Joined: 09 Jul 2019, 13:26
Contact:

Post by mutlab »

Ciao
with V1.3.3 the code

Code: Select all

  "Date": {
    "MonthAndDay": {
      "OneLine": {
        "Number": {
          "TopLeftX": 5,
          "TopLeftY": 119,
          "BottomRightX": 70,
          "BottomRightY": 132,
          "Alignment": "TopLeft",
          "Spacing": 1,
          "ImageIndex": 21,
          "ImagesCount": 10
        },
        "DelimiterImageIndex": 31
      },
      "TwoDigitsMonth": true,
      "TwoDigitsDay": true
    },
    "WeekDay": {
      "X": 85,
      "Y": 123,
      "ImageIndex": 32,
      "ImagesCount": 7
    }
  },
  "StepsProgress": {
    "Linear": {
is compiled, while

Code: Select all

  "Date": {
    "MonthAndDay": {
      "Separate": {
        "Month": {
          "TopLeftX": 45,
          "TopLeftY": 119,
          "BottomRightX": 70,
          "BottomRightY": 132,
          "Alignment": "TopLeft",
          "Spacing": 0,
          "ImageIndex": 21,
          "ImagesCount": 10
        },
        "Day": {
          "TopLeftX": 5,
          "TopLeftY": 119,
          "BottomRightX": 30,
          "BottomRightY": 132,
          "Alignment": "TopLeft",
          "Spacing": 0,
          "ImageIndex": 21,
          "ImagesCount": 10
        }
      },
      "TwoDigitsMonth": true,
      "TwoDigitsDay": true
   },
  "StepsProgress": {
    "Linear": {
return the following error:
Newtonsoft.Json.JsonSerializationException: Could not find member 'StepsProgress' on object of type 'Date'. Path 'Date.StepsProgress', line 108, position 17.
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
at WatchFace.Program.ReadWatchFaceConfig(String jsonFileName)
But the member StepsProgress is defined!
user_test

Post by user_test »

lvpokka wrote: 10 Jul 2019, 19:55
Palette mode store only unique pixels for image (like zip file) but if hq image is used then it's more efficient to use raw mode, it will store image pixel by pixel)
Therefore if image is simple and use 5-20 unique pixels, it's good to use palette mode.
Solution: Just check .bin size and use smaller one.
I am having a problem with the Palette Version which is the one which I need to make a WF with animation because of the size.
The bin is well compiled, and the gif animation appears to be ok, but when I install it into the Mi Band, the screen is all black and can not see anything expect one number of the battery.

Could you please tell me if I am doing something wrong or if there is a bug which will be fixed in your next version?

Really appreciate your work, thank you so much!
Attachments
Pokeball_packed.zip
(307.93 KiB) Downloaded 893 times
mutlab
WF maker
Posts: 3
Joined: 09 Jul 2019, 13:26
Contact:

Post by mutlab »

mutlab wrote: 11 Jul 2019, 08:24
Ciao
with V1.3.3 the code

Code: Select all

  "Date": {
    "MonthAndDay": {
      "OneLine": {
        "Number": {
          "TopLeftX": 5,
          "TopLeftY": 119,
          "BottomRightX": 70,
          "BottomRightY": 132,
          "Alignment": "TopLeft",
          "Spacing": 1,
          "ImageIndex": 21,
          "ImagesCount": 10
        },
        "DelimiterImageIndex": 31
      },
      "TwoDigitsMonth": true,
      "TwoDigitsDay": true
    },
    "WeekDay": {
      "X": 85,
      "Y": 123,
      "ImageIndex": 32,
      "ImagesCount": 7
    }
  },
  "StepsProgress": {
    "Linear": {
is compiled, while

[...]

But the member StepsProgress is defined!
sorry..It was myfault. forget about it
thankkien

Post by thankkien »

* Does anyone know how to add calories?
It is not supported yet?

** My proposal for the new version
/ Why don't we allow it to be named freely. I think adding new languages ​​to the watch face will be simpler.

/ Now if I remove the day of the week in Chinese, it will fail. I have to add 14 image files for Chinese weekdays and 2 image files for morning and afternoon. Memory waste is too great
lvpokka
Posts: 178
Joined: 07 Jul 2019, 20:22
Location: L1
Has thanked: 19 times
Been thanked: 152 times
Contact:

Post by lvpokka »

user_test wrote: 11 Jul 2019, 08:30
I am having a problem with the Palette Version which is the one which I need to make a WF with animation because of the size.
The bin is well compiled, and the gif animation appears to be ok, but when I install it into the Mi Band, the screen is all black and can not see anything expect one number of the battery.

Could you please tell me if I am doing something wrong or if there is a bug which will be fixed in your next version?

Really appreciate your work, thank you so much!
Images are ok, you have problems with json
"TopLeftX": 30,
"TopLeftY": 213,
"BottomRightX": 76,
"BottomRightY": 158,
please check TopLeft BottomRight?
Last edited by lvpokka on 11 Jul 2019, 11:35, edited 3 times in total.
lvpokka
Posts: 178
Joined: 07 Jul 2019, 20:22
Location: L1
Has thanked: 19 times
Been thanked: 152 times
Contact:

Post by lvpokka »

thankkien wrote: 11 Jul 2019, 10:38
* Does anyone know how to add calories?
It is not supported yet?

** My proposal for the new version
/ Why don't we allow it to be named freely. I think adding new languages ​​to the watch face will be simpler.

/ Now if I remove the day of the week in Chinese, it will fail. I have to add 14 image files for Chinese weekdays and 2 image files for morning and afternoon. Memory waste is too great
-named freely, there is just 1,2,3,4,5.. text is just for linking with data and sequence ) btw English is universal language

WeekDay
DayAmPm
Battery>Icon
Is required, but you can use ultra small memory)) please x=0 y=0 and make image of 1 black pixel!
btw. you can use only 7 images for WeekDay or 14 or 21 but remember all files should go from 0000 -> X without missing if you remove image you should rename all images after
user_test

Post by user_test »

lvpokka wrote: 11 Jul 2019, 11:26
user_test wrote: 11 Jul 2019, 08:30
I am having a problem with the Palette Version which is the one which I need to make a WF with animation because of the size.
The bin is well compiled, and the gif animation appears to be ok, but when I install it into the Mi Band, the screen is all black and can not see anything expect one number of the battery.

Could you please tell me if I am doing something wrong or if there is a bug which will be fixed in your next version?

Really appreciate your work, thank you so much!
Images are ok, you have problems with json
"TopLeftX": 30,
"TopLeftY": 213,
"BottomRightX": 76,
"BottomRightY": 158,
please check TopLeft BottomRight?
Sorry buy I can't understand you. So the problem in my json is that some BottomRightX and BottomRightY are not correct, and for that reason the Watchface is not showing the elements right?

It means that if I adjust the BottomRights positions to match exactly the size of elements, all the elements will be shown?

Thank you in advice.
Post Reply

Return to “Watchfaces tools”

Who is online

Users browsing this forum: No registered users and 1 guest