Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


A multi-device display for showing interactive data, such as photos, weather information, calendar appointments, and more.

CellWall is my project to repurpose a batch of old hand-me-down cell phones into a useful display in my apartment. It uses ADB to let each phone connect to a server and receive data about what to show.

Putting the hardware together

The hardware boils down to a bunch of cell phones stuck onto a plank of wood, with USB cables connecting them to a server. A detailed run-through is coming soon.

Parts list

Wood plank (the "Wall")

Mounting and connecting the phones (the "Cell"s)

Note that most of these links are affiliate links for Amazon. As an Amazon Associate I earn from qualifying purchases. Using these links helps out the project!

Using the software

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.


  • Node.js 16 or greater
  • pnpm
  • Android Studio 4.1 or greater
  • Android Debug Bridge

Installing dependencies

Install Node dependencies for the server:

pnpm install

Install Gradle dependencies for the client by opening the ./android folder as an Android Studio project and syncing Gradle.

Alternatively, from the command line:

cd ./android
gradlew build


Test locally in development environment by spinning up two servers: client & server.

pnpm --filter server run dev
pnpm --filter client run dev


The server communicates with phones over ADB. ADB should be installed and the phones should be in debug mode. Check that all phones appear when running adb devices.

Run the server by compiling the TypeScript code and launching it with node:

pnpm -r run build
pnpm -w start

A production build is available on the pi-deploy branch. It can be started by running:

pnpm install --frozen-lockfile --prod
pnpm -w start

Environment variables

Some paths and API keys are set via environment variables. The project uses dotenv, so an .env file will automatically be loaded by the server.

See env.ts for a list of environment variables.

Built with


A multi-device display for showing interactive data, such as photos, weather information, calendar appointments, and more.







No packages published