Page 3 of 3

Create Bip S watchface or convert from Bip

Posted: 05 Jun 2020, 11:17
by Upo
Few informations for converting Bip watchfaces to Bip S
Infos and Bip S tool taken from here:

Code: Select all

4pda.ru/forum/index.php?showtopic=988136
Bip S Tools Alpha 230420 mirrored to my yadisk:

Code: Select all

yadi.sk/d/I1tDQ3PbDIupWA
Converting from Bip or creating new is nearly the same. No Bip S watchface editor as I know, but Bip editor exists. So create it as a new Bip watchface and "convert" it.
Editor here: https://amazfitwatchfaces.com/editor/wa ... ditor/?bip

Always compress/decompress Bip watchfaces with original Bip Tool and Bip S watchfaces with Bip S tool.
Bip S tool does not handle Bip watchfaces, throws error or produce erratic json data.
So for convert, unpack bip watchface with Bip tool, edit json, add preview, and finally pack with Bip S tool.

Bip S watchfaces are not fully decrypted yet, there are many unknown options that we don't know. Eg. there is shortcut support in factory watchfaces and editable watchfaces, but it is unknown how to make them in a new watchface.
Currently known things are nearly the same as original Bip, just some syntax differences, and there is a preview option for background section that will show up in Settings - Watch face menu.
This is a preview of the watchface. I use the static PNG that watchface tool creates, but have to resize to 110x110 pixel to fit to the menu frame.
For the convert, the simplest thing is to put this picture to the last index, so no need to rearrange existing picture numbers. Eg. if last picture is 0074.png then it will be 0075.png and change in json is the following:

Old (Bip) json:

Code: Select all

"Background": {
    "Image": {
      "X": 0,
      "Y": 0,
      "ImageIndex": 0
    }
},
New (Bip S) json:

Code: Select all

"Background": {
    "Image": {
      "X": 0,
      "Y": 0,
      "ImageIndex": 0
    },
    "Preview": {
      "X": 0,
      "Y": 0,
      "ImageIndex": 75
    }
},
wfmenu.jpg
wfmenu.jpg (22.1 KiB) Viewed 50620 times
Above picture shows Preview in watch menu. It has to be 110x110 resolution to fit to the frame in settings menu. Usually I use Bip unpack tool's static preview png and resize it to 110x110 because Bip S unpack tool is early alpha, and does not put pulse and steps numbers to preview pictures png & gif (but will show on real watchface).

Next we have to adjust syntax for Battery, Steps, Pulse, Calories numerical values (no need for images). We have to insert a number section after text section.
Example of battery:

Old:

Code: Select all

"Battery": {
    "Text": {
      "TopLeftX": 96,
      "TopLeftY": 6,
      "BottomRightX": 121,
      "BottomRightY": 19,
      "Alignment": "TopRight",
      "Spacing": 1,
      "ImageIndex": 21,
      "ImagesCount": 10
    }
},
New:

Code: Select all

"Battery": {
    "Text": {
	"Number": {
           "TopLeftX": 96,
           "TopLeftY": 6,
           "BottomRightX": 121,
           "BottomRightY": 19,
           "Alignment": "TopRight",
           "Spacing": 1,
           "ImageIndex": 21,
           "ImagesCount": 10
	}
    }
},
Activity:

Old:

Code: Select all

"Activity": {
   "Steps": {
      "TopLeftX": 28,
      "TopLeftY": 114,
      "BottomRightX": 94,
      "BottomRightY": 132,
      "Alignment": "TopRight",
      "Spacing": 3,
      "ImageIndex": 11,
      "ImagesCount": 10
   },
   "Calories": {
      "TopLeftX": 28,
      "TopLeftY": 157,
      "BottomRightX": 62,
      "BottomRightY": 170,
      "Alignment": "TopRight",
      "Spacing": 1,
      "ImageIndex": 21,
      "ImagesCount": 10
   },
   "Pulse": {
      "TopLeftX": 134,
      "TopLeftY": 113,
      "BottomRightX": 168,
      "BottomRightY": 131,
      "Alignment": "TopCenter",
      "Spacing": 1,
      "ImageIndex": 11,
      "ImagesCount": 10
   },
   "Distance": {
      "Number": {
        "TopLeftX": 27,
        "TopLeftY": 138,
        "BottomRightX": 94,
        "BottomRightY": 151,
        "Alignment": "TopLeft",
        "Spacing": 2,
        "ImageIndex": 22,
        "ImagesCount": 10
      },
      "SuffixImageIndex": 32,
      "DecimalPointImageIndex": 33
   }
}
New:

Code: Select all

"Activity": {
    "Steps": {
       "Number": {
          "TopLeftX": 28,
          "TopLeftY": 114,
          "BottomRightX": 94,
          "BottomRightY": 132,
          "Alignment": "TopRight",
          "Spacing": 3,
          "ImageIndex": 11,
          "ImagesCount": 10
       }
    },
    "Calories": {
       "Number": {
          "TopLeftX": 28,
          "TopLeftY": 157,
          "BottomRightX": 62,
          "BottomRightY": 170,
          "Alignment": "TopRight",
          "Spacing": 1,
          "ImageIndex": 21,
          "ImagesCount": 10
       }
    },
    "Pulse": {
       "Number": {
          "TopLeftX": 134,
          "TopLeftY": 113,
          "BottomRightX": 168,
          "BottomRightY": 131,
          "Alignment": "TopCenter",
          "Spacing": 1,
          "ImageIndex": 11,
          "ImagesCount": 10
	}
    },
    "Distance": {
       "Number": {
            "TopLeftX": 27,
            "TopLeftY": 138,
            "BottomRightX": 94,
            "BottomRightY": 151,
            "Alignment": "TopLeft",
            "Spacing": 2,
            "ImageIndex": 22,
            "ImagesCount": 10
        },
        "SuffixImageIndex": 32,
        "DecimalPointImageIndex": 33
    }
}
Distance is the same, there is a "Number" section on original Bip so no need to alter it.

I hope this will be a good starting point to make/edit.
Thanks to the russian guys at 4pda and lmaxwell @ 4pda for Bip S tool.

If you have further infos about Bip S watchfaces, feel free to add to this topic.

Re: Create Bip S watchface or convert from Bip

Posted: 25 Nov 2023, 14:05
by green_nerd
There is a new version: https://github.com/Tnxec2/py_amazfit_tools/tree/BipS or https://github.com/ghtalpo/py_amazfit_tools/tree/master

There is also a new online editor: https://tnxec2.github.io/amazfit-bips-watchface-react/

LinearScale is replaced by Gauge. For Windows users you can drag all files to progress to: Outout/main.exe

There are some different in the attributes. I used the new editor to find the changes for the JSON.

There is also a typo in the code, causing a bug with older JSON's. I made report for this: https://github.com/Tnxec2/py_amazfit_tools/issues/37 . Youl should change "AppendDegreesForBoth" to "AppendDegresForBoth"