Brother PT-P700

  • model: PT-P700
  • serial number: E73121-C7Z848186

  • tape: Brother TZe-tape, 3.5 mm to 24 mm wide (tape widths: 3.5, 6, 9, 12, 18, 24 mm)

  • power adapter: Brother model AD-E001 EU, output 12 V DC 2A, center negative
  • tape raster heights
  • tape printable area
  • 3.5 mm 24 dots (3.40 mm)
  • 6 mm 32 dots (4.50 mm)
  • 9 mm 50 dots (7.50 mm)
  • 12 mm 70 dots (9.90 mm)
  • 18 mm 112 dots (15.8 mm)
  • 24 mm 128 dots (18.1 mm)
  • feed amount (left and right margins): minimum margin 14 dots (2 mm), maximum margin 900 dots (127 mm)
  • minimum length: 31 dots (4.4 mm)
  • maximum length: 7086 dots (1000 mm)

Commands

NULL       00         invalidate
ESC @      1b 40      initialize
ESC i S    1b 69 53   status information request
ESC i a    1b 69 61   switch dynamic command mode
ESC i z    1b 69 7a   print information command
ESC i M    1b 69 4d   various mode settings
ESC i K    1b 69 4b   advanced mode settings
ESC i d    1b 69 64   specify margin amount (feed amount)
M 4d                  select compression mode
g  67                 raster graphics transfer
Z 5a                  zero raster graphics
FF 0c                 print command
Control-Z  1a         print command with feeding

endpoints

ep 1 - in bulk   - max packet size 64 bytes - receive status from printer
ep 2  - out bulk - max packet size 64 bytes - sends printer commands and data from computer to printer

under: Debian,

back to label printers page.

Links

Openprinting.org: ptouch, Linux: ptouch (CUPS + ruby), B-Label, Github: ptouch-print, ptouch-770 and probonopd/ptouch-770, ptouch-php, ptouch-driver, png2ptouch (CUPS + Python), smd_ptouch (CUPS + Perl), python-ptouch-pc (Python for PT-PC RS-232),

History

2021-07-14: I re-created this page on my self-hosted web server.

2019-09-04: test the newly compiled ptouch-print from

tingo@kg-core2$ pwd
/home/tingo/work/Brother/clarkewd/ptouch-print

help first

tingo@kg-core2$ ./ptouch-print --help
usage: ./ptouch-print [options] <print-command(s)>
options:
    --font <file>        use font <file> or <name>
    --writepng <file>    instead of printing, write output to png file
                This currently works only when using
                EXACTLY ONE --text statement
print-commands:
    --image <file>        print the given image which must be a 2 color
                (black/white) png
    --text <text>        Print 1-4 lines of text.
                If the text contains spaces, use quotation marks
                around it.
    --cutmark        Print a mark where the tape should be cut
    --fontsize        Manually set fontsize

version

tingo@kg-core2$ ./ptouch-print --version
ptouch-print version -ne 7fe3944.dirty by Dominic Radermacher

then try it

tingo@kg-core2$ ./ptouch-print
PT-P700 found on USB bus 0, device 4
error while detaching kernel driver: LIBUSB_ERROR_OTHER

ok, I have seen that message about detaching kernel driver before.

if the printer is powered off

tingo@kg-core2$ ./ptouch-print
No P-Touch printer found on USB (remember to put switch to position E)

so that's interesting.

2019-09-04: I just checked out clarkewd/ptouch-print from Github. Here:

tingo@kg-core2$ pwd
/home/tingo/work/Brother/clarkewd/ptouch-print

now, let me see if I can build it. Needs autoconf, automake,

tingo@kg-core2$ ./autogen.sh
Copying file ABOUT-NLS
Copying file config.rpath
Creating directory m4
Copying file m4/codeset.m4
Copying file m4/extern-inline.m4
Copying file m4/fcntl-o.m4
Copying file m4/gettext.m4
Copying file m4/glibc2.m4
Copying file m4/glibc21.m4
Copying file m4/iconv.m4
Copying file m4/intdiv0.m4
Copying file m4/intl.m4
Copying file m4/intldir.m4
Copying file m4/intlmacosx.m4
Copying file m4/intmax.m4
Copying file m4/inttypes-pri.m4
Copying file m4/inttypes_h.m4
Copying file m4/lcmessage.m4
Copying file m4/lib-ld.m4
Copying file m4/lib-link.m4
Copying file m4/lib-prefix.m4
Copying file m4/lock.m4
Copying file m4/longlong.m4
Copying file m4/nls.m4
Copying file m4/po.m4
Copying file m4/printf-posix.m4
Copying file m4/progtest.m4
Copying file m4/size_max.m4
Copying file m4/stdint_h.m4
Copying file m4/threadlib.m4
Copying file m4/uintmax_t.m4
Copying file m4/visibility.m4
Copying file m4/wchar_t.m4
Copying file m4/wint_t.m4
Copying file m4/xsize.m4
Copying file po/Makefile.in.in
Copying file po/Makevars.template
Copying file po/Rules-quot
Copying file po/boldquot.sed
Copying file po/en@boldquot.header
Copying file po/en@quot.header
Copying file po/insert-header.sin
Copying file po/quot.sed
Copying file po/remove-potcdate.sin
configure.ac:28: installing './compile'
configure.ac:31: installing './config.guess'
configure.ac:31: installing './config.sub'
configure.ac:29: installing './install-sh'
configure.ac:30: installing './missing'
Makefile.am: installing './INSTALL'
Makefile.am: error: required file './README' not found
Makefile.am: installing './depcomp'
autoreconf-2.69: automake failed with exit status: 1

hmm, try this

tingo@kg-core2$ echo "dummy" > README

then re-try

tingo@kg-core2$ ./autogen.sh
Copying file config.rpath
configure.ac:31: installing './config.guess'
configure.ac:31: installing './config.sub'

better. Next step

tingo@kg-core2$ ./configure --prefix=/usr/local
checking for gcc... no
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking whether cc understands -c and -o together... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
checking whether make sets $(MAKE)... yes
checking whether make supports the include directive... yes (GNU style)
checking whether make supports nested variables... yes
checking dependency style of cc... gcc3
checking for a sed that does not truncate output... /usr/bin/sed
checking whether NLS is requested... yes
checking for msgfmt... /usr/local/bin/msgfmt
checking for gmsgfmt... /usr/local/bin/msgfmt
checking for xgettext... /usr/local/bin/xgettext
checking for msgmerge... /usr/local/bin/msgmerge
checking build system type... amd64-unknown-freebsd11.3
checking host system type... amd64-unknown-freebsd11.3
checking for ld used by cc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for shared library run path origin... done
checking how to run the C preprocessor... cc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyCurrent... no
checking for GNU gettext in libc... no
checking for iconv... yes
checking for working iconv... yes
checking how to link with libiconv... /usr/local/lib/libiconv.so -Wl,-rpath -Wl,/usr/local/lib
checking for GNU gettext in libintl... yes
checking whether to use NLS... yes
checking where the gettext function comes from... external libintl
checking how to link with libintl... /usr/local/lib/libintl.so -Wl,-rpath -Wl,/usr/local/lib
checking for gdImageStringFT in -lgd... no
checking for libusb_init in -lusb-1.0... no
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking libintl.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking gd.h usability... yes
checking gd.h presence... yes
checking for gd.h... yes
checking libusb-1.0/libusb.h usability... no
checking libusb-1.0/libusb.h presence... no
checking for libusb-1.0/libusb.h... no
configure: error: libusb headers missing - maybe you need to install package libusb-dev or libusb-devel?

ok, need to tell configure where to find libusb under FreeBSD. For now, I just changed the line in configure.ac from

#AC_CHECK_HEADERS([libusb-1.0/libusb.h], [], [AC_MSG_ERROR([libusb headers missing - maybe you need to install package libusb-dev or libusb-devel?])])

to

AC_CHECK_HEADERS([libusb.h], [], [AC_MSG_ERROR([libusb headers missing - maybe you need to install package libusb-dev or libusb-devel?])])

then re-run autogen.sh

tingo@kg-core2$ ./autogen.sh
Copying file config.rpath
configure.ac:31: installing './config.guess'
configure.ac:31: installing './config.sub'

and configure

tingo@kg-core2$ ./configure --prefix=/usr/local
checking for gcc... no
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking whether cc understands -c and -o together... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
checking whether make sets $(MAKE)... yes
checking whether make supports the include directive... yes (GNU style)
checking whether make supports nested variables... yes
checking dependency style of cc... gcc3
checking for a sed that does not truncate output... /usr/bin/sed
checking whether NLS is requested... yes
checking for msgfmt... /usr/local/bin/msgfmt
checking for gmsgfmt... /usr/local/bin/msgfmt
checking for xgettext... /usr/local/bin/xgettext
checking for msgmerge... /usr/local/bin/msgmerge
checking build system type... amd64-unknown-freebsd11.3
checking host system type... amd64-unknown-freebsd11.3
checking for ld used by cc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for shared library run path origin... done
checking how to run the C preprocessor... cc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyCurrent... no
checking for GNU gettext in libc... no
checking for iconv... yes
checking for working iconv... yes
checking how to link with libiconv... /usr/local/lib/libiconv.so -Wl,-rpath -Wl,/usr/local/lib
checking for GNU gettext in libintl... yes
checking whether to use NLS... yes
checking where the gettext function comes from... external libintl
checking how to link with libintl... /usr/local/lib/libintl.so -Wl,-rpath -Wl,/usr/local/lib
checking for gdImageStringFT in -lgd... no
checking for libusb_init in -lusb-1.0... no
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking libintl.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking gd.h usability... yes
checking gd.h presence... yes
checking for gd.h... yes
checking libusb.h usability... yes
checking libusb.h presence... yes
checking for libusb.h... yes
checking for ssize_t... yes
checking for uint8_t... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for memset... yes
checking for setlocale... yes
checking for strpbrk... yes
checking for strtol... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating po/Makefile.in
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile

ok, it runs at least. Now try make

tingo@kg-core2$ make
make  all-recursive
Making all in po
test ! -f ./ptouch.pot ||  test -z "de.gmo en.gmo" || make de.gmo en.gmo
rm -f de.gmo && /usr/local/bin/msgfmt -c --statistics --verbose -o de.gmo de.po
de.po: 26 translated messages, 10 untranslated messages.
rm -f en.gmo && /usr/local/bin/msgfmt -c --statistics --verbose -o en.gmo en.po
en.po: 36 translated messages.
touch stamp-po
depbase=`echo src/ptouch-print.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; cc -DHAVE_CONFIG_H -I.  -DLOCALEDIR='"/usr/local/share/locale"'  -I/usr/local/include -g -std=c11 -Wall -Wextra -Wunused -O3 -I./include -fPIC -g -O2 -MT src/ptouch-print.o -MD -MP -MF $depbase.Tpo -c -o src/ptouch-print.o src/ptouch-print.c && mv -f $depbase.Tpo $depbase.Po
In file included from src/ptouch-print.c:29:
./include/ptouch.h:21:10: fatal error: 'libusb-1.0/libusb.h' file not found
#include <libusb-1.0/libusb.h>
         ^~~~~~~~~~~~~~~~~~~~~
1 error generated.
*** Error code 1

Stop.
make[2]: stopped in /zs/tingo/work/Brother/clarkewd/ptouch-print
*** Error code 1

Stop.
make[1]: stopped in /zs/tingo/work/Brother/clarkewd/ptouch-print
*** Error code 1

Stop.
make: stopped in /zs/tingo/work/Brother/clarkewd/ptouch-print

as expected. Change the line in ptouch.h from

tingo@kg-core2$ grep libusb.h include/ptouch.h
#include <libusb-1.0/libusb.h>

to

tingo@kg-core2$ grep libusb.h include/ptouch.h
#include <libusb.h>

what happens now?

tingo@kg-core2$ make
make  all-recursive
Making all in po
depbase=`echo src/ptouch-print.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; cc -DHAVE_CONFIG_H -I.  -DLOCALEDIR='"/usr/local/share/locale"'  -I/usr/local/include -g -std=c11 -Wall -Wextra -Wunused -O3 -I./include -fPIC -g -O2 -MT src/ptouch-print.o -MD -MP -MF $depbase.Tpo -c -o src/ptouch-print.o src/ptouch-print.c && mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/libptouch.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; cc -DHAVE_CONFIG_H -I.  -DLOCALEDIR='"/usr/local/share/locale"'  -I/usr/local/include -g -std=c11 -Wall -Wextra -Wunused -O3 -I./include -fPIC -g -O2 -MT src/libptouch.o -MD -MP -MF $depbase.Tpo -c -o src/libptouch.o src/libptouch.c && mv -f $depbase.Tpo $depbase.Po
cc -g -std=c11 -Wall -Wextra -Wunused -O3 -I./include -fPIC -g -O2  -lusb-1.0 -lgd  -o ptouch-print src/ptouch-print.o  src/libptouch.o 
/usr/bin/ld: cannot find -lusb-1.0
cc: error: linker command failed with exit code 1 (use -v to see invocation)
*** Error code 1

Stop.
make[2]: stopped in /zs/tingo/work/Brother/clarkewd/ptouch-print
*** Error code 1

Stop.
make[1]: stopped in /zs/tingo/work/Brother/clarkewd/ptouch-print
*** Error code 1

Stop.
make: stopped in /zs/tingo/work/Brother/clarkewd/ptouch-print

ok, need to fix that too. Change the line in configre.ac from

#AC_CHECK_LIB([usb-1.0], [libusb_init])

to

AC_CHECK_LIB([usb], [libusb_init])

re-run autogen.sh

tingo@kg-core2$ ./autogen.sh
Copying file config.rpath
configure.ac:31: installing './config.guess'
configure.ac:31: installing './config.sub'

then configure

tingo@kg-core2$ ./configure --prefix=/usr/local
checking for gcc... no
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking whether cc understands -c and -o together... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
checking whether make sets $(MAKE)... yes
checking whether make supports the include directive... yes (GNU style)
checking whether make supports nested variables... yes
checking dependency style of cc... gcc3
checking for a sed that does not truncate output... /usr/bin/sed
checking whether NLS is requested... yes
checking for msgfmt... /usr/local/bin/msgfmt
checking for gmsgfmt... /usr/local/bin/msgfmt
checking for xgettext... /usr/local/bin/xgettext
checking for msgmerge... /usr/local/bin/msgmerge
checking build system type... amd64-unknown-freebsd11.3
checking host system type... amd64-unknown-freebsd11.3
checking for ld used by cc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for shared library run path origin... done
checking how to run the C preprocessor... cc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyCurrent... no
checking for GNU gettext in libc... no
checking for iconv... yes
checking for working iconv... yes
checking how to link with libiconv... /usr/local/lib/libiconv.so -Wl,-rpath -Wl,/usr/local/lib
checking for GNU gettext in libintl... yes
checking whether to use NLS... yes
checking where the gettext function comes from... external libintl
checking how to link with libintl... /usr/local/lib/libintl.so -Wl,-rpath -Wl,/usr/local/lib
checking for gdImageStringFT in -lgd... no
checking for libusb_init in -lusb... yes
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking libintl.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking gd.h usability... yes
checking gd.h presence... yes
checking for gd.h... yes
checking libusb.h usability... yes
checking libusb.h presence... yes
checking for libusb.h... yes
checking for ssize_t... yes
checking for uint8_t... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for memset... yes
checking for setlocale... yes
checking for strpbrk... yes
checking for strtol... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating po/Makefile.in
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile

ok, make is next

tingo@kg-core2$ make
make  all-recursive
Making all in po
depbase=`echo src/ptouch-print.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; cc -DHAVE_CONFIG_H -I.  -DLOCALEDIR='"/usr/local/share/locale"'  -I/usr/local/include -g -std=c11 -Wall -Wextra -Wunused -O3 -I./include -fPIC -g -O2 -MT src/ptouch-print.o -MD -MP -MF $depbase.Tpo -c -o src/ptouch-print.o src/ptouch-print.c && mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/libptouch.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; cc -DHAVE_CONFIG_H -I.  -DLOCALEDIR='"/usr/local/share/locale"'  -I/usr/local/include -g -std=c11 -Wall -Wextra -Wunused -O3 -I./include -fPIC -g -O2 -MT src/libptouch.o -MD -MP -MF $depbase.Tpo -c -o src/libptouch.o src/libptouch.c && mv -f $depbase.Tpo $depbase.Po
cc -g -std=c11 -Wall -Wextra -Wunused -O3 -I./include -fPIC -g -O2  -lusb-1.0 -lgd  -o ptouch-print src/ptouch-print.o  src/libptouch.o  -lusb
/usr/bin/ld: cannot find -lusb-1.0
cc: error: linker command failed with exit code 1 (use -v to see invocation)
*** Error code 1

Stop.
make[2]: stopped in /zs/tingo/work/Brother/clarkewd/ptouch-print
*** Error code 1

Stop.
make[1]: stopped in /zs/tingo/work/Brother/clarkewd/ptouch-print
*** Error code 1

Stop.
make: stopped in /zs/tingo/work/Brother/clarkewd/ptouch-print

hmmm... oh, I forgot to fix everything in Makefile.am

change

tingo@kg-core2$ grep LDFLAGS Makefile.am
ptouch_print_LDFLAGS=-lusb-1.0 -lgd

to

tingo@kg-core2$ grep LDFLAGS Makefile.am
ptouch_print_LDFLAGS=-lusb -lgd

re-try, first autogen.sh

tingo@kg-core2$ ./autogen.sh
Copying file config.rpath
configure.ac:31: installing './config.guess'
configure.ac:31: installing './config.sub'

then configure

tingo@kg-core2$ ./configure --prefix=/usr/local
checking for gcc... no
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking whether cc understands -c and -o together... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
checking whether make sets $(MAKE)... yes
checking whether make supports the include directive... yes (GNU style)
checking whether make supports nested variables... yes
checking dependency style of cc... gcc3
checking for a sed that does not truncate output... /usr/bin/sed
checking whether NLS is requested... yes
checking for msgfmt... /usr/local/bin/msgfmt
checking for gmsgfmt... /usr/local/bin/msgfmt
checking for xgettext... /usr/local/bin/xgettext
checking for msgmerge... /usr/local/bin/msgmerge
checking build system type... amd64-unknown-freebsd11.3
checking host system type... amd64-unknown-freebsd11.3
checking for ld used by cc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for shared library run path origin... done
checking how to run the C preprocessor... cc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyCurrent... no
checking for GNU gettext in libc... no
checking for iconv... yes
checking for working iconv... yes
checking how to link with libiconv... /usr/local/lib/libiconv.so -Wl,-rpath -Wl,/usr/local/lib
checking for GNU gettext in libintl... yes
checking whether to use NLS... yes
checking where the gettext function comes from... external libintl
checking how to link with libintl... /usr/local/lib/libintl.so -Wl,-rpath -Wl,/usr/local/lib
checking for gdImageStringFT in -lgd... no
checking for libusb_init in -lusb... yes
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking libintl.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking gd.h usability... yes
checking gd.h presence... yes
checking for gd.h... yes
checking libusb.h usability... yes
checking libusb.h presence... yes
checking for libusb.h... yes
checking for ssize_t... yes
checking for uint8_t... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for memset... yes
checking for setlocale... yes
checking for strpbrk... yes
checking for strtol... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating po/Makefile.in
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile

now, try make again

tingo@kg-core2$ make
make  all-recursive
Making all in po
depbase=`echo src/ptouch-print.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; cc -DHAVE_CONFIG_H -I.  -DLOCALEDIR='"/usr/local/share/locale"'  -I/usr/local/include -g -std=c11 -Wall -Wextra -Wunused -O3 -I./include -fPIC -g -O2 -MT src/ptouch-print.o -MD -MP -MF $depbase.Tpo -c -o src/ptouch-print.o src/ptouch-print.c && mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/libptouch.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; cc -DHAVE_CONFIG_H -I.  -DLOCALEDIR='"/usr/local/share/locale"'  -I/usr/local/include -g -std=c11 -Wall -Wextra -Wunused -O3 -I./include -fPIC -g -O2 -MT src/libptouch.o -MD -MP -MF $depbase.Tpo -c -o src/libptouch.o src/libptouch.c && mv -f $depbase.Tpo $depbase.Po
cc -g -std=c11 -Wall -Wextra -Wunused -O3 -I./include -fPIC -g -O2  -lusb -lgd  -o ptouch-print src/ptouch-print.o  src/libptouch.o  -lusb
/usr/bin/ld: cannot find -lgd
cc: error: linker command failed with exit code 1 (use -v to see invocation)
*** Error code 1

Stop.
make[2]: stopped in /zs/tingo/work/Brother/clarkewd/ptouch-print
*** Error code 1

Stop.
make[1]: stopped in /zs/tingo/work/Brother/clarkewd/ptouch-print
*** Error code 1

Stop.
make: stopped in /zs/tingo/work/Brother/clarkewd/ptouch-print

ok, ld needs -L. Try this

tingo@kg-core2$ grep LDFLAGS Makefile.am
ptouch_print_LDFLAGS=-L/usr/local/lib -lusb -lgd

and do the whole thing again, starting with autogen.sh

tingo@kg-core2$ ./autogen.sh
Copying file config.rpath
configure.ac:31: installing './config.guess'
configure.ac:31: installing './config.sub'

configure

tingo@kg-core2$ ./configure --prefix=/usr/local
checking for gcc... no
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking whether cc understands -c and -o together... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
checking whether make sets $(MAKE)... yes
checking whether make supports the include directive... yes (GNU style)
checking whether make supports nested variables... yes
checking dependency style of cc... gcc3
checking for a sed that does not truncate output... /usr/bin/sed
checking whether NLS is requested... yes
checking for msgfmt... /usr/local/bin/msgfmt
checking for gmsgfmt... /usr/local/bin/msgfmt
checking for xgettext... /usr/local/bin/xgettext
checking for msgmerge... /usr/local/bin/msgmerge
checking build system type... amd64-unknown-freebsd11.3
checking host system type... amd64-unknown-freebsd11.3
checking for ld used by cc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for shared library run path origin... done
checking how to run the C preprocessor... cc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyCurrent... no
checking for GNU gettext in libc... no
checking for iconv... yes
checking for working iconv... yes
checking how to link with libiconv... /usr/local/lib/libiconv.so -Wl,-rpath -Wl,/usr/local/lib
checking for GNU gettext in libintl... yes
checking whether to use NLS... yes
checking where the gettext function comes from... external libintl
checking how to link with libintl... /usr/local/lib/libintl.so -Wl,-rpath -Wl,/usr/local/lib
checking for gdImageStringFT in -lgd... no
checking for libusb_init in -lusb... yes
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking libintl.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking gd.h usability... yes
checking gd.h presence... yes
checking for gd.h... yes
checking libusb.h usability... yes
checking libusb.h presence... yes
checking for libusb.h... yes
checking for ssize_t... yes
checking for uint8_t... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for memset... yes
checking for setlocale... yes
checking for strpbrk... yes
checking for strtol... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating po/Makefile.in
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile

then make

tingo@kg-core2$ make
make  all-recursive
Making all in po
depbase=`echo src/ptouch-print.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; cc -DHAVE_CONFIG_H -I.  -DLOCALEDIR='"/usr/local/share/locale"'  -I/usr/local/include -g -std=c11 -Wall -Wextra -Wunused -O3 -I./include -fPIC -g -O2 -MT src/ptouch-print.o -MD -MP -MF $depbase.Tpo -c -o src/ptouch-print.o src/ptouch-print.c && mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/libptouch.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; cc -DHAVE_CONFIG_H -I.  -DLOCALEDIR='"/usr/local/share/locale"'  -I/usr/local/include -g -std=c11 -Wall -Wextra -Wunused -O3 -I./include -fPIC -g -O2 -MT src/libptouch.o -MD -MP -MF $depbase.Tpo -c -o src/libptouch.o src/libptouch.c && mv -f $depbase.Tpo $depbase.Po
cc -g -std=c11 -Wall -Wextra -Wunused -O3 -I./include -fPIC -g -O2  -L/usr/local/lib -lusb -lgd  -o ptouch-print src/ptouch-print.o  src/libptouch.o  -lusb
src/ptouch-print.o: In function `unsupported_printer':
/zs/tingo/work/Brother/clarkewd/ptouch-print/src/ptouch-print.c:70: undefined reference to `libintl_gettext'
/zs/tingo/work/Brother/clarkewd/ptouch-print/src/ptouch-print.c:71: undefined reference to `libintl_gettext'
src/ptouch-print.o: In function `print_img':
/zs/tingo/work/Brother/clarkewd/ptouch-print/src/ptouch-print.c:91: undefined reference to `libintl_gettext'
/zs/tingo/work/Brother/clarkewd/ptouch-print/src/ptouch-print.c:92: undefined reference to `libintl_gettext'
/zs/tingo/work/Brother/clarkewd/ptouch-print/src/ptouch-print.c:(.text+0x176): undefined reference to `libintl_gettext'
src/ptouch-print.o:/zs/tingo/work/Brother/clarkewd/ptouch-print/src/ptouch-print.c:152: more undefined references to `libintl_gettext' follow
src/ptouch-print.o: In function `main':
/zs/tingo/work/Brother/clarkewd/ptouch-print/src/ptouch-print.c:405: undefined reference to `libintl_bindtextdomain'
/zs/tingo/work/Brother/clarkewd/ptouch-print/src/ptouch-print.c:406: undefined reference to `libintl_textdomain'
/zs/tingo/work/Brother/clarkewd/ptouch-print/src/ptouch-print.c:415: undefined reference to `libintl_gettext'
/zs/tingo/work/Brother/clarkewd/ptouch-print/src/ptouch-print.c:(.text+0xf24): undefined reference to `libintl_gettext'
/zs/tingo/work/Brother/clarkewd/ptouch-print/src/ptouch-print.c:489: undefined reference to `libintl_gettext'
src/ptouch-print.o: In function `write_png':
/zs/tingo/work/Brother/clarkewd/ptouch-print/src/ptouch-print.c:152: undefined reference to `libintl_gettext'
src/ptouch-print.o: In function `main':
/zs/tingo/work/Brother/clarkewd/ptouch-print/src/ptouch-print.c:445: undefined reference to `libintl_gettext'
src/libptouch.o:/zs/tingo/work/Brother/clarkewd/ptouch-print/src/libptouch.c:(.text+0x124): more undefined references to `libintl_gettext' follow
cc: error: linker command failed with exit code 1 (use -v to see invocation)
*** Error code 1

Stop.
make[2]: stopped in /zs/tingo/work/Brother/clarkewd/ptouch-print
*** Error code 1

Stop.
make[1]: stopped in /zs/tingo/work/Brother/clarkewd/ptouch-print
*** Error code 1

Stop.
make: stopped in /zs/tingo/work/Brother/clarkewd/ptouch-print

ok, libintl_gettext is needed too. So try this

tingo@kg-core2$ grep LDFLAGS Makefile.am
ptouch_print_LDFLAGS=-L/usr/local/lib -lusb -lgd -lintl

re-run all, autogen.sh first

tingo@kg-core2$ ./autogen.sh
Copying file config.rpath
configure.ac:31: installing './config.guess'
configure.ac:31: installing './config.sub'

then configure

tingo@kg-core2$ ./configure --prefix=/usr/local
checking for gcc... no
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking whether cc understands -c and -o together... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
checking whether make sets $(MAKE)... yes
checking whether make supports the include directive... yes (GNU style)
checking whether make supports nested variables... yes
checking dependency style of cc... gcc3
checking for a sed that does not truncate output... /usr/bin/sed
checking whether NLS is requested... yes
checking for msgfmt... /usr/local/bin/msgfmt
checking for gmsgfmt... /usr/local/bin/msgfmt
checking for xgettext... /usr/local/bin/xgettext
checking for msgmerge... /usr/local/bin/msgmerge
checking build system type... amd64-unknown-freebsd11.3
checking host system type... amd64-unknown-freebsd11.3
checking for ld used by cc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for shared library run path origin... done
checking how to run the C preprocessor... cc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyCurrent... no
checking for GNU gettext in libc... no
checking for iconv... yes
checking for working iconv... yes
checking how to link with libiconv... /usr/local/lib/libiconv.so -Wl,-rpath -Wl,/usr/local/lib
checking for GNU gettext in libintl... yes
checking whether to use NLS... yes
checking where the gettext function comes from... external libintl
checking how to link with libintl... /usr/local/lib/libintl.so -Wl,-rpath -Wl,/usr/local/lib
checking for gdImageStringFT in -lgd... no
checking for libusb_init in -lusb... yes
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking libintl.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking gd.h usability... yes
checking gd.h presence... yes
checking for gd.h... yes
checking libusb.h usability... yes
checking libusb.h presence... yes
checking for libusb.h... yes
checking for ssize_t... yes
checking for uint8_t... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for memset... yes
checking for setlocale... yes
checking for strpbrk... yes
checking for strtol... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating po/Makefile.in
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile

then make

tingo@kg-core2$ make
make  all-recursive
Making all in po
depbase=`echo src/ptouch-print.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; cc -DHAVE_CONFIG_H -I.  -DLOCALEDIR='"/usr/local/share/locale"'  -I/usr/local/include -g -std=c11 -Wall -Wextra -Wunused -O3 -I./include -fPIC -g -O2 -MT src/ptouch-print.o -MD -MP -MF $depbase.Tpo -c -o src/ptouch-print.o src/ptouch-print.c && mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/libptouch.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; cc -DHAVE_CONFIG_H -I.  -DLOCALEDIR='"/usr/local/share/locale"'  -I/usr/local/include -g -std=c11 -Wall -Wextra -Wunused -O3 -I./include -fPIC -g -O2 -MT src/libptouch.o -MD -MP -MF $depbase.Tpo -c -o src/libptouch.o src/libptouch.c && mv -f $depbase.Tpo $depbase.Po
cc -g -std=c11 -Wall -Wextra -Wunused -O3 -I./include -fPIC -g -O2  -L/usr/local/lib -lusb -lgd -lintl  -o ptouch-print src/ptouch-print.o  src/libptouch.o  -lusb

interesting.

2019-08-20: getting back to my old development:

tingo@kg-core2$ pwd
/home/tingo/work/Brother/PT-P700
testing the scripts without a PT-P700 connected
tingo@kg-core2$ python2.7 br-status
No Brother P-Touch printer found

and

tingo@kg-core2$ python2.7 py-find-p700
Traceback (most recent call last):
  File "py-find-p700", line 12, in <module>
    raise ValueError('Our device is not connected')
ValueError: Our device is not connected

connect up the PT-P700, which shows up as this in /var/log/messages

Aug 20 23:18:37 kg-core2 kernel: ugen0.4: <Brother PT-P700> at usbus0
Aug 20 23:18:37 kg-core2 kernel: ulpt0 on uhub1
Aug 20 23:18:37 kg-core2 kernel: ulpt0: <Brother PT-P700, class 0/0, rev 2.00/1.00, addr 3> on usbus0
Aug 20 23:18:37 kg-core2 kernel: ulpt0: using bi-directional mode

try the scripts again

tingo@kg-core2$ python2.7 br-status
Found a Brother PT-P700 at bus <usb.legacy.Bus object at 0x801aefc90>  device <usb.legacy.Device object at 0x801aefd10>
No Brother P-Touch printer found

hmm, better fix that

tingo@kg-core2$ python2.7 br-status
Found a Brother PT-P700 at bus <usb.legacy.Bus object at 0x801aefc90>  device <usb.legacy.Device object at 0x801aefd10>

aah, a bit better. Probably should rewrite for Python3 (python3.6).

tingo@kg-core2$ python2.7 py-find-p700
Brother PT-P700 found
 Config: 1
    interface: 0,altsetting: 0
        ep: 2    (hex: 0x2)
        ep: 129    (hex: 0x81)
Traceback (most recent call last):
  File "py-find-p700", line 25, in <module>
    dev.detach_kernel_driver(0)
  File "/usr/local/lib/python2.7/site-packages/usb/core.py", line 1077, in detach_kernel_driver
    interface)
  File "/usr/local/lib/python2.7/site-packages/usb/backend/libusb1.py", line 902, in detach_kernel_driver
    _check(self.lib.libusb_detach_kernel_driver(dev_handle.handle, intf))
  File "/usr/local/lib/python2.7/site-packages/usb/backend/libusb1.py", line 595, in _check
    raise USBError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBError: [Errno None] Other error

ok, it kind of works... or not. Try to comment out the kernel driver and conf setting lines, and let the rest run:

tingo@kg-core2$ python2.7 py-find-p700
Brother PT-P700 found
 Config: 1
    interface: 0,altsetting: 0
        ep: 2    (hex: 0x2)
        ep: 129    (hex: 0x81)
Status from the printer
media width:  24 mm
media type: laminated tape
tape color:  white
text color:  black

much better.

2019-08-19: on PyPi also Labelprinterkit, a Python3 library for creating and printing labels, it supports PT-700.

2019-08-19: the old ptouch-print is gone, clarkewd/ptouch-print seems to be a continuation. There is a EtherGraf/ptouch-print which is tested on PT-2430PC.

2017-07-06: the package from yaha.no arrived into my mailbox.

2017-07-03: I needed tape of different widths and so on to test that I get correct status, so I ordered a few tapes from yaha.no: TZE-N201 (100.-) 3.5mm black on white, YT-TZE221 (79.-) 9mm black on white, YT-TZE631 (79.-) 12mm black on yellow, YT-TZE241 (89.-) 18mm black on white, all are 8 m long. Shipping was 39.- which brought that total to 386.-

2017-06-21: ptouch-print - yes, it is not supported

[tingo@kg-elitebook ptouch-print]$ ./ptouch-print --text "linje 1" "linje 2"
PT-P700 found on USB bus 3, device 8
choosing font size=48
your printer unfortunately is not supported by this tool
the rasterdata a transferred in some other (unknown) format

ok.

2017-06-21: ptouch-print - well, it helps if the printer is turned on. Verify that printer exists:

[tingo@kg-elitebook ptouch-print]$ lsusb -d 04f9:
Bus 003 Device 007: ID 04f9:2061 Brother Industries, Ltd

do we get anything from ptouch-print?

[tingo@kg-elitebook ptouch-print]$ ./ptouch-print
PT-P700 found on USB bus 3, device 7

nice. More info?

[tingo@kg-elitebook ptouch-print]$ ./ptouch-print --info
PT-P700 found on USB bus 3, device 7
maximum printing width for this tape is 128px

cool.

2017-06-20: ptouch-print - simplified build process - clone with git 'autoreconf -i' 'sh configure' 'make' and test

[tingo@kg-elitebook ptouch-print]$ ./ptouch-print
No P-Touch printer found on USB (remember to put switch to position E)
[tingo@kg-elitebook ptouch-print]$ ./ptouch-print --info
No P-Touch printer found on USB (remember to put switch to position E)

ok, it doesn't work yet.

2017-06-20: test ptouch-print get source

[tingo@kg-elitebook Brother]$ git clone https://github.com/dradermacher/ptouch-print.git
Cloning into 'ptouch-print'...
remote: Counting objects: 92, done.
remote: Total 92 (delta 0), reused 1 (delta 0), pack-reused 91
Unpacking objects: 100% (92/92), done.
Checking connectivity... done.

build

[tingo@kg-elitebook Brother]$ cd ptouch-print/
[tingo@kg-elitebook ptouch-print]$ sh configure
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
configure: error: cannot find install-sh, install.sh, or shtool in "." "./.." "./../.."

try autoreconf

[tingo@kg-elitebook ptouch-print]$ autoreconf
aclocal: warning: couldn't open directory 'm4': No such file or directory
configure.ac:31: warning: macro 'AM_GNU_GETTEXT' not found in library
configure.ac:32: warning: macro 'AM_GNU_GETTEXT_VERSION' not found in library
autoreconf: configure.ac: AM_GNU_GETTEXT_VERSION is used, but not AM_GNU_GETTEXT
configure.ac:31: error: possibly undefined macro: AM_GNU_GETTEXT
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
configure.ac:32: error: possibly undefined macro: AM_GNU_GETTEXT_VERSION
autoreconf: /usr/bin/autoconf failed with exit status: 1

hmm... I installed shtool, try it

[tingo@kg-elitebook ptouch-print]$ shtoolize -o shtool install
Use of assignment to $[ is deprecated at /usr/bin/shtoolize line 60.
Generating shtool...(install 4567/5495 bytes)

retry autoreconf

[tingo@kg-elitebook ptouch-print]$ autoreconf
aclocal: warning: couldn't open directory 'm4': No such file or directory
configure.ac:28: error: required file './compile' not found
configure.ac:28:   'automake --add-missing' can install 'compile'
configure.ac:31: error: required file './config.guess' not found
configure.ac:31:   'automake --add-missing' can install 'config.guess'
configure.ac:31: error: required file './config.rpath' not found
configure.ac:31: error: required file './config.sub' not found
configure.ac:31:   'automake --add-missing' can install 'config.sub'
configure.ac:29: error: required file './install-sh' not found
configure.ac:29:   'automake --add-missing' can install 'install-sh'
configure.ac:30: error: required file './missing' not found
configure.ac:30:   'automake --add-missing' can install 'missing'
Makefile.am: error: required file './INSTALL' not found
Makefile.am:   'automake --add-missing' can install 'INSTALL'
configure.ac:31: error: required file './ABOUT-NLS' not found
Makefile.am: error: required file './depcomp' not found
Makefile.am:   'automake --add-missing' can install 'depcomp'
autoreconf: automake failed with exit status: 1

hmm, try automake

[tingo@kg-elitebook ptouch-print]$ automake --add-missing
configure.ac:28: installing './compile'
configure.ac:31: installing './config.guess'
configure.ac:31: error: required file './config.rpath' not found
configure.ac:31: installing './config.sub'
configure.ac:29: installing './install-sh'
configure.ac:30: installing './missing'
Makefile.am: installing './INSTALL'
configure.ac:31: error: required file './ABOUT-NLS' not found
Makefile.am: installing './depcomp'

ok, getting a bit further.

[tingo@kg-elitebook ptouch-print]$ autoreconf -i
Copying file ABOUT-NLS
Copying file config.rpath
Creating directory m4
Copying file m4/codeset.m4
Copying file m4/extern-inline.m4
Copying file m4/fcntl-o.m4
Copying file m4/gettext.m4
Copying file m4/glibc2.m4
Copying file m4/glibc21.m4
Copying file m4/iconv.m4
Copying file m4/intdiv0.m4
Copying file m4/intl.m4
Copying file m4/intldir.m4
Copying file m4/intlmacosx.m4
Copying file m4/intmax.m4
Copying file m4/inttypes-pri.m4
Copying file m4/inttypes_h.m4
Copying file m4/lcmessage.m4
Copying file m4/lib-ld.m4
Copying file m4/lib-link.m4
Copying file m4/lib-prefix.m4
Copying file m4/lock.m4
Copying file m4/longlong.m4
Copying file m4/nls.m4
Copying file m4/po.m4
Copying file m4/printf-posix.m4
Copying file m4/progtest.m4
Copying file m4/size_max.m4
Copying file m4/stdint_h.m4
Copying file m4/threadlib.m4
Copying file m4/uintmax_t.m4
Copying file m4/visibility.m4
Copying file m4/wchar_t.m4
Copying file m4/wint_t.m4
Copying file m4/xsize.m4
Copying file po/Makefile.in.in
Copying file po/Makevars.template
Copying file po/Rules-quot
Copying file po/boldquot.sed
Copying file po/en@boldquot.header
Copying file po/en@quot.header
Copying file po/insert-header.sin
Copying file po/quot.sed
Copying file po/remove-potcdate.sin

nice. Now run sh configure again, which ends with

configure: creating ./config.status
config.status: creating Makefile
config.status: creating po/Makefile.in
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile

cool. Run 'make'

[tingo@kg-elitebook ptouch-print]$ make
(CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /zs/tingo/work/Brother/ptouch-print/missing autoheader)
rm -f stamp-h1
touch config.h.in
cd . && /bin/sh ./config.status config.h
config.status: creating config.h
config.status: config.h is unchanged
make  all-recursive
make[1]: Entering directory '/zs/tingo/work/Brother/ptouch-print'
Making all in po
make[2]: Entering directory '/zs/tingo/work/Brother/ptouch-print/po'
test ! -f ./ptouch.pot || \
  test -z "de.gmo en.gmo" || make de.gmo en.gmo
make[3]: Entering directory '/zs/tingo/work/Brother/ptouch-print/po'
rm -f de.gmo && /usr/bin/msgfmt -c --statistics --verbose -o de.gmo de.po
de.po: 26 translated messages, 10 untranslated messages.
rm -f en.gmo && /usr/bin/msgfmt -c --statistics --verbose -o en.gmo en.po
en.po: 36 translated messages.
make[3]: Leaving directory '/zs/tingo/work/Brother/ptouch-print/po'
touch stamp-po
make[2]: Leaving directory '/zs/tingo/work/Brother/ptouch-print/po'
make[2]: Entering directory '/zs/tingo/work/Brother/ptouch-print'
depbase=`echo src/ptouch-print.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DLOCALEDIR='"/usr/local/share/locale"'  -g -std=c11 -Wall -O3 -I./include -g -O2 -MT src/ptouch-print.o -MD -MP -MF $depbase.Tpo -c -o src/ptouch-print.o src/ptouch-print.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/libptouch.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -DLOCALEDIR='"/usr/local/share/locale"'  -g -std=c11 -Wall -O3 -I./include -g -O2 -MT src/libptouch.o -MD -MP -MF $depbase.Tpo -c -o src/libptouch.o src/libptouch.c &&\
mv -f $depbase.Tpo $depbase.Po
gcc -g -std=c11 -Wall -O3 -I./include -g -O2 -lusb-1.0 -lgd  -o ptouch-print src/ptouch-print.o src/libptouch.o  -lusb-1.0 -lgd
make[2]: Leaving directory '/zs/tingo/work/Brother/ptouch-print'
make[1]: Leaving directory '/zs/tingo/work/Brother/ptouch-print'

that worked.

test ptouch-print

[tingo@kg-elitebook ptouch-print]$ ./ptouch-print --text "linje 1" "linje 2"
No P-Touch printer found on USB (remember to put switch to position E)

ok, it said it didn't support this printer.

2017-06-20: test ptouch-770: get source

[tingo@kg-elitebook Brother]$ git clone https://github.com/abelits/ptouch-770.git
Cloning into 'ptouch-770'...
remote: Counting objects: 10, done.
remote: Total 10 (delta 0), reused 0 (delta 0), pack-reused 10
Unpacking objects: 100% (10/10), done.
Checking connectivity... done.

build

[tingo@kg-elitebook Brother]$ cd ptouch-770/
[tingo@kg-elitebook ptouch-770]$ make
gcc -Wall -O2 -c -o ptouch-770-write.o ptouch-770-write.c
gcc -o ptouch-770-write ptouch-770-write.o  -ludev

test

[tingo@kg-elitebook ptouch-770]$ ./ptouch-770-write
Usage: ./ptouch-770-write <file.pbm>
[tingo@kg-elitebook ptouch-770]$ ./ptouch-770-write tux-128px-bw.pbm
Can't open printer: Permission denied

ok, a permissions problem, After adding my user to the 'lp' group it works:

[tingo@kg-elitebook ptouch-770]$ ./ptouch-770-write tux-128px-bw.pbm

nice.

2017-06-20: I connect it to my Fedora laptop at the office:

[tingo@kg-elitebook ~]$ cat /etc/fedora-release
Fedora release 25 (Twenty Five)
[tingo@kg-elitebook ~]$ uname -a
Linux kg-elitebook.kg4.no 4.11.5-200.fc25.x86_64 #1 SMP Wed Jun 14 17:17:29 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

lsusb says

[tingo@kg-elitebook ~]$ lsusb -d 04f9:
Bus 003 Device 006: ID 04f9:2061 Brother Industries, Ltd

from /var/log/messages

Jun 20 15:23:40 kg-elitebook kernel: usb 3-1.3: new full-speed USB device number 6 using xhci_hcd
Jun 20 15:23:40 kg-elitebook kernel: usb 3-1.3: New USB device found, idVendor=04f9, idProduct=2061
Jun 20 15:23:40 kg-elitebook kernel: usb 3-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jun 20 15:23:40 kg-elitebook kernel: usb 3-1.3: Product: PT-P700
Jun 20 15:23:40 kg-elitebook kernel: usb 3-1.3: Manufacturer: Brother
Jun 20 15:23:40 kg-elitebook kernel: usb 3-1.3: SerialNumber: 000C7Z848186
Jun 20 15:23:40 kg-elitebook mtp-probe: checking bus 3, device 6: "/sys/devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1.3"
Jun 20 15:23:40 kg-elitebook mtp-probe: bus: 3, device: 6 was not an MTP device
Jun 20 15:23:40 kg-elitebook systemd: Starting CUPS Scheduler...
Jun 20 15:23:40 kg-elitebook systemd: Created slice system-configure\x2dprinter.slice.
Jun 20 15:23:40 kg-elitebook systemd: Started Configure Plugged-In Printer.

Jun 20 15:23:40 kg-elitebook kernel: usblp 3-1.3:1.0: usblp0: USB Bidirectional printer dev 6 if 0 alt 0 proto 2 vid 0x04F9 pid 0x2061
Jun 20 15:23:40 kg-elitebook kernel: usbcore: registered new interface driver usblp

Jun 20 15:23:40 kg-elitebook systemd: Started CUPS Scheduler.
Jun 20 15:23:40 kg-elitebook systemd: Reached target Printer.

Jun 20 15:23:45 kg-elitebook cupsd: REQUEST localhost - - "POST / HTTP/1.1" 401 244 CUPS-Get-Devices successful-ok
Jun 20 15:23:45 kg-elitebook cupsd: [cups-deviced] PID 10577 (gutenprint52+usb) stopped with status 1!
Jun 20 15:23:45 kg-elitebook kernel: usblp0: removed
Jun 20 15:23:45 kg-elitebook kernel: usblp 3-1.3:1.0: usblp0: USB Bidirectional printer dev 6 if 0 alt 0 proto 2 vid 0x04F9 pid 0x2061
Jun 20 15:23:45 kg-elitebook cupsd: REQUEST localhost - root "POST / HTTP/1.1" 200 1080 CUPS-Get-Devices -
Jun 20 15:23:49 kg-elitebook cupsd: REQUEST localhost - - "POST / HTTP/1.1" 200 4043981 CUPS-Get-PPDs -
Jun 20 15:23:50 kg-elitebook udev-configure-printer: No ID match for device usb://Brother/PT-P700?serial=000C7Z848186:
Jun 20 15:23:50 kg-elitebook udev-configure-printer: MFG:Brother;MDL:PT-P700;CMD:PT-CBP;
Jun 20 15:23:50 kg-elitebook udev-configure-printer: Using drv:///cupsfilters.drv/textonly.ppd (status: 3)

usb lp device

[tingo@kg-elitebook ~]$ ls -l /dev/usb/lp0
crw-rw----. 1 root lp 180, 0 Jun 20 15:23 /dev/usb/lp0

ok.

2017-06-08: try ptouch-770:

[tingo@localhost Brother]$ pwd
/home/tingo/work/Brother
[tingo@localhost Brother]$ git clone https://github.com/abelits/ptouch-770.git
Cloning into 'ptouch-770'...
remote: Counting objects: 10, done.
remote: Total 10 (delta 0), reused 0 (delta 0), pack-reused 10
Unpacking objects: 100% (10/10), done.
Checking connectivity... done.

try to build it

[tingo@localhost ptouch-770]$ make
gcc -Wall -O2 -c -o ptouch-770-write.o ptouch-770-write.c
ptouch-770-write.c:28:21: fatal error: libudev.h: No such file or directory
 #include <libudev.h>
                     ^
compilation terminated.
Makefile:16: recipe for target 'ptouch-770-write.o' failed
make: *** [ptouch-770-write.o] Error 1

aha. since this is Fedora, I had to install systemd-devel first. Try again

[tingo@localhost ptouch-770]$ make
gcc -Wall -O2 -c -o ptouch-770-write.o ptouch-770-write.c
gcc -o ptouch-770-write ptouch-770-write.o  -ludev

good. Does it work?

[tingo@localhost ptouch-770]$ ./ptouch-770-write
Usage: ./ptouch-770-write <file.pbm>
[tingo@localhost ptouch-770]$ ./ptouch-770-write  --help
Can't open bitmap file

ok, example bitmap files

[tingo@localhost ptouch-770]$ file *pbm
tux-128px-bw-ascii.pbm: Netpbm image data, size = 109 x 128, bitmap, ASCII text
tux-128px-bw.pbm:       Netpbm image data, size = 109 x 128, rawbits, bitmap

try one?

[tingo@localhost ptouch-770]$ ./ptouch-770-write tux-128px-bw-ascii.pbm
Can't open printer: Permission denied

sudo then?

[tingo@localhost ptouch-770]$ sudo ./ptouch-770-write tux-128px-bw-ascii.pbm

and it printed a nice black and white Tux. Cool.

2017-06-08: ptouch-print states that it doesn't work with the PT-P700 yet.

2017-06-08: second test - with the printer powered off, I connect it to my laptop, and the I turn on the printer. Still, both the power indicator and the PLite indicator lights up, and the printer shows up as usb storage. lsusb says:

[tingo@localhost ~]$ lsusb -d 04f9:
Bus 001 Device 007: ID 04f9:2064 Brother Industries, Ltd 
when I press the PLite button for a few seconds, the PLite indicator tuns off, and the usb storage vanishes. From /var/log/messages:
Jun  8 23:20:55 localhost systemd: Created slice system-configure\x2dprinter.slice.
Jun  8 23:20:55 localhost systemd: Started Configure Plugged-In Printer.

Jun  8 23:20:55 localhost kernel: usblp 1-2:1.0: usblp0: USB Bidirectional printer dev 8 if 0 alt 0 proto 2 vid 0x04F9 pid 0x2061
Jun  8 23:20:55 localhost kernel: usbcore: registered new interface driver usblp
Jun  8 23:20:55 localhost systemd: Starting CUPS Scheduler...
Jun  8 23:20:55 localhost dbus-daemon[835]: [system] Activating via systemd: service name='org.freedesktop.ColorManager' unit='colord.service' requested by ':1.222' (uid=0 pid=17452 comm="/usr/sbin/cupsd -l " label="system_u:system_r:cupsd_t:s0-s0:c0.c1023")
Jun  8 23:20:55 localhost systemd: Starting Manage, Install and Generate Color Profiles...
Jun  8 23:20:55 localhost dbus-daemon[835]: [system] Successfully activated service 'org.freedesktop.ColorManager'
Jun  8 23:20:55 localhost systemd: Started Manage, Install and Generate Color Profiles.

Jun  8 23:20:55 localhost colord: (colord:17454): Cd-WARNING **: failed to get session [pid 17452]: No such device or address
Jun  8 23:20:55 localhost systemd: Started CUPS Scheduler.

Jun  8 23:20:55 localhost systemd: Reached target Printer.
Jun  8 23:21:00 localhost cupsd: REQUEST localhost - - "POST / HTTP/1.1" 401 244 CUPS-Get-Devices successful-ok
Jun  8 23:21:00 localhost cupsd: [cups-deviced] PID 17464 (gutenprint52+usb) stopped with status 1!
Jun  8 23:21:00 localhost kernel: usblp0: removed
Jun  8 23:21:00 localhost kernel: usblp 1-2:1.0: usblp0: USB Bidirectional printer dev 8 if 0 alt 0 proto 2 vid 0x04F9 pid 0x2061
Jun  8 23:21:00 localhost cupsd: REQUEST localhost - root "POST / HTTP/1.1" 200 744 CUPS-Get-Devices -
Jun  8 23:21:06 localhost cupsd: REQUEST localhost - - "POST / HTTP/1.1" 200 4045157 CUPS-Get-PPDs -
Jun  8 23:21:07 localhost udev-configure-printer: No ID match for device usb://Brother/PT-P700?serial=000C7Z848186:
Jun  8 23:21:07 localhost udev-configure-printer: MFG:Brother;MDL:PT-P700;CMD:PT-CBP;
Jun  8 23:21:07 localhost udev-configure-printer: Using lsb/usr/cupsfilters/textonly.ppd (status: 3)

(I've edited out all the "audit" crap) anyway, it doesn't show up as a printer, perhaps because cups didn't manage to get a PPD for it.

2017-06-08: first power on - I connect the power adapter, the turn on the printer. The power indicator and the PLite indicator lights up. I use my Fedora laptop for testing, it runs Fedora 24 (F24):

[tingo@localhost ~]$ more /etc/fedora-release
Fedora release 24 (Twenty Four)
[tingo@localhost ~]$ uname -a
Linux localhost.localdomain 4.10.14-100.fc24.x86_64 #1 SMP Wed May 3 19:09:53 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

I plug in the printer to a usb port. It shows up as a usb storage device. From /var/log/messages:

Jun  8 23:03:38 localhost kernel: usb 1-2: new full-speed USB device number 6 using xhci_hcd
Jun  8 23:03:39 localhost kernel: usb 1-2: New USB device found, idVendor=04f9, idProduct=2064
Jun  8 23:03:39 localhost kernel: usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jun  8 23:03:39 localhost kernel: usb 1-2: Product: PT-P700
Jun  8 23:03:39 localhost kernel: usb 1-2: Manufacturer: Brother
Jun  8 23:03:39 localhost kernel: usb 1-2: SerialNumber: 000C7Z848186
Jun  8 23:03:39 localhost mtp-probe: checking bus 1, device 6: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2"
Jun  8 23:03:39 localhost mtp-probe: bus: 1, device: 6 was not an MTP device
Jun  8 23:03:39 localhost kernel: usb-storage 1-2:1.0: USB Mass Storage device detected
Jun  8 23:03:39 localhost kernel: scsi host3: usb-storage 1-2:1.0
Jun  8 23:03:39 localhost kernel: usbcore: registered new interface driver usb-storage
Jun  8 23:03:39 localhost kernel: usbcore: registered new interface driver uas
Jun  8 23:03:40 localhost kernel: scsi 3:0:0:0: Direct-Access     Brother  PT-P700          0.01 PQ: 0 ANSI: 2
Jun  8 23:03:40 localhost kernel: sd 3:0:0:0: Attached scsi generic sg1 type 0
Jun  8 23:03:40 localhost kernel: sd 3:0:0:0: [sdb] 8161 512-byte logical blocks: (4.18 MB/3.98 MiB)
Jun  8 23:03:40 localhost kernel: sd 3:0:0:0: [sdb] Write Protect is off
Jun  8 23:03:40 localhost kernel: sd 3:0:0:0: [sdb] No Caching mode page found
Jun  8 23:03:40 localhost kernel: sd 3:0:0:0: [sdb] Assuming drive cache: write through
Jun  8 23:03:40 localhost kernel: sdb: sdb1
Jun  8 23:03:40 localhost kernel: sdb: p1 size 8160 extends beyond EOD, enabling native capacity
Jun  8 23:03:40 localhost kernel: sdb: sdb1
Jun  8 23:03:40 localhost kernel: sdb: p1 size 8160 extends beyond EOD, truncated
Jun  8 23:03:40 localhost kernel: sd 3:0:0:0: [sdb] Attached SCSI removable disk

ok. I mount it (via double-click), it has a FAT filesystem:

[tingo@localhost ~]$ mount | grep PT-P700
/dev/sdb1 on /run/media/tingo/PT-P700 type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)

contents:

[tingo@localhost ~]$ ls -l /run/media/tingo/PT-P700
total 1076
-rw-r--r--. 1 tingo tingo     79 Apr  7  2008 AUTORUN.INF
-rw-r--r--. 1 tingo tingo    512 Nov 22  2007 PRTSTATE.STS
-rw-r--r--. 1 tingo tingo 268288 Jul  5  2016 PTBLANK.BIN
drwxr-xr-x. 2 tingo tingo   3584 Jul  5  2016 Ptlite10
-rwxr-xr-x. 1 tingo tingo 783360 Jul  4  2016 PTLITE10.EXE
-rw-r--r--. 1 tingo tingo  45056 Jul 17  2008 PTLITE.PRN
drwxr-xr-x. 3 tingo tingo    512 Jul  5  2016 'P-touch Editor Lite.app'
[tingo@localhost ~]$ ls -l /run/media/tingo/PT-P700/Ptlite10
total 1014
-r--r--r--. 1 tingo tingo 12632 May  1  2014 PRTINFO.INI
-rw-r--r--. 1 tingo tingo  7510 Apr 12  2016 ptemct.ini
-r--r--r--. 1 tingo tingo 11912 Jun  3  2013 PtlLang.ini
-rw-r--r--. 1 tingo tingo 31744 Jul  5  2016 PtlRes10_ARE.dll
-rw-r--r--. 1 tingo tingo 35328 Jul  4  2016 PtlRes10_BGR.dll
-rw-r--r--. 1 tingo tingo 23552 Jul  4  2016 PtlRes10_CHS.dll
-rw-r--r--. 1 tingo tingo 24064 Jul  4  2016 PtlRes10_CHT.dll
-rw-r--r--. 1 tingo tingo 33280 Jul  4  2016 PtlRes10_CRO.dll
-rw-r--r--. 1 tingo tingo 32768 Jul  4  2016 PtlRes10_CZE.dll
-rw-r--r--. 1 tingo tingo 33280 Jul  4  2016 PtlRes10_DAN.dll
-rw-r--r--. 1 tingo tingo 34816 Jul  4  2016 PtlRes10_DUT.dll
-rw-r--r--. 1 tingo tingo 33280 Jul  4  2016 PtlRes10_FIN.dll
-rw-r--r--. 1 tingo tingo 36352 Jul  4  2016 PtlRes10_FRA.dll
-rw-r--r--. 1 tingo tingo 35328 Jul  4  2016 PtlRes10_GER.dll
-rw-r--r--. 1 tingo tingo 29696 Jul  5  2016 PtlRes10_HEB.dll
-rw-r--r--. 1 tingo tingo 34304 Jul  4  2016 PtlRes10_HUN.dll
-rw-r--r--. 1 tingo tingo 35328 Jul  4  2016 PtlRes10_ITA.dll
-rw-r--r--. 1 tingo tingo 25600 Jul  4  2016 PtlRes10_JPN.dll
-rw-r--r--. 1 tingo tingo 26112 Jul  4  2016 PtlRes10_KOR.dll
-rw-r--r--. 1 tingo tingo 32768 Jul  4  2016 PtlRes10_NOR.dll
-rw-r--r--. 1 tingo tingo 33280 Jul  4  2016 PtlRes10_POL.dll
-rw-r--r--. 1 tingo tingo 35328 Jul  4  2016 PtlRes10_POR.dll
-rw-r--r--. 1 tingo tingo 34816 Jul  4  2016 PtlRes10_PTB.dll
-rw-r--r--. 1 tingo tingo 34304 Jul  4  2016 PtlRes10_ROM.dll
-rw-r--r--. 1 tingo tingo 33792 Jul  4  2016 PtlRes10_RUS.dll
-rw-r--r--. 1 tingo tingo 35328 Jul  4  2016 PtlRes10_SPA.dll
-rw-r--r--. 1 tingo tingo 33792 Jul  4  2016 PtlRes10_SVK.dll
-rw-r--r--. 1 tingo tingo 33280 Jul  4  2016 PtlRes10_SVN.dll
-rw-r--r--. 1 tingo tingo 32768 Jul  4  2016 PtlRes10_SWE.dll
-rw-r--r--. 1 tingo tingo 31744 Jul  4  2016 PtlRes10_THA.dll
-rw-r--r--. 1 tingo tingo 32768 Jul  4  2016 PtlRes10_TUR.dll
-rw-r--r--. 1 tingo tingo 32256 Jul  4  2016 PtlRes10_UK.dll
-rw-r--r--. 1 tingo tingo 32256 Jul  4  2016 PtlRes10_US.dll
-rw-r--r--. 1 tingo tingo 32256 Jul  4  2016 PtlRes10_VIT.dll

doesn't look like useful stuff. It has Mac stuff too, also not useful.

2017-06-08: contents: PT-P700 printer, power adapter (Brother model AD-E001 EU), usb cable (usb A - Mini-B), 1 x sample tape cassette (TZe-251 SAMPLE) laminated 24mm wide, drivers CD-ROM, documentation.

2017-06-08: It got a pick up message (SMS) from Posten, and got the package from PIB Extra Trondheimsveien on my way home from the office.

2017-06-07: Posten sent me a message: the package is on its way.

2017-06-06: Multicom sent me a message; my order is packed and ready for shipping.

2017-05-30: I ordered a Brother PT-P700 from Multicom (PTP700) for NOK 485.- plus NOK 79.- in shipping (a total of NOK 564.-).