# Custom E-liter 4K Scope (リッター4Kスコップカスタム)
[@jerksnapcrackle](https://x.com/jerksnapcrackle)
Aside from its long range and heart-racing shots, the E-liter 4K is one of the coolest-looking weapons in Splatoon, I think. Of all its variants, my favorite is the custom + scope version. So this time I decided to make my own Custom E-liter 4K Scope.
Even though 3D printing can achieve a high level of detail, some textures are still hard to replicate. So it's better to use real objects for some parts, e.g.
+ fuel nozzle
+ barrel
+ scope

Acutally, I wanted to use a real air tank but it's too hard to acquire.
## Fuel nozzle
The main load-bearing structure is composed of a fuel nozzle and aluminum pipe.
After many attempts, I eventually found a perfect size. Now they’re so well-fitted that I can’t even pull them apart.

## Barrel
Most of the parts on the barrel are printed. I modified some of the designs to make them easier for a human to grip.

## Air tank
The air tank was fully 3d printed. This not only reduced the weight, but also allowed me to fit the electronics inside. Also, I split it into three parts because it's too big for A1 mini.

Another issue is how to connect the air tank to the nozzle. When assembling FDM 3D printed parts, the strength of the structure after assembly must be carefully consider, especially for such heavy weapon. Fortunately, there are four bolts on the top of the nozzle. So I printed an adaptor to connect the nozzle with the base for supporting the air tank.



When making the blue E-liter 4K, I polished and spray-painted the tank(as you can see in the image above). But I found the raw one look better so I stopped painting when making the custom. The hidlo logo sticker also makes the connections less noticeable.
## Scope
Tokyo Marui scope bought on the second-hand market, and printed mount rail.

## Silencer
We all know the 4K scope doesn’t have a silencer, but I think it’d be cool to have one.
A glowing silencer would be even cooler. To achieve this, a LED stripe was embedded.

{%youtube lwlUfhWkIL8 %}
## Hose
To enable glowing, I used a transparent water hose with an LED strip embedded inside.

## Electronics
There are some Liter 4K features that I decided to implement, including
0. LCD display
1. glowing hose/tank/silencer
2. charge and shoot(of course)
3. pasha pasha(shoot before it’s fully charged)
4. loading animation
5. change ink color
6. laser sight
7. sound effects
For the MCU, I used an ESP32S3. Its two cores can handle relatively heavy tasks, and it has enough pins. Above all, it's cheap. To manage these tasks well I'm using FreeRTOS.
All the electric circuits were placed in the air tank.

### 0. LCD display
We can see there is a display on the top of nozzle in the game. This is used to show how much fuel has been dispensed and the price. So in 4K its jobs can be easily changed to show the percentage of charging. On the other hand, since the display is located in a good place, it can be used as the main user interface. So an LCD display with a touch panel is a good choice.

I found a 2 inch 320*240 display that fits nicely onto the nozzle.

Let 8bit chan dance for the test.
{%youtube zUENkI13fzk %}
### 1. glowing
In the game, the color of hose and the two bolts on the top of air tank change according to the ink color. In order to enhance the feeling of energy, it's better to make them glow. Glowing is achieved by LED strip. I spent a long time debating whether to use single-color LED or RGB ones.
+ Single color LED stripe can be made very small. So higher brightness can be achieved in small space by placing more strip. Also this will make the glowing spring possible.
+ RGB LED stipe is larger than single color one. But the color is programmable.
Eventually, I thought changing the color is more important than making it glow brighter.
So I found a LED strip that embed 75 bulbs in 50 cm length.
{%youtube b5MOYRndrdM %}
### 2. charge and shoot
In the blue 4K I made a two-stage trigger with two tactile switches. Half-pressing to charge, full-pressing to shoot.
The two-stage trigger works well but has some disadvantages. For example, the structure is complex, and the logic is not suitable for pasha pasha. So in custom 4K, I change to one-stage trigger using one tactile swich. Now the whole trigger structure is simple and small enough.
{%youtube 1xmOjqk1cqc %}
### 3. pasha pasha
Namely, if your fire before charging is complete, it still shoots, but the power and range are much lower.
(see the video at the bottom of the page)
### 4. loading animation
The RAM of ESP32 is too small to store all the animation pixels in a const array. Instead, the animation is played by reading pixel from micro SD card during runtime. This part turned out to be more complex and tricky than I initially thought.
Although a class 10 SD card is very fast, the default 1 bit SPI interface limits the reading speed. One of the reason I chose ESP32S3 is that it supports SDMMC, which allows reading SD in 4 bit mode. Ideally it will be 4 times faster, but accordint to my test it was about 2~3 times. Also, the requirement for circuit in 4 bit mode is high, so soldering and pull up resistors are necessary.
In the program, I put reading SD task and refreshing display task in different cores so they can run parallelly. Also, a double buffer was used to ensure smooth refreshing.
Using the above methods, now the animation can be played in 30 fps. The animation of hidlo logo was made by blender. It's interesting that both 4K and hydrant are made by hidlo.
{%youtube aYsoCYkpXeQ %}
### 5. change ink color
Of course I can set some predefined colors, since the number of team colors is limited in the game. But I think choosing an arbitrary color sounds cool. So I add a color wheel to pick ink color. Selected color will be saved as the initial color when power on.
{%youtube nJtsvLh-WiA %}
### 6. laser sight
This is the feature that I forgot in blue 4K..
The laser in the game appears to fire directly from the muzzle. But in real life, that didn’t feel reasonable, so I mounted it on the left side of the barrel instead.
{%youtube smxQ60iAhuE %}
### 7. sound effects
I used the DFPlayer pro module to play the sound file. This moudle is very easy to used but the performance is not so good. The initialization procedure is slow and there is a small latency before the module's respond when call play function. But given the price, I really can't complain. The latency issue can be reduced by storing file in wav format instead of mp3 file, since wav is raw data.
For the sound files, I asked my inkling to help me record in Undertow Spillway.
## Completed build
This is the heaviest weapon I’ve ever made, with a total weight of 3.4 kg and length of 112 cm. It’s probably going to be a pain when I move house 🫤

{%youtube oZAoheo15IQ %}
[@jerksnapcrackle](https://x.com/jerksnapcrackle)