Repository navigation
v2.0.0
The first public Tiger Touch: your BIGTREETECH Panda Touch or K-Touch becomes one live screen for every printer of your TigerTag account - Bambu Lab, Creality, Elegoo, Anycubic, Snapmaker, FlashForge, Prusa, Klipper and OctoPrint - installed from your browser in two minutes and kept up to date over Wi-Fi.
Added
- Install from your browser: open the installer page in Chrome or Edge, plug the screen in, press Install. No soldering, no tools.
- Updates over Wi-Fi: the screen finds new versions by itself and installs them with two touches. Each one is checked before it is used, and a version that fails to start is undone automatically.
- A simple first start: choose your language, then your Wi-Fi, then link your TigerTag account with your e-mail or with Google by scanning a QR code with your phone. Anything can wait for later.
- Your printers come from your account: add them once in Tiger Studio Manager and they appear on the screen, with nothing to type.
- Anycubic printers through the Anycubic cloud, and Bambu Lab printers through the Bambu cloud or on your network.
- Klipper printers (Voron, Qidi, Sovol, RatRig...) and printers behind OctoPrint.
- Two views on the home screen: large live cards, or a compact list. One touch switches between them, and the screen remembers your choice.
- Pause, resume, stop and the printer's light, from the screen. Stop needs a 1.5-second hold, so a stray touch never ends a print.
- Eleven languages, and your time zone from your country, with nothing to set.
Changed
- The screen starts in seconds and connects to Wi-Fi and to your account in the background, with a small animation while it connects.
- Scrolling is about two and a half times smoother.
- More printers can be followed at the same time: up to ten, all live.
- The connection to printers on your network is much faster and steadier.
- The settings look and work like TigerScale's, with new Screen and Language icons.
Fixed
- Fixed an issue where printers of one brand could disappear when that brand did not answer.
- Fixed an issue where the same printer could appear twice.
- Fixed an issue where a printer that could not be reached showed old temperatures instead of "--".
- Fixed an issue where some printers set up on a custom port could not be reached.
- Fixed an issue where the screen could flash briefly while scrolling.
Coming from Tiger Touch 1.x? Install this version once over USB from the installer page: version 2.0 changes how the screen's memory is organised so that updates can come over Wi-Fi. Your Wi-Fi and account are kept.
Technical changelog
Added
-
The device says it is there, in the account, as TigerScale and TigerSpool
do:users/{uid}/tigertouches/{mac}with its version, its name, its Wi-Fi,
whether its screen sleeps and the printers it follows, every 30 s (5 min while
the screen sleeps), with TigerSpool's field names
(docs/ACCOUNT-PAIRING.md).
Written and run on a Panda Touch: until the account's rules allow the
collection, Firestore refuses it (HTTP 403) and nothing else changes. -
The home screen has a second view, a list: a button left of the Wi-Fi
icon switches between the cards and a vertical list of light rows (the
printer, its state, a progress bar, the nozzle and the bed, and its light,
pause and stop buttons), in the settings' scrolling column: the scrollbar
always shown and the up / down rail on the right. The choice is kept across
restarts. -
The settings' Screen row has TigerScale's icon, FontAwesome's sun, drawn
at 32 px like the row's other icons (a face of its own,font_icon_32.c,
made bytools/make_fonts.py). The Language row's globe was TigerScale's
already. -
The first start is TigerScale's setup, step for step
(docs/ONBOARDING.md): the language first, then
"Connect to Wi-Fi?" and "Link a TigerTag account?", each with Set up / Later.
What was put off comes back as a panel sliding in from the right on the home
screen, 10 seconds after it appears and then every 30 minutes. -
Sign in with Google. One sign-in page with e-mail, password, Sign in and
Continue with Google. Google shows a QR code and its code; the owner scans
it with the phone and approves, and the device is linked - the same pairing
as TigerScale and TigerSpool (docs/ACCOUNT-PAIRING.md).
Accounts created with Google could not sign in at all before. Seen working
on a Panda Touch. -
The language follows the account both ways: picked on the device, it is
written to the account; changed in the account, the device follows at its
next start. -
"Account linked" and the printers are two pages, as on TigerSpool: the
confirmation alone, then the printers to switch on. -
Over-the-air update. Settings > Firmware update shows the installed
version, checks for a newer one and installs it with a progress bar; the
device restarts into it. A check also runs a minute after start-up and then
once a day, and the menu row shows the new version in orange when there is
one. Nothing is ever installed without a touch. -
The settings are TigerScale's list: a 72 px header that is the back
button as a whole (a large chevron, the title in white, a hairline), rows
84 px tall with 40 px icons drawn from shapes and each setting's current
value on the right (printers on, the Wi-Fi network, the account, the
language, the version - "1.3.2 > 2.0.0" in orange when one is out), a
scrollbar always shown, and the up / down rail on the right, greyed at its
ends. The list keeps its place when a page is opened and closed. Every
settings page and the account pages take the same header. -
The rest follows the same grammar: the Wi-Fi list is TigerScale's (the
header "Wi-Fi (2.4 GHz)" with its rescan button, tall rows with the signal on
the left and a padlock on a secured network, the scrollbar and the rail); the
home's top line is the title in white and bare icons (Wi-Fi, account, a large
gear); the full view's back button is a bare chevron; the keyboard page's
chevron is the large one. No grey boxes around icons any more. -
The update page is TigerScale's: it checks as it opens, a green badge
when up to date, an amber banner and Install when not, a confirmation, then
the same progress ring (navy track, green fill, green arrow, the percentage,
"Do not power off"). -
A version that does not start is not offered again. After the roll-back,
the slot it was written to stays marked invalid; its version is read at every
start and skipped, even while the manifest still names it. -
The update is checked before anything is switched. The manifest and the
image are fetched over TLS verified against the certificate bundle; the image
must hash to the manifest's SHA-256, carry this firmware's name (another
product's image is refused) and the version announced. A new version boots on
probation: if it restarts within its first minute, the previous one comes back
by itself. -
Web installer at https://tigertag-project.github.io/Tiger-Touch/, in the
eleven languages of the device (Chrome or Edge on a computer). It keeps the
saved Wi-Fi and account unless "Erase device" is ticked. -
Releases. A
vX.Y.Ztag builds the firmware, publishes the images with
their SHA-256 sums and the changelog section as notes, then deploys the
installer and the OTA manifest, and reads the published site back to prove it
serves the release. -
docs/INSTALL.md: replacing the BigTreeTech firmware step by step - the
CH340K driver macOS lacks and how to allow it, a copy of the BigTreeTech
firmware first, "Erase device" on that first install, building with Docker or
ESP-IDF on a Mac, and going back.scripts/backup-flash.shtakes that copy in
checked 128 KB pieces, because a single 16 MB read over the CH340K seldom
reaches the end. -
LICENSE(MIT),CONTRIBUTING.md,CODE_OF_CONDUCT.md, issue and pull
request templates,llms.txt, anddocs/OTA.md. -
Anycubic printers in cloud mode, which were listed as not supported:
one session for every cloud Anycubic of the account, signed in the way the
slicer does with what Tiger Studio writes on the printer, as TigerSpool
does. Seen idle on a Kobra X with its box. No pause, stop or light over the
cloud yet, and no temperature at rest: the broker closes the session on a
request it does not allow, so each will be added once seen allowed
(docs/PRINTER-COMPATIBILITY.md). -
Klipper and OctoPrint printers, Tiger Studio Manager's two new printer
plugins: any Klipper printer through Moonraker (state, progress, layers,
temperatures up to four extruders and a chamber, its light, Happy Hare or AFC
lanes) and any printer behind OctoPrint (state, progress, temperatures), with
pause, resume and stop, and the printer's own message on an error. Seen
against Studio's mocks in every state, not yet on a real printer.
Their logos are Studio's. -
A Prusa whose account holds a legacy
apiKeyis reached with it, as in
Studio, and the printer's own message is shown when it says something is
wrong.
Changed
- Every LAN printer takes an address with a port (
host:portin the
account'sip), as Klipper and OctoPrint already did: Bambu Lab, Creality,
Elegoo, FlashForge, Snapmaker, Anycubic and Prusa used to add their own port
to it and build an address that could not work. A bare address keeps the
brand's port. One helper,net/addr.h, does the split for all of them. - The README shows the printers and compares the firmwares: a line-up of
popular printers, the brands' marks in one SVG, a table of Tiger Touch against
the Panda Touch's and the K-Touch's own firmwares (brands, protocols, how many
printers, what is sent), and the TigerSystem products with their pictures. - The README is rewritten for people who own the screen: the Panda Touch and
the K-Touch, the brands, the clouds, screenshots of the cards, the list and the
full views, a picture of the screen running Tiger Touch, and the questions
people ask. The screen is a 5" panel, not a 7" one as the documents said. - The settings' printers page no longer shows each printer's share of the
load beside its switch: the gauge above it says the total. - The device starts in seconds: a device that is set up shows its printers
a second after the start-up picture, with the printers of the last read, and
connects the Wi-Fi, the account and the printers behind them instead of
waiting on "Connecting...", "Reading your printers" pages. On the bench, ten
printers: on screen at 2.5 s instead of about 26, all connected at 22 s
instead of 46. The start-up picture lasts one second instead of three and a
half, the clock is no longer waited for, and reading the account no longer
holds the printers back. The first start keeps its step-by-step setup. - Scrolling is about two and a half times smoother: LVGL draws into the
panel's hidden frame buffer and the panel switches to it on its refresh,
instead of drawing in 16-line strips and copying them. The home screen's
cards scroll at about 14 frames a second instead of 6, the lists at about 18,
and the panel never shows a picture half drawn. Changing the screen's orientation now restarts the device.
The swap waits for the panel to really leave a buffer, not for its vsync:
with bounce buffers the panel takes the new picture a few lines before the
vsync, and a swap that fell in that gap let LVGL draw into the picture still
being sent, a brief flash now and then while scrolling. - The Wi-Fi icon shows a connection in progress the way macOS does: its
arcs light up one after the other from the bottom, in white, while the device
connects or re-establishes a lost link. It turns red only on a failure (the
attempts failed, or a lost link stayed down for a minute), no longer for
every second spent connecting. - Tiger Touch presents itself as what it is: a new firmware, for the screen
BIGTREETECH sells as the Panda Touch and as the K-Touch (one board, two
BIGTREETECH firmwares), in the README, the documentation and the web
installer, in every language. Its Bambu Lab sessions identify as
tigertouch-…(they saidtigerpanda-…). - The printer load budget works as TigerSpool's
(docs/CONNECTION-BUDGET.md): 144 load slots,
1 slot = 1 KB of internal RAM, and each printer priced at the worst its
connection was measured to cost. Every Bambu Lab in cloud mode shares one
session, so a second one costs 4 slots instead of 18. At most ten printers
at once; if the internal RAM stays under 32 KB for three seconds, the last
printer switched on is switched off rather than the device running out. - Twice the internal RAM: about 200 KB free with no printer open instead
of 95 KB, and 88 KB with ten printers open where five used to leave 18 KB. The screen's two render buffers, the larger network buffers, MQTT's
outbox, the Wi-Fi and lwIP code and the account's printer list moved out of
internal RAM. - The screen has a core of its own: everything that waits on the network
runs on the other one, so printer traffic no longer slows drawing. - The device joins the strongest access point of the network, not the
first one it hears: on a mesh it sat at -79 dBm on a far access point while
next to another at -48 dBm. Every reconnection looks again. - The network answers about 25 times faster: Wi-Fi power saving is off
(the device is on mains power). Asleep between the router's beacons, every
packet waited: on the bench, pings to the device averaged 740 ms with peaks
of 2 s, and 28 ms with peaks under 100 ms once it stayed awake. The account,
which needed several tries and minutes on a weak signal, reads in seconds. - A printer brand that does not answer keeps its printers on the list
instead of making them disappear (and their switches with them) until the
next read, and it is asked again every 30 seconds until it answers. A read
where every brand failed no longer says "Add a printer in Tiger Studio". - The same printer written twice in the account is shown once, from the
document updated last, as on TigerSpool: an A1 had a LAN and an older
document at the same address. - Up to 20 network sockets instead of 10: with nine printers the device ran
out of them. - A Bambu Lab printer in LAN mode is found at the address Tiger Studio writes
for it (broker); such printers showed "unknown address". Seen idle on an
X1C and an A1. - An A1, A1 mini, P1P or P1S shows "--" for the chamber, which it has no
sensor for (an A1 showed 5 degrees). - The full view of a printer that is not reached shows "--", as its card
does, instead of the last file, progress and temperatures it gave; its ring
takes the card's colours (amber paused, red on a fault); a long name stays on
one line instead of covering the message under it; "Layer 0 / 0" is no
longer shown for a printer that does not count layers. - A material name too long for its slot ends in "..." on one line instead of
running under the slot, and a printer with no chamber sensor shows "--" for
it on the full view as on its card. - The home screen tells the truth when the account cannot be read at
start-up (a slow network): "Your printers could not be read yet. Trying
again." instead of "Add a printer in Tiger Studio", and the read is tried
again every 30 seconds until it works. - The brand is written as people write it on the linked-account and printers
pages ("Bambu Lab", not "bambulab"). docs/PRINTER-COMPATIBILITY.md: a Snapmaker U1 (four nozzles), a
FlashForge AD5X and a Creality Ender-3 V4 with its CFS were seen idle on this
firmware.- The flash holds two 6 MB application slots instead of one 4 MB slot
(firmware/partitions.csv). The NVS keeps its place and size, so a board
moved to this version over USB keeps its Wi-Fi and account; from here on the
table is frozen. - The settings menu has eight rows, a little shorter each.
scripts/flash.shwrites at 115200 baud instead of 460800 (BAUD=to
change it): through the screen's CH340K, 230400 and 460800 lost bytes on
a Mac with three different cables.- Versioning works as in the sibling projects: notes accumulate under
[Unreleased],bump-version.shdates them, a tag publishes them. The
pre-commit check that every commit moves the version is gone. - The web installer names the serial port both ways the screen can show it
(USB-SERIAL CH340, or the ESP32-S3's ownUSB JTAG/serial debug unit).
Update: a Tiger Touch on Wi-Fi offers it in Settings > Update.
Install from scratch: https://tigertag-project.github.io/Tiger-Touch/ (Chrome or Edge on a computer).