Tutorial Mi Band 4 - How to modify Font file

MagicalUnicorn

Moderator
Staff member
Moderator
Developer
Joined
Jul 4, 2018
Messages
2,573
Likes
2,081
Points
248
#22
I can't understand can we add emojis
This thread explain how to modify the font file, no how to add emoticons ^^.

There is already a font file with lot of emoticons (included in .zip from this thread), so you can edit it if you want :).
 

NiTroGen

Active member
Joined
Jun 29, 2019
Messages
42
Likes
47
Points
28
#23
Can anyone recommend an easy tool for converting a truetype font to multiple 1-bit bmp files?

I saw the one previously posted by dnee (nice job, by the way), but you need to install apache/php server for using it!
 
Joined
Nov 1, 2019
Messages
2
Likes
1
Points
3
#29
I was dreaming with colored emojis, but it's 1bit bmp... damn it
I would like to work on this as well. I am new to hacking on the Mi Band but if anyone has idea for how to implement color emojis let me know and I can look into it. I imagine it would require changes to the FW code that renders the text so that it would point to a different set of image files for rendering emoji.

The screen is so nice, seems like a waste to not have colorful emoji!
 

Miss_Danielle

Active member
Joined
Jun 30, 2019
Messages
142
Likes
36
Points
33
#30
I would like to work on this as well. I am new to hacking on the Mi Band but if anyone has idea for how to implement color emojis let me know and I can look into it. I imagine it would require changes to the FW code that renders the text so that it would point to a different set of image files for rendering emoji.

The screen is so nice, seems like a waste to not have colorful emoji!
Easy one you can't.......
 

Miss_Danielle

Active member
Joined
Jun 30, 2019
Messages
142
Likes
36
Points
33
#32
Challenge accepted :D I wonder if anyone has thought about doing an open-source firmware replacement?

It seems like the development kits for the chip on the Mi Band are readily available. Maybe I’ll get started on something...
Good luck, you're going to need it...
 

AdrianoA3

New member
Joined
Oct 21, 2019
Messages
11
Likes
4
Points
3
#33
Challenge accepted :D I wonder if anyone has thought about doing an open-source firmware replacement?

It seems like the development kits for the chip on the Mi Band are readily available. Maybe I’ll get started on something...
Don't think it's possible dude since source code isn't open.
We can only decompile and recompile elements but can't change fw structure or commands.
It's sad.
 
Joined
Aug 20, 2019
Messages
10
Likes
6
Points
8
#35
Can this tool success to unpack font V2 ?

Because I got an error with

python\mb4.py unpack Mili_cinco.ft
Unpacking Mili_cinco.ft
byte04 chaohu=8_china chaohu=9_intl mib4=1 falcon=a :2
non-Latin: False
Latin: True
offset to fixed size fonts: 0x177338
num_characters: 27990
Traceback (most recent call last):
File ".\mb4.py", line 391, in <module>
unpackFont(sys.argv[2])
File ".\mb4.py", line 76, in unpackFont
int_bytes.append((char_bytes[b*3+0]<<16) + (char_bytes[b*3+1]<<8) + char_bytes[b*3+2])
IndexError: index out of range
 

MagicalUnicorn

Moderator
Staff member
Moderator
Developer
Joined
Jul 4, 2018
Messages
2,573
Likes
2,081
Points
248
#36
Can this tool success to unpack font V2 ?

Because I got an error with

python\mb4.py unpack Mili_cinco.ft
Unpacking Mili_cinco.ft
byte04 chaohu=8_china chaohu=9_intl mib4=1 falcon=a :2
non-Latin: False
Latin: True
offset to fixed size fonts: 0x177338
num_characters: 27990
Traceback (most recent call last):
File ".\mb4.py", line 391, in <module>
unpackFont(sys.argv[2])
File ".\mb4.py", line 76, in unpackFont
int_bytes.append((char_bytes[b*3+0]<<16) + (char_bytes[b*3+1]<<8) + char_bytes[b*3+2])
IndexError: index out of range
Isn't possible unpack Font v2 :/.

For more information : Post #20.
 
Joined
Sep 6, 2019
Messages
46
Likes
22
Points
8
#37
Can this tool success to unpack font V2 ?

Because I got an error with
To unpack V2 font, you can use my script... if you also need to pack the font back, then I can prepare it.

mi4font2.py

The main difference between font V1 and V2 is that the "bigger" font (24x18) is fixed-width. The second part of the font file (16x20) is the same as V1.

Anyway the character resolution is effectivelly even smaller... 18x18 and 10x20




After unpacknig there will be 2 folders: bmp (24x18) and latin (16x20).
 

Attachments

Joined
Aug 20, 2019
Messages
10
Likes
6
Points
8
#38
To unpack V2 font, you can use my script... if you also need to pack the font back, then I can prepare it.

mi4font2.py

The main difference between font V1 and V2 is that the "bigger" font (24x18) is fixed-width. The second part of the font file (16x20) is the same as V1.

Anyway the character resolution is effectivelly even smaller... 18x18 and 10x20

View attachment 8058 View attachment 8059
View attachment 8061 View attachment 8062

After unpacknig there will be 2 folders: bmp (24x18) and latin (16x20).
I will try to pack and unpack for it, Thanks for your work.
 
Top