What is the benefit of MeatPack Plugin

Hi, I understand the MeatPack is a compression plug in on Gcode, but I don't understand what is the benefit of it. What does it improve or do better?

It replaces common characters in the gcode stream with compressed, smaller versions. This reduces the amount of data that has to be transferred over the serial connection. Sending a zipped file over the internet is a good example, it is a smaller file so it will transfer quicker.

It is useful in situations where the processing of the gcode stream and pushing data over the serial connection is the bottleneck. It supposedly has a larger impact on devices like a Raspberry Pi Zero.


Thank you, for the explination

1 Like

Nothing is currently wrong with my setup, but I thought I'd try Meatpack. I am not sure about the serial port to define for meatpack in Marlin (which I have compiled numerous times). These are the serial ports I'm using. I don't know which one Octoprint communicates with on the printer board now (SKR mini with a touch screen) which I think also uses a serial port. I would assume serial port -1 (USB emulated port)? I have not tried it yet because I need this question cleared up first.

My current serial ports -


  • Select the serial port on the board to use for communication with the host.
  • This allows the connection of wireless adapters (for instance) to non-default port pins.
  • Serial port -1 is the USB emulated serial port, if available.
  • Note: The first serial port (-1 or 0) will always be used by the Arduino bootloader.
  • :[-1, 0, 1, 2, 3, 4, 5, 6, 7]

#define SERIAL_PORT -1

#define SERIAL_PORT_2 2

These are the selections for meatpack in configuration_adv.h -

// Support for MeatPack G-code compression



Which one should I define?
Can the numbers be changed in the #defines for meatpack?

Does MEATPACK_ON_SERIAL_PORT_1 mean the actual serial port number "1", or does it mean the first serial port in the sequence of defined serial ports?

Any help would be appreciated.

The second - so I think you want to uncomment #define MEATPACK_ON_SERIAL_PORT_1. Worst case it doesn't work, you change the config to fix it or try the other port.

FWIW, on my SKR 1.3 I use #define SERIAL_PORT -1 and #define MEATPACK_ON_SERIAL_PORT_1

You guys are correct - MEATPACK_ON_SERIAL_PORT_1 is the right #define. I went ahead and moved to Marlin while I was at it. All seems to be working and printing as it should.


1 Like