Knight and Forge's “Functional” Campaign Evolved MA5B

Knight the ODST

New Member
Knight’s CE - Post 1
3D assembly and modification.



Hello all!

As the title says I am creating a MA5B from Campaign evolved that is “functional”. By “functional” I mean that it will have: Lights, Sounds, and all the bells and whistles.

ma5.png

*note: this diagram lacks the speaker and tft screen for the ammo counter*

This is an already in-progress build where I will keep uploading (hopefully) small and condensed posts to track my progress.

And lastly before I begin, this project would not be possible without fellow SW Regiment member BlazingForge and cults3d user 3DSOMETHING. Forge is the creator of the assault rifle model and very generously allowed me to modify his files for my modifications. 3DSOMETHING provided a great base level to see what is possible for this project as well as an idea for the electronic components that go inside.

So thats the basics covered. Im excited to show off my progress with everyone and will gladly answer any questions I am able!

Modifying the AR for electronics.
1765341319324.png
1765341382962.png


So this AR has some large parts that need to be split up for printing. Namely the upper shroud, lower shroud, fore-grip, lower receiver, and upper receiver. So my first step was slicing those into smaller pieces with pins for alignment. After that was done, I went about carving a channel in all the parts for the wires to make it to the ESP32 board’s location or power supply. Next came a huge list of modifications for ease of printing or assembly listed below:

  • Inner barrel inserts to allow for easier painting down the road
  • QD Mounts located in the upper receiver
  • Space for switches
  • Separate logo “plates” for the UNSC and MA5 logo to be resin printed
  • Space for the power switch
  • Space for the status LED in the receiver
  • A removable and magnetized section on the upper shroud for battery and speaker access
  • A slightly wider Ammo counter for both accuracy and room to shelter the TFT screen
image.png
image.png



Unfortunately. Due to the shape of the tft screen, the prop screen suffers from inaccuracy. Rather than the proper seamless shape the ammo counter has in the game, a smaller “insert” frames the screen. Luckily I feel that this sacrifice is worth it. As the results speak for themselves.

To finish things off, here is a teaser for the next post that proves this project is possible.

1765342360666.jpeg


I look forward to showing off my future progress!
 
Last edited:
Knight’s CE - Post 2
Getting the Ammo Counter working

IMG_3023.JPG



Now that we have the rifle printed, its time for the hard part... Electronics.

Ye who enter here, abandon all hope. This is about to get complex.


So, as a broad outline for this project I'm going to be using the following:
  • ESP32 - This is the heart of this prop, a small and programmable micocrontroller
  • ST7789 1.4" TFT Screen - This will be what the ammocounter and everything is displayed on
  • Gens ace 1700mha 7.4V lipo battery - This will be what powers the setup
  • 7V to 5V step-down module - This is extremely important, this will convert the 7.4V to the required 5V to power the esp32
  • Roller type micro-limit switches - For the triggers and charging handle
  • 8ohm speaker - this is a generic 8ohm speaker to play audio from the esp32
  • I2S Adafruit MAX98375A Amp - This will be wired between the speaker and esp32
There are various other components but these are the main ones that will be most important. The first step was getting anything at all to display
on the TFT Screen, which was easier said than done. Esp32 dev boards use a program called Arduino IDE to inject code to the board, something I used to develop a Starwars DC17m in the past. Something I very quickly learned is that each specific pin must be defined in either A: the IDE Sketch file, or B: The TFT Library's user_setup config file.

Following so far? I sure wasn't when I started. See you have to install "libraries" for IDE to properly execute and inject code to work for specific devices. For example, the ESP32 has a library, as does the specific model of TFT Screen, each must be properly downloaded and configured locally to even get anything to display. So after figuring out that mess and about 8 hours of back and forth later, we had this.

1765484544673.png


Seems simple and easy but this took me the WHOLE day. Up next was to try and get the AR's UI on the screen. This was once again easier said than done. The first step is to take a png, and convert it to a language called C Header in the proper 320x170px dimensions and feed it to the Arduino sketch. Lets see how it looks:

1765484864714.png


(This was after about another 6 hours of paintstaking work) So yeah this worked out great, I needed to setup a converter using PYTHON of all things to manually convert the png into C header but we got what we were after. But like I mentioned earlier, this was just a PNG and had no functionality. After writing a simple code I was left with this:

1765485624989.png


Now the keen eyed may notice two things. The colors are wrong, and the counter is at the top left (that little 0). This is true. The colors came out wrong due to the code defining the C Header as a RGB setup, when in reality thanks to the brand of TFT im using, it should be BGR. Easy enough fix, but what about that top font? Doesnt look very accurate.

For that we need Conthrax, a font I found to be pretty accurate to the MA5B's in Campaign Evolved. Now to get that font onto the esp32 we need to inject it. Turns out the injector tool Arduino IDE natively used is outdated and locked behind a version that is incompatible with the libraries I am using. (I am now realizing I am able to inject it as a C header byte array, but that would make this whole next bit obsolete so ignore that). So whats the solution? Inject 33 individual pngs to represent 32-0.

Yeah so that took forever and is very needlessly complicated. This led to an extremely bloated Arduino sketch, hope that doesn't come back to bite me... But the result speaks for itself.

ammo2.gif


It took probably 3 days just to get this far, but theres a lot to go still. Next time you see it, the rifle will have sounds and proper reload mechanics.

Stay tuned.
 

Your message may be considered spam for the following reasons:

If you wish to reply despite these issues, check the box below before replying.
Be aware that malicious compliance may result in more severe penalties.
Back
Top