Skip to content
MCU Atlas
ESP32ARDUINOSTM32ESP32-S3STM32F7

Jet Studio: build an Arduino Nano ESP32 game player and make games for it in a Godot-style editor

Wire an Arduino Nano ESP32 to a 2.8in ILI9341 screen and a couple of buttons, then make 2D and 3D games for it in Jet Studio, a free Godot-style editor that flashes them over USB.

Difficulty:IntermediateSource available

What it is

A homemade game player (Arduino Nano ESP32, 2.8in screen, buttons) plus a Godot-style editor that makes and flashes 2D and 3D games for it.

How hard

Intermediate: about ten jumper wires and no soldering on a breadboard, but the editor needs a Linux PC and you set up the board's first upload by hand.

Key Facts

  • Tested hardware: Arduino Nano ESP32 + ILI9341 320×240, and ST Nucleo-F746ZG + ILI9341 (SPI at 54 MHz)
  • Also supported: ESP32-S3-DevKitC-1 (N8R8, N16R8, N8R2), Nucleo-F767ZI and F722ZE, and the WeAct Black Pill F411CE for small scenes
  • Other displays: ST7796 480×320, ST7789, GC9A01 round and ST7735S. The README says all combinations compile; only the two ILI9341 builds are tested on hardware
  • Buttons go between a board pin and GND, mapped in the editor's Input Map
  • Author's figures: 2D shooter about 62 fps on the Nano, 83 fps on the Nucleo-F746ZG. The Nano measurements were taken without a display connected
  • Editor: Linux x86_64 only (developed on Ubuntu 24.04). Prototype 0.6.0, MIT licence. No audio yet

About This Project

The hardware is simple: an Arduino Nano ESP32 (or an ST Nucleo-F746ZG), a 320×240 ILI9341 SPI screen on jumper wires and a few push buttons wired from pins to ground. Jet Studio, by Federico Fausto Santoro (@fedyfausto), is the software side: a desktop game editor that looks and works like Godot, with a scene tree, inspector, 2D and 3D views, arcade physics, animation, particles and JetScript, a language with GDScript syntax. You press Play to test a game on the PC, or Build/Flash to put it on the board, and a device emulator shows how it will look on the small screen first. The author reports a 2D shooter at about 62 fps on the Nano and 83 fps on the Nucleo, and an OutRun-style racer at about 60 fps on the Nano. Two cautions: the editor runs on Linux x86_64 only for now, and the author says the Nano speed figures were measured without a display connected, so the image on a real panel and the physical buttons are still being checked. There's no audio yet. Hackaday featured it on November 1, 2026.

Source & Attribution

Source: GitHub
Also from: HackadayYouTube
License: MIT
Last verified: 11/2/2026
Jet Studio: build an Arduino Nano ESP32 game player and make games for it in a Godot-style editor

Illustration

How to Build It
Wire an ILI9341 screen and two buttons to an Arduino Nano ESP32, install Jet Studio on a Linux PC, then build a game and flash it over USB.

Parts Needed

Steps

  1. 1

    Wire the screen

    On the Nano ESP32: SCK to D13, MOSI to D11, CS to D10, DC to D6, RESET to D9, the backlight (LED) to 3V3, plus power and ground. Leave MISO unconnected. The Nucleo uses its own SPI1 pins; see the README.

  2. 2

    Add buttons

    Wire each button between a free pin and GND. You choose which pin drives which action later, in the editor's Input Map.

  3. 3

    Install Jet Studio

    On a Linux x86_64 PC, install the packages the README lists, then build the editor with its setup script and start it with ./jet-studio run. It opens an example project.

  4. 4

    Set the hardware

    In Project Settings > Hardware pick your board, display, orientation and pins. The game resolution follows the screen, and the device emulator shows how the board will draw it.

  5. 5

    First upload

    The Nano's first upload from the Arduino bootloader needs ROM mode, which the README's board_3d notes describe. After that, Build/Flash uploads over USB by itself.

  6. 6

    Make and flash a game

    Edit a scene and its JetScript, press F5 to test on the PC, then Build/Flash. Debug builds show print output, FPS and memory in the Serial panel. The author notes the image on a real panel and the physical buttons are still being checked.

Bill of Materials

Parts list

9 parts · 4 linked

Heads up: some Buy links are affiliate links. If you buy through one, MCU Atlas may earn a small commission at no extra cost to you. It never changes which parts we list. How this works

No verified link — check the original project
No verified link — check the original project
No verified link — check the original project
No verified link — check the original project
No verified link — check the original project

Not included: A Linux x86_64 PC for the editor, Other supported screens (ST7796, ST7789, GC9A01, ST7735S) are untested on hardware

Download CSV

Related Projects

Raspberry Pico Pocket Gamer: handheld console with touch LCD
Illustration
RASPBERRY PI PICORP2040
A pocket game console on the Raspberry Pi Pico with a 3.2in ILI9341 touchscreen and 14 built-in games.
Intermediate·Code
3 parts listed
Tinytron: tiny ESP32-S3 retro TV desk toy
Illustration
ESP32ESP32-S3
A pocket mini TV that plays MJPEG video from microSD or Wi-Fi on Waveshare's ESP32-S3 1.69in board.
Beginner·Code
4 parts listed
PicoDVI: bit-banged DVI/HDMI video from a Raspberry Pi Pico
Illustration
RASPBERRY PI PICORP2040
Generates DVI (HDMI) video signals from a bare RP2040 Pico using the PIO state machines – no video chip needed.
Advanced·Code
2 parts listed