{"id":1364,"date":"2025-10-06T14:11:20","date_gmt":"2025-10-06T14:11:20","guid":{"rendered":"https:\/\/bechele.de\/?p=1364"},"modified":"2026-02-23T17:35:28","modified_gmt":"2026-02-23T17:35:28","slug":"3d-printable-accurate-joystick","status":"publish","type":"post","link":"https:\/\/bechele.de\/?p=1364","title":{"rendered":"3D printable accurate Joystick"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Very precise Joystick<br><\/h2>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-6ee8533b-aaa4-42c5-abdc-71a0c1aeaa42\" href=\"https:\/\/bechele.de\/wp-content\/uploads\/1759\/56\/Joystick_accurate.zip\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Zip file containing all .stl 3D files along with combined .stp and .obj files to modify the design<\/mark><\/strong><\/a><a href=\"https:\/\/bechele.de\/wp-content\/uploads\/1759\/56\/Joystick_accurate.zip\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-6ee8533b-aaa4-42c5-abdc-71a0c1aeaa42\">Download<\/a><\/div>\n\n\n\n<p>To understand the focus of the project, I recommend the following overview video: <\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Overview\" width=\"843\" height=\"474\" src=\"https:\/\/www.youtube.com\/embed\/EiYY5sk1GoQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>This project describes a very precise 3D printable mechanical joystick, based on potentiometers. I tried to use existing joysticks in conjunction with my bechele project, that allows to bring puppets and models electrically to life, but I was disappointed about the accuracy of existing joysticks on the market, so I decided to build my own. Ordinary potentiometer based Joysticks use some transmission mechanics to couple the stick movement with the potentiometer rotation. Nearly all designs do this on cost of a slight mechanical inaccuracy, that causes a inconsistency in the relation of the stick position and the resulting potentiometer resistance. Typically moving the stick from differnt directions to the same mechanical point results in slightly different resistance values. The design of this Joystick overcomes these restrictions nearly fully, since only the inaccuracies of the potentiometers themselves define the inconsistency. The accuray will be achieved using the bearings of the potentiometer as the rotation points. Each axis uses two potentiometers that are connected electrically antiparallel. This way, the output voltage of the voltage divider can be used with the full range from 0 to full voltage. That means the resolution of the levers full movement range may coincide with the full range of the A\/D converter that digitizes the signals. In reality the joystick is very sensitive and the repeat accuracy is very good.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"755\" height=\"1000\" data-id=\"1377\" src=\"https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/other_joysticks.jpg\" alt=\"Other joysticks with issues\" class=\"wp-image-1377\" srcset=\"https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/other_joysticks.jpg 755w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/other_joysticks-227x300.jpg 227w\" sizes=\"auto, (max-width: 755px) 100vw, 755px\" \/><figcaption class=\"wp-element-caption\">Inaccurate joysticks<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"837\" height=\"1000\" data-id=\"1376\" src=\"https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/foto_joystick_3d_printed.jpg\" alt=\"view of the complete 3D printed joystick according to the project\" class=\"wp-image-1376\" srcset=\"https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/foto_joystick_3d_printed.jpg 837w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/foto_joystick_3d_printed-251x300.jpg 251w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/foto_joystick_3d_printed-768x918.jpg 768w\" sizes=\"auto, (max-width: 837px) 100vw, 837px\" \/><figcaption class=\"wp-element-caption\">3d printed Joystick<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"770\" data-id=\"1375\" src=\"https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/Foto_gerendert.png\" alt=\"rendered 3D printable joystick view\" class=\"wp-image-1375\" srcset=\"https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/Foto_gerendert.png 1000w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/Foto_gerendert-300x231.png 300w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><figcaption class=\"wp-element-caption\">3D printable joystick<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"759\" height=\"1024\" data-id=\"1372\" src=\"https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/x-axis-759x1024.png\" alt=\"The X unit rendered\" class=\"wp-image-1372\" srcset=\"https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/x-axis-759x1024.png 759w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/x-axis-222x300.png 222w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/x-axis-768x1037.png 768w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/x-axis.png 800w\" sizes=\"auto, (max-width: 759px) 100vw, 759px\" \/><figcaption class=\"wp-element-caption\">X-Unit<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"759\" height=\"1024\" data-id=\"1371\" src=\"https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/y-axis-759x1024.png\" alt=\"mounted X and Y-unit\" class=\"wp-image-1371\" srcset=\"https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/y-axis-759x1024.png 759w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/y-axis-222x300.png 222w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/y-axis-768x1037.png 768w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/y-axis.png 800w\" sizes=\"auto, (max-width: 759px) 100vw, 759px\" \/><figcaption class=\"wp-element-caption\">mounted X and Y-unit<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Required Tools<\/h2>\n\n\n\n<p>Drill 6 mm<br>Drill 7 mm<br>Drill 2.4 mm for the M3 core hole<br>Drill 1.6 mm for the M2 core hole<br>Drill 3.2 mm for the M4 core hole<br>Thread taps M2, M3, M4<br>Screw driver for the two m4 worm screws<br>Screw driver for the 8 M2x5 Cover screws<br>Screw driver for the two M3 x 12 screws<br>10 mm fork wrench of 2.5 mm thickness max.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">All 3 D printed parts from the zip file<\/h2>\n\n\n\n<p>1 x Buttonstand<br>1 x Cover<br>1 x cover_bottom<br>1 x hood_rotation<br>1 x Joystick_base<br>1 x joystick_coupling<br>1 x Joystick_frame<br>1 x y-stop<br>1 x Joystick_stick &#8211; however you may also find an alternative lever according to your needs<br>2 x Button<br>1 x mounting helper bolt<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Bill of material (BOM)<\/h2>\n\n\n\n<p>8 Screws DIN 7985 M2 x 5<br>2 Screws DIN 7985 M3 x 12<br>2 screws DIN 551 M4 x 5<br>1 Screw M4 x 6 with 7mm diameter head as a mounting guide<br>1 mounting helper screw M3 or Pin 3mm<br>4 Potentiometers 10 KOhm Type WH148 or RK097 of good quality. Make sure there is no play in between axis and slider of the potentiometer<br>2 Momentary Type Tactile Push Button Switch 4 Pin SMD 4*4*1.5 mm<br>Cyan acrylate glue (super glue)<br>Sticky tape<br>Eventually thread rod M4 of 55mm length<br>Very flexible single wire flex cable for the X-Potentiometer wiring Red, Black and Yellow 0.13mm\u00b2<br>5 cable ties 3mm<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Post processing after printing<\/h2>\n\n\n\n<p>Some post processing may be required after printing all 3D .stl files from the zip<br><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>All parts are designed in a way, that there is no need for printing supports<\/li>\n\n\n\n<li>If you printing added brims you need to clean off them for further processing<\/li>\n\n\n\n<li>In order to cut threads, I recommend to calibrate the core holes using a drill : 1.6 mm for M2 2.4 mm for M3 and 3.2mm for M4<\/li>\n\n\n\n<li>Calibrate the marked holes as indicated in the image <\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"773\" src=\"https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/Calibrate_holes-1024x773.png\" alt=\"Holes to calibrate for diameter\" class=\"wp-image-1368\" srcset=\"https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/Calibrate_holes-1024x773.png 1024w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/Calibrate_holes-300x227.png 300w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/Calibrate_holes-768x580.png 768w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/Calibrate_holes.png 1361w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Holes to calibrate<\/figcaption><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>cut the threads as indicated in the image<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"796\" src=\"https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/Threadsparts-1024x796.png\" alt=\"Where to cut threads\" class=\"wp-image-1370\" srcset=\"https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/Threadsparts-1024x796.png 1024w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/Threadsparts-300x233.png 300w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/Threadsparts-768x597.png 768w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/Threadsparts.png 1358w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Where to cut threads<br><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Mounting and Adjusting<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Mount and adjust the X-and Y-Axis as explained in the video: <\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Howto Adjust the 3D Printable Joystick\" width=\"843\" height=\"474\" src=\"https:\/\/www.youtube.com\/embed\/vW6KQ6T6QZU?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Glue the two micro push buttons onto the part Button_stand as shown in the image<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"475\" src=\"https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/glue_buttons-1024x475.png\" alt=\"Placing and glueing the button switches\" class=\"wp-image-1369\" srcset=\"https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/glue_buttons-1024x475.png 1024w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/glue_buttons-300x139.png 300w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/glue_buttons-768x356.png 768w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/glue_buttons.png 1491w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Glueing the button switches<\/figcaption><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Install the rest of the parts as explained in the video<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Mount parts\" width=\"843\" height=\"474\" src=\"https:\/\/www.youtube.com\/embed\/h7Xw7ttS8Gw?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Electronics installation<\/h2>\n\n\n\n<p>The Joystick was first intended to be used in conjunction with the bechele project, but it can be used also as a ordinary joystick for other purposes. Therefore the electronics is depending on the application.  <\/p>\n\n\n\n<p>The general wiring of the joystick potentiometers are always as shown in the image: Note that the combination of two potentiometers are equivalent to a single potentiometer, with the advantage, that if it is used as a voltage divider, the voltage range can be adjusted by the mounting angles inside the joystick. The overall resistance in between VCC and Ground connection varies with the adjustment, but this is pretty unimportant for a voltage divider as long as the power dissipation does not exceed the limits of the potentiometers. With an angle range of +\/-40\u00b0 the resistance is around 6 to 7 KOhm and therefore far beyond the limits for a low voltage.   <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"396\" src=\"https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/wiring-1024x396.png\" alt=\"Accurate_Joystick potentiometer wiring\" class=\"wp-image-1380\" srcset=\"https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/wiring-1024x396.png 1024w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/wiring-300x116.png 300w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/wiring-768x297.png 768w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/wiring-1536x594.png 1536w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/wiring.png 1837w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Joystick potentiometer wiring<\/figcaption><\/figure>\n\n\n\n<p><strong>For the bechele project you may use the arduino circuit &#8211; just replace the potentiometers as shown in the equivalent see <\/strong><a href=\"https:\/\/bechele.de\/?page_id=202\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">https:\/\/bechele.de\/?page_id=202<\/mark><\/strong><\/a> for more<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"861\" src=\"https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/Bechele_Joystick-1024x861.png\" alt=\"Arduino micro Pro wiring to be used for the bechele project\" class=\"wp-image-1379\" srcset=\"https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/Bechele_Joystick-1024x861.png 1024w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/Bechele_Joystick-300x252.png 300w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/Bechele_Joystick-768x646.png 768w, https:\/\/bechele.de\/wp-content\/uploads\/2025\/10\/Bechele_Joystick.png 1142w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Serial joystick wiring <\/figcaption><\/figure>\n\n\n\n<p>If you want to use the joystick mechanics as an ordinary HID joystick device you may check for the following project: <strong><a href=\"https:\/\/gp2040-ce.info\/ \"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">https:\/\/gp2040-ce.info\/ <\/mark><\/a><\/strong><br><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Trouble handling<\/h2>\n\n\n\n<p>If you run into trouble with any part of the design, first check, if you checked the documentation first, but if after that you cannot get ahead, please get in contact with me and I will try to help you. <br><br><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Very precise Joystick To understand the focus of the project, I recommend the following overview video: This project describes a very precise 3D printable mechanical&hellip;<\/p>\n","protected":false},"author":2,"featured_media":1375,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,28],"tags":[],"class_list":["post-1364","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-3d-prints","category-electronics"],"_links":{"self":[{"href":"https:\/\/bechele.de\/index.php?rest_route=\/wp\/v2\/posts\/1364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bechele.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bechele.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bechele.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/bechele.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1364"}],"version-history":[{"count":9,"href":"https:\/\/bechele.de\/index.php?rest_route=\/wp\/v2\/posts\/1364\/revisions"}],"predecessor-version":[{"id":1530,"href":"https:\/\/bechele.de\/index.php?rest_route=\/wp\/v2\/posts\/1364\/revisions\/1530"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bechele.de\/index.php?rest_route=\/wp\/v2\/media\/1375"}],"wp:attachment":[{"href":"https:\/\/bechele.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bechele.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bechele.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}