Skip to content

v2.0.0

Choose a tag to compare

@github-actions github-actions released this 16 Oct 10:48
· 61 commits to main since this release

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 by tools/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.Z tag 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.sh takes 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, and docs/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 apiKey is 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:port in the
    account's ip), 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 said tigerpanda-…).
  • 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.sh writes 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.sh dates 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 own USB 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).