Iron Man Arc Reactor
Hello Friends, welcome back in my new Instructables. Today I'm going to show you that how I build this Iron Man Arc Reactor. I specifically build this for Instructables Colours Of the Rainbow Contest. Before going further let me know you about me;)
My Self Kishan Pratap Singh, Currently I'm a student of Intermediate College. I started to make a videos on YouTube from Class 9th & I gained upto 67k Subscription after 2 Years of Hard Work by making short videos. But channel is still not monetized, so I decided to take a help of any other's tech Creator. I found a person who said that he will be monetize my YouTube channel. I trust on him & he hacked my YouTube channel via Fraud.
But I didn't Give UP and started a New Channel NEXT BUILDER on YouTube. And Thankyou very much to PCBWAY Who supported me after hacking my channel. I request you guys to keep supporting me on Instructables & YouTube also, for more upcoming awesome projects in future.
Now let's talk about the project, I'll guide you through the process of building a stunning, customizable Arc Reactor that you can control with the WLED app. Whether you're a fan of the Marvel Universe or simply love DIY electronics. Since I build this for Instructables Contest so I need to show all the rainbow colours, for that I used WS2812B Programmable RGB Led Strip.
Rainbow Colours Means;)
- Red
- Orange
- Yellow
- Green
- Blue
- Indigo
- Violet
Now let's build it step by step, Don't Forget to support guys, your little bit support may be courage me to do some more works for You.
Supplies
Required Components;)
- Wemos D1 Mini
- RGB Led Strip
Required Tools;)
- Solder Wire
- Power Adaptor
- USB Cable
- 24 AWG Silicon Wire
- Miniware Soldering Iron
- Helping Hand For Soldering
- 3D Printing Service
Design & Print
First I Designed it's Case In Iron Man ARC Reactor Shape Using Autodesk Fusion 360. Because it's too easy to design using this software for beginners. Then I downloaded it's STL File to print it using 3d Printer. But Unfortunately I haven't a 3d printer so I visited on PCBWAY To use there 3d Printing service, because it's affordable and excellent quality Printing Service. I Uploaded the STL File & ordered it. After one week I received the Package & the quality is really amazing. You can find the STL File on this step;)
Connection
In this step I'll do the connection of RGB led strip with Wemos D1 Mini. The Connection is too easy. You can also see image for your reference. First I solder three wires on RGB led strip after doing this I have done the connection with Wemos D1 Mini. For best soldering I'll recommend Everyone The Powerful Soldering Iron know as Miniware TS80P. It's Mine Favourite Soldering Iron.
Assembly
Now After Connection, it's time to do assembling. You can follow these simple steps to complete it.
- First attach the Wemos D1 Mini with the lower base of 3d Printed ARC Reactor. For Reference See image 1.
- Now Place the RGB Led Strip arround the lower base. For Reference See image 2 & 3.
- Now Place the defuser at the middle of the Case. For Reference See image 4.
- Now Place the upper Part of 3d Printed Enclosure. For Reference See image 5 & 6.
Now it's ready, check the further step for uploading Firmware Process.
Uploading Firmware
In this step, I'll guide you through the process of uploading code. we will use a tool called WLED to control the light project. You can use different ESP Web tools besides this app. The best part about WLED is that it requires no code, only plug and play! For That Connect the board to the PC/Laptop.
- Go to the WLED page (see image 2) & Press the Install Button.
- Select the port the board is connected to and wait for the installation to complete (see image 3 and 4)
- After the installation is complete, enter your Wi-Fi network information (see image 5 and 6)
- Installation is that simple, now you can control your device. Click on "visit device" and start using your LED lighting by making the first settings mentioned below. (see image 7)
- Go to Settings, and set an address for easier access to the LED control panel, or use the specified IP address. (see image 8,9 and 10)
- Then you can access the LED control panel by entering the address in the web browser, or the application. (see image 11)
- Finally, enter the number of LEDs used and the GPIO pin number to which the LED is connected, and save. Also here, you can see the estimated current consumption according to the number of LEDs. (see image 12,13 and 14)
Now you can control the LED lighting in different scenarios with the WLED web browser, smartphone and tablet app.
Testing
Now it's ready to use. To use it just provide the 5v Power Supply Through the Micro USB Port. You can control it's brightness, effect speed, effect intensity & a lot of Modes, through your smartphone. Using WLED Application. You can also use it as a stunning decorative piece in various ways. Here are some creative ideas to showcase your hard work;)
- Desk Ornaments
- Wall Art
- Night Light
- Cosplay Prop
- Gaming Studio
- Themed Room Decoration
- Immersive environment
- Centerpiece for Parties
You can enjoy it's aesthetic and functional benefits while showcasing your craftsmanship. I hope you like this project. Don't forget to support me for upcoming awesome projects in future. Stay tuned for next project unit make it your self & Enjoy.
External
GeoSphere Premium β Complete Beginner Guide
GeoSphere Premium
From zero hardware knowledge to a fully working premium GPS dashboard β step by step.
ESP32-S3-Zero
Main brain β 240 MHz, WiFi, runs all UI rendering and cloud sync
Waveshare 2.4" LCD
ILI9341 driver, 320Γ240, SPI β shows the full premium dashboard
GP-02 GPS Module
Provides real-time coordinates, speed, heading, altitude via UART
Circuit Digest Cloud
Receives live GPS data every 10 seconds for online map tracking
Yes β the code is complete and fully working.
All 848 lines of firmware are written. Every icon is drawn pixel-by-pixel. Every panel, animation, GPS parser, cloud sync, and trip tracker is implemented. You just need to wire, configure 3 lines, and upload.
What is Arduino IDE?
Think of it like Microsoft Word, but instead of writing documents you write code and send it to your hardware. It's free and runs on Windows, Mac, and Linux.
Download & Install
- Go to https://www.arduino.cc/en/software
- Click "Arduino IDE 2.x" β download for your operating system
- Install it like any normal program (Next β Next β Install)
- Open Arduino IDE β you'll see a blank code editor window
Add ESP32 Board Support
By default Arduino IDE only knows about basic Arduino boards. We need to teach it about the ESP32-S3.
- In Arduino IDE: click File β Preferences
- Find the box labelled "Additional boards manager URLs"
- Paste this URL into that box:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
- Click OK
- Go to Tools β Board β Boards Manager
- Search for esp32
- Find "esp32 by Espressif Systems" β click Install
- Wait 2β5 minutes while it downloads (it's about 300 MB)
What is a library?
A library is a package of pre-written code. Instead of writing 2000 lines to drive the LCD from scratch, TFT_eSPI already does it β you just install it.
How to install each library
- In Arduino IDE: Sketch β Include Library β Manage Libraries
- The Library Manager panel opens on the left
- Type the library name in the search box
- Find the correct one (by the right author) β click Install
- Repeat for all three:
ArduinoJson version matters!
When installing ArduinoJson, make sure you install version 7.x (the latest). Do NOT install version 5.x or 6.x β the code will not compile.
CRITICAL β Skip this and you get a white/blank screen!
TFT_eSPI needs to know which GPIO pins connect to the LCD. We do this by replacing one file.
Step by step
First, find your Arduino libraries folder on your computer:
Windows:C:\Users\YourName\Documents\Arduino\libraries\TFT_eSPI\
Mac:~/Documents/Arduino/libraries/TFT_eSPI/
Linux:~/Arduino/libraries/TFT_eSPI/
- Inside that folder you will see a file called User_Setup.h
- Delete it (or rename it to User_Setup_old.h as backup)
- Copy the User_Setup.h file from this project into that same folder
- Done β this file tells TFT_eSPI: "LCD MOSI is on GPIO 11, CLK on GPIO 12..." etc.
// Contents of User_Setup.h (already written for you)
// This file is in the download ZIP alongside the .ino file
#define ILI9341_DRIVER // LCD chip type
#define TFT_WIDTH 240
#define TFT_HEIGHT 320
#define TFT_MOSI 11 // LCD DIN β GPIO 11
#define TFT_SCLK 12 // LCD CLK β GPIO 12
#define TFT_CS 10 // LCD CS β GPIO 10
#define TFT_DC 8 // LCD DC β GPIO 8
#define TFT_RST 9 // LCD RST β GPIO 9
#define SPI_FREQUENCY 40000000 // 40 MHz β fast!
Power off before wiring!
Always unplug USB before adding or changing wires. The ESP32-S3-Zero and all modules run on 3.3V β never connect 5V to GPS or LCD signal pins.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CONNECTION DIAGRAM β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββ ββββββββββββββββββββββββ
β Waveshare 2.4" β β ESP32-S3-Zero β
β LCD (ILI9341) β β β
β β β GPIO 11 (MOSI/SPI) β
β VCC ββββββββββββββΌββββββββββΌβ 3.3V β
β GND ββββββββββββββΌββββββββββΌβ GND β
β DIN ββββββββββββββΌββββββββββΌβ GPIO 11 β
β CLK ββββββββββββββΌββββββββββΌβ GPIO 12 β
β CS ββββββββββββββΌββββββββββΌβ GPIO 10 β
β DC ββββββββββββββΌββββββββββΌβ GPIO 8 β
β RST ββββββββββββββΌββββββββββΌβ GPIO 9 β
β BL ββββββββββββββΌββββββββββΌβ 3.3V (always on) β
ββββββββββββββββββββββ β β
β GPIO 2 (UART RX) β
ββββββββββββββββββββββ β GPIO 1 (UART TX) β
β GP-02 GPS Module β β 3.3V β
β β β GND β
β VCC ββββββββββββββΌββββββββββΌβ 3.3V β
β GND ββββββββββββββΌββββββββββΌβ GND β
β TX ββββββββββββββΌββββββββββΌβ GPIO 2 β NMEA data β
β RX ββββββββββββββΌββββββββββΌβ GPIO 1 (optional) β
β PPS ββββββββββββββΌββ NC β β
ββββββββββββββββββββββ ββββββββββββββββββββββββ
β
USB-C β your computer
LCD Wiring Table
GPS Wiring Table
Open the file
- In Arduino IDE: File β Open
- Navigate to the downloaded project folder
- Select GeoSphere_Premium.ino and click Open
GeoSphere_Premium.ino β top of file
// βββ USER CONFIG β EDIT THESE 3 LINES βββββββββββββββ
#define WIFI_SSID "YourHomeWiFiName" β your WiFi network name
#define WIFI_PASS "YourWiFiPassword" β your WiFi password
#define CD_API_KEY "paste_your_key_here" β from circuitdigest.cloud
#define DEVICE_ID "GeoSphere_01" β any name you want
// βββββββββββββββββββββββββββββββββββββββββββββββββββββ
Get your Circuit Digest Cloud API Key
- Go to https://circuitdigest.cloud
- Click Sign Up β create a free account
- After login, click your profile icon (top-right) β API Keys
- Click "Generate New API Key"
- Copy the long string of letters/numbers
- Paste it between the quotes:
#define CD_API_KEY "paste_here"
Go to Tools menu and set these exactly:
In the top menu bar: Tools β then select each setting:
PSRAM = OPI PSRAM is mandatory.
The full-screen sprite buffer (320Γ240Γ2 bytes = 150KB) requires the PSRAM chip on the ESP32-S3-Zero. Without OPI PSRAM selected, the display will show an error message and won't work.
How to enter upload mode on ESP32-S3-Zero
The ESP32-S3-Zero has a special boot sequence β follow exactly:
- Make sure the USB cable is unplugged
- Press and hold the BOOT button (small button on the board labelled "BOOT")
- While still holding BOOT β plug in the USB-C cable
- Release the BOOT button
- In Arduino IDE β Tools β Port β a new COM port will appear
- Select that port (e.g. COM5 on Windows, /dev/ttyACM0 on Linux/Mac)
Windows: don't see a COM port?
You may need the USB driver. Download and install "CP210x USB to UART Bridge Driver" from Silicon Labs website, then reconnect.
Upload steps
- Make sure all 8 board settings from Step 6 are correct
- Make sure the correct COM port is selected (Step 7)
- Click the β Upload button (right-pointing arrow) in the top toolbar
- Wait β Arduino first compiles the code (~60 seconds first time), then uploads it
- You'll see progress at the bottom: "Connecting... Writing... Done"
- After "Done uploading" β press the RESET button on the ESP32-S3-Zero
- The display should light up with the GeoSphere splash screen!
What happens on first boot:
You'll see an animated GeoSphere splash screen with a progress bar, then it connects to WiFi (10β12 seconds), then the full dashboard appears. GPS will show "0 Satellites" until you go outdoors.
After flashing and getting GPS fix outdoors:
- Go to https://circuitdigest.cloud and login
- Click "GeoLinker" from the dashboard
- You'll see your device "GeoSphere_01" appear on the map
- Every 10 seconds a new location point is uploaded
- The cloud panel on the LCD display will show "Connected" with a pulsing dot
What data is sent to the cloud (every 10 seconds):
- GPS coordinates (latitude, longitude)
- Altitude, speed, heading direction
- Satellite count, timestamp
- Journey stats (distance traveled, max speed, trip duration)
GPS does not work indoors!
GPS satellites are 20,000 km away. Their signals are too weak to pass through walls and roofs. You MUST take the device outdoors with a clear view of the sky.
Cold Start
First time ever using the module, or battery was dead. Takes 30β90 seconds to get first fix outdoors.
Warm Start
Module has memory of last position. Gets a fix in 5β15 seconds after a short break.
Hot Start
Used recently. Fix in 1β3 seconds. The GP-02 has a backup battery for this.
While waiting for GPS fix:
- The display shows "0 Satellites" in the top-left panel
- Speed, heading, coordinates all show 0 or demo values
- The speedometer, compass, and UI are all still animated
- Once lock is acquired: "GPS LOCKED β N Satellites" lights up in green
- All real data starts flowing β coordinates, speed, altitude all go live
Arduino IDE 2.x installed
Downloaded from arduino.cc
ESP32 board package installed
esp32 by Espressif Systems β via Boards Manager
TFT_eSPI library installed
by Bodmer β via Library Manager
TinyGPSPlus library installed
by Mikal Hart β via Library Manager
ArduinoJson v7 library installed
by Benoit Blanchon β version 7.x
User_Setup.h replaced in TFT_eSPI folder
Copied from this project β Arduino/libraries/TFT_eSPI/User_Setup.h
WiFi SSID and password entered in .ino file
#define WIFI_SSID and WIFI_PASS at top of GeoSphere_Premium.ino
Circuit Digest Cloud API key entered
#define CD_API_KEY β get from circuitdigest.cloud
All LCD wires connected correctly (8 wires)
VCC GND DIN CLK CS DC RST BL β see wiring table above
GPS TX connected to GPIO 2, VCC to 3.3V
NOT 5V β 3.3V only for GP-02
Board = ESP32S3 Dev Module selected
Tools β Board β esp32 β ESP32S3 Dev Module
PSRAM = OPI PSRAM selected
Tools β PSRAM β OPI PSRAM (CRITICAL!)
Correct COM port selected
Tools β Port β select the ESP32 port
User_Setup.h file from the project into Arduino/libraries/TFT_eSPI/ and overwrote the old one. Then re-upload.#define TFT_RGB_ORDER TFT_BGR and re-upload.BOOT button on the ESP32-S3-Zero, then plug USB while still holding, then release BOOT, then click Upload in Arduino IDE.CP210x USB to UART driver on Silicon Labs website and install it. Then unplug and replug the ESP32.1. Make sure you're outdoors with clear sky β GPS cannot work indoors.
2. Check GP-02 TX is connected to ESP32 GPIO 2.
3. Check GP-02 VCC is connected to 3.3V (not 5V).
4. Cold start can take up to 90 seconds β be patient.
GeoSphere Premium Firmware & Guide
Built for the Circuit Digest Innovation Showcase Β· All code is complete and ready to flash