Fix typo, mistake and add more info.

This commit is contained in:
Godzil 2022-11-17 12:38:00 +00:00
parent c91336c6fe
commit f2fe97098e
2 changed files with 61 additions and 14 deletions

35
PIXB.md
View File

@ -7,11 +7,9 @@ PIXB File format
struct PIXBFile: struct PIXBFile:
struct Header: struct Header:
char[4] = "PIXB" char[4] = "PIXB"
uint16_t unknown uint16_t: unknown
uint32_t Version (?) uint16_t: Canvas size
uint16_t Canvas size char[24]: unknown
uint32_t unknoxn
char[16]: unknown
char[928]: data char[928]: data
``` ```
@ -35,9 +33,35 @@ Canvas size can take only 3 values:
- 1: 24x24 canvas - 1: 24x24 canvas
- 2: 32x32 canvas - 2: 32x32 canvas
The unknown part do store information, but it is unknown as the main application hasn't been reversed yet.
The iOS/Android app does not seems to use any of it, not the official windows conversion app.
## Example unpacking code
```python3
import struct
[...]
def unpack7to8(data):
ret = []
val = struct.unpack("<Q", data + b"\0")[0]
for i in range(8):
ret.append(val & 0x7F)
val = val >> 7
return ret
```
This function take a binary string and return an array with pixel value in order left to right.
You can find in [pixb2img.py](sample_tools/pixb2img.py) a fully functional example application reading a PIXB file and converting it into an
image format of your choice.
## Color palette ## Color palette
The palette here is described in hexadecimal as in `0xRRGGBB`.
Depending on the tool you are using you make need to swap the red and blue components.
``` ```
0xFFFFFF, 0xE9BFA8, 0xECC7AC, 0xEFCFB0, 0xF4DDB7, 0xF7E4BB, 0xF7E4BB, 0xFAEBBE, 0xFDF2C1, 0xFFF9C4, 0xFFFFFF, 0xE9BFA8, 0xECC7AC, 0xEFCFB0, 0xF4DDB7, 0xF7E4BB, 0xF7E4BB, 0xFAEBBE, 0xFDF2C1, 0xFFF9C4,
0xF2F2C3, 0xE3EBC5, 0xD4E3C0, 0xC5DBBE, 0xC5DDCC, 0xC4DEDA, 0xC4E0E8, 0xC4E1F5, 0xC8D9EE, 0xCBD0E6, 0xF2F2C3, 0xE3EBC5, 0xD4E3C0, 0xC5DBBE, 0xC5DDCC, 0xC4DEDA, 0xC4E0E8, 0xC4E1F5, 0xC8D9EE, 0xCBD0E6,
@ -50,4 +74,3 @@ Canvas size can take only 3 values:
0x825B1A, 0x8F701A, 0x9E8519, 0xAD9B16, 0xBAAC12, 0x98981F, 0x6F8127, 0x456C2B, 0x005A2C, 0x006145, 0x825B1A, 0x8F701A, 0x9E8519, 0xAD9B16, 0xBAAC12, 0x98981F, 0x6F8127, 0x456C2B, 0x005A2C, 0x006145,
0x006864, 0x007086, 0x0077A4, 0x266992, 0x3F537A, 0x4A3762, 0x500D4D, 0x560C3E, 0x58102E, 0x591320 0x006864, 0x007086, 0x0077A4, 0x266992, 0x3F537A, 0x4A3762, 0x500D4D, 0x560C3E, 0x58102E, 0x591320
``` ```

View File

@ -1,16 +1,40 @@
MB701 Reverse engeneering effort MB701 Reverse engineering effort
================================ ================================
This git repository include all the file related to the reverse engineering of the MinBay MB701 Pixel Art Board. This git repository include all the file related to the reverse engineering of the MinBay
MB701 Pixel Art Board.
The goal is to document as much as possible the file format used by the Pixel Art Board, both the [.PIX](PIXB.md) and [.DAT](PTCR.md) file, reverse on them is near complte, there are still unknown part but they are decypherable as is. The goal is to document as much as possible the file format used by the Pixel Art Board, both
the [.PIX](PIXB.md) and [.DAT](PTCR.md) file, reverse on them is near complete, there are
still unknown part, but they are decipherable as is.
The second goal is to understand the update format and potentially allowing to use the board for executing your own code. The second goal is to understand the update format and potentially allowing to use the board for
executing your own code.
An effort to find how the Bluetooth is workind is also underway but too early to document it. Up so far all I can say is that it use BLE.
An effort to find how the Bluetooth is workind is also underway but too early to document it. Up so far
all I can say is that it use BLE.
The [update_files](update_files) folder include all the known update file released by MinBay. The [update_files](update_files) folder include all the known update file released by MinBay.
### Note about update The [sample_tools](sample_tools) folder include sample application in python handling the different
About update, **DO NOT** try to update the MB701 using anything else than a PC under windows, and potentially linux. The way they handle FAT is weird and Mac OS seems to have issues with saving the update file properly leading the board to crash in weird way. type of file related to the MB701.
### Quick note about updating your MB701
About update, **DO NOT** try to update the MB701 using anything else than a PC under windows, and
potentially linux. The way they handle FAT is weird and Mac OS seems to have issues with saving
the update file properly leading the board to crash in weird way.
### TODO
- [ ] Documenting the update file format
- [ ] Creating a sample tool to create animated an gif from a .dat file
- [ ] Finish the the pixb2img to crop image if wanted (it only show imaged in their full 32x32 format)
- [ ] Hardware documentation, there is definitely a serial port and other port on the board.
- [ ] Maybe add datasheet of the components used on the board.
## Note
This repository is obviously not related in anyway with MinBay the creators of the MB701.
For more information about the MB701 and MinBay go do their website: https://minbay.com
If you have any information missing in this repository, feel free to contact me, especially if you have firmware that
I did not manage to save from their website and saved here.