libam7xxx-0.1.3 released

After almost one year of fixes and new functionalities here is libam7xxx-0.1.3.

libam7xxx is a library to communicate with USB pico-projectors like, for instance, the Philips/Sagemcom PicoPix devices; you can read more about it in the previous stories:

The devices supported in this release are:

  • Acer C110
  • Acer C112
  • Aiptek PocketCinema T25
  • Philips/SagemCom PicoPix 1020
  • Philips/SagemCom PicoPix 2055

With this release PicoPix 1020 and 2055 are finally fully working, thanks to the people who helped fixing and testing the code, here is the entry from the NEWS file:

News for v0.1.3:

  * Better documentation
  * Ported to Windows (compiles with MinGW)
  * Added a minimal replacement of usb-modeswitch to use on systems where the
    latter is not available
  * Added support for Acer C112 (Thanks to Richard Wisenoecker)
  * Added support for Aiptek PocketCinema T25 (Thanks to Matti Koskinen)
  * Added some contrib scripts
  * Added support for setting the projectors zoom mode
  * Added multi-device support, now more than one projector can be used at the
    same time on the same system (Tested by Konstantin Lohmann)
  * Added support for Philips/SagemCom PicoPix PPX 2055
  * Fixed some problems with the supported Philips/SagemCom PicoPix devices,
    now these devices are fully working (Thanks to the Certik family)

Debian packages for i386 and amd64 are available at

If anyone knows people at Sagemcom, would you put me in contact with them? They didn't reply to my previous messages to their support service address. I'd like to ask if they may be interested in providing some test units or to sponsor some development-time to make the pico-projectors work on Android.

Here is the shortlog between v0.1.2 and v0.1.3 for those interested in the development details:

Antonio Ospite (60):
      picoproj: add a note about image dimensions and native resolution
      Merge remote-tracking branch 'origin/rettichschnidi' into mingw-port
      HACKING.asciidoc: fix cmake invocation examples
      picoproj: use MAP_PRIVATE in the mmap call
      am7xxx: use hex notation for USB endpoints
      am7xxx: fix setting the USB configuration
      am7xxx: MinGW does not have endian.h, provide fallbacks
      am7xxx: don't look for the math library when compiling for Windows
      picoproj: issue a warning when passing "-f" more than once
      picoproj: fix a typo
      picoproj: replace mmap() with more portable file stream operations
      Don't set -pedantic-errors in CMAKE_C_FLAGS, it breaks check_symbol_exists()
      Add a CMAKE_TOOLCHAIN_FILE to compile with MinGW
      HACKING.asciidoc: add a section to explain Windows cross compilation
      Merge branch 'mingw-port'
      TODO: mention the plan about GStreamer
      Add a simple usb_mode_switch clone for am7xxx devices
      README.asciidoc document how to get libam7xx running on MS Windows
      README.asciidoc: add Royaltek PJU-2100 to the AM7XXX based devices list
      HACKING.asciidoc: add info about getting and building libam7xxx
      mingw_cross_toolchain.cmake: set the MINGW variable to True
      am7xxx-play: get the framerate from the video stream
      am7xxx-play: add a fallback definition for ENOTSUP
      am7xxx-play: check if sigaction is available
      am7xxx-play: check if strtok_r is available
      HACKING.asciidoc: add info about compiling am7xxx-play for Windows
      README.asciidoc: add info about running am7xxx-play.exe on Windows
      README.asciidoc: add Aiptek PocketCinema T25 to the AM7XXX devices list
      am7xxx: rename am7xxx_header.unknown0 to am7xxx_header.direction
      doc: update the list of supported devices
      contrib: add other supported devices to 55-am7xxx.rules
      contrib: add an example of how to start displaying images automatically
      Merge remote-tracking branch 'origin/rettichschnidi'
      am7xxx: implement support for the AM7XXX_PACKET_TYPE_ZOOM
      picoproj: support setting the zoom mode
      am7xxx-play: support setting the zoom mode
      am7xxx: update signature and documentation of am7xxx_set_power_mode()
      picoproj: make the help about power mode more consistent
      am7xxx-play: make the help about power mode more consistent
      contrib: add a test image to show how zoom modes work
      Merge branch 'am7xxx_set_zoom_mode'
      doc: update Doxygen configuration
      examples: support multiple devices
      am7xxx: add support for Philips/SagemCom PicoPix PPX 2055
      picoproj: clarify that when AM7XXX_ZOOM_TEST is set no image gets sent
      am7xxx: print text description of the 'direction' field
      am7xxx: assign device_list next to its first use
      am7xxx: add a note on the symmetry of read_header() and send_header()
      am7xxx: don't mention AM7XXX_DIRECTION_OUT in read_header()
      Fix an error when compiling with both -O0 and -Wp,-D_FORTIFY_SOURCE=2
      am7xxx: detect unexpected responses to AM7XXX_PACKET_TYPE_DEVINFO requests
      am7xxx: cache device info in am7xxx_get_device_info()
      am7xxx: make libam7xxx work with Philips/Sagemcom PPX projectors
      Merge branch 'fix-devinfo-for-PicoPix'
      contrib: add the script
      am7xxx: fix coding style
      am7xxx-play: rename 'packet' to 'in_packet'
      am7xxx-play: remove an unreachable break
      am7xxx-play: switch to avcodec_encode_video2()
      Release version 0.1.3

Matti Koskinen (1):
      am7xxx: add support for Aiptek PocketCinema T25

Reto Schneider (5):
      Make example programs optional.
      Stop CMake if function avformat_open_input not available,     print an error message. Prevents compile errors later on.
      Fix usage of FIND_PATH, allow $FFMPEG_DIR to be used.
      Fix typo.
      Add missing break.

Richard Wisenoecker (1):
      am7xxx: add support for Acer C112

CommentiCondividi contenuti

i installed am7xxx library

Ritratto di benhur

i installed am7xxx library libam7xxx_0.1.4-2 in ubuntu 14.04 amd64 bit. i connected picopix 2055, i am getting this error, how to rectify it.
scan_devices: am7xxx device found, index: 0, name: Philips/Sagemcom PicoPix 2055
cannot find input format
cannot initialize input
am7xxx_play failed

The PicoPix 2055 is supported

Ritratto di ao2

The PicoPix 2055 is supported only from libam7xxx-0.1.5, I suggest you to update to Ubuntu 16.04 which provides libam7xxx-0.1.6

when i give the

Ritratto di benhur

when i give the command
am7xxx-play -f x11grab -i :0.0

I following the guidelines in

Ritratto di benhur

I following the guidelines in the HACKING.asciidoc and fails to compile on Ubuntu 14.04 LTS. I installed this packages

cmake \
libusb-1.0-0-dev \
libavformat-dev \
libavcodec-dev \
libavdevice-dev \

along with


as you suggested. I still get warnings for undefined reference to av_frame_alloc and av_frame_free. Please tell me how to solve this error.



Hi, to compile libam7xxx

Ritratto di ao2


to compile libam7xxx with older libav/ffmpeg versions you need a patch like this one:

I'd suggest to use a newer distribution, tho, libam7xxx is already available as a package in recent Ubuntu versions.

Ciao, Antonio

Hi!, I have a big problem, I

Ritratto di rogeliolt

Hi!, I have a big problem, I want to use a picopix PPX2055 with Fedora, but I can't. How I can install the project with my OS?, thanks a lot.

Hi rogeliolt, I don't use

Ritratto di ao2

Hi rogeliolt,

I don't use Fedora so I don't know if there are RPM packages of libam7xxx around.

However you can still build libam7xxx from source: learn how to use git clone, and follow the instructions from the HACKING.asciidoc file in the libam7xxx repository.

Feel free to contact me via email if you have specific questions.

Ciao ciao, Antonio

Hi Antonio Thanks for the

Ritratto di Stefano

Hi Antonio
Thanks for the nice work you've done.
When i use am7xxx-play -i file, the streaming is very fast, and the audio is not played on my computer.
Do you know a solution?
Maybe you also now how redirect a video streaming to the projector? for example using omxplayer.
Thanks in advice

Hi Stefano, the main use of

Ritratto di ao2

Hi Stefano,

the main use of am7xxx-play is to capture the whole desktop.

In order to properly play individual media files on the projector you can try the libam7xxx GStreamer video sink I wrote, it's at

You'll have to compile from code tho, feel free to contact me (preferably on IRC or by email) if you need instructions.

With that you can have the videosink synchronized with the video decoder and have other GStreamer elements decode the audio, and you could even show the video both on the screen and the projector using the GStreamer tee element.

Hello, i'm trying to install

Ritratto di protonight


i'm trying to install my picopix 2055 (usb) to the rapsberry pi 3 but i have problem
someone have done the installation and have a guide ?

thx :)

Hi protonight, recent Debian

Ritratto di ao2

Hi protonight,

recent Debian versions provide libam7xxx packages in the official repositories.

Just install the libam7xxx0.1-bin package and read the manual of am7xxx-play.

Get in touch (again) or IRC for more details, ping me to get my attention sooner.

Ciao, Antonio

Invia nuovo commento

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente. If you have a Gravatar account associated with the e-mail address you provide, it will be used to display your avatar.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente
  • Elementi HTML permessi: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Linee e paragrafi vanno a capo automaticamente.

Ulteriori informazioni sulle opzioni di formattazione

Questa domanda serve a verificare che il form non venga inviato da procedure automatizzate
Enter the code without spaces.