Warning:

To protect the digital assets of creators and enhance system security and stability, the CyberBrick Multi-Function Core Board does not support firmware flashing with any third-party tools! If you need to restore the Multi-Function Core Board to its factory state, please wait for the official recovery tool to be released by CyberBrick. If you proceed to flash the firmware using third-party tools, the firmware of the Multi-Function Core Board will be permanently damaged and cannot be recovered. CyberBrick will not be responsible for any consequences resulting from such operations.

This documentation is adapted from the official MicroPython project. The CyberBrick team has extended the source code with custom interfaces and features to our hardware and application needs.

In addition to these enhancements, certain built-in MicroPython interfaces have been intentionally disabled to protect the system's integrity, and ensure the overall security and reliability of the device. This also facilitates content protection for creators' intellectual property, where applicable.

Portions of the content are derived from the official MicroPython documentation and have been included here under its open-source license to provide users with a consistent and enriched development experience tailored to the CyberBrick platform.

struct – pack and unpack primitive data types

This module implements a subset of the corresponding CPython module, as described below. For more information, refer to the original CPython documentation: struct.

The following byte orders are supported:

Character

Byte order

Size

Alignment

@

native

native

native

<

little-endian

standard

none

>

big-endian

standard

none

!

network (= big-endian)

standard

none

The following data types are supported:

Format

C Type

Python type

Standard size

b

signed char

integer

1

B

unsigned char

integer

1

h

short

integer

2

H

unsigned short

integer

2

i

int

integer (1)

4

I

unsigned int

integer (1)

4

l

long

integer (1)

4

L

unsigned long

integer (1)

4

q

long long

integer (1)

8

Q

unsigned long long

integer (1)

8

e

n/a (half-float)

float (2)

2

f

float

float (2)

4

d

double

float (2)

8

s

char[]

bytes

P

void *

integer

  1. Requires long support when used with values larger than 30 bits.

  2. Requires floating point support.

Difference to CPython

Whitespace is not supported in format strings.

Functions

struct.calcsize(fmt)

Return the number of bytes needed to store the given fmt.

struct.pack(fmt, v1, v2, ...)

Pack the values v1, v2, … according to the format string fmt. The return value is a bytes object encoding the values.

struct.pack_into(fmt, buffer, offset, v1, v2, ...)

Pack the values v1, v2, … according to the format string fmt into a buffer starting at offset. offset may be negative to count from the end of buffer.

struct.unpack(fmt, data)

Unpack from the data according to the format string fmt. The return value is a tuple of the unpacked values.

struct.unpack_from(fmt, data, offset=0, /)

Unpack from the data starting at offset according to the format string fmt. offset may be negative to count from the end of data. The return value is a tuple of the unpacked values.