HALO Energy Sword
Hey guys, welcome back.
So here's something deadly and really cool: the Energy Sword, also known as the Plasma Sword, was created totally from scratch using 3D-printed parts and unique PCBs.
It is constructed from transparent PLA and has a cluster of ten WS2812 LEDs in each blade. These WS2812 LEDs are mounted to a special PCB that links the Din and Dout of each pixel.
The Energy Sword, commonly known as the Plasma Sword, is a well-liked weapon in the Halo video game franchise. It is a close-range weapon that excels in close-quarters fighting.
In the game, the plasma sword consists of a handle and a curved, glowing blade made of plasma energy. When used in combat, the sword emits a distinct humming sound and leaves a trail of sparks behind it.
In addition to its effectiveness in combat, the plasma sword is also iconic for its distinctive appearance and sound effects. It has become one of the most recognizable and popular weapons in the Halo franchise.
This sword was modeled to serve one main purpose: to increase the aesthetics of my maker space.
Halo is a popular video game franchise created by Bungie Studios and currently developed by 343 Industries. The series consists of first-person shooter games, and centers around an interstellar war between humanity and a group of alien races known as the Covenant. The protagonist of the series is Master Chief, a super-soldier who battles the Covenant and other enemies to protect humanity.
Aside from the nerdy things, the entire construction procedure is rather straightforward and is properly detailed in a few basic steps.
Let's get started.
MATERIAL REQUIRED
These were the materials used in this built-
- Custom PCBs
- WS2812B LEDs
- Attiny85
- IP5306 IC
- 1uF Capacitor
- 10uH SMD inductor
- 1K Resistor
- tactile switches
- Arduino Nano
- Silver copper wire (Jumpers)
- 3D Printed parts
- Most important thing, Patience
3D DESIGN
The 3D model of this sword was created entirely in Fusion 360 using the canvas function. We imported an image of the plasma sword (one face) and scaled it.
Here's how I calibrated the image: I chose two points in the handle portion and set them to approximately 100mm, which is the length required for us to hold anything with our hands.
The handle is now 100mm long, and the image size has increased, allowing us to create a sketch by tracing its edges and shape in order to extrude two blades and one handle using the actual energy sword image.
The outer edges of both blades are then chamfered in both directions, giving the extruded blade a nice angular shape.
All parts, including the blade and handle, are then hollowed out with shell function, and a lid for all three parts is made on the top side.
To print all parts on my small ENDER 3 printer, the model was cut into three more parts, each blade divided into three smaller parts, which will be glued together to form a single blade.
The handle will be connected to both blades via two M3 nuts and bolts on each side.
In terms of electronics, my plan is to use custom led boards that will be placed in both blades, and these LEDs will be controlled by an Attiny85 board that will be powered by a power module board that will use one lithium cell placed in the sword's handle.
After finalising the 3D files, we export all of the mesh data and slice it in Cura for 3D printing. The handle and lid were made of brown PLA, and all of the blade parts were made of transparent PLA.
PCB Design
Total of three different PCBs were used in this project which were the following-
- Attiny85 Breakout Board
- Power Module Board
- LED Board
The Attiny85 breakout board was a simple setup consisting of a single Attiny85 in a SOIC8 package connected to a CON6 header pin that breakouts the Attiny85's SPI pins so we could connect it to an ISP programmer setup.
It also has a few CON1 pins connected to the attiny's D0, VCC, and GND pins, which will be used during the soldering process.
The Power Module Board is a simple IP5306 IC-based power management board that steps a lithium cell's input voltage from 3.7V to a stable 5V for powering LEDs and a microcontroller.
LED Board is a straightforward breakout board for WS2812B LEDs with two CON3 Pins for connecting multiple LEDs in an array.
PCBWAY
After all the PCB designs were completed, Gerber data was generated for three boards and then sent to PCBWAY for samples.
orders for the LED board and power module board with blue solder mask and white silkscreen, as well as orders for the ATtiny85 board with white solder mask and black silkscreen.
In terms of overall quality, the PCBs were outstanding. Each of the boards I received was flawless.
I really love the quality of PCBs made by PCBWAY. There are other manufacturers available, but their service is always on another level.
Check out PCBWay for great PCB service at less cost.
LED Board Assembly
- We begin the LED board assembly process by first applying solder paste to the LED and capacitor pads, followed by the placement of the LED and capacitor.
- The board is then placed on a reflow hotplate, which heats it from below to the solder paste melting temperature.
- At last, we make remaining 19 more pieces by following the same exact steps.
LED Board Testing
- Then, we use an Arduino Nano loaded with the Neopixel Test sketch to test each LED.
- The goal here is to see if the LED is working properly, so we connect 5V to the VCC of the LED, D3 to the Din of the LED, and GND to GND.
- With this setup, all 20 LEDs are tested.
ATTINY85 Board Assembly
- Following the preparation of the LED board, we begin assembly of the Attiny85 Breakout board, which has only one component, the Attiny85 itself.
- We apply solder paste to the pads of the attiny85 and then place it in the proper orientation.
- Next, we place the board on reflow hotplate which melts the solder paste and solder Attiny85 with the PCB.
IP5306 Board Assembly
The IP5306-based Power Module Board, which is a fully-integrated multi-function power management system that comes in the SoC package, is then prepared.
It has an internal boost converter setup along with a proper Li-ion battery charge management setup that has a low discharge and high charge cut feature, which is a must-have function when working with Li-ion cells.
Because Li-ion cells are dangerous if overcharged, we generally use a BMS Module to cut off its voltage when connected to any charging source; the IP5306 has this function, so we don't need to attach any Battery protection setup to it.
Also, we get battery status LED indication feature.
- The process is the same as before; we apply solder paste to each component pad before picking and placing them.
- We then place this board on a reflow hotplate, which will melt the solder paste and complete the board assembly.
Testing the IP5306 Board
- We add a lithium cell to the module's B+ and GND ports after preparing the IP5306-based power module board.
- We short the CON2 port provided for adding a tactile switch, and the setup turns on, as indicated by the LED.
- We measure the output voltage, which should be greater than 5V; this indicates that the circuit is operational, and we can proceed to the next step, which is wiring and overall assembly.
CODE
Here's the main code used in this build.
#include <Adafruit_NeoPixel.h> #define LED_PIN 3 #define LED_COUNT 20 Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); void setup() { strip.begin(); } void loop() { for (int i = 0; i < 256; i++) { for (int j = 0; j < strip.numPixels(); j++) { int blue = 255 - i; int red = i; int green = 0; strip.setPixelColor(j, strip.Color(red, green, blue)); } strip.show(); delay(10); } for (int i = 255; i >= 0; i--) { for (int j = 0; j < strip.numPixels(); j++) { int blue = 255 - i; int red = i; int green = 0; strip.setPixelColor(j, strip.Color(red, green, blue)); } strip.show(); delay(10); } }
In the setup() function, we initialize the WS2812 LED strip.
In the loop() function, we use two for loops to change the color of the LEDs from blue to purple and back again. The outer loop iterates from 0 to 255, while the inner loop iterates over each LED on the strip.
We calculate the values for the red, green, and blue channels using the i variable, which ranges from 0 to 255. We set the blue channel to 255 minus i, which fades the blue color out over the loop. We set the red channel to i, which fades the red color in over the loop. We set the green channel to 0, which keeps the color in the blue-purple range.
Finally, we use the setPixelColor() function to set the color of each LED on the strip, and the show() function to update the strip. We use the delay() function to slow down the color change effect. The second for loop reverses the color change, fading the red back out and the blue back in.
ATTINY85 Programming Process
The CON6 Port on the Attiny85 Board allows us to connect it to an Arduino as the ISP Board's CON6 consists of SPI Pins such as MISO MOSI SCK Reset VCC and GND.
After connecting the Attiny85 to the SPI Pins of the Arduino ISP Programmer, we can flash the Attiny chip, by which I mean burn the bootloader and upload sketch into it.
You can checkout more details about this step from here-
https://www.hackster.io/Arnov_Sharma_makes/multiple-attiny85-13a-programmer-84adf8
https://www.hackster.io/Arnov_Sharma_makes/learn-how-to-program-attiny85-and-attiny13a-167359
Sword 3D Printed Parts Assembly
- We begin the 3D Parts assembly by gathering everything that we have printed over the course of a week.
- To begin, we use super glue and fibre tape to attach all three blade parts. Because glue takes time to set, we use fibre tape to keep all parts tightly together.
- We apply glue to both blades and wait a few hours for the glue to dry.
- The handle is then attached to both blades with four M3 nuts and bolts.
- The blade's basic structure is now complete.
Placing Electronics
We use hot glue to attach a battery, an Attiny85 breakout board, a power module, and a tactile switch to the handle.
LED ARRAY
- Next, we prepare the LED array for each board, which consists of 10 LEDs in parallel configuration, with the first pixel's Dout connected to the Din of the second LED, the second LED's Dout connected to the Din of the third LED, and so on up to the 10th LED in one blade.
- We use three silver copper wires to connect two LED boards together, and each LED is placed at a distance of 30mm from the other.
FINAL ASSEMBLY
- With the help of hotglue, we add an LED array inside the inner wall of the blade, as well as wires to the VCC, GND, and Din of the first Pixel so that we can connect it to the Attiny85 board.
- We add a long jumper wire to connect the 10th LED in the first LED array to the Din of the first LED in the second LED array.
- We connect 5V and GND from the power module to the Attiny85 board, which powers both the LED board and the Attiny85.
- We can turn the setup ON and OFF by pressing the tactile switch.
- Finally, we place the lids of each part on them and close the entire opening of the sword.
- Assembly is now finished.
RESULT
This is the result of this build, a life-size Energy Sword from HALO.
I feel like Arbiter while holding this sword; it's stunning and visually striking.
This project is finished, but there are a few issues that need to be addressed before preparing V2 or repairing this version.
The LED diffusion is not correct, and the entire setup should light up; the top and bottom sides of the blades appear dull.
Overall, this was a fun project that I thoroughly enjoyed working on.
All I need now is a Master Chief Spartan armour, which will be a fun project to work on in the future.
This is it for today folks, leave a comment if you need help regarding this project.
Special thanks to PCBWAY for providing components that I've used in this project, check them out for getting all sorts of PCB or PCBA-related services for less cost.
Thanks and I will be back with a new project soon.
#include <Adafruit_NeoPixel.h>
#define LED_PIN 3
#define LED_COUNT 20
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin();
}
void loop() {
for (int i = 0; i < 256; i++) {
for (int j = 0; j < strip.numPixels(); j++) {
int blue = 255 - i;
int red = i;
int green = 0;
strip.setPixelColor(j, strip.Color(red, green, blue));
}
strip.show();
delay(10);
}
for (int i = 255; i >= 0; i--) {
for (int j = 0; j < strip.numPixels(); j++) {
int blue = 255 - i;
int red = i;
int green = 0;
strip.setPixelColor(j, strip.Color(red, green, blue));
}
strip.show();
delay(10);
}
}
HALO Energy Sword
*PCBWay community is a sharing platform. We are not responsible for any design issues and parameter issues (board thickness, surface finish, etc.) you choose.
- Comments(0)
- Likes(2)
- Josue Fernandez Sep 25,2024
- J_spec6 Dec 28,2023
- 0 USER VOTES
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
More by Arnov Arnov sharma
- Delete Button XL Greetings everyone and welcome back, and here's something fun and useful.In essence, the Delete Butt...
- Arduino Retro Game Controller Greetings everyone and welcome back. Here's something fun.The Arduino Retro Game Controller was buil...
- Super Power Buck Converter Greetings everyone and welcome back!Here's something powerful, The SUPER POWER BUCK CONVERTER BOARD ...
- Pocket Temp Meter Greetings and welcome back.So here's something portable and useful: the Pocket TEMP Meter project.As...
- Pico Powered DC Fan Driver Hello everyone and welcome back.So here's something cool: a 5V to 12V DC motor driver based around a...
- Mini Solar Light Project with a Twist Greetings.This is the Cube Light, a Small and compact cube-shaped emergency solar light that boasts ...
- PALPi V5 Handheld Retro Game Console Hey, Guys what's up?So this is PALPi which is a Raspberry Pi Zero W Based Handheld Retro Game Consol...
- DIY Thermometer with TTGO T Display and DS18B20 Greetings.So this is the DIY Thermometer made entirely from scratch using a TTGO T display board and...
- Motion Trigger Circuit with and without Microcontroller GreetingsHere's a tutorial on how to use an HC-SR505 PIR Module with and without a microcontroller t...
- Motor Driver Board Atmega328PU and HC01 Hey, what's up folks here's something super cool and useful if you're making a basic Robot Setup, A ...
- Power Block Hey Everyone what's up!So this is Power block, a DIY UPS that can be used to power a bunch of 5V Ope...
- Goku PCB Badge V2 Hey everyone what's up!So here's something SUPER cool, A PCB Board themed after Goku from Dragon Bal...
- RGB Mixinator V2 Hey Everyone how you doin!So here's a fun little project that utilizes an Arduino Nano, THE MIXINATO...
- Gengar PCB Art Hey guys and how you doing!So this is the GENGAR PCB Badge or a Blinky Board which is based around 5...
- R2D2 Mini Edition So here's something special, A Mini R2D2 PCB that speaks ASTROMECH.Astromech is a fictional language...
- C-3PO Blinky Board Hey guys and how you doing!So this is the C3P0 PCB Badge or a Blinky Board which is based around 555...
- WALKPi Breadboard Version Greetings everyone and welcome back, Here's something loud and musical.Similar to a traditional walk...
- BOXcilloscope Greetings to everyone, and welcome back.This is BOXcilloscope, a homemade portable oscilloscope that...
-
-
-
-
-
-
3D printed Enclosure Backplate for Riden RD60xx power supplies
154 1 1 -
-