-
Visit me online!
05/20/2021 at 12:24 • 0 commentsMany of you will have had some fun just reading through this project website.
For those that still have some more questions though, or would like to say hello more directly, we have wonderful news!
This project has been accepted for the online MakerFaire as an exhibit!
This means you can come to visit us and get into a 1:1 Online Chat on the 18th of June from 11:00 to 16:00 European Summer Time!
We'll be there the whole time, showing off our projects, mainly the Lasertag but also any of the other shenanigans we've run into, and with this sort of stuff I always like to say "the more the merrier"Sign up here:
https://app.vystem.io/event/maker-faire/signup
We hope to see you there!
And then hopefully next year in real life, with live demonstrations :D -
Current progress and moving forwards
02/16/2021 at 09:54 • 0 commentsSo!
It seems like our project has gathered quite a bit of a following in the last few weeks. Multiple people have already shown interest in building their own, some even helping with different aspects of the system like the weapon optics or making components to spice up the battlefield!
(Thanks to Anthony Webb and Nathan here ^^)However, let me say this loud and clear:
I'm not 100% satisfied with the current hardware!
It will work just fine, but it has a bunch of quirks and small errors - things that I feel should be addressed and improved before I can confidently recommend that others build their own version of the system.
Don't get me wrong, if you want a challenge, by all means, go ahead and try this out!
But you'll have to deal with some quirks in the code, a little bit of awkward wiring... It's just not as good as it should be.
If you want to make your own system but you are willing to wait a little bit, please do so!
I expect to get back to this Lasertag project by the end of 2021, plus or minus a few months!Like many hackers on here, I don't just have this one project, and my attention is currently elsewhere. Right now I want to get my DIY Smart Home back online after it broke down recently due to a number of "Ah, I'll worry about that later", and there are a few other projects that I'd like to go through first.
So, what's up next?
With all that said and done, I do want to give you guys a list of what I intend to fix up for the next version!
There's actually quite a bit, so bear with me for a moment.Hardware-Related issues:
- The main processor will be swapped out, from the ESP32 to, hopefully, an ESP32-S3. The CPU's vectoring instructions should hopefully speed up OPUS Audio decoding, while the extended I/O give more options for buttons and other peripherals.
- Then there's the optics. The current IR LED setup just uses a small tube to straighten out the beam a bit. In the future, I'd want to use a proper Lens + LED setup. Actually, I want to make the IR LED move back and forth to implement a variable cone of fire and combine that with a proper constant-current driver that will allow me to control the range at which the IR signal can be received. That way, I hope to implement damage falloff over distance!
The same weapon could switch between being a long-range sniper and a close-range shotgun. Neat, huh? - A connector for a proper display should be added. I always liked the charm of OLED panels, so this will probably just be an I2C or SPI line to connect to a cheap SSD1327 module, but even just that would be great!
- I want better haptic feedback too. Right now, the system just uses a simple vibration motor, but that doesn't really offer the same 'kick' that I'd like to have. I'm thinking perhaps a solenoid with a strong driver could be interesting, to really give at least a bit of a clicky feel here.
- The current battery management is a bit floppy. A better charger would make larger LiPos easier to use, and there is no good shutdown or battery SOC measurement. A proper battery monitoring chip would help out a lot here.
- I want to add a headphone socket to let users plug in their headphones, giving them game-stats and other announcements.
- The way the board connects to the rest of the hardware needs to be cleaned up, some parts don't use any connectors at all and require you to just solder in stuff... Ew?
Software:
The current software is just... A bit of a mess, frankly?
The current repository is just one huge chunk of folders, branches, and I barely tag what I use where etc.In the remake, I would write the entire batch of software from the ground up, making sure to properly keep things clean and well-documented. Things would be put into more appropriate components so that they can be reused more easily, and the different elements of the software etc. should be kept in separate repos, with better branch management.
Casings:
Lastly, this is gonna be one of the more fun aspects of redesigning this stuff!
The current casing is just... Not that interesting. It's small, it's practical, but I think it fails to really hit that 'Sci-Fi Weapon' look for me.
In the newer version, I'll try to design a bigger, better casing, while still trying to keep it printable on most commonly available 3D printers. Also, I want more LEDs, which is always a good thing~
The same thing goes for the shoulder sensors. Again, they currently just are a bit too small and underwhelming to be that interesting, so I am thinking of designing a PCB for them that can easily be manufactured, includes a bunch more LEDs, and making something that actually looks like a piece of Sci-Fi armour rather than just a little glowy dot.
All in all, it's not really one "huge" thing, but it IS a lot of small quality of life improvements that, I feel, will ultimately bring this project's hardware above the level of that of commercially available systems.
Despite this, I want to stress this: I will always try to keep this project as hackable and open as possible, making sure that those who want to reproduce it, can do so somewhat easily.
One quick last thing for those that already read through this big pile:
I felt like setting up a small ko-fi. It's not meant to be an obligation, everything I make will remain 100% open and there won't be any benefits, but... I feel like if someone really enjoys what I make, they should have a chance to give a little donation too :> - The main processor will be swapped out, from the ESP32 to, hopefully, an ESP32-S3. The CPU's vectoring instructions should hopefully speed up OPUS Audio decoding, while the extended I/O give more options for buttons and other peripherals.
-
Rewritten weapon handling code
01/26/2021 at 14:34 • 0 commentsWell, looks like we had a bit more free time on our hands than expected, and way more fun with the set of audio files we bough from the Unity Store.
Seriously, check this soundpack out, it is gorgeous <3
Either way, the weapon handling code we had been using up until now simply wasn't flexible enough to incorporate some of the other weapon behaviours. We had been using a fairly hard-coded state-machine that wouldn't be able to do anything but regular gunshots, so no energy weapons, charging up or machine-gun style spinning up.
What to do about that... Oh yes, rewrite the whole thing from scratch!
Well, after having gotten some extra motivation and free time after finishing up some university homework, we are now officially done, and just look at her beauty! ((It's being tested on #The WuffCorder since it has a far better speaker and I had the code ready) :>))
https://twitter.com/XasinTheSystem/status/1354072054040055810
The new code is also fairly independent of the rest of the Lasertag codebase, meaning that it should be easy enough to pull out and reuse in other projects if any one of you so desires ^^
There's still some awkwardness to fix up, such as the ESP barely being able to keep up with this amount of OPUS Audio Decoding. If we want the real deal to not glitch out we might have to make use of both cores in parallel for decoding, that means fun multi-core synchronizing... Plus the memory requirements are huge, so the next version will have to see a WROOM Module, probably with an ESP-S3 too so we can make use of the vector instructions...
Whew, this is getting me pretty excited already <3
-
It ain't done yet!
12/27/2020 at 19:31 • 0 commentsDon't you dare think that we're done with the Lasertag just yet!
We just... We have a backlog of stuff here, we had an amazing time finishing a few really good #Some Christmas gift presents (will have to be updating that one later too, it is turning out really nice :D), BUTWe FINALLY bought it! The Principle Sound Design Sci-Fi weapon SFX Unity asset we have been dreaming about for oh so long.
It was reduced by 30%, and now that we finally have OPUS encoding we can store compressed audio, allowing us to have 20 times more sound effects in the same storage space, meaning it's actually worthwhile to get high-quality SFX and slap them in there!The SFX pack has a huge list of weapon designs, some of which are just blowing us away, but we will need to rewrite the entire gun handling core to make use of things like energy-beam weapons and the different pre-charge/post-charge effects.
You can see a first rough draft of the improved effects here:
Oh, and on another note, a few people have shown interest in trying out the VSYL Emitter Type, which is a type of IR laser instead of regular IR diode. It could seriously improve the transmission distance of the Lasertag.
Look down into the comments to see how it's going!
-
Feature Creep Avoided!
11/09/2019 at 20:07 • 0 commentsWhew, so ... Finally.
Before I start rambling on about stuff, I'd like to share a proper video demonstrating a handful of features that are now fully functional and supported in the Lasertag code <3
This means that my system is fully functional and useable for games, with everything you'd need to set it up:
- Team selection before the game
- Gun reloading and switching during the game
- Configurable parameters like damage, life regeneration, revival, team damage etc.
- Beacons to allow for King Of The Hill gamemodes, as well as Capture The Flag with a bit of trickery.
- Stats tracking of Kills, Deaths, Damage done and received and self-healing done.
- Registering and starting of different games via MQTT, meaning a headless server is also doable now.
- A slightly crude but still useable Webinterface (that I'll polish uh ... Eventually >.>)
And I also spent all the time needed to build and wire up four of these sets all by myself, which was fun, but also a surprising amount of work.
As of this time, I've completed my list of issues and ideas I wanted to implement, have successfully avoided feature-creep and am a bit out of breath :P
This means I can finally put this project's development back on pause for a well deserved break while I focus on Uni.Trust me, this is not the end, and you will see more progress on the webinterface and some general polishing all around once I feel like it again - but for now I am really more than happy with the system, and it's time to enjoy the fruits of my labour by inviting my friends over for a round or two <3
-
More software stuff!
10/24/2019 at 20:09 • 0 commentsAlright, just a quick poke for all you guys somehow still following along.
Over the last few days I have been refining the whole game control system a little, there certainly were some bugs to squash but nothing out of the ordinary.
I also took some time to set the new Raspberry Pi up properly - and I might do an instruction on how to get a nice WiFi AP setup with internet forwarding, so you guys can do that stuff yourselves.
The important news here is that the new Raspberry Pi + better WiFi stick have massively improved the connection stability of the Lasertag, which is a huge relief and improves the gameplay!There has also been a huge bunch of extra code documentation that I did, and now all the important Ruby library functions have been documented with YARD. I've also pushed a first version of the libraries onto Rubygems, who has been refusing to build my documentation ever since, so I can't show it off for now :C
Seriously, if you know how to fix this, please tell me.Oh, also, a friend offered me to mill the vest detector PCBs, and they're on their way right now. They already look great, and will be much better to use than hand-wired breadboard stuff and eeeeh >->
And as one last thing:
We switched the IR Protocol around a little, to a DIY library we call "XIRR". The nice thing is that we already have AVR code ready for another project - IR Bacon.We already reprogrammed them to be small positioning beacons for the lasertag game, which opens up a TON of possibilties, from Payload and Capture-point games to Kill and Revive zones or "safe" regions to play in.
It's awesome, and I will definitely show those new features off when we complete the vest sensor boards :>
-
Progress! Small but progress
10/13/2019 at 18:36 • 0 commentsIt's been a while since I last posted a log, so I felt like doing it now - it's an opportune moment for a number of reasons.
Firstly, the new hardware is now pretty much 100% supported, all the way from the new navigation switch to the gyroscope. This includes support for the Ruby backend, as well as a few snippets of template code that already show off how useful these new elements are!
My favorite example is the gyroscope. It can detect when the weapon is pointing up or down - so at the start of the match, players can choose their team simply by picking up the weapon at a certain moment. I call that quite useful!
Secondly, the Ruby backend is also nearly complete - not just for the new hardware, but for a completely overhauled game control system.
With the current code, it's very easy to define various states of your game (such as starting, team selection, prep, active gameplay and a post-game celebration), and switch between these manually.
There's also a way to register various configurations of games into Ruby, and select a game via MQTT, meaning that it's now feasible to set up a central, "always on" server from which games can be started!What's next?
More importantly, with the individual Lasertag components coming to a polished state, we have started working on the system as a whole.
We bought a new Raspberry Pi 3 A+, which we will turn into a proper central LZRTag server. It will have more power than the RPi Zero we are using right now, but more importantly, it also has a USB and Ethernet port, giving us much better connectivity options than with just the Zero.
The extra processing power will also be relevant to host a webserver!
That's right, we finally started to work on the Lasertag's web app. React + MQTT is turning out to be a perfect combination, and we were already able to extract all relevant information on players and display it live!
We'll have to create a good design first, and especially optimize the whole thing for mobile viewing as well as for a big "scoreboard" screen, but those tasks are surmountable.Video pls?
Well, right now there just is a lot of small, disconnected stuff going on. Showing each element off individually will be tricky.
Once we properly set up the Raspberry 3 A+ and got all five current sets running with an example game though, we will definitely provide you guys with a rich video showing off the features of our system!There will also be more documentation incoming on the Ruby gem and setting up the Raspberry Pi as we go along, and we're almost done tweaking the 3D printed casing for the new system and will be uploading a zip with the files soon!
-
You want your glowy toys? Take it!
09/23/2019 at 20:34 • 0 commentsThat's what I'm counting on~
I used to want you to beep, but now I only want you ooonn~Heh, couldn't help myself there.
A lot has been happening with the Lasertag sets recently. Sadly, most of it has to do with internal reconfigurations and polishing. I'm slowly working on adding the new features that the hardware has given me, and it has been going very well!
The Nav Switch works super well, the weapon's power supply is stable, charging works just fine... The Ruby-Side is getting a good amount of affection too, making sure it's the best it can be for the new stuff.
But ... I felt like doing something ... Silly. Something to really savor what it means to have four whole Lasertag sets at once. And there was no better way to do that, than to make them play "Cara Mia", the Portal 2 turret song in the end sequence.
One thing that really swept me off my feet here was an experience that I think many of you can cherish.
While trying to play the song, bugs and glitchy sounds kept popping up. I thought it was some kind of malfunction, maybe a faulty packet transmission... But when I cleared up the typo that caused a unsigned vs. signed calculation, it suddenly all came together as a ... Frankly quite stunning melody.
We hackers deal with randomness and glitches all the time, constantly trying to turn it into some form of pattern, rhythm, music, or art. It was quite poetic, really.
-
First Bootup of 3.2!
09/18/2019 at 09:07 • 1 commentAw hell yeah <3
Aisler took its time with delivering the PCBs, so this project log is coming up a little later than expected.
However, as usual, the wait time was more than worth it! The PCBs are of the usual high quality I've come to know from them, and the stencil with it was perfect as well.Perfect solder paste application, partly thanks to the good stencil, partly thanks to the good stencil-holder I was allowed to use~ I had just gone through an exam, so sitting down and being able to take some time to solder the Lasertag was ... Actually kinda tranquil.
It certainly began to rapidly eat up any sense of time I had left, so I was able to, somehow, sit through an entire morning and afternoon just soldering away :>So, enough of the talk, let's share some pretty pictures!
...
Ok I might have forgotten to take more pictures.
I did, however, not forget to write a detailed assembly guide over on GitHub :>Here's the awesome extra: Everything worked first try!
Seriously, how often does that happen? It did make me rather proud, in a way :>
The only thing that went wrong was the fact that I didn't have enough PMBT2222A transistors, which means that for now not all weapons have their vibration motor running, but for initial programming etc. that's no problem at all.A few minutes after finishing up their solder, I was already able to get some lovely blink action running~
Gha, just look at these precious little babies!
The fourth one is functional too, I just didn't have a USB cable or LiPo at hand to run it.So yeah, Revision 3.2 is finally underway at basically full speed. We've even already started adjusting the 3D casing for the new navigation switch at the side, and will be printing them out either today or tomorrow, so stay tuned!
It's going well :>
-
Lights? Check
09/12/2019 at 21:16 • 0 commentsAlright, so it seems Aisler is taking their sweet time with the new boards...
It's still quicker than LCSC, and they'll be here tomorrow, but the wait was a biiit annoying. Happens <.<The DigiKey components arrived though, and oh boy: <3
In the mean time however, I was able to work on some other, extremely important and long-awaited code rewrite:
The light handling!Before, a lot of the patterns were defined in a rather static manner, making it hard to add new effects and get them integrated in the code in a smooth fashion.
I was finally able to change this by using a completely new, class-based approach with a proper, abstract interface and a list of components to render.
The result is a very easy to expand, stable, and quite stunning new effects system!I think the video here shows it off best:
I'll be reviewing the changes in a GitHub PR soon. Those that are interested can poke me for a link :>
And next monday?
Time for the new hardware to be soldered~