Nerf Gun TOLED Scope : Pi Pico 2 Based Adjustable Aim Sight

by Areeeeen in Circuits > Raspberry Pi

151 Views, 1 Favorites, 0 Comments

Nerf Gun TOLED Scope : Pi Pico 2 Based Adjustable Aim Sight

IMG_2119.jpeg
IMG_2111.jpeg
IMG_2105.jpeg

I am Areen Phaltankar, studying in 12th grade in Pune, Maharashtra, India


Partially inspired by the new extraction shooter game 'Marathon', I set out to make a futuristic scope for my nerf gun. The Raspberry Pi Pico offers the perfect platform to develop this project along with the Waveshare TOLED (Transparent OLED) I bought for this project. This Instructable shows my process of making it and hopefully is a decent guide for anyone who wishes to make one for themselves. Enjoy :)


Features

  1. 6 crosshair styles: Plus, Dot, Circle, Heart, Cross, and Brackets with dot in the centre
  2. Cycle through crosshairs - short press of the rotary encoder button
  3. Adjust crosshair size - rotate the encoder
  4. Calibration mode for repositioning the crosshair on screen
  5. Enter calibration with a long press of the button
  6. Short press toggles between Y-axis and X-axis adjustment
  7. Rotate encoder to move crosshair up/down (Y) or left/right (X)
  8. Long press again to exit calibration
  9. Interrupt-driven rotary encoder for smooth, accurate input with no stutter

The calibration feature is one I don't think I have ever seen being used on a nerf scope before. The idea is that if you notice that the gun is consistently shooting the darts the same angle away from the reticle (crosshair), you can adjust the reticle to offset that difference and great aim would be restored!

Supplies

IMG_2072.jpeg
IMG_2088.jpeg

Electronic Components

  1. Raspberry Pico 2 (Pico 1 also works) x1
  2. 1.51 inch Waveshare Transparent OLED x1
  3. rotary encoder x1
  4. 3-pin Lever Switch (M6 screw size) x1
  5. TP4056 USB-C Charging module x1
  6. 3.7v LiPo Battery x1 (600 mAh used)
  7. 1x20 Female Pin Headers x2

3D Models (all files attached below)

  1. Main Body - Scope_Main
  2. Top - Scope_Top_Open and Scope_Top_Closed
  3. Bottom - Scope_Bottom
  4. Rail Attachment - Scope_Rail (Credit to the8bitbyte on printables)

Screws, Nuts and Heated Inserts

  1. M2 Sized
  2. Screws - 4mm - x6
  3. Heated inserts - 4mm - x6
  4. M3 Sized
  5. Screws - 4mm - x8
  6. Heated inserts - 4mm - x8
  7. M6 sized
  8. Nut - x1 (for lever switch)

Connectors, Wires and Boards

  1. 90x70mm Prototype PCB board
  2. female jumper wire to loose wire x7
  3. male jumper wire to loose wire x2
  4. JST connector - 7 pin - 2.54 pitch x1

MISC

  1. Strong Double-Sided Tape



NOTE:

  1. Make sure there is a resistor on the back of the rotary encoder in the empty component space to enable the use of the button functionality
  2. Use Strong double sided tape from 3M

Uploading the Code

2026-04-28 12.09.23.jpg

1. Download the Files

Download the following files attached below on this step:

  1. main.py
  2. ssd1309.py

Make sure they are saved on your computer

2. Open Thonny

Open Thonny IDE and connect your Pico.

Make sure:

  1. Interpreter = MicroPython (Raspberry Pi Pico)

3. Upload the Files to the Pico

You need to upload both files:

For each file:

  1. Open the .py file in Thonny
  2. Click File -> Save As
  3. Select Raspberry Pi Pico
  4. Save the file

Repeat this for all files.


Or refer to https://www.youtube.com/watch?v=3qTxBXVQ4yo&t=61s&pp=ygUldXBsb2FkaW5nIG1pY3JvcHl0aG9uIGNvZGUgdG8gcGkgcGljbw%3D%3D for in depth steps

Downloads

3D Printed Enclosures

Screenshot 2026-04-28 070852.png
Screenshot 2026-04-28 070840.png
Screenshot 2026-04-28 071737.png
Screenshot 2026-04-28 072544.png
Screenshot 2026-04-28 072449.png
Screenshot 2026-04-28 122434.png

All models are made using Black PLA using 10% infill

(I used White PLA only for the rail because I was out of black filament)


NOTE:

  1. Print the parts like shown above to minimize support usage when 3d printing.
  2. In interest of reducing printing time and support material waste, The scope rail should be printed separately from the bottom. Double sided tape should be used to stick them together.
  3. You can use either Scope_Top_Open which exposes the Circuit inside (the way I like it!) or use Scope_Top_Closed for a minimal and clean look

Attaching the Rail to the Bottom

Nerf TOLED Scope - Rail attachment

In interest of reducing printing time and support material waste, The scope rail should be printed separately from the bottom. Double sided tape should be used to stick them together.


Make sure the rail is aligned with the groove present in the Scope_Bottom 3d model

Inserting Heat Inserts

Screenshot 2026-04-28 095208.png
Screenshot 2026-04-28 094907.png

(I forgot to record me inserting them sorry😔)

Cut Perfboard to Desired Size (32x70mm)

Screenshot 2026-04-28 100212.png
Screenshot 2026-04-28 100255.png
Screenshot 2026-04-28 100318.png

Score the line with a cutter/knife and then snap it with your hands

Wiring the Circuit

photo_2026-04-28_08-44-04.jpg
photo_2026-04-28_08-44-00.jpg
Screenshot 2026-04-28 085336.png
Screenshot 2026-04-28 081814.png
Screenshot 2026-04-28 082114.png


  1. Mount the Pi Pico 2 to the perfboard using female pin headers
  2. use the wires shown in the image above for each segment of the circuit


DO NOT connect all separate sectors of the circuit at this step. Keep them in separate groups. It will be much easier to assemble later on.


Tip: Take a photo of the backside of the board after soldering (like the 2nd image above) so that you know which colored wire is connected to which pin on the Pico.


Refer to images above for SCHEMATICS FOR EACH CONNECTION

Assembly

Nerf TOLED Scope - Assembly

Demo

Nerf TOLED Scope - Demo