Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix Now×
Skip to content
VGSources
Blog

Arduino Pokéball: How the Real Pokémon GO Project Worked

The Arduino Pokéball was a real 2016 Arduino 101 project that used an IMU and Bluetooth Low Energy to send throwing events to an Android phone running Pokémon GO. Here is how it worked, what the original code requires, and which modern rebuild options make sense.
Length8 min Posted Quest giverVGSources Team
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Arduino Pokéball was a real 2016 maker project, not an official Pokémon accessory. It used an Arduino 101 to detect a throwing motion, sent that event over Bluetooth Low Energy to an Android phone, and connected the phone-side workflow to Pokémon GO. The concept is well documented, but the original hardware and Android software stack are dated, so it should be treated today as a historical reproduction or a starting point for a modern redesign—not a guaranteed plug-and-play build.

What the Arduino Pokéball actually does

The original project turns a physical Pokéball-shaped enclosure into a motion-triggered controller. Instead of performing the entire interaction with a finger on the phone screen, the user throws the ball. The Arduino senses the movement and transmits an event to the Android device.

As an Amazon Associate I earn from qualifying purchases.

Throwing motion
      ↓
Arduino 101 IMU
      ↓
Shock callback
      ↓
BLE characteristic
      ↓
Android application / Tasker
      ↓
Pokémon GO interaction

It is not a standalone Pokédex, an independent Pokémon-catching device, or official Nintendo, Pokémon, or Pokémon GO hardware. The phrase “Arduino Pokéball” is also used for unrelated projects featuring LEDs, buttons, speakers, vibration motors, or servo-powered opening mechanisms. Those are Pokéball props, but they do not necessarily use the original Pokémon GO design.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The project was associated with Arduino Sweden interaction designer Marcus Johansson. Arduino published it on August 4, 2016, and the corresponding Arduino Project Hub entry is dated August 9, 2016.

#1 Best Overall
ELEGOO UNO R3 Project Super Starter Kit with PDF Tutorial for Beginners
  • TURN CODE INTO REAL-WORLD RESULTS — Follow 22+ guided lessons to make LEDs blink, read temperature and distance, move servo and stepper motors, control an LCD and respond to joystick or IR input; ideal for a family weekend build, homeschool unit, coding club or STEM classroom
  • MORE PROJECT VARIETY IN ONE ORGANIZED KIT — Includes the UNO R3 controller, LCD1602 with pre-soldered header, breadboard power module, ultrasonic and DHT11 sensors, joystick, IR receiver and remote, SG90 servo, stepper motor, relay, DC motor, fan blade, displays, LEDs, buttons, resistors and jumper wires
  • START WITHOUT SOLDERING — Plug-in modules, a solderless breadboard and the pre-soldered LCD help beginners focus on wiring, code and testing; the illustrated component list makes it easier to find each part and move from one lesson to the next
  • LEARN THE LOGIC, THEN CREATE YOUR OWN — Use Arduino IDE and the included example code to understand digital input and output, analog sensing, timing, motor control and display functions, then change thresholds, speeds and sequences for alarms, environmental monitors, reaction games and motion projects
  • CLEAR SETUP SUPPORT FOR FIRST-TIME BUILDERS — Download the latest tutorial and code, select the UNO board and correct computer port, check component polarity and breadboard rows, and keep power-module input at 9V or below; younger learners should work with an experienced adult

Original hardware and software

Part Role
Arduino 101 Microcontroller, inertial measurement unit, and BLE radio
Android device Receives the BLE event and runs the phone-side integration
9V battery Listed power source for the original build
9V-to-barrel-jack connector Connects the battery to the board
Pokémon GO Target game
Tasker Part of the documented Android automation workflow
Custom enclosure The prototype used MDF; a 3D-printed exterior later housed the electronics

The Project Hub parts list is the best reference for the documented build, but it is not a complete modern bill of materials. It also does not establish that the Arduino 101, its supporting libraries, or the original Pokémon GO workflow remain readily available and compatible today.

How the Arduino firmware works

The original sketch is only 107 lines long, but it depends heavily on Arduino 101-specific software. Its key components are CurieBLE.h, EducationShield.h, the Arduino 101 IMU API, and the board’s BLE implementation.

The firmware creates an IMU and BLE peripheral, then defines a custom BLE service and characteristic:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#include <CurieBLE.h>
#include <EducationShield.h>

IMU imu;
BLEPeripheral blePeripheral;

BLEService ledService("19B10000-E8F2-537E-4F6C-D104768A1214");

BLECharCharacteristic switchChar(
  "19B10001-E8F2-537E-4F6C-D104768A1214",
  BLERead | BLEWrite
);

During setup, the sketch starts the IMU, enables shock detection, and registers a callback. It advertises the BLE device under the local name APKM:

imu.begin();
imu.detectShock();
imu.attachCallback(shockCallback);

blePeripheral.setLocalName("APKM");
blePeripheral.setAdvertisedServiceUuid(ledService.uuid());
blePeripheral.addAttribute(ledService);
blePeripheral.addAttribute(switchChar);
switchChar.setValue(0);
blePeripheral.begin();

The callback itself is deliberately simple:

static void shockCallback(void)
{
  val++;
}

Every detected shock increments a counter. The main loop polls the BLE peripheral, notices when the counter changes, writes the value to the characteristic, and waits 350 milliseconds:

Rank #2
ELEGOO Mega 2560 R3 Project The Most Complete Starter Kit with Tutorial
  • 35+ Guided Electronics Projects: Progress from LEDs and buttons to RFID access, real-time clocks, motion and distance sensing, environmental monitoring, motor control and interactive displays for STEM learning, coding clubs and maker projects
  • More I/O and Memory for Larger Builds: The MEGA 2560 R3 provides 54 digital I/O pins, including 15 PWM outputs, 16 analog inputs, 4 hardware serial ports and 256 KB flash for projects that combine more sensors, controls and displays
  • 200+ Components for Prototyping: Includes LCD1602, RC522 RFID, RTC, DHT11, HC-SR501 PIR, ultrasonic and water-level sensors, GY-521, MAX7219, keypad, joystick, rotary encoder, relay, SG90 servo, stepper motor, DC motor, breadboard and more
  • Learn, Modify and Create: Follow 35+ guided lessons with example code, then adjust sensor thresholds, timing, display text, motor behavior and control logic to turn structured exercises into access systems, monitors, alarms and interactive projects
  • Organized for Repeatable Learning: Pre-soldered modules, a solderless breadboard, storage case and small-parts box reduce setup time and keep sensors, LEDs, ICs, wires and other components easy to find between projects
blePeripheral.poll();

if (oldval != val) {
  dir = val;
}

switchChar.setValue(dir);
oldval = val;

delay(350);

This is not a computer-vision system or a sophisticated throw classifier. It is a motion-triggered BLE event transmitter. The phone-side software is responsible for receiving and interpreting that event.

The complete firmware is available as ArduinoBall.ino.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The Android and Bluetooth side

The original Project-PKStop repository contains two main pieces: the Arduino firmware and an Android project in android-BluetoothLeGatt-master. The Android application is based on an older Bluetooth GATT sample, and the Project Hub page says that Android Studio is required to install it.

The Android project’s README lists an Android SDK version 23, Android Build Tools 23.0.3, the Android Support Repository, and Gradle. Those requirements describe the period in which the project was built; they are not evidence of a supported modern Android setup.

For debugging or porting, the original identifiers are important:

Rank #3
ELEGOO UNO R3 Project Most Complete Starter Kit, Compatible with Arduino
  • 30+ Guided Electronics Projects: Start with LEDs and build toward LCD1602 displays, RFID access, motion detection, distance sensing, motor control and environmental monitoring for STEM learning, coding clubs, classrooms and hobby projects
  • 200+ Components Across 63 Types: Includes an ELEGOO UNO R3 controller, LCD1602, RC522 RFID, RTC, HC-SR501 PIR sensor, ultrasonic sensor, DHT11, GY-521, MAX7219, keypad, joystick, relay, SG90 servo, stepper motor, breadboard and more
  • Begin Without Soldering: Pre-soldered modules, a solderless breadboard, organized storage case and small-parts box reduce setup time and help beginners move from lesson to lesson while keeping LEDs, ICs, wires and sensors easy to find
  • Learn, Modify and Create: Program the ELEGOO UNO R3 board with Arduino IDE using the included PDF tutorial and example code, then adjust sensor thresholds, timing, display text and motor behavior to turn guided lessons into original projects
  • Flexible Power and Project Setup: Includes a 9 V, 1 A power supply, breadboard power module, 9 V battery and USB cable to support controller, breadboard and module experiments without sourcing basic setup accessories separately
  • Advertised device name: APKM
  • BLE service: 19B10000-E8F2-537E-4F6C-D104768A1214
  • BLE characteristic: 19B10001-E8F2-537E-4F6C-D104768A1214
  • Serial speed: 9600 baud
  • Main-loop delay: 350 milliseconds

A current phone may require different Bluetooth permissions, dependency versions, and background-behavior handling. More importantly, the available sources do not verify that the original Android application, Tasker workflow, or Pokémon GO interaction still works unchanged in 2026.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Can you still build the original version?

If you already own an Arduino 101, a restoration may be possible. Expect to work with old board packages, libraries, and Android tooling, potentially in an isolated or virtualized development environment.

If you are starting from zero, it is a poor first Arduino project. You must solve three separate problems: board-specific IMU firmware, BLE communication, and phone/game integration. A successful upload of the sketch would not by itself produce a working Pokémon GO controller.

For a modern maker, porting the concept is more realistic than copying it. A current BLE-capable board with an IMU could reproduce the sensor and wireless layers, but it would require new firmware and a new Android-side integration. An Uno, Uno R4, or generic Nano should not be expected to compile the original sketch unchanged.

A sensible reproduction workflow

  1. Get the original source. Download or clone Project-PKStop and inspect both the Arduino and Android directories.
  2. Confirm the board. The sketch targets the Arduino 101. Selecting a different Arduino board is not a drop-in substitution.
  3. Test the electronics outside the enclosure. Connect USB, compile in an environment supporting the Arduino 101 libraries, and check serial output at 9600 baud. The sketch reports “Bluetooth device active, waiting for connections…” when the BLE peripheral starts.
  4. Verify BLE independently. Check that the board advertises as APKM and exposes the documented service and characteristic. Confirm that a shock changes the transmitted value.
  5. Build the Android app separately. Import it into Android Studio, but expect SDK, Gradle, signing, dependency, and permission issues. Do not assume that blindly upgrading every dependency will preserve the original behavior.
  6. Test the game interaction as its own compatibility problem. The 2016 demonstration does not verify current Pokémon GO or Tasker behavior.
  7. Build the enclosure last. Secure the battery and board, add strain relief, provide access to power controls, and prevent internal parts from shifting during movement.

Troubleshooting the common failures

Missing Curie or EducationShield libraries

If the IDE cannot find CurieBLE.h, EducationShield.h, or the IMU definitions, first check that the Arduino 101 board is selected and that its board package and libraries are installed. If the original environment cannot be restored, port the three essential functions—motion detection, BLE advertising, and characteristic writes—instead of randomly replacing includes.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
LUIRSAY 5Pcs Nano V3.0 Board ATmega328P/CH340G Chip Microcontroller Kit Compatible with Arduino IDE/PWM/SPI 5V 16M (USB C Port with 5 USB Cables) (5Pcs)
  • Powerful: The Arduino Nano V3.0 Board Microcontroller Built with ATmega328P and CH340 chips instead of FT232, Improved new version CH340G Replace FT232RL, making it ideal for beginners
  • Seamless Compatibility: Fully compatible with Arduino Nano, supporting Arduino IDE, ISP programming and USB download. Works seamlessly with Windows, Mac, and Linux operating systems for a hassle-free experience.
  • Versatile I/O & Compact Design: Features 14 digital I/O pins (6 PWM outputs), 6 analog inputs, a 16MHz quartz oscillator, USB-C power socket, ICSP port, and reset button. Its compact, breadboard-friendly design ensures easy handling and integration.
  • Flexible Power Supply Options: Supports multiple power sources, including USB-C, 6-12V unregulated external power, or 5V regulated external power. The Nano board intelligently switches to the higher voltage source automatically—no jumper selection required.
  • Excellent Communication Capabilities: Designed for seamless communication with PCs and arduino microcontrollers, the Nano board is fully compatible with multiple operating systems and offers stable and reliable performance for a variety of projects.

Android build errors

Gradle and support-library failures are expected risks with an SDK 23-era project. Preserve the original project in an isolated environment where possible. A modernized app should be treated as a port, including a review of Bluetooth permissions and background behavior.

The phone cannot discover the ball

Check that the board is powered and advertising, that the phone has Bluetooth permissions, and that the app is scanning for the original service UUID. Also check whether another phone is already connected and whether a port accidentally changed the device name or UUIDs.

False triggers or missed throws

The original design uses shock detection, so rattling, dropping, or hard impacts can look like throws. False positives can be reduced in a redesign with a cooldown period, threshold tuning, orientation checks, and a deliberate activation gesture. Missed events can result from a loose board mount, unsuitable thresholds, enclosure damping, poor power, or a failed IMU callback.

Power and enclosure faults

The listed 9V battery and barrel connector describe the original project, not a universal recommendation for modern hardware. Check voltage regulation, connector polarity, current draw, short-circuit protection, battery clearance, and mechanical retention. Do not place an unsecured battery inside a throwable shell.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Modern alternatives

1. Restore the original Arduino 101

Choose this route for historical accuracy, source-code study, or retroengineering—especially if you already have the board and are comfortable maintaining legacy software.

Best Value
Arduino Uno REV3 [A000066] - ATmega328P Microcontroller, 16MHz, 14 Digital I/O Pins, 6 Analog Inputs, 32KB Flash, USB Connectivity, Compatible with Arduino IDE for DIY Projects and Prototyping
  • ATmega328P Microcontroller: Powered by the reliable ATmega328P, running at 16 MHz with 32KB of flash memory, 2KB SRAM, and 1KB EEPROM, offering ample resources for a wide range of basic to advanced electronics projects.
  • 14 Digital I/O Pins & 6 Analog Inputs: Features 14 digital I/O pins (6 of which support PWM output) and 6 analog inputs (10-bit resolution), providing flexible options for sensors, motors, and other external components.
  • USB Connectivity for Easy Programming: The built-in USB port allows for direct programming and serial communication, enabling a simple connection to your computer for sketch uploading and debugging through the Arduino IDE.
  • Compatible with Arduino IDE: Full compatibility with the Arduino IDE ensures easy access to a vast array of libraries, code examples, and community-driven projects, making the Uno a great choice for both beginners and experienced makers.
  • Widely Used in Education & Prototyping: The Arduino Uno is a standard in educational environments, widely used for learning and teaching electronics and programming. It's perfect for prototyping, robotics, IoT projects, and more.

2. Redesign the controller

A current BLE-and-IMU board can reproduce the architecture: detect a gesture, send a compact event, and build a new Android application around it. This is technically cleaner than forcing modern hardware to use Arduino 101 libraries, but it is a new project rather than a direct replacement.

3. Build a functional Pokéball prop

If Pokémon GO control is optional, the project becomes much simpler. Add LEDs, a piezo or buzzer, vibration, a button, or a servo latch. Motion can trigger a lighting or sound sequence without depending on a game, old Android code, or Tasker.

4. Make a non-throwing display prop

A mounted or hand-operated prop is safer and easier to test. It can retain the visual design while using a button or concealed switch instead of a shock-triggered action.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Are current Arduino kits useful?

Current kits are useful for a new prop, but neither is documented as a direct replacement for the original Arduino 101 project.

The Arduino Starter Kit R4 includes an UNO R4 WiFi, breadboard, LEDs, buttons, piezo hardware, sensors, wires, and a 9V battery snap connector. It is the broader choice for a beginner who wants to learn electronics and build a custom Pokéball prop. It does not provide the original Arduino 101 software stack.

The Arduino Plug and Make Kit includes an UNO R4 WiFi, movement sensing, pixels, a buzzer, buttons, a knob, distance sensing, and other modular hardware. It is convenient for quickly prototyping motion, light, and sound effects, but its base and modules are designed for accessible bench prototyping rather than a compact impact-resistant ball. No official source cited here confirms Pokémon GO integration or compatibility with the original Android application.

Safety and usage notes

  • Test motion detection with the ball held or moved gently before attempting any throw.
  • Use a soft, lightweight prototype and test only in a clear area.
  • Never throw the device at people, animals, vehicles, or fragile equipment.
  • Secure the battery, board, wiring, and closure against internal movement.
  • Inspect 3D-printed parts for sharp edges and cracks after impact testing.
  • Treat the result as a maker experiment, not an official game accessory.

Conclusion

The Arduino Pokéball was a genuine 2016 Arduino 101 experiment that combined an IMU, BLE, Android software, Tasker, and Pokémon GO. Its most reusable idea is the architecture: a physical gesture becomes a small wireless event. The original sketch and UUIDs remain valuable references, but reproducing the full experience today requires legacy-toolchain work and likely a fresh phone-side implementation. For most new builders, a modern prop with lights, sound, or motion effects is the practical route; for historical reconstruction, the Arduino 101 remains the correct target.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More quests from Patch Notes

  1. How to Set Up a RedM (RDR2) Server in 2026: License Key, txAdmin and server.cfg, Step by StepBlog11min
  2. Best RedM (RDR2) Server Hosting in 2026: Comparing Four Hosts on Slots, Memory and PriceBlog10min
  3. How to Host a Mindustry Server in 2026: server-release.jar, Port 6567 and the Commands That MatterBlog7min
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.