Published © CC BY-NC-SA

Joystick Controller Project

The joystick project is just like our PCB project but can be wired up on a breadboard with generic devices to control a variety of projects.

BeginnerFull instructions provided1 hour240
Joystick Controller Project

Things used in this project

Hardware components

Quantum Integration Quantum Starter Bundle
×1
Quantum Integration Quantum Starter Kit
This will have most of the components if you don't already have an electronic starter kit
×1
Thumb Joystick
One is included in the Quantum Starter Kit, you can purchase the second one here: https://www.amazon.com/Miteko-Joystick-Breakout-Controller-Arduino/dp/B07KG2HBDV/ref=sr_1_3?dchild=1&keywords=joystick+elegoo&qid=1596131389&sr=8-3
×2
Tactile Switch, Top Actuated
Tactile Switch, Top Actuated
×1
Male/Male Jumper Wires
×4
Breadboard (generic)
Breadboard (generic)
One is included in the Quantum Starter Kit
×2

Software apps and online services

Quantum Integration Quantum Q-Server

Story

Read more

Schematics

Joystick Fritzing File

Joystick Fritzing Image

Joystick Schematic

Code

Joystick App.json

JSON
This code is made to only be imported to our application builder on our Q-Server's OS as it is customized to work with our UI.
{"id":"215","name":"Joystick","identifier":"Joystick","offsetX":120.8433280649501,"offsetY":56.829157333940145,"zoom":67.85000000000008,"gridSize":0,"links":[{"id":"19478","internalFlowId":"19471","type":"default","selected":false,"points":[{"id":"f3cfc9ad-61d8-4f09-8ea7-e027463911d3","selected":false,"x":503.5000403887981,"y":189.75000667839956},{"id":"fc86a508-1eb0-4ecc-8577-a87c7df0c7d6","selected":false,"x":1026.0000187993537,"y":285.4999987622701}],"labels":[],"width":3,"color":"rgba(255,255,255,0.5)","curvyness":50,"source":"42","target":"46","sourcePort":"7478","targetPort":"7487"},{"id":"19479","internalFlowId":"19472","type":"default","selected":false,"points":[{"id":"7ab4133f-668f-451e-93ab-9fedbaedf94a","selected":false,"x":503.5000403887981,"y":167.75000379980708},{"id":"1ccf3dd4-cfa8-45b9-be04-b4c1e9f5ba5a","selected":false,"x":1028.0001008392396,"y":167.49997105581758}],"labels":[],"width":3,"color":"rgba(255,255,255,0.5)","curvyness":50,"source":"42","target":"45","sourcePort":"7477","targetPort":"7484"},{"id":"19480","internalFlowId":"19473","type":"default","selected":false,"points":[{"id":"3330f03e-2b94-4b1d-b123-30c6dd38a0a9","selected":false,"x":503.5000403887981,"y":145.75000092121462},{"id":"c8a1f56a-39b9-48d0-9213-3bdc894a318f","selected":false,"x":1031.9374756204666,"y":43.140637795408736}],"labels":[],"width":3,"color":"rgba(255,255,255,0.5)","curvyness":50,"source":"42","target":"44","sourcePort":"7476","targetPort":"7481"},{"id":"19481","internalFlowId":"19474","type":"default","selected":false,"points":[{"id":"9248ea82-4c57-4e55-9486-d878a456975b","selected":false,"x":516.2500461459831,"y":548.8906262810382},{"id":"335192de-8385-4355-8078-d6d51afbc927","selected":false,"x":1022.8751267465719,"y":457.0468841971677}],"labels":[],"width":3,"color":"rgba(255,255,255,0.5)","curvyness":50,"source":"41","target":"47","sourcePort":"7473","targetPort":"7490"},{"id":"19482","internalFlowId":"19475","type":"default","selected":false,"points":[{"id":"98247220-4d70-4873-a431-98a3e3ca44dd","selected":false,"x":516.2500461459831,"y":570.8906291596306},{"id":"9bdf71b7-bf84-4885-ad50-a35cf9cbf1eb","selected":false,"x":1021.874995770614,"y":574.0468259056697}],"labels":[],"width":3,"color":"rgba(255,255,255,0.5)","curvyness":50,"source":"41","target":"48","sourcePort":"7474","targetPort":"7493"},{"id":"19483","internalFlowId":"19476","type":"default","selected":false,"points":[{"id":"44c06d1e-19d6-41de-985e-2a7c067be7d7","selected":false,"x":516.2500461459831,"y":592.8906320382232},{"id":"d966133d-c0f8-42b3-a8ac-553fe2e9ee6c","selected":false,"x":1019.8749137307282,"y":692.0468985901298}],"labels":[],"width":3,"color":"rgba(255,255,255,0.5)","curvyness":50,"source":"41","target":"49","sourcePort":"7475","targetPort":"7496"},{"id":"19484","internalFlowId":"19477","type":"default","selected":false,"points":[{"id":"85f4d899-efda-417e-91fd-60c1965cebf3","selected":false,"x":505.2656070973003,"y":837.1093388593356},{"id":"3fc8681e-ab46-43ed-abc3-29fe1b7e03ae","selected":true,"x":1020.4374986492065,"y":846.9374832898347}],"labels":[],"width":3,"color":"rgba(255,255,255,0.5)","curvyness":50,"source":"43","target":"50","sourcePort":"7479","targetPort":"7499"}],"nodes":[{"id":"41","internalFlowId":"757","type":"quantum","selected":false,"x":334.255,"y":502.391,"name":"Right Joystick","mappingDescription":"The right joystick","description":"Joystick controller with optional button","color":"#02B0EF","qType":"Widget","originalName":"Joystick","factoryId":null,"properties":{"mappableCategory":{"category":7,"subCategory":2},"multiWidget":false,"manufacturer":"generic"},"ports":[{"id":"7473","internalFlowId":"3534","type":"quantum","selected":false,"name":"b976f7c5-7784-4152-af2b-5f175695d49b","in":false,"label":"X-axis","description":"Nothing added here yet.","qTrigger":null,"defaultValue":null,"properties":{"clientService":{"key":"q_analog_in","name":"Analog In","uuid":"b71c0915-8c3a-5100-8db8-7c5040729981","value_len":"4","props":["read","notify"],"propChar":[{"key":"resolution","title":"Resolution","len":2},{"key":"range","title":"Range","len":4}],"signalType":{"key":"analog","name":"Analog","baseType":{"name":"Number"},"range":{"min":0,"max":4095}}}},"signalType":{"key":"analog","name":"Analog","baseType":{"name":"Number"},"range":{"min":0,"max":4095}},"index":0,"clients":[],"NodeId":41},{"id":"7474","internalFlowId":"3535","type":"quantum","selected":false,"name":"c2e2224b-8586-4b76-87b2-0d89c2d31542","in":false,"label":"Y-axis","description":"Nothing added here yet.","qTrigger":null,"defaultValue":null,"properties":{"clientService":{"key":"q_analog_in","name":"Analog In","uuid":"b71c0915-8c3a-5100-8db8-7c5040729981","value_len":"4","props":["read","notify"],"propChar":[{"key":"resolution","title":"Resolution","len":2},{"key":"range","title":"Range","len":4}],"signalType":{"key":"analog","name":"Analog","baseType":{"name":"Number"},"range":{"min":0,"max":4095}}}},"signalType":{"key":"analog","name":"Analog","baseType":{"name":"Number"},"range":{"min":0,"max":4095}},"index":1,"clients":[],"NodeId":41},{"id":"7475","internalFlowId":"3536","type":"quantum","selected":false,"name":"90e87065-664a-41c0-9843-1f864c0e0516","in":false,"label":"Button","description":"Nothing added here yet.","qTrigger":null,"defaultValue":null,"properties":{"clientService":{"key":"q_digital_in","name":"Digital In","uuid":"4ae77ff2-1d7c-5100-96d0-50b42a0fc08a","value_len":"1","props":["read","notify"],"propChar":[],"signalType":{"key":"digital","name":"Digital","baseType":{"name":"Boolean"}}}},"signalType":{"key":"digital","name":"Digital","baseType":{"name":"Boolean"}},"index":2,"clients":[],"NodeId":41}],"category":"Input Control","version":"0.0.1"},{"id":"42","internalFlowId":"758","type":"quantum","selected":false,"x":321.5,"y":99.262,"name":"Left Joystick","mappingDescription":"The left joystick","description":"Joystick controller with optional button","color":"#02B0EF","qType":"Widget","originalName":"Joystick","factoryId":null,"properties":{"mappableCategory":{"category":7,"subCategory":2},"multiWidget":false,"manufacturer":"generic"},"ports":[{"id":"7476","internalFlowId":"3537","type":"quantum","selected":false,"name":"4203bc19-767f-48d0-9eea-6360a75f765e","in":false,"label":"X-axis","description":"Nothing added here yet.","qTrigger":null,"defaultValue":null,"properties":{"clientService":{"key":"q_analog_in","name":"Analog In","uuid":"b71c0915-8c3a-5100-8db8-7c5040729981","value_len":"4","props":["read","notify"],"propChar":[{"key":"resolution","title":"Resolution","len":2},{"key":"range","title":"Range","len":4}],"signalType":{"key":"analog","name":"Analog","baseType":{"name":"Number"},"range":{"min":0,"max":4095}}}},"signalType":{"key":"analog","name":"Analog","baseType":{"name":"Number"},"range":{"min":0,"max":4095}},"index":0,"clients":[],"NodeId":42},{"id":"7477","internalFlowId":"3538","type":"quantum","selected":false,"name":"a3072904-487a-4f2f-921e-cd5e4434691e","in":false,"label":"Y-axis","description":"Nothing added here yet.","qTrigger":null,"defaultValue":null,"properties":{"clientService":{"key":"q_analog_in","name":"Analog In","uuid":"b71c0915-8c3a-5100-8db8-7c5040729981","value_len":"4","props":["read","notify"],"propChar":[{"key":"resolution","title":"Resolution","len":2},{"key":"range","title":"Range","len":4}],"signalType":{"key":"analog","name":"Analog","baseType":{"name":"Number"},"range":{"min":0,"max":4095}}}},"signalType":{"key":"analog","name":"Analog","baseType":{"name":"Number"},"range":{"min":0,"max":4095}},"index":1,"clients":[],"NodeId":42},{"id":"7478","internalFlowId":"3539","type":"quantum","selected":false,"name":"9081800f-f621-435f-8a26-df4d7a394bad","in":false,"label":"Button","description":"Nothing added here yet.","qTrigger":null,"defaultValue":null,"properties":{"clientService":{"key":"q_digital_in","name":"Digital In","uuid":"4ae77ff2-1d7c-5100-96d0-50b42a0fc08a","value_len":"1","props":["read","notify"],"propChar":[],"signalType":{"key":"digital","name":"Digital","baseType":{"name":"Boolean"}}}},"signalType":{"key":"digital","name":"Digital","baseType":{"name":"Boolean"}},"index":2,"clients":[],"NodeId":42}],"category":"Input Control","version":"0.0.1"},{"id":"43","internalFlowId":"759","type":"quantum","selected":false,"x":323.257,"y":790.613,"name":"Joystick Button","mappingDescription":"The button on the joystick","description":"A button which can turn things on or off.","color":"#02B0EF","qType":"Widget","originalName":"Button","factoryId":null,"properties":{"mappableCategory":{"category":7,"subCategory":1},"multiWidget":false,"manufacturer":"generic"},"ports":[{"id":"7479","internalFlowId":"3540","type":"quantum","selected":false,"name":"f20ba994-5b71-42d3-97e6-8ddc39e81bda","in":false,"label":"State","description":"This output is used to send out the state of the button.","qTrigger":null,"defaultValue":null,"properties":{"clientService":{"key":"q_digital_in","name":"Digital In","uuid":"4ae77ff2-1d7c-5100-96d0-50b42a0fc08a","value_len":"1","props":["read","notify"],"propChar":[],"signalType":{"key":"digital","name":"Digital","baseType":{"name":"Boolean"}}}},"signalType":{"key":"digital","name":"Digital","baseType":{"name":"Boolean"}},"index":0,"clients":[],"NodeId":43}],"category":"Input Control","version":"0.0.1"},{"id":"44","internalFlowId":"760","type":"quantum","selected":false,"x":1013.948,"y":-25.369,"name":"X-axis Left Joystick","mappingDescription":null,"description":"Adds a Slider with Analog Values to the Interface.","color":"#07D174","qType":"Gadget","originalName":"Slider Analog","factoryId":null,"properties":{"gadgetType":{"name":"Slideranalog"},"gadgetLabel":"X-axis Left Joystick","gadgetColor":"info","gadgetGroup":"1","gadgetIcon":"buttonIcon","gadgetStyle":"full"},"ports":[{"id":"7480","internalFlowId":"3541","type":"quantum","selected":false,"name":"6a73f781-4f2d-43dd-bcbb-219366711a62","in":true,"label":"Label","description":null,"qTrigger":false,"defaultValue":null,"properties":{},"signalType":{"key":"string","name":"String","baseType":{"name":"String"}},"index":0,"clients":[],"NodeId":44},{"id":"7481","internalFlowId":"3542","type":"quantum","selected":false,"name":"bb42ea7a-434c-4f4a-a24c-aef2c938587d","in":true,"label":"Value","description":null,"qTrigger":true,"defaultValue":null,"properties":{},"signalType":{"key":"analog","name":"Analog","baseType":{"name":"Number"},"range":{"min":0,"max":4095}},"index":1,"clients":[],"NodeId":44},{"id":"7482","internalFlowId":"3543","type":"quantum","selected":false,"name":"343f3077-5053-4a45-ab8c-95c57879ca82","in":false,"label":"Value","description":null,"qTrigger":null,"defaultValue":null,"properties":{},"signalType":{"key":"analog","name":"Analog","baseType":{"name":"Number"},"range":{"min":0,"max":4095}},"index":2,"clients":[],"NodeId":44}],"category":"Action","version":"0.0.1"},{"id":"45","internalFlowId":"761","type":"quantum","selected":false,"x":1010,"y":99,"name":"Y-axis Left Joystick","mappingDescription":null,"description":"Adds a Slider with Analog Values to the Interface.","color":"#07D174","qType":"Gadget","originalName":"Slider Analog","factoryId":null,"properties":{"gadgetType":{"name":"Slideranalog"},"gadgetLabel":"Y-axis Left Joystick","gadgetColor":"info","gadgetGroup":"1","gadgetIcon":"buttonIcon","gadgetStyle":"full"},"ports":[{"id":"7483","internalFlowId":"3544","type":"quantum","selected":false,"name":"3c57a448-04d5-47d9-8ba1-56014686a6b1","in":true,"label":"Label","description":null,"qTrigger":false,"defaultValue":null,"properties":{},"signalType":{"key":"string","name":"String","baseType":{"name":"String"}},"index":0,"clients":[],"NodeId":45},{"id":"7484","internalFlowId":"3545","type":"quantum","selected":false,"name":"7eee1ae3-3076-444b-b3e8-8ecb2d06e277","in":true,"label":"Value","description":null,"qTrigger":true,"defaultValue":null,"properties":{},"signalType":{"key":"analog","name":"Analog","baseType":{"name":"Number"},"range":{"min":0,"max":4095}},"index":1,"clients":[],"NodeId":45},{"id":"7485","internalFlowId":"3546","type":"quantum","selected":false,"name":"75cf7740-9add-4de9-a2df-0a9632d94e62","in":false,"label":"Value","description":null,"qTrigger":null,"defaultValue":null,"properties":{},"signalType":{"key":"analog","name":"Analog","baseType":{"name":"Number"},"range":{"min":0,"max":4095}},"index":2,"clients":[],"NodeId":45}],"category":"Action","version":"0.0.1"},{"id":"46","internalFlowId":"762","type":"quantum","selected":false,"x":1008,"y":217,"name":"Button Left Joystick","mappingDescription":null,"description":"Dashoard Interface Switch to toggle between True and False.","color":"#07D174","qType":"Gadget","originalName":"Switch","factoryId":null,"properties":{"gadgetType":{"name":"Switch"},"gadgetLabel":"Button Left Joystick","gadgetColor":"info","gadgetGroup":"1","gadgetIcon":"buttonIcon","gadgetStyle":"full"},"ports":[{"id":"7486","internalFlowId":"3547","type":"quantum","selected":false,"name":"103d3aeb-5da7-452f-ac31-39e60c5dc7a0","in":true,"label":"Label","description":null,"qTrigger":false,"defaultValue":null,"properties":{},"signalType":{"key":"string","name":"String","baseType":{"name":"String"}},"index":0,"clients":[],"NodeId":46},{"id":"7487","internalFlowId":"3548","type":"quantum","selected":false,"name":"aa63392e-051a-4cc0-a8ef-dddad7557b08","in":true,"label":"State","description":null,"qTrigger":true,"defaultValue":null,"properties":{},"signalType":{"key":"digital","name":"Digital","baseType":{"name":"Boolean"}},"index":1,"clients":[],"NodeId":46},{"id":"7488","internalFlowId":"3549","type":"quantum","selected":false,"name":"b0c79627-d138-438d-baf3-11c348adb6b4","in":false,"label":"State","description":null,"qTrigger":null,"defaultValue":null,"properties":{},"signalType":{"key":"digital","name":"Digital","baseType":{"name":"Boolean"}},"index":2,"clients":[],"NodeId":46}],"category":"Action","version":"0.0.1"},{"id":"47","internalFlowId":"763","type":"quantum","selected":false,"x":1004.884,"y":388.559,"name":"X-axis Right Joystick","mappingDescription":null,"description":"Adds a Slider with Analog Values to the Interface.","color":"#07D174","qType":"Gadget","originalName":"Slider Analog","factoryId":null,"properties":{"gadgetType":{"name":"Slideranalog"},"gadgetLabel":"X-axis Right Joystick","gadgetColor":"info","gadgetGroup":"kbpojnuh","gadgetIcon":"buttonIcon","gadgetStyle":"full"},"ports":[{"id":"7489","internalFlowId":"3550","type":"quantum","selected":false,"name":"6a73f781-4f2d-43dd-bcbb-219366711a62","in":true,"label":"Label","description":null,"qTrigger":false,"defaultValue":null,"properties":{},"signalType":{"key":"string","name":"String","baseType":{"name":"String"}},"index":0,"clients":[],"NodeId":47},{"id":"7490","internalFlowId":"3551","type":"quantum","selected":false,"name":"bb42ea7a-434c-4f4a-a24c-aef2c938587d","in":true,"label":"Value","description":null,"qTrigger":true,"defaultValue":null,"properties":{},"signalType":{"key":"analog","name":"Analog","baseType":{"name":"Number"},"range":{"min":0,"max":4095}},"index":1,"clients":[],"NodeId":47},{"id":"7491","internalFlowId":"3552","type":"quantum","selected":false,"name":"343f3077-5053-4a45-ab8c-95c57879ca82","in":false,"label":"Value","description":null,"qTrigger":null,"defaultValue":null,"properties":{},"signalType":{"key":"analog","name":"Analog","baseType":{"name":"Number"},"range":{"min":0,"max":4095}},"index":2,"clients":[],"NodeId":47}],"category":"Action","version":"0.0.1"},{"id":"48","internalFlowId":"764","type":"quantum","selected":false,"x":1003.884,"y":505.559,"name":"Y-axis Right Joystick","mappingDescription":null,"description":"Adds a Slider with Analog Values to the Interface.","color":"#07D174","qType":"Gadget","originalName":"Slider Analog","factoryId":null,"properties":{"gadgetType":{"name":"Slideranalog"},"gadgetLabel":"Y-axis Right Joystick","gadgetColor":"info","gadgetGroup":"kbpojnuh","gadgetIcon":"buttonIcon","gadgetStyle":"full"},"ports":[{"id":"7492","internalFlowId":"3553","type":"quantum","selected":false,"name":"3c57a448-04d5-47d9-8ba1-56014686a6b1","in":true,"label":"Label","description":null,"qTrigger":false,"defaultValue":null,"properties":{},"signalType":{"key":"string","name":"String","baseType":{"name":"String"}},"index":0,"clients":[],"NodeId":48},{"id":"7493","internalFlowId":"3554","type":"quantum","selected":false,"name":"7eee1ae3-3076-444b-b3e8-8ecb2d06e277","in":true,"label":"Value","description":null,"qTrigger":true,"defaultValue":null,"properties":{},"signalType":{"key":"analog","name":"Analog","baseType":{"name":"Number"},"range":{"min":0,"max":4095}},"index":1,"clients":[],"NodeId":48},{"id":"7494","internalFlowId":"3555","type":"quantum","selected":false,"name":"75cf7740-9add-4de9-a2df-0a9632d94e62","in":false,"label":"Value","description":null,"qTrigger":null,"defaultValue":null,"properties":{},"signalType":{"key":"analog","name":"Analog","baseType":{"name":"Number"},"range":{"min":0,"max":4095}},"index":2,"clients":[],"NodeId":48}],"category":"Action","version":"0.0.1"},{"id":"49","internalFlowId":"765","type":"quantum","selected":false,"x":1001.884,"y":623.559,"name":"Button Right Joystick","mappingDescription":null,"description":"Dashoard Interface Switch to toggle between True and False.","color":"#07D174","qType":"Gadget","originalName":"Switch","factoryId":null,"properties":{"gadgetType":{"name":"Switch"},"gadgetLabel":"Button Right Joystick","gadgetColor":"info","gadgetGroup":"kbpojnuh","gadgetIcon":"buttonIcon","gadgetStyle":"full"},"ports":[{"id":"7495","internalFlowId":"3556","type":"quantum","selected":false,"name":"103d3aeb-5da7-452f-ac31-39e60c5dc7a0","in":true,"label":"Label","description":null,"qTrigger":false,"defaultValue":null,"properties":{},"signalType":{"key":"string","name":"String","baseType":{"name":"String"}},"index":0,"clients":[],"NodeId":49},{"id":"7496","internalFlowId":"3557","type":"quantum","selected":false,"name":"aa63392e-051a-4cc0-a8ef-dddad7557b08","in":true,"label":"State","description":null,"qTrigger":true,"defaultValue":null,"properties":{},"signalType":{"key":"digital","name":"Digital","baseType":{"name":"Boolean"}},"index":1,"clients":[],"NodeId":49},{"id":"7497","internalFlowId":"3558","type":"quantum","selected":false,"name":"b0c79627-d138-438d-baf3-11c348adb6b4","in":false,"label":"State","description":null,"qTrigger":null,"defaultValue":null,"properties":{},"signalType":{"key":"digital","name":"Digital","baseType":{"name":"Boolean"}},"index":2,"clients":[],"NodeId":49}],"category":"Action","version":"0.0.1"},{"id":"50","internalFlowId":"766","type":"quantum","selected":false,"x":1002.442,"y":778.439,"name":"Joystick Button","mappingDescription":null,"description":"Dashoard Interface Switch to toggle between True and False.","color":"#07D174","qType":"Gadget","originalName":"Switch","factoryId":null,"properties":{"gadgetType":{"name":"Switch"},"gadgetLabel":"Joystick Button","gadgetColor":"info","gadgetGroup":"kbpok19n","gadgetIcon":"buttonIcon","gadgetStyle":"full"},"ports":[{"id":"7498","internalFlowId":"3559","type":"quantum","selected":false,"name":"5533b0ff-320d-4f5e-b573-2d4a7bed332d","in":true,"label":"Label","description":null,"qTrigger":false,"defaultValue":null,"properties":{},"signalType":{"key":"string","name":"String","baseType":{"name":"String"}},"index":0,"clients":[],"NodeId":50},{"id":"7499","internalFlowId":"3560","type":"quantum","selected":false,"name":"1ba54c34-f6ef-4f69-bbd4-000739ec14b2","in":true,"label":"State","description":null,"qTrigger":true,"defaultValue":null,"properties":{},"signalType":{"key":"digital","name":"Digital","baseType":{"name":"Boolean"}},"index":1,"clients":[],"NodeId":50},{"id":"7500","internalFlowId":"3561","type":"quantum","selected":false,"name":"79120da5-9759-4674-bac5-3ce189e01c7f","in":false,"label":"State","description":null,"qTrigger":null,"defaultValue":null,"properties":{},"signalType":{"key":"digital","name":"Digital","baseType":{"name":"Boolean"}},"index":2,"clients":[],"NodeId":50}],"category":"Action","version":"0.0.1"}],"status":"Stopped","rendering":{"id":"958","tabs":[{"id":"1060","internalFlowId":"1059","name":"Tab 1","position":0,"groups":[{"id":"1396","internalFlowId":"1393","name":"Left Joystick","position":0,"gadgets":[{"id":"7415","NodeId":44,"GadgetGroupId":1396,"position":0},{"id":"7416","NodeId":45,"GadgetGroupId":1396,"position":1},{"id":"7417","NodeId":46,"GadgetGroupId":1396,"position":2}]},{"id":"1397","internalFlowId":"1394","name":"Right Joystick","position":1,"gadgets":[{"id":"7418","NodeId":47,"GadgetGroupId":1397,"position":0},{"id":"7419","NodeId":48,"GadgetGroupId":1397,"position":1},{"id":"7420","NodeId":49,"GadgetGroupId":1397,"position":2}]},{"id":"1398","internalFlowId":"1395","name":"Joystick Button","position":2,"gadgets":[{"id":"7421","NodeId":50,"GadgetGroupId":1398,"position":0}]}]}]},"createdAt":"2020-07-07T23:37:59.394Z","errorLog":null,"debugFlag":false,"version":"0.0.1"}

Joystick Firmware.json

JSON
This code is the firmware file for the project. The code is customized to be used on the Q-Server's OS.
{"commit":"1.2.1-development-5e4ba4d1","id":140,"name":"Joystick","lifecycle":false,"signal":[{"disabled":false,"subClientIndex":0,"subClientName":"Left","subClientCategory":7,"subClientSubCategory":2,"serviceName":"X-axis","service":"q_analog_in","driver":"custom_Q10k_pot_anl","driverValues":{"granularity":50,"posSel":"adcPosSelAPORT3XCH6","negSel":"adcNegSelAPORT4YCH6"},"signalType":{"key":"analog","name":"Analog","baseType":{"name":"Number"},"range":{"min":0,"max":4095}}},{"disabled":false,"subClientIndex":0,"subClientName":"Left","subClientCategory":7,"subClientSubCategory":2,"serviceName":"Y-axis","service":"q_analog_in","driver":"custom_Q10k_pot_anl","driverValues":{"granularity":50,"posSel":"adcPosSelAPORT3YCH5","negSel":"adcNegSelAPORT4XCH5"},"signalType":{"key":"analog","name":"Analog","baseType":{"name":"Number"},"range":{"min":0,"max":4095}}},{"disabled":false,"subClientIndex":0,"subClientName":"Left","subClientCategory":7,"subClientSubCategory":2,"serviceName":"Button","service":"q_digital_in","driver":"custom_gpio_in","driverValues":{"port":"gpioPortD","pin":"15","debounce":1,"mode":2},"signalType":{"key":"digital","name":"Digital","baseType":{"name":"Boolean"}}},{"disabled":false,"subClientIndex":1,"subClientName":"Right","subClientCategory":7,"subClientSubCategory":2,"serviceName":"X-axis","service":"q_analog_in","driver":"custom_Q10k_pot_anl","driverValues":{"granularity":50,"posSel":"adcPosSelAPORT1YCH19","negSel":"adcNegSelAPORT2XCH19"},"signalType":{"key":"analog","name":"Analog","baseType":{"name":"Number"},"range":{"min":0,"max":4095}}},{"disabled":false,"subClientIndex":1,"subClientName":"Right","subClientCategory":7,"subClientSubCategory":2,"serviceName":"Y-axis","service":"q_analog_in","driver":"custom_Q10k_pot_anl","driverValues":{"granularity":50,"posSel":"adcPosSelAPORT4XCH27","negSel":"adcNegSelAPORT3YCH27"},"signalType":{"key":"analog","name":"Analog","baseType":{"name":"Number"},"range":{"min":0,"max":4095}}},{"disabled":false,"subClientIndex":1,"subClientName":"Right","subClientCategory":7,"subClientSubCategory":2,"serviceName":"Button","service":"q_digital_in","driver":"custom_gpio_in","driverValues":{"port":"gpioPortF","pin":"2","debounce":1,"mode":2},"signalType":{"key":"digital","name":"Digital","baseType":{"name":"Boolean"}}},{"disabled":false,"subClientIndex":2,"subClientName":"Joystick Button","subClientCategory":7,"subClientSubCategory":1,"serviceName":"State","service":"q_digital_in","driver":"custom_gpio_in","driverValues":{"port":"gpioPortF","pin":"1","debounce":1,"mode":2},"signalType":{"key":"digital","name":"Digital","baseType":{"name":"Boolean"}}}],"version":"0.0.1"}

Credits

Comments