{"id":3410,"date":"2023-10-15T00:30:59","date_gmt":"2023-10-15T00:30:59","guid":{"rendered":"http:\/\/blog.system11.org\/?p=3410"},"modified":"2024-08-21T11:38:51","modified_gmt":"2024-08-21T11:38:51","slug":"hardware-macro-click-mouse-with-variance-fysu-device","status":"publish","type":"post","link":"https:\/\/blog.system11.org\/?p=3410","title":{"rendered":"Hardware macro click mouse with variance (Nikke)"},"content":{"rendered":"<p>There are plenty of mice with macro functionality on the market, some very precise or with full step sequences, but none that I can find allow you to add variance and if you ask the companies or on support forums, there is a reluctance to implement such a feature.\u00a0 Why does this matter?\u00a0 Games which require constant rapid pressing or holding are a lot of wear and tear on your hands &#8211; while well designed games typically add a repeat fire method of input, some don&#8217;t, and others consider the use of macros to offload this effort to be cheating.\u00a0 This is why variance is not implemented as it would evade most macro detection systems, mouse makers don&#8217;t want to get their products blacklisted by the industry.\u00a0 Unfortunately this leaves players in a bad situation where to play, is to eventually injure &#8211; and this is the situation I found myself in recently in one particular game.<\/p>\n<p>I am\/was a Nikke player, I actually got rid of my original high end account a while back because of bad RNG features and power creep, but I&#8217;m still active in the scene.\u00a0 It&#8217;s a gacha game which has quite enjoyable gameplay with surprising depth, it feels like a game written by people who wanted to make a good game, trapped within a gacha business model cage.<\/p>\n<p>There are different weapon classes, while most guns can be fired continuously by holding the control, sniper rifles and rocket launchers use a charge shot method &#8211; hold the mouse button (or keep your fingers on the screen, it was originally a phone game after all) and then release to fire.\u00a0 There are two problems here &#8211; firstly due to game design and the need to fire often to build up &#8216;burst&#8217; energy &#8211; it turned out that fully charged shots were less optimal than spamming them as fast as possible.\u00a0 This meant that to compete in score based modes or beat more difficult stages, players have to repeatedly click\/tap about 4 times a second since under AI control the characters with these weapons were nearly useless.<\/p>\n<p>The second issue strongly related to the first, is this is an example of poor ergonomic design.\u00a0 I have had problems stemming from working on keyboards and mice, for many years now.\u00a0 At the worst point I was unable to work for 8 straight months or drive a car, this is how serious tendon\/carpal\/etc issues can become, and some are life long afflictions you will have to learn to manage if you want to stay employed.\u00a0 For a game in this day and age to encourage this kind of wear and tear on their customers hands through a lack of experience in control design, is unfortunate.<\/p>\n<p>Players naturally found ways to automate the clicking &#8211; gaming mice for example.\u00a0 This is a gray area in the game TOS to be fair, they are broad and non-specific to the point that when asked directly, Shift Up support&#8217;s response to a question on the subject was simply that they couldn&#8217;t promise that the anti-cheat system wouldn&#8217;t get upset.\u00a0 Very quickly and for obvious reasons of health, comfort and performance &#8211; using macros became widespread &#8211; normalised within high level unions who provide the bulk of income.<\/p>\n<p>Unfortunately, even though this was something all players could do (some methods are even free), a minority of players started to complain about the &#8220;cheating&#8221;.\u00a0 The loudest voices were the ones who were simply being outspent anyway and could never compete, but they&#8217;d told themselves it was due to macro use, and being idiots they believed it.\u00a0 The end result was a thread on the official Nikke Discord server which saw a huge amount of engagement and was naively escalated to customer services.\u00a0 This is where the s&#8230; really hit the fan.\u00a0 Statements were made, entire libraries of youtube content vanished in a moment as people protected themselves from the pointing fingers, and a number of players offered constructive suggestions about how the game could be improved while solving the problem at the same time.<\/p>\n<p>The options Shift Up faced were to go with enforcement measures, balance changes (for example increase full charge damage) or control improvements.\u00a0 No game has ever managed to completely ban macro input, and few have tried because technically it&#8217;s impossible.\u00a0 Not would it be the wrong decision technically, it would be the wrong decision on any &#8220;best for business&#8221; and &#8220;best for players&#8221; level too &#8211; so that&#8217;s what they went with.\u00a0 They eventually rolled out a system that monitored click inputs via the ACE anti-cheat the client bundles with.<\/p>\n<p>Immediately innocent people were getting warned or banned (this was later reduced to a 1 minute ban due to the constant false positives), it was possible to get banned for clicking too fast in the menu, clicking too fast in legitimate play and my personal favourite clicking too fast IN ANOTHER APPLICATION ENTIRELY while Nikke was still running in the background.\u00a0 The response from them as the complaints mounted was that people should not play in a way that &#8220;appeared to be like macro&#8221;.\u00a0 Yes really.\u00a0 In reality, macro became the safest way to play to ensure that you weren&#8217;t clicking too fast.\u00a0 It was, and still is one of the most spectacular failures of judgement and implementation I have ever seen.\u00a0 I don&#8217;t see as many complaints recently, so they may have toned it down.<\/p>\n<p>Would they eventually ban people for having Razer tools installed?\u00a0 Certain mouse models?\u00a0 Would they measure timing consistency in future as they &#8220;improved their countermeasures&#8221;?\u00a0 This left people with physical difficulties completely out in the cold, it was as if they&#8217;d said &#8220;you are not allowed to play competitively anymore&#8221;.\u00a0 Clicking fast is not a skill, it&#8217;s just physically irresponsible.\u00a0 There&#8217;s so much knowledge on this subject out there and it was all being ignored in the laziest, most inept way possible.<\/p>\n<p>So I decided to do something about it.\u00a0 If you make a macro mouse that looks like human inputs, requires no software and is actually just a modification that can be applied to nearly any &#8220;off the shelf&#8221; mouse, then there&#8217;s no possible way to stop it that won&#8217;t stop players who click manually.\u00a0 It would work in any game which requires this type of spam clicking, and could easily be reprogrammed to adjust speeds or even features in future.<\/p>\n<p><strong>You will need:<\/strong><\/p>\n<p>1) A soldering iron and solder, or just get a friend who has the skills\/equipment to assemble it for you.<br \/>\n2) A FYSU PCB (<a href=\"https:\/\/www.pcbway.com\/project\/shareproject\/FYSU_Device_hardware_macro_module_for_mice_b29397a3.html\">VMM PCB at PCBWAY<\/a>) &#8211; note that you can download the PCB gerber files from here too.<br \/>\n3) From the <a href=\"https:\/\/www.picaxestore.com\/picaxe\">PICAXE store<\/a>: PICAXE 08M2 (AXE007M2SM), Stereo PICAXE connector (CON039), PICAXE USB Download Cable (AXE027)<br \/>\n4) PICAXE Editor 6 software from above<br \/>\n5) The (click here:) <a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/vmm_alow.zip\">VMM code file<\/a><br \/>\n6) 1N4001 SMD diode, DO-214 package<br \/>\n7) 22k 0.125w resistor, SMD 0805 package<br \/>\n8) 10k 0.125w resistor, SMD 0805 package<br \/>\n9) Any generic cabled USB mouse &#8211; wireless might work too, not tested.<br \/>\n10) A multimeter with continuity test or just use eyes in some cases.<\/p>\n<p>For this example I used a generic mouse from Amazon on their basics range.\u00a0 It doesn&#8217;t matter, spend as little as possible.<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fyu_basics_mouse.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3409\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fyu_basics_mouse.png\" alt=\"\" width=\"1648\" height=\"1206\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fyu_basics_mouse.png 1648w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fyu_basics_mouse-300x220.png 300w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fyu_basics_mouse-1024x749.png 1024w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fyu_basics_mouse-768x562.png 768w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fyu_basics_mouse-1536x1124.png 1536w\" sizes=\"(max-width: 1648px) 100vw, 1648px\" \/><\/a><\/p>\n<p>Start by opening the mouse &#8211; varies, these ones have a screw hidden under the label on the bottom, and some clips at the back.<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_opened.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3398\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_opened.png\" alt=\"\" width=\"1258\" height=\"1198\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_opened.png 1258w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_opened-300x286.png 300w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_opened-1024x975.png 1024w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_opened-768x731.png 768w\" sizes=\"(max-width: 1258px) 100vw, 1258px\" \/><\/a><\/p>\n<p>Remove the mouse PCB, being careful to see which parts of the middle wheel are spring loaded and fly across the room &#8211; this again varies, the Amazon one was very securely fitted, I didn&#8217;t need to have removed it as I realised later.<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_pcb_removed.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3400\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_pcb_removed.png\" alt=\"\" width=\"1033\" height=\"997\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_pcb_removed.png 1033w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_pcb_removed-300x290.png 300w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_pcb_removed-1024x988.png 1024w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_pcb_removed-768x741.png 768w\" sizes=\"(max-width: 1033px) 100vw, 1033px\" \/><\/a><\/p>\n<p>Pay attention to the connector &#8211; this is a very common layout but you can see the black and red wires which are ground and 5v.\u00a0 It&#8217;s very important to identify which is which, turn it upside down &#8211; the left and right button switches will have 2 pins, one goes to the encoder chip and the other will be connected to 5v or ground, you can use the multimeter to verify. MAKE A NOTE of which is connected to which.<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_pcb_labelled.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3399\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_pcb_labelled.png\" alt=\"\" width=\"2325\" height=\"2012\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_pcb_labelled.png 2325w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_pcb_labelled-300x260.png 300w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_pcb_labelled-1024x886.png 1024w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_pcb_labelled-768x665.png 768w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_pcb_labelled-1536x1329.png 1536w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_pcb_labelled-2048x1772.png 2048w\" sizes=\"(max-width: 2325px) 100vw, 2325px\" \/><\/a><\/p>\n<p>On the mouse above you can see just tracing by eye that one pin of the left and right mouse buttons is connected to the big ground track.\u00a0 You should generally use the meter here set to continuity test (sometimes called buzzer test), if it&#8217;s set correctly it will beep when the probes are touched together.\u00a0 I&#8217;ve seen the left button connected to 5v or ground, I&#8217;ve never seen the right connected to anything but ground but that doesn&#8217;t mean they don&#8217;t exist.\u00a0 If the left button has a pin on 5v we will call it an &#8216;active low&#8217; mouse, if it&#8217;s ground then &#8216;active high&#8217; &#8211; it will matter later.<\/p>\n<p>Cut the track for the right mouse button that <strong>isn&#8217;t<\/strong> connected to 5v\/ground.\u00a0 Actually you could use any other button or even drill a hole and fit an extra one if you want, but one pin should be connected to ground.\u00a0 We&#8217;re going for the most basic example mod here though, so cut the R mouse button track.<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_cut_track.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3397\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_cut_track.png\" alt=\"\" width=\"1290\" height=\"1036\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_cut_track.png 1290w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_cut_track-300x241.png 300w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_cut_track-1024x822.png 1024w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_cut_track-768x617.png 768w\" sizes=\"(max-width: 1290px) 100vw, 1290px\" \/><\/a><\/p>\n<p>Now solder trailing wires to the left button pin, right button pin, any ground pin and any 5v pin.<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_pcb_wires.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3401\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_pcb_wires.png\" alt=\"\" width=\"1481\" height=\"1225\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_pcb_wires.png 1481w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_pcb_wires-300x248.png 300w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_pcb_wires-1024x847.png 1024w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_pcb_wires-768x635.png 768w\" sizes=\"(max-width: 1481px) 100vw, 1481px\" \/><\/a><\/p>\n<p>Place this back in the mouse, you can trim the wires and strip the ends now or leave it to later, but this step is to establish the best way for the wires to run, it was very easy in this mouse &#8211; much easier than a base model Logitech I did before.<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_reinstall_pcb.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3402\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_reinstall_pcb.png\" alt=\"\" width=\"1253\" height=\"1646\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_reinstall_pcb.png 1253w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_reinstall_pcb-228x300.png 228w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_reinstall_pcb-780x1024.png 780w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_reinstall_pcb-768x1009.png 768w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_reinstall_pcb-1169x1536.png 1169w\" sizes=\"(max-width: 1253px) 100vw, 1253px\" \/><\/a><\/p>\n<p>Now it&#8217;s time to assemble the macro module &#8211; the part locations are printed on the back of the PCB, but this picture should make it obvious.\u00a0 The first and most important step &#8211; if you have an active high mouse, the band on the diode should be towards the edge of the PCB, if it is active low it should be towards the middle next to where the PICAXE chip goes.\u00a0 If you get this wrong the module will not work.\u00a0 The Amazon basics mouse uses all grounds, so it&#8217;s active low.<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_parts.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3403\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_parts.png\" alt=\"\" width=\"1377\" height=\"1903\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_parts.png 1377w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_parts-217x300.png 217w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_parts-741x1024.png 741w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_parts-768x1061.png 768w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_parts-1111x1536.png 1111w\" sizes=\"(max-width: 1377px) 100vw, 1377px\" \/><\/a><\/p>\n<p>Fit the diode first, then the resistors (R2 is 10k, R1 is 22k), then the PICAXE chip &#8211; the dot is pin 1 and goes nearer the middle of the PCB.\u00a0 Finally fit the socket to the back of the PCB, it should look like this, note the position of the band on the diode.\u00a0 This is fine work and not really for beginners, I could make an easier to solder version but it would be physically larger.\u00a0 If in doubt get someone else to make it for you.<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_module.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3393\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_module.png\" alt=\"\" width=\"1450\" height=\"1262\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_module.png 1450w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_module-300x261.png 300w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_module-1024x891.png 1024w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_module-768x668.png 768w\" sizes=\"(max-width: 1450px) 100vw, 1450px\" \/><\/a><\/p>\n<p>The 2x 2-pin empty pin holes J2 and J3 are where the wires go, underneath the PCB is labelled which is which but from left to right they are: ground, right button, left button, 5v.\u00a0 You can sanity check this with the meter on continuity test, as the top left (pin 1) on the PICAXE chip is 5v, and the top right (pin 8) is ground, the left button will be connected to the diode pad in the top right.\u00a0 You can now solder it to the wires in the mouse trimming and finding a decent location as appropriate.<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_module_installed.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3394\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_module_installed.png\" alt=\"\" width=\"1622\" height=\"1001\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_module_installed.png 1622w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_module_installed-300x185.png 300w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_module_installed-1024x632.png 1024w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_module_installed-768x474.png 768w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_module_installed-1536x948.png 1536w\" sizes=\"(max-width: 1622px) 100vw, 1622px\" \/><\/a><\/p>\n<p>On your PC, plug in the PICAXE serial USB cable and wait for Windows to decide it&#8217;s happy with the new serial driver.\u00a0 Install the PICAXE editor software &#8211; <strong>NOTE: <\/strong>the software and cable driver are only needed one time for the initial configuration, you can delete them afterwards if you want &#8211; there is no requirement to use them on the same machine the mouse will be used, once programmed the mouse will work on any type of computer, even a Playstation if you want.\u00a0 Load the macro module code.<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3404\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe1.png\" alt=\"\" width=\"1920\" height=\"1080\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe1.png 1920w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe1-300x169.png 300w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe1-1024x576.png 1024w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe1-768x432.png 768w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe1-1536x864.png 1536w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>As you can see if you&#8217;re familiar with programming, it&#8217;s a cut down dialect of basic.\u00a0 You can ignore nearly all the comments (in green), but a few things may need adjusting.\u00a0 First find the section for click timing, and adjust it however you see fit for baseline hold\/release and variances.<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3405\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe2.png\" alt=\"\" width=\"1920\" height=\"1080\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe2.png 1920w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe2-300x169.png 300w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe2-1024x576.png 1024w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe2-768x432.png 768w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe2-1536x864.png 1536w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>The next thing to check is whether it&#8217;s set up correctly for active high\/low as appropriate for your mouse &#8211; this is how it should look for the Amazon one I picked which is active low:<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3406\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe3.png\" alt=\"\" width=\"1920\" height=\"1080\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe3.png 1920w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe3-300x169.png 300w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe3-1024x576.png 1024w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe3-768x432.png 768w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe3-1536x864.png 1536w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>Same again for the hold \/ release cycle code in the main loop:<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3407\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe4.png\" alt=\"\" width=\"1920\" height=\"1080\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe4.png 1920w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe4-300x169.png 300w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe4-1024x576.png 1024w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe4-768x432.png 768w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe4-1536x864.png 1536w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>As an aside, at the bottom there you can see some code for FATIGUE &#8211; this emulates someone getting tired as they click the button, if you dont want that feature you can comment those lines out, or adjust the values to suit &#8211; but do not let FATIGUE go above 255 or strange things will happen, it may even stop working entirely until unplugged.\u00a0 Connect the other end of the serial cable to the programming port and plug the mouse into the PC or a USB power supply, the sensor will probably light up and then go dim until you move it again.<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_module_programming.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3395\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_module_programming.png\" alt=\"\" width=\"1438\" height=\"1233\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_module_programming.png 1438w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_module_programming-300x257.png 300w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_module_programming-1024x878.png 1024w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_module_programming-768x659.png 768w\" sizes=\"(max-width: 1438px) 100vw, 1438px\" \/><\/a><\/p>\n<p>Make sure the right PICAXE-Type is selected in the top left (PICAXE 08M2) and that the correct serial port is selected which will show an AXE027, then click on Program.<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3418\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe5.png\" alt=\"\" width=\"1920\" height=\"1080\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe5.png 1920w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe5-300x169.png 300w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe5-1024x576.png 1024w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe5-768x432.png 768w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_picaxe5-1536x864.png 1536w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>Hopefully it will work, it usually does.\u00a0 If this fails the serial cable isn&#8217;t working properly, or the mouse isn&#8217;t powered properly, or the module is assembled incorrectly.\u00a0 Programming only takes a few seconds, you will see a progress bar bottom right.\u00a0 Once completed you no longer need the PICAXE editor software or the cable driver.\u00a0 Unplug everything and put the mouse back together.<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_completed.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3396\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_completed.png\" alt=\"\" width=\"1370\" height=\"1187\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_completed.png 1370w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_completed-300x260.png 300w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_completed-1024x887.png 1024w, https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/fysu_mouse_completed-768x665.png 768w\" sizes=\"(max-width: 1370px) 100vw, 1370px\" \/><\/a><\/p>\n<p>Now test it, my favourite way is with a painting package &#8211; just choose a brush\/line tool and hold the left button while dragging it around, you will get a solid line.\u00a0 Do the same but pressing the right button instead, you will get an intermittent line.\u00a0 You now have undetectable macro fire.\u00a0 Here&#8217;s an example I recorded a while ago testing the prototype on Nikke.<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/ezgif.com-optimize.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3420\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2023\/10\/ezgif.com-optimize.gif\" alt=\"\" width=\"600\" height=\"338\" \/><\/a><\/p>\n<p>I&#8217;m releasing this publically as a gift to players of all games with this issue who may suffer from hand issues or be at risk of developing them.\u00a0 I don&#8217;t for a moment expect many people to actually build one of these, and it&#8217;s not a service I&#8217;m offering.\u00a0 It was an enjoyable science project, and I hope the fact that something like this can so cheaply and easily be constructed, will help guide developers towards making better control design and policy decisions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>There are plenty of mice with macro functionality on the market, some very precise or with full step sequences, but none that I can find allow you to add variance and if you ask the companies or on support forums, there is a reluctance to implement such a feature.\u00a0 Why does this matter?\u00a0 Games which [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":50,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,13],"tags":[],"class_list":["post-3410","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-games","category-tech"],"_links":{"self":[{"href":"https:\/\/blog.system11.org\/index.php?rest_route=\/wp\/v2\/posts\/3410"}],"collection":[{"href":"https:\/\/blog.system11.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.system11.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.system11.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.system11.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3410"}],"version-history":[{"count":21,"href":"https:\/\/blog.system11.org\/index.php?rest_route=\/wp\/v2\/posts\/3410\/revisions"}],"predecessor-version":[{"id":3502,"href":"https:\/\/blog.system11.org\/index.php?rest_route=\/wp\/v2\/posts\/3410\/revisions\/3502"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.system11.org\/index.php?rest_route=\/wp\/v2\/media\/50"}],"wp:attachment":[{"href":"https:\/\/blog.system11.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3410"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.system11.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3410"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.system11.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3410"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}