CrossPlay

Xteink X4 Pro · Seeed reTerminal Sticky

E-ink is good at waiting.

So is a chess position, a flashcard, a puzzle you are halfway through. The Xteink X4 Pro and the Seeed reTerminal Sticky are cheap e-ink devices, and CrossPoint already makes them good at reading. CrossPlay is firmware that adds everything else, and lets two of them find each other with nothing to configure.

Open firmwareNo app storeNo accountMIT licensed

Click the screen to try it

The shelf

fig 1 · one vocabulary

What a still screen is good at

Reading was never the whole of it.

E-ink holds a page at no power for as long as you need it. So does a chess position, a flashcard, a logic grid, an article you saved to finish. The screen puts up a situation, you think, you decide. A panel that cannot animate is the right one for that, and so far it has been spent on books.

A chess board a few moves in, knight and pawns developed, with the move list below and a BLACK TO MOVE status bar.
Game · plays nearby

Chess

A full engine on the device, or a board between two of them. Pick up exactly where the position was left.

A Connections board part-solved: two solid black bands read HOUSE STYLES with CAPE COD, MISSION, RANCH, TUDOR and JEANS BRANDS with DIESEL, GAP, LUCKY, WRANGLER. Eight word tiles remain below, with STEER selected, and all four mistake dots still unused.
Game · daily

Connections

The daily word grid, set in a serif of its own, with an archive of past boards for when today's is done.

A D&Diagrams nonogram called THE TOMB OF THE SUMMER, most of the way solved: black wall cells form corridors around white floor, birds and a treasure gem sit in rooms, and the row and column clue numbers that are already satisfied are shown inverted.
Game · 64 puzzles

D&Diagrams

A nonogram whose clues are a dungeon. 64 of them, plus a tutorial that is a lesson rather than a level.

A Murdle deduction grid partway through a case: dashes mark eliminated pairings and filled squares mark confirmed ones across the suspect, weapon, place and motive blocks. A key at the foot reads F=FELIX, G=GRETA, U=UMA, K=KARL and so on, above an ACCUSE button.
Game · generated

Murdle

A logic grid you can always finish from the clues alone. Every case is built through the solver, so you never have to guess.

A Sea Salt & Paper hand of ten cards, each showing its colour mark, what its group currently scores, its face, its name and how many exist in the deck. The deck and two discard piles sit above, a selected crab is ringed, and a dashed line reads PAIRS WITH ANOTHER CRAB, THE PAIR DIGS ANY CARD OUT OF A PILE.
Game · plays nearby

Sea Salt

Collect duos and bet on the round’s end. Tap any card and it tells you what it does, so nobody has to remember fourteen rules.

A Yahtzee turn in progress: five dice above a scorecard listing all thirteen boxes for both players, the score each box would take pencilled into the empty ones, a bonus line reading 63 MORE, and a capsule reading ROLL AGAIN, 2 LEFT.
Game · plays nearby

Yahtzee

Every box shows what it would score before you commit to it. Including the Joker rules, which most versions quietly drop.

A Connect Four board part-way through a game: a dithered slab with forty-two holes, outlined and solid discs stacked in the columns, a row of waiting discs above marking every column that will still take one, and each player's remaining discs counted below -- 18 beside a row of solid dots, 18 beside outlined ones -- above a status bar reading YOUR DROP.
Game · plays nearby

Connect Four

Seven columns, one tap each, four in a line to win. The opponent looks seven moves ahead and will not hand you the game.

A game of Checkers a few moves in: dark's men advanced across the dithered squares, corner marks singling out every light piece with a legal move, and two labelled strips under the board -- THEM with twelve solid discs, YOU with twelve outlined -- above a status bar reading YOUR MOVE.
Game · plays nearby

Checkers

English draughts, where taking is compulsory. The board marks every piece that can move, so the rule shows itself instead of leaving you tapping men that will not lift.

A round of FOREHEAD in landscape: the word PORCUPINE across the middle of the panel in very large letters, a black bar along the top edge reading PASS and another along the bottom reading GOT IT, and under the top bar an eight-segment timer bar with four segments filled and four still outlined. A small 5 in the corner is the score so far.
Game · party

Forehead

Hold it against your head, screen out, and everyone else shouts clues. The bottom key is got it, the top key gives up, and the two page keys are the only controls because you cannot see the screen. Seventeen word lists, 2722 of them.

A revealed TRIVIA question in portrait: a black bar across the top reading TRIVIA on the left and ANSWER on the right, five small difficulty pips below it with the first filled, then the clue set large in a reading serif across four centred lines -- the letter in Hawthorne's The Scarlet Letter was this one, initially standing for the wearer's perceived sin. Under a hairline near the foot sits the answer, a single large A, and along the bottom a wide black NEXT button beside a narrower outlined FLAG.
Game · party

Trivia

Fifty thousand questions off forty-two years of Jeopardy. One goes on the panel and nothing else: read it out, let the table argue, turn it over. Solo play is scored.

A round of WAVELENGTH in portrait: the words POINTY ANIMAL across the top and ROUND ANIMAL across the bottom, and between them a vertical strip of twenty rungs with every fifth one longer and numbered 20, 15, 10 and 5. A heavy black bar lies across the strip just below 15, and to its right a very large 12 is labelled YOUR GUESS, with TAP ABOVE OR BELOW under a rule beneath it. A black bar along the bottom edge reads HOLD TO LOCK.
Game · party

Wavelength

One of you sees a hidden number on the strip and says a single clue that sits exactly there. Everyone else argues and moves the marker, then calls which side they missed on. The device lies flat and anyone can touch it, because the board belongs to the table and only the target is secret.

A Knucklebones match in progress: two three-by-three grids of dice facing each other, the opponent's on a dotted grey ground above with column scores of 2 and 1 beneath it, the player's below with corner brackets marking the three columns a die can go in and a 6 already banked. Between them sits the die just rolled, showing a three, flanked by the named totals THEM 3 and YOU 6. A black bar along the bottom reads YOUR ROLL.
Game · plays nearby

Knucklebones

Roll a die, drop it in a column. Matching dice multiply, and every die you place destroys its twins in the column facing it.

A nine-by-nine game of Go part way through: a ruled board inside a heavy border, black and white stones on the line crossings, a small ring marking the stone just played. One crossing near the middle holds a dithered grey stone inside four corner brackets, aimed but not yet placed. Above the board an outlined band reads THEM and WHITE 1 TAKEN; below it a black band reads YOU and BLACK 0 TAKEN, filled because it is that side’s turn. A PASS button runs along the bottom.
Game · plays nearby

Go

Nine by nine, which is the size that finishes on one train journey, or thirteen by thirteen when you have longer. A stone is aimed before it is placed, so the board can warn you before you fill your own eye. Two passes and it counts for you, and you settle which stones are dead by tapping them.

A Minesweeper board part way through: an eight-by-ten field running the full width of the panel, bounded by black bars above and below, dug cells white with counts of one and two, undug cells a dotted grey. Below the field a line reads 10 OF 10 beside a flag mark, and a DIG button says what a tap will do.
Game

Minesweeper

Tap to dig, hold to flag. Your first dig is always safe and always opens a space, because the mines are laid after it.

An Easy Sudoku just dealt: a nine-by-nine grid whose twenty-eight given digits sit on dithered grey squares and whose empty cells are white, box borders drawn heavier than cell borders, and the cursor's corner brackets on one given. Below the grid a three-by-three number pad with 1 selected, and beside it 53 LEFT, an UNDO button and a HINT button.
Game

Sudoku

Four difficulties, and the difficulty is measured rather than guessed: every puzzle is graded by the techniques a human needs to finish it, so Hard is hard for the same reason you would say so.

A Picross board part way through a ten-by-ten: run-length clues stacked above the columns and beside the rows, the finished lines' numbers struck through. Filled cells are solid black, a few white cells wear a thin X where the player has ruled them out, and a few others carry a small asterisk on plain white, each one a wrong fill the game has recorded. Below the board a line reads MISTAKES 12 and a FILL / MARK toggle says what a tap will do.
Game

Picross

Fill the cells the row and column clues describe and a picture appears. Every puzzle has exactly one answer and is solvable by reasoning a line at a time, never a guess; a wrong fill locks in as a mistake, the classic rule.

A Toy Battle board at the start of a game: fifteen bases drawn as grey rounded squares joined by black paths, an H.Q. marked H at the bottom and E at the top, four bases wearing a small badge to mark a special rule. Small black dots between the paths are the medals each enclosed region pays. Below the board a rack holds the three troops you were dealt, and a DRAW 2 button sits beside both players' counts.
Game · plays nearby

Toy Battle

Nine boards of bases joined by paths. Hold the ones that fence a region and it pays you its medals, but every troop has to trace back to your H.Q. Solo or against someone opposite you.

A Jaipur hand in progress: a line reading THEY TOOK A SILVER above the score SEALS 0-0, YOU 5, THEM 0, DECK 34. The market shows five goods, the token rows their values, and the player holds a diamond and five camels against their opponent's six cards.
Game · plays nearby

Jaipur

The two-player trading game, against an opponent that only ever sees what you see, or against someone sitting opposite you.

A Battleship game in progress: a line reading THEY MISSED AT H9, the opponent's grid marked with five misses and one solid hit, your own fleet on a small map below showing where they have fired, and a TAP A TARGET prompt.
Game · plays nearby

Battleship

Lay out a fleet, then hunt someone else's. The game PLAY NEARBY was built for, and the reason the layer exists.

An Insider role handed to one player: a header reading PASS IT ON, 1 OF 8, a scroll icon, the role MASTER, the line THE WORD IS BUFFALO, the instruction ANSWER YES OR NO. NOTHING ELSE, and a PASS TO PLAYER 2 button.
Game · one device, a table

Insider

A party game for up to eight people and a single device that goes round the table. No second device needed, and no phones.

A Klondike game in progress in landscape: the ace of spades has gone up to a foundation, the waste pile shows the five and ten of clubs and the queen of clubs, seven tableau columns hold face-down and face-up cards, and one column is outlined as selected.
Game · landscape

Solitaire

Klondike, turned sideways because that is the shape of a tableau. Your last sixteen deals are drawn from your own record.

A Hearts trick in landscape: a rail of four seats down the left with YOU on 14 and a +14 badge, the queen of spades framed as the winning card in a diamond of four played cards, the line YOU TAKE IT, 14 POINTS, the state HEARTS BROKEN and QUEEN SEEN, and nine cards fanned along the bottom.
Game · landscape

Hearts

Duck the tricks. Every heart you take costs one and the queen of spades costs thirteen, so the lowest score wins. Three opponents who count what has gone, read who is void, and will shoot the moon if you let them. A card the rules will not take is greyed before you touch it.

A Study flashcard with the answer shown: the character 了, its pinyin le, the meaning "indicates a completed or finished action", an example sentence with translation, a line reading SEEN 6 LAPSED 0 NOW 21d, and four grading buttons -- AGAIN 10m, HARD 1.3mo, GOOD 2.5mo, EASY 6.2mo.
App · spaced repetition

Study

Your own Anki decks with the FSRS scheduler, offline. Reviews you do here go back into Anki afterwards, through the same page that put the deck on the card. Put your deck on it ›

The Hacker News front page on the device: story titles set in a reading serif with point scores beside them, the first row inverted as the selection.
App · reads the web

Hacker News

The front page in a reading serif, with articles pulled down and kept on the card so a saved one is still there with the radio off.

An xkcd comic rendered on the device in one-bit black and white, captioned #3281 Antiques Roadshow.
App · the whole archive

xkcd

The archive packed onto the SD card and drawn one to one, with new strips fetched as they land. A comic is line art, which is exactly what this panel is best at.

The Get Books catalog browser showing Project Gutenberg's Popular list on the device: Pride and Prejudice selected at the top on a dithered band, then Moby Dick; Or, The Whale, Crime and Punishment, The Odyssey, The Secret of Chimneys, A Room with a View, The Mysteries of Udolpho, Romeo and Juliet, The Adventures of Sherlock Holmes and Carmen, each with a folder mark and a chevron, and a scrollbar down the right edge.
App · books over Wi-Fi

Get Books

Any OPDS catalog, browsed and downloaded on the device with no computer in the middle. Two are set up already: Project Gutenberg, which you browse, and a search-only one that opens straight on the keyboard. Anything else that speaks OPDS is a URL away.

The Instapaper queue on the device: four saved articles, each with its title on one line and its reading time and source below -- Notes on building a compiler at 8 min from jamiebrandon.net selected on a black band, then The case for reading on paper at 4 min from newyorker.com marked DONE, The long slow death of the RSS reader at 14 min from arstechnica.com marked 42 per cent, and How the ESP32-S3 draws to an e-ink panel at 6 min from hackaday.com. A SYNC button sits across the bottom.
App · read later

Instapaper

Your unread queue, as text on the card, so it reads with the radio off. Where you got to syncs back, and ARCHIVE puts an article away everywhere. It cannot delete anything: that endpoint is not wired up at all.

The Wallpapers gallery on the device: a banner reading WALLPAPERS 1 / 6 with a CHOOSE button, the line Tap one to set your sleep screen, and a grid of four tiles -- an Add wallpaper placeholder marked with a plus, then Bauhaus, Bulge and Celestial Chart drawn as one-bit patterns -- above six page dots.
App · sleep screen

Wallpapers

Twenty-one patterns the device fetches over Wi-Fi, about a megabyte for the set, and one tap sets any of them as the sleep screen. Or bring your own: turn a picture into a wallpaper ›

The Live screen on the device: a black LIVE banner, the code 010 747 in large digits, a rule, the address crossplay.ma-r-s.com/live/, the lines Type this code on your phone to send pictures and Waiting for a phone, a QR code beneath, and BACK RETURNS at the foot.
App · a note from anywhere

Live

Leave a handwritten note on a reader sitting on somebody’s fridge, from your phone, from anywhere. It shows six digits once; read them down the telephone and whoever has them can draw, write or send a picture to that screen. The reader sleeps the rest of the time and wakes on its own schedule to look, so a message you send tonight is there in the morning. Send one ›

A Wikipedia article on the device: a black bar with a back arrow, the title Mir Sayyid Ali and a contents button, then the article set in a reading serif with links underlined, a Family heading partway down, and a footer reading Family, 1 of 15, above a progress bar.
App · the whole encyclopedia

Wikipedia

English Wikipedia on the SD card, read with the radio off. Seven million articles if you fill the card from a computer, or a smaller essentials pack over the cable. Search it, or open a random one and see where it goes. Put it on the card ›

The Calculator on the device: an inked banner reading CALCULATOR, the result 546.875 set large above a rule, then twenty square keys four across -- AC, DEL, per cent and divide along the top, the digits below them, and the operator column down the right in a heavier outline with a filled equals key in the corner.
App · arithmetic

Calculator

Keys the size of a thumb, and arithmetic that is actually decimal: 0.1 + 0.2 − 0.3 is zero here, the way it is on a Casio and is not on most phones. Ten digits, with hidden guard digits so a third times three comes back as one.

Swipe for the rest

Inherited from CrossPoint

And it is still a reader.

Untouched. CrossPlay adds a shelf beside the library and never gets in its way, and every CrossPoint release lands here within the week.

The EPUB reader showing justified body text from a novel, with a chapter marker and a percentage read in the footer.

Play nearby

fig 2 · no setup

Two devices, one table

It just says play nearby.

Put two of them next to each other and they find one another. There is no pairing screen, no room code, no account, no router and no internet. The entire surface of it is one row on a menu.

They do not have to be the same device. An X4 Pro and a reTerminal Sticky play each other in either direction, which is the pair this was checked on.

The measure for this was the DS: you sat down next to someone and it worked, and nothing about the experience ever mentioned a network. If a person ever has to know how it connects, that is a bug.

A screen headed LOOKING FOR A PLAYER with a radio icon. Two seats are listed: the first shows a drawn face beside YOU and the word READY, the second shows a blank head beside four dashes and the word LOOKING.
1 · Someone taps play nearby
A chess game in progress on the first device: knights developed, a move list reading 1. d4 Nc6, 2. Nf3 Nb4, a drawn face in the corner and a status bar reading YOUR MOVE.
2 · Your board, mid-game
The same game on the second device, seen from the other side of the board with the pieces mirrored, the same move list, a different drawn face and a status bar reading SLICK'S MOVE.
3 · Their board, from their side

Everyone is a face and three words.

A device names itself with three words, and the face beside it is drawn from that name: hair, eyes, mouth, fourteen options apiece. Nothing is stored and nothing is sent. The other device rebuilds your face from the name its radio already carried, so it can never arrive stale, and the person opposite you is Bald rather than a MAC address.

Nine games use it today, from Chess to Battleship to Toy Battle. It is a layer rather than a feature, so the next game gets it for free.

Get it

fig 3 · your device, your rules

Open firmware

Nothing here asks permission.

No store, no review, no account, no subscription. A binary you flash and source you can read.

Install it from this page

Chrome or Edge, on a computer. Plug the device in and wake it.

Which device

Your books stay.

What it changes
  • Only the Xteink X4 Pro and the Seeed reTerminal Sticky. For any other device, CrossPoint upstream is the right answer.
  • After this, no more cables: Settings → Check for updates does the rest over Wi-Fi.
  • Flashing stock CrossPoint over the top returns the device exactly to where it was.
Or install it by hand
  1. Download your device's full image from the releases page: crossplay-<version>-x4pro-full.bin or crossplay-<version>-sticky-full.bin. Each is the whole firmware, bootloader and partition table included, so you do not need to have installed CrossPoint first. The firmware refuses an image built for the other board, so the worst a mixed-up download costs is a retry.
  2. Flash it over USB. You need esptool, which is one pip install esptool on Windows, macOS or Linux alike. With the device plugged in (shown for the X4 Pro; swap in the sticky filename on a Sticky):
    esptool.py --chip esp32s3 --baud 921600 write_flash 0x0 crossplay-<version>-x4pro-full.bin
  3. Updating an install you already have uses the app-only file instead -- firmware.bin for the X4 Pro, firmware-sticky.bin for the Sticky -- over Wi-Fi or from the SD card. The -full.bin is for USB only: handing it to the updater writes a bootloader into a slot meant for the application.
The device Home screen: the cover of Alice's Adventures in Wonderland above menu rows reading Browse Files, Recent Books, File Transfer, Settings, Games and Apps.
Games and Apps, beside the library

Tell CrossPlay what happened

Say it however it comes out. No account, under a minute.