A Scrollwheel Attachment for Controllers
by Raydamick in Circuits > Arduino
591 Views, 2 Favorites, 0 Comments
A Scrollwheel Attachment for Controllers
I play this game Called Fortnite every so often, and in this game there is a pretty significant skillgap between controller players and keyboard and mouse players. This simply has to do with the lack of space and buttons on a controller. one example of an option that the controller players did not have was scrollwheel reset. As the name implies, this would allow keyboard and mouse players to instantly reset a building piece in the game by scrolling the scroll wheel up and down. Meanwhile controller players were stuck using normal buttons. Because of this I decided to make a scrollwheel for my controller and actually used it for quit a while.
Using arduino and a 3D printer, I have made a scroll wheel attachment for (mainly xbox) controllers. This scroll wheel has been designed to play Fortnite, but can be useful in other games that make use of the scrollwheel or can simply be used as a macro.
Supplies
Tools used in project:
3D printer, I strongly suggest you use a resin printer as it allows for more detail especially on small parts. I used a normal 3D printer and I had to glue a lot of things because my printer couldnt print small enough.
a soldering Iron/station
helping hands
2 usb cables (one for you arduino and one for your controller)
pc/laptop
electrical tape
skewer
plaster tape
solder
woodburner
The circuit:
arduino pro micro
mouse wheel rotary encoder from an old mouse
small wires
2x 110ohm resistors (I used ones with 1% tolerance)
If you also want to add an led to show you're scrolling:
1 led, 1 330ohm resistor.
I also have a Thingiverse link from this project from a while back:
https://www.thingiverse.com/thing:4807377 (some files have been updated in this post)
link to the original code I made:
https://pastebin.com/0vfDCUPs
Some Iterations Before We Start
In the pictures above you can see some of the iterations I went throught.
In the first picture you can see that I tried adding grip to the scroll wheel using hot glue. This did not work as well as I had hoped, since the hot glue still got slippery and did not add much. So I took it off and added plaster tape instead.
you can also see that I pushed the scrollwheel through the encoder from the top and hoped it would stay in place using only friction. I moved it, because I felt like it was difficult to reach. I also added suer glue to the stem of the scrollwheel, because it would occasionally slip.
In the next pictures (please excuse the horrible quality) you can see some of the 3D prints I went through. It took me atleast 10 tries before I got the measurements right. This was partially due to me using blender which is not optimal for exact measurements, but I also did not do a lot of measuring in the first place.
Setting Up the Electronics
first thing to do is to get all your components and solder your scrollwheel to your arduino. I suggest you use a scroll as show above as these are able to scroll infinitely in one direction, you can usually get these of of old mice if you're lucky. Most mice use a rotary encoder that uses a lazer to see if it's beeing rotated or not. I also included a chart that I found on the internet when making this project, it shows how to wire up a scroll encoder to an arduino and it's the exact same process for a scroll wheel encoder from a mouse. I also added a picture where I show what it looks like in my build. I made the mistake of soldering in the little pins that come with your arduino, because of this I lost a lot space in the enclosure, so I strongly suggest you don't do that.
Coding Part 1
Once you've wired everything up you can now upload the code to your arduino. If you've never used the arduino IDE before, I suggest you watch a video about how to set it up first.
Before you upload the code to your arduino you will have to install a couple libraries for the code to work. you'll need to install the following libraries:
-The mouse library
-The simple Rotary library
Once these are installed, you should be ready to upload the code to your arduino without issues.
Note: On my specific board, the newer IDE of arduino did not work. So if you're getting an error code, even though you've set everything up correctly, try switching to the older IDE. Remember to reinstall the libraries on the older IDE since these do not carry over.
Downloads
Coding Part 2 (optional Led)
If you're feeling up for it and you really, REALLY want to see a little LED light up when you scroll and dim again when you dont, you can follow the following step.
I've included another chart that shows how to wire up an led to your arduino. It's the same for every arduino, however make sure you connect the led's negative (the slightly bent pin in the picture) pin to a port which supports analog write. These holes are marked on your arduino with a little circle around it. I've added a picture of an arduino and as you can see the holes 10,9,6,5 and 3 all have a white circle around it. It is important that you solder the negative pin to one of these holes, since only these pins allow us to change the brightness of the led between a number of 0 and 255. Anything else and it'll just turn on and off.
Coding Part 3 (optional Led)
Once you have correctly connected your led to your arduino, you can upload the following code. For the code to work properly you'll have to change the number behind "int led" to whichever pin you connected your led to. If you want to check if your led works, you can change the "byte brightness" from 0 to 255 and hit upload. If you have everything setup properly, the led should light up once the upload is finished and slowly dim untill it's completely off. If you start scrolling it'll slowly become brighter again.
Downloads
Printing
As for the printing of the enclosure:
I used an ultimaker 2, which is quite dated now and it is not able to print in high quality. Because of this I was not able to completely use the scrollwheel file I included here. So if you're like me and you don't have a resin printer or a 3D printer which is able to print with a nozzle of 0.2 mm, you can follow these steps. I think it'll be a lot easier for people with resin printers, however if you still have issues with the scroll wheel not fitting or breaking off, you can still follow these steps.
The Print settings I used:
Rafts:
No
Supports:
Doesn't Matter
Resolution:
200
Infill:
10
Filament brand:
Ultimaker
Filament color:
Blue
Filament material:
PLA
note: when you're going to print the scrollwheel please make sure you put the speed to 10mm/s and turn rafts on, else it'll knock the print off the print plate.
You will have to mess around with the scale a bit on some of the prints, since I forgot what exact measurements I used. If some things dont fit even though you feel like the scale is right, you can use a soldering iron or a wood burner to melt the plastic so it all fits.
A Lot of Glueing
When your prints are done and they all fit, is where the janky part starts. If you're trying this for yourself I suggest you maybe experiment with different ways since my way of doing this is definitely not the prettiest.
First of all, make sure you have some super glue on hand. I used a lot of hot glue when I was testing, since I didnt want anything to be permanent yet. You could do that too, but keep in mind that it'll look very messy.
The first thing you will have to glue in place will be the scrollwheel encoder. second will be the cable on top of the case, before you do this, make sure you know on which side you want your scroll wheel. I wanted mine on the left, so I glued my cable to the bottom of the case. Also make sure the allignment is correct when glueing it on, I used a lot of hot glue here to get the alligment right, once the glue dried I pulled the cable off and it left a perfect little hole where the cable wouldfit. I then put super glue in that.
Now for the hardest part, the actual scrollwheel. If you printed the wheel and it fits perfectly, amazing just skip this step or put some hot glue on the stem of the wheel if it's slipping. If you're like me and your printer will not print this properly, follow the next few steps.
The ScrollWheel Part 1
Unfortunately I cant show a lot of picture of how I did it so I made some drawings.
The things you'll need for this step are: soldering iron/wood burner, a skewer, plaster tape and super glue.
First:
cut off the tip of the skewer at +/-1 cm length.
The ScrollWheel Part 2
Make a little hole using the soldering iron/wood burner, then add a bit of super glue to that hole and stick the non pointy end into the still soft plastic.
you'll probably have to do this step over a couple of times. don't worry if you're not able to get the toothpick into the hot plastic, just glue it on and it should hold out fine.
note: make sure you put the skewer in straight, I didnt use any special technicue for this, just trial and error.
The ScrollWheel Part 3
When you have attached the skewer to the scrollwheel, put a little put of super glue on to the scrollwheel and push the scrollwheel into the scrollwheel encoder.
as a finishing touch you can put a tiny strip of plaster tape around the scrollwheel (as shown in the picture) to add a bit of grip to the pretty slippery plastic wheel.
Optional: Led
This step show how I added the led to the casing:
find a nice spot on your case where you think you'll be able to see the led properly.
get your soldering iron out and make a little crevice for the led to snugly fit in to.
push the led in and you're done.
Putting It All Together
now for the final step. fitting everything into the enclosure and closing it up.
Before doing this make sure that all the electronics work and there are exposed wires touching each other when you close the case. This'll cause a short and will lead to the device not working. If you want to cover up the exposed wires, you can get some electrical tape and wrap it around the exposed bits.
Once that is done, put the lid on the case and close it up with some super glue or (if you want to) you can use your soldering iron/woodburner to melt the plastic together, creating a perfect seal. Both option are permanent, make sure you're completely finished with the project before doing this. If you're like me and still want to acces the electronics, maybe for another project or maybe some other reason. You can use some electrical tape to wrap around the case and close it like that.
Reflection
So, what have I learned throughout this project? Well, that I need to think my ideas through more carefully before putting it together. You might have noticed some problems that could've been fixed if I, for example, test fitted things or just thought about it more carefully. This is because I just came up with an idea and started doing it. It all worked out in the end, however it could've looked a lot cleaner.