<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.robopad.co.uk/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Blayze</id>
	<title>RoboPad Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.robopad.co.uk/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Blayze"/>
	<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php/Special:Contributions/Blayze"/>
	<updated>2026-06-09T21:32:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.0</generator>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=356</id>
		<title>SMRRF 2026 Kit</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=356"/>
		<updated>2026-03-25T09:51:06Z</updated>

		<summary type="html">&lt;p&gt;Blayze: /* Battery Selection */ Adds warning about li-ion batteries&amp;#039; limited power output.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thank you for picking up a RoboPad kit at SMRRF 2026! On this page you&#039;ll find all the information you&#039;ll need to get setup like we were at the event.&lt;br /&gt;
&lt;br /&gt;
The kit itself is build around the &#039;&#039;RoboPad&#039;&#039;, assembled onto a breakout board that we call the &#039;&#039;EduBoard&#039;&#039;. In order to find out more about the RoboPad, checkout the [https://robopad.co.uk/firmware.html user guide] and the rest of [[Main Page|this wiki]]. The RoboPad can be configured to do quite a few things, but by default it is configured to just drive two brushed motors using a simple tank-drive control scheme - this should be enough to get you started, before you begin taking steps to make more complex bots!&lt;br /&gt;
&lt;br /&gt;
Before you start, we recommend that you [https://robopad.co.uk/register register] your product; in doing so, you&#039;ll be able to choose to sign up for firmware updates and general product updates, should you want to. These are the best ways of keeping up to date with information on the latest RoboPad [[Firmware Releases|firmware releases]] and feature updates.&lt;br /&gt;
&lt;br /&gt;
== Kit Contents and Quickstart ==&lt;br /&gt;
[[File:SMRRF 2026 Kit Components.png|thumb|439x439px|The components in the kit]]&lt;br /&gt;
The kit itself only accounts for the electronic components - everything you need to build a simple 2-wheel robot. However, if you took home parts on the day, you may have additional 3D printed parts.&lt;br /&gt;
&lt;br /&gt;
The kit is designed to make it easy to use a 9v battery and a RoboPad to drive two motors. The power switch (3) is separated from the power distribution wire (5) so that you can easily mount the power switch into any 3D printed enclosure (such as the 3D printed print-a-blok switch holder that was used at SMRRF) without having to resolder its connecting wires.&lt;br /&gt;
&lt;br /&gt;
The RoboPad+EduBoard combo allows for easy connection of servo motors and additional outputs should you want to add more later down the line.&lt;br /&gt;
&lt;br /&gt;
To get going with your RoboPad, simply connect the two motors to the &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; headers on the EduBoard breakout (optionally via the extension leads for extra reach), connect a 9v battery to the connector, the switch to the battery connector, and then the battery connector into the JST-XH connector on the EduBoard, and then flick the switch to turn it on. You should see a network with the same name as the one listed on the RoboPad. Connect to it, and navigate to &amp;quot;start.robopad.co.uk&amp;quot; (or &amp;quot;192.168.4.1&amp;quot; if your phone raises an SSL warning) in your phone&#039;s browser and start driving.&lt;br /&gt;
&lt;br /&gt;
== Printable Parts ==&lt;br /&gt;
The SMRRF 2026 workshop was run in collaboration with [https://www.3dpprofessor.com/ The 3D Printing Professor], facilitated by [https://dreamsvoid.com/ DreamsVoid]. Through this collaboration, we were able to leverage the creativity of the 3D-printable building block system, [https://www.youtube.com/playlist?list=PLVybj_7VBHRJ2tu4gwskeY5XX914GSU9T PrintABlok], as a base for the robots you built! We designed a number of our own PrintABlok parts to support the electrical components available, and DreamsVoid provided kilograms of base parts. If you&#039;d like to 3D print these parts yourself, you can find them below:&lt;br /&gt;
&lt;br /&gt;
* The Blayze Tech [https://www.printables.com/model/1647213-robopad-printablok-parts RoboPad PrintABlok support parts] on Printables&lt;br /&gt;
* The Blayze Tech N20 motor/o-ring wheels on Printables&lt;br /&gt;
* The 3D Printing Professor&#039;s [https://www.3dpprofessor.com/shop/ online store], where you can get the [https://www.3dpprofessor.com/product/printablok-base-set-free/ base PrintABlok parts] and the [https://www.3dpprofessor.com/product/electrobloks-free/ electroBlok parts] for free, as well as many other themed PrintABlok sets at a reasonable price point (we personally are quite excited about his recently released PrintAQuest line)&lt;br /&gt;
*DreamsVoid&#039;s [https://www.printables.com/model/1304091-printablok-connector-remover connector removal tool] - an incredibly useful tool for when you want to remove PrintABlok connectors&lt;br /&gt;
&lt;br /&gt;
== The RoboPad &amp;amp; EduBoard ==&lt;br /&gt;
[[File:RoboPad + EduBoard pinout.png|left|thumb|The pin mappings of a RoboPad mounted onto an EduBoard.]]&lt;br /&gt;
The EduBoard is a carrier board for a RoboPad. It provides a secure battery attachment interface via a JST-XH connector and easily accessible headers to attach motors and additional actuators to.&lt;br /&gt;
&lt;br /&gt;
Just like the RoboPad, the board accepts an input power of between 4 and 10v. The polarity of this input power source matches that indicated on the attached RoboPad - that is, positive on the left, with negative (ground) on the right. If you bought your kit on the day, you may notice that the leads on the supplied JST-XH connection cable do not match this colourscheme; however if you received your kit in the post, you will find that they do. In both cases, the correct way to place the JST-XH cable into the power socket is to align it correctly with the socket itself, rather than considering the wiring colours.&lt;br /&gt;
&lt;br /&gt;
On the base RoboPad, additional actuators [[IO Config Editor|can be attached to a number of the exposed pins]]. However, pins E1 and E2 are considered the &amp;quot;default&amp;quot; external pins, as the other pins can exhibit undefined behaviour briefly on device power-up (these pins are defined as &amp;quot;advanced&amp;quot; or &amp;quot;extra&amp;quot; pins). The EduBoard breaks out these two pins, as well as the most stable of extra pins in a format that makes them easily usable alongside typical hobby-grade servos via the 3-pin connectors on the left of the board. As indicated on the board, the left-most pin is a ground pin, the middle is the power input to the servo, and the right is the signal.&lt;br /&gt;
&lt;br /&gt;
Functionally, the signal pin is directly connected to it&#039;s respective pin on the base RoboPad board, and provides a 3.3v signal to the connected device. The power pin, however, is selectable via two solderable joints on the rear of the EduBoard. Using one or more of these joints, it is possible to select the maximum voltage that will be provided to the given servos. This can be particularly useful when you are trying to drive a servo that operates at a lower voltage than the input voltage provided to the board itself. For example, when powering a hobby 9v servo that operates at 6v, but with a 9v battery connected, you will want to solder the &amp;quot;5.8v&amp;quot; selector - this will step down the battery&#039;s voltage to around 6v, allowing it to safely drive the servo without risk of overvolting it. The combined current draw of these pins is limited to 2.1 amps, so please check the maximum current draw of the actuators you intend to connect before attempting to drive them.&lt;br /&gt;
&lt;br /&gt;
Additionally, servos need not be the only things driven. By ignoring the central &amp;quot;PWR&amp;quot; connector, the Externals headers become generic output pins - you could, for example, connect an LED via from a &amp;quot;SIG&amp;quot; pin to it&#039;s respective &amp;quot;GND&amp;quot; pin via a current limiting resistor - then, by configuring the output as a digital or PWM output in the [[IO Config Editor]], you can dynamically control that LED from the UI.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
=== Prints ===&lt;br /&gt;
Unlike the base PrintABlok parts which use zip-ties, the bloks that we designed for the SMRRF workshop use compliant clips to hold the components in. These can result in it being a little different to get components in and out:&lt;br /&gt;
* Motors should be firmly pushed in with a little more pressure on the rear of the motor first, to ensure proper alignment of the solder joints within the block, followed by force on the front - they will reach a &amp;quot;halfway point&amp;quot; where you will then be able to apply equal pressure to the whole motor.&lt;br /&gt;
* Motors can be removed by hand, but this can hurt. Instead, consider printing the Motor remover part from the Printables object, which requires 4 M2 nuts and 2 M2 cylindrical head bolts - the bolts are placed in such a way that they extend into the cavity in the print, and then motor blocks can be slid onto the bolts, with the bolts sliding through the connector holes and pushing the motors out of the blok.&lt;br /&gt;
* A flathead screwdriver is useful to remove the EduBoard form it&#039;s blok.&lt;br /&gt;
* In order to remove 9v batteries from our holder, grip it by the base and top of the battery+connector combo.&lt;br /&gt;
If you are struggling to remove wheels from the motor shaft, consider using needle-nose grippers as a lever between the wheel and the motor.&lt;br /&gt;
&lt;br /&gt;
The 3D Printing Professor has a number of electrical-oriented bloks that you may find useful in his ElectroBloks kit - in particular, we found that the humble &amp;quot;wire tidy&amp;quot; block was incredibly useful for cable management on our test robots. He&#039;s also got some motor mounts for bigger so-called &amp;quot;yellow&amp;quot; motors, and LEDs.&lt;br /&gt;
&lt;br /&gt;
=== Robot Control and Handling ===&lt;br /&gt;
Before changing the nodegraph editor, it can be easier to fix drive control and orientation issues by simply moving or flipping the connectors connected to M1 and M2. In the default configuration, swap the two connectors to swap which slider controls which wheel, and simply unplug, rotate by 180 degrees, and re-plug a connector in to invert the direction the motor drives. Before learning to race around a home-built course, take some time to configure these things first.&lt;br /&gt;
&lt;br /&gt;
If you are finding your robot to be difficult to control due to its speed, before editing the nodegraph, consider going to the [[IO Config Editor|IO Configuration Editor]] and turning down the forward and reverse scales on the two default  built-in H-bridge motor IO Units that are linked to the M1 and M2 ports on the EduBoard first.&lt;br /&gt;
&lt;br /&gt;
By default, RoboPads are configured with tank-drive (two sliders, with each controlling a single motor). While this gives a very intuitive understanding of how the robot works, and makes for easy debugging, it is &#039;&#039;not&#039;&#039; a very intuitive control scheme. Consider opening the nodegraph editor and trying to configure a [[Example: Simple Joystick-Drive Robot|joystick control]], or for more fine-grained control, plug in a USB controller and configure a [[Gamepad Node]] to work with it.&lt;br /&gt;
&lt;br /&gt;
=== Battery Selection ===&lt;br /&gt;
The kits that we sold on the day only provided 9v battery connectors, as unfortunately selling  and posting batteries is not something that we can currently offer. However, should you wish to source and upgrade your battery yourself, here are some tips.&lt;br /&gt;
&lt;br /&gt;
The RoboPad accepts anywhere from 4v to 10v as input, meaning that 9v, 4/6x AAs, 2S lithium polymer or 2S lithium ion batteries can be used. During the event, we used 2S lithium ion batteries, as they lasted long and posed a lower puncture risk than lithium polymer batteries. Specifically, we used [https://www.amazon.co.uk/Pinsinholy-2000mAh-Rechargeable-Capacity-Batteries/dp/B0CZL6VMSM toy RC car batteries] that allowed us to swap out the batteries for replacement - these were good, however in our post-event testing we did notice that they lack the required power output to reliably support rapid movements from standing to full-speed. However, if driving the bot under normal circumstances, this kind of movement rarely occurs (we were only able to replicate it with our automated QA system).&lt;br /&gt;
&lt;br /&gt;
In combat robotics, as the RoboPad is built for, we typically use 2s lithium polymer batteries for their smaller sizes. However, they can quickly run too low to be succesfully recharged, so are better suited to short stints of usage. They also pose a fairly significant puncture/fire risk. &#039;&#039;&#039;Please use care when using or handling any battery and if in doubt, seek experienced help.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The RoboPad does not currently implement a battery protection low-voltage cut-off, however in the near future we aim to implement a battery level sensor as part of the available IO units (this will be released as a firmware update).&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=355</id>
		<title>SMRRF 2026 Kit</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=355"/>
		<updated>2026-03-24T02:26:35Z</updated>

		<summary type="html">&lt;p&gt;Blayze: /* Tips */ Adds battery info.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thank you for picking up a RoboPad kit at SMRRF 2026! On this page you&#039;ll find all the information you&#039;ll need to get setup like we were at the event.&lt;br /&gt;
&lt;br /&gt;
The kit itself is build around the &#039;&#039;RoboPad&#039;&#039;, assembled onto a breakout board that we call the &#039;&#039;EduBoard&#039;&#039;. In order to find out more about the RoboPad, checkout the [https://robopad.co.uk/firmware.html user guide] and the rest of [[Main Page|this wiki]]. The RoboPad can be configured to do quite a few things, but by default it is configured to just drive two brushed motors using a simple tank-drive control scheme - this should be enough to get you started, before you begin taking steps to make more complex bots!&lt;br /&gt;
&lt;br /&gt;
Before you start, we recommend that you [https://robopad.co.uk/register register] your product; in doing so, you&#039;ll be able to choose to sign up for firmware updates and general product updates, should you want to. These are the best ways of keeping up to date with information on the latest RoboPad [[Firmware Releases|firmware releases]] and feature updates.&lt;br /&gt;
&lt;br /&gt;
== Kit Contents and Quickstart ==&lt;br /&gt;
[[File:SMRRF 2026 Kit Components.png|thumb|439x439px|The components in the kit]]&lt;br /&gt;
The kit itself only accounts for the electronic components - everything you need to build a simple 2-wheel robot. However, if you took home parts on the day, you may have additional 3D printed parts.&lt;br /&gt;
&lt;br /&gt;
The kit is designed to make it easy to use a 9v battery and a RoboPad to drive two motors. The power switch (3) is separated from the power distribution wire (5) so that you can easily mount the power switch into any 3D printed enclosure (such as the 3D printed print-a-blok switch holder that was used at SMRRF) without having to resolder its connecting wires.&lt;br /&gt;
&lt;br /&gt;
The RoboPad+EduBoard combo allows for easy connection of servo motors and additional outputs should you want to add more later down the line.&lt;br /&gt;
&lt;br /&gt;
To get going with your RoboPad, simply connect the two motors to the &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; headers on the EduBoard breakout (optionally via the extension leads for extra reach), connect a 9v battery to the connector, the switch to the battery connector, and then the battery connector into the JST-XH connector on the EduBoard, and then flick the switch to turn it on. You should see a network with the same name as the one listed on the RoboPad. Connect to it, and navigate to &amp;quot;start.robopad.co.uk&amp;quot; (or &amp;quot;192.168.4.1&amp;quot; if your phone raises an SSL warning) in your phone&#039;s browser and start driving.&lt;br /&gt;
&lt;br /&gt;
== Printable Parts ==&lt;br /&gt;
The SMRRF 2026 workshop was run in collaboration with [https://www.3dpprofessor.com/ The 3D Printing Professor], facilitated by [https://dreamsvoid.com/ DreamsVoid]. Through this collaboration, we were able to leverage the creativity of the 3D-printable building block system, [https://www.youtube.com/playlist?list=PLVybj_7VBHRJ2tu4gwskeY5XX914GSU9T PrintABlok], as a base for the robots you built! We designed a number of our own PrintABlok parts to support the electrical components available, and DreamsVoid provided kilograms of base parts. If you&#039;d like to 3D print these parts yourself, you can find them below:&lt;br /&gt;
&lt;br /&gt;
* The Blayze Tech [https://www.printables.com/model/1647213-robopad-printablok-parts RoboPad PrintABlok support parts] on Printables&lt;br /&gt;
* The Blayze Tech N20 motor/o-ring wheels on Printables&lt;br /&gt;
* The 3D Printing Professor&#039;s [https://www.3dpprofessor.com/shop/ online store], where you can get the [https://www.3dpprofessor.com/product/printablok-base-set-free/ base PrintABlok parts] and the [https://www.3dpprofessor.com/product/electrobloks-free/ electroBlok parts] for free, as well as many other themed PrintABlok sets at a reasonable price point (we personally are quite excited about his recently released PrintAQuest line)&lt;br /&gt;
*DreamsVoid&#039;s [https://www.printables.com/model/1304091-printablok-connector-remover connector removal tool] - an incredibly useful tool for when you want to remove PrintABlok connectors&lt;br /&gt;
&lt;br /&gt;
== The RoboPad &amp;amp; EduBoard ==&lt;br /&gt;
[[File:RoboPad + EduBoard pinout.png|left|thumb|The pin mappings of a RoboPad mounted onto an EduBoard.]]&lt;br /&gt;
The EduBoard is a carrier board for a RoboPad. It provides a secure battery attachment interface via a JST-XH connector and easily accessible headers to attach motors and additional actuators to.&lt;br /&gt;
&lt;br /&gt;
Just like the RoboPad, the board accepts an input power of between 4 and 10v. The polarity of this input power source matches that indicated on the attached RoboPad - that is, positive on the left, with negative (ground) on the right. If you bought your kit on the day, you may notice that the leads on the supplied JST-XH connection cable do not match this colourscheme; however if you received your kit in the post, you will find that they do. In both cases, the correct way to place the JST-XH cable into the power socket is to align it correctly with the socket itself, rather than considering the wiring colours.&lt;br /&gt;
&lt;br /&gt;
On the base RoboPad, additional actuators [[IO Config Editor|can be attached to a number of the exposed pins]]. However, pins E1 and E2 are considered the &amp;quot;default&amp;quot; external pins, as the other pins can exhibit undefined behaviour briefly on device power-up (these pins are defined as &amp;quot;advanced&amp;quot; or &amp;quot;extra&amp;quot; pins). The EduBoard breaks out these two pins, as well as the most stable of extra pins in a format that makes them easily usable alongside typical hobby-grade servos via the 3-pin connectors on the left of the board. As indicated on the board, the left-most pin is a ground pin, the middle is the power input to the servo, and the right is the signal.&lt;br /&gt;
&lt;br /&gt;
Functionally, the signal pin is directly connected to it&#039;s respective pin on the base RoboPad board, and provides a 3.3v signal to the connected device. The power pin, however, is selectable via two solderable joints on the rear of the EduBoard. Using one or more of these joints, it is possible to select the maximum voltage that will be provided to the given servos. This can be particularly useful when you are trying to drive a servo that operates at a lower voltage than the input voltage provided to the board itself. For example, when powering a hobby 9v servo that operates at 6v, but with a 9v battery connected, you will want to solder the &amp;quot;5.8v&amp;quot; selector - this will step down the battery&#039;s voltage to around 6v, allowing it to safely drive the servo without risk of overvolting it. The combined current draw of these pins is limited to 2.1 amps, so please check the maximum current draw of the actuators you intend to connect before attempting to drive them.&lt;br /&gt;
&lt;br /&gt;
Additionally, servos need not be the only things driven. By ignoring the central &amp;quot;PWR&amp;quot; connector, the Externals headers become generic output pins - you could, for example, connect an LED via from a &amp;quot;SIG&amp;quot; pin to it&#039;s respective &amp;quot;GND&amp;quot; pin via a current limiting resistor - then, by configuring the output as a digital or PWM output in the [[IO Config Editor]], you can dynamically control that LED from the UI.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
=== Prints ===&lt;br /&gt;
Unlike the base PrintABlok parts which use zip-ties, the bloks that we designed for the SMRRF workshop use compliant clips to hold the components in. These can result in it being a little different to get components in and out:&lt;br /&gt;
* Motors should be firmly pushed in with a little more pressure on the rear of the motor first, to ensure proper alignment of the solder joints within the block, followed by force on the front - they will reach a &amp;quot;halfway point&amp;quot; where you will then be able to apply equal pressure to the whole motor.&lt;br /&gt;
* Motors can be removed by hand, but this can hurt. Instead, consider printing the Motor remover part from the Printables object, which requires 4 M2 nuts and 2 M2 cylindrical head bolts - the bolts are placed in such a way that they extend into the cavity in the print, and then motor blocks can be slid onto the bolts, with the bolts sliding through the connector holes and pushing the motors out of the blok.&lt;br /&gt;
* A flathead screwdriver is useful to remove the EduBoard form it&#039;s blok.&lt;br /&gt;
* In order to remove 9v batteries from our holder, grip it by the base and top of the battery+connector combo.&lt;br /&gt;
If you are struggling to remove wheels from the motor shaft, consider using needle-nose grippers as a lever between the wheel and the motor.&lt;br /&gt;
&lt;br /&gt;
The 3D Printing Professor has a number of electrical-oriented bloks that you may find useful in his ElectroBloks kit - in particular, we found that the humble &amp;quot;wire tidy&amp;quot; block was incredibly useful for cable management on our test robots. He&#039;s also got some motor mounts for bigger so-called &amp;quot;yellow&amp;quot; motors, and LEDs.&lt;br /&gt;
&lt;br /&gt;
=== Robot Control and Handling ===&lt;br /&gt;
Before changing the nodegraph editor, it can be easier to fix drive control and orientation issues by simply moving or flipping the connectors connected to M1 and M2. In the default configuration, swap the two connectors to swap which slider controls which wheel, and simply unplug, rotate by 180 degrees, and re-plug a connector in to invert the direction the motor drives. Before learning to race around a home-built course, take some time to configure these things first.&lt;br /&gt;
&lt;br /&gt;
If you are finding your robot to be difficult to control due to its speed, before editing the nodegraph, consider going to the [[IO Config Editor|IO Configuration Editor]] and turning down the forward and reverse scales on the two default  built-in H-bridge motor IO Units that are linked to the M1 and M2 ports on the EduBoard first.&lt;br /&gt;
&lt;br /&gt;
By default, RoboPads are configured with tank-drive (two sliders, with each controlling a single motor). While this gives a very intuitive understanding of how the robot works, and makes for easy debugging, it is &#039;&#039;not&#039;&#039; a very intuitive control scheme. Consider opening the nodegraph editor and trying to configure a [[Example: Simple Joystick-Drive Robot|joystick control]], or for more fine-grained control, plug in a USB controller and configure a [[Gamepad Node]] to work with it.&lt;br /&gt;
&lt;br /&gt;
=== Battery Selection ===&lt;br /&gt;
The kits that we sold on the day only provided 9v battery connectors, as unfortunately selling  and posting batteries is not something that we can currently offer. However, should you wish to source and upgrade your battery yourself, here are some tips.&lt;br /&gt;
&lt;br /&gt;
The RoboPad accepts anywhere from 4v to 10v as input, meaning that 9v, 4/6x AAs, 2S lithium polymer or 2S lithium ion batteries can be used. During the event, we used 2S lithium ion batteries, as they lasted long and posed a lower puncture risk than lithium polymer batteries. Specifically, we used [https://www.amazon.co.uk/Pinsinholy-2000mAh-Rechargeable-Capacity-Batteries/dp/B0CZL6VMSM toy RC car batteries]. that allowed us to swap out the batteries for replacement.&lt;br /&gt;
&lt;br /&gt;
In combat robotics, as the RoboPad is built for, we typically use 2s lithium polymer batteries for their smaller sizes. However, they can quickly run too low to be succesfully recharged, so are better suited to short stints of usage. They also pose a fairly significant puncture/fire risk. &#039;&#039;&#039;Please use care when using or handling any battery and if in doubt, seek experienced help.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The RoboPad does not currently implement a battery protection low-voltage cut-off, however in the near future we aim to implement a battery level sensor as part of the available IO units (this will be released as a firmware update).&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=354</id>
		<title>SMRRF 2026 Kit</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=354"/>
		<updated>2026-03-24T02:15:40Z</updated>

		<summary type="html">&lt;p&gt;Blayze: /* Tips */  Adds Robot control and handling subsection to Tips&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thank you for picking up a RoboPad kit at SMRRF 2026! On this page you&#039;ll find all the information you&#039;ll need to get setup like we were at the event.&lt;br /&gt;
&lt;br /&gt;
The kit itself is build around the &#039;&#039;RoboPad&#039;&#039;, assembled onto a breakout board that we call the &#039;&#039;EduBoard&#039;&#039;. In order to find out more about the RoboPad, checkout the [https://robopad.co.uk/firmware.html user guide] and the rest of [[Main Page|this wiki]]. The RoboPad can be configured to do quite a few things, but by default it is configured to just drive two brushed motors using a simple tank-drive control scheme - this should be enough to get you started, before you begin taking steps to make more complex bots!&lt;br /&gt;
&lt;br /&gt;
Before you start, we recommend that you [https://robopad.co.uk/register register] your product; in doing so, you&#039;ll be able to choose to sign up for firmware updates and general product updates, should you want to. These are the best ways of keeping up to date with information on the latest RoboPad [[Firmware Releases|firmware releases]] and feature updates.&lt;br /&gt;
&lt;br /&gt;
== Kit Contents and Quickstart ==&lt;br /&gt;
[[File:SMRRF 2026 Kit Components.png|thumb|439x439px|The components in the kit]]&lt;br /&gt;
The kit itself only accounts for the electronic components - everything you need to build a simple 2-wheel robot. However, if you took home parts on the day, you may have additional 3D printed parts.&lt;br /&gt;
&lt;br /&gt;
The kit is designed to make it easy to use a 9v battery and a RoboPad to drive two motors. The power switch (3) is separated from the power distribution wire (5) so that you can easily mount the power switch into any 3D printed enclosure (such as the 3D printed print-a-blok switch holder that was used at SMRRF) without having to resolder its connecting wires.&lt;br /&gt;
&lt;br /&gt;
The RoboPad+EduBoard combo allows for easy connection of servo motors and additional outputs should you want to add more later down the line.&lt;br /&gt;
&lt;br /&gt;
To get going with your RoboPad, simply connect the two motors to the &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; headers on the EduBoard breakout (optionally via the extension leads for extra reach), connect a 9v battery to the connector, the switch to the battery connector, and then the battery connector into the JST-XH connector on the EduBoard, and then flick the switch to turn it on. You should see a network with the same name as the one listed on the RoboPad. Connect to it, and navigate to &amp;quot;start.robopad.co.uk&amp;quot; (or &amp;quot;192.168.4.1&amp;quot; if your phone raises an SSL warning) in your phone&#039;s browser and start driving.&lt;br /&gt;
&lt;br /&gt;
== Printable Parts ==&lt;br /&gt;
The SMRRF 2026 workshop was run in collaboration with [https://www.3dpprofessor.com/ The 3D Printing Professor], facilitated by [https://dreamsvoid.com/ DreamsVoid]. Through this collaboration, we were able to leverage the creativity of the 3D-printable building block system, [https://www.youtube.com/playlist?list=PLVybj_7VBHRJ2tu4gwskeY5XX914GSU9T PrintABlok], as a base for the robots you built! We designed a number of our own PrintABlok parts to support the electrical components available, and DreamsVoid provided kilograms of base parts. If you&#039;d like to 3D print these parts yourself, you can find them below:&lt;br /&gt;
&lt;br /&gt;
* The Blayze Tech [https://www.printables.com/model/1647213-robopad-printablok-parts RoboPad PrintABlok support parts] on Printables&lt;br /&gt;
* The Blayze Tech N20 motor/o-ring wheels on Printables&lt;br /&gt;
* The 3D Printing Professor&#039;s [https://www.3dpprofessor.com/shop/ online store], where you can get the [https://www.3dpprofessor.com/product/printablok-base-set-free/ base PrintABlok parts] and the [https://www.3dpprofessor.com/product/electrobloks-free/ electroBlok parts] for free, as well as many other themed PrintABlok sets at a reasonable price point (we personally are quite excited about his recently released PrintAQuest line)&lt;br /&gt;
*DreamsVoid&#039;s [https://www.printables.com/model/1304091-printablok-connector-remover connector removal tool] - an incredibly useful tool for when you want to remove PrintABlok connectors&lt;br /&gt;
&lt;br /&gt;
== The RoboPad &amp;amp; EduBoard ==&lt;br /&gt;
[[File:RoboPad + EduBoard pinout.png|left|thumb|The pin mappings of a RoboPad mounted onto an EduBoard.]]&lt;br /&gt;
The EduBoard is a carrier board for a RoboPad. It provides a secure battery attachment interface via a JST-XH connector and easily accessible headers to attach motors and additional actuators to.&lt;br /&gt;
&lt;br /&gt;
Just like the RoboPad, the board accepts an input power of between 4 and 10v. The polarity of this input power source matches that indicated on the attached RoboPad - that is, positive on the left, with negative (ground) on the right. If you bought your kit on the day, you may notice that the leads on the supplied JST-XH connection cable do not match this colourscheme; however if you received your kit in the post, you will find that they do. In both cases, the correct way to place the JST-XH cable into the power socket is to align it correctly with the socket itself, rather than considering the wiring colours.&lt;br /&gt;
&lt;br /&gt;
On the base RoboPad, additional actuators [[IO Config Editor|can be attached to a number of the exposed pins]]. However, pins E1 and E2 are considered the &amp;quot;default&amp;quot; external pins, as the other pins can exhibit undefined behaviour briefly on device power-up (these pins are defined as &amp;quot;advanced&amp;quot; or &amp;quot;extra&amp;quot; pins). The EduBoard breaks out these two pins, as well as the most stable of extra pins in a format that makes them easily usable alongside typical hobby-grade servos via the 3-pin connectors on the left of the board. As indicated on the board, the left-most pin is a ground pin, the middle is the power input to the servo, and the right is the signal.&lt;br /&gt;
&lt;br /&gt;
Functionally, the signal pin is directly connected to it&#039;s respective pin on the base RoboPad board, and provides a 3.3v signal to the connected device. The power pin, however, is selectable via two solderable joints on the rear of the EduBoard. Using one or more of these joints, it is possible to select the maximum voltage that will be provided to the given servos. This can be particularly useful when you are trying to drive a servo that operates at a lower voltage than the input voltage provided to the board itself. For example, when powering a hobby 9v servo that operates at 6v, but with a 9v battery connected, you will want to solder the &amp;quot;5.8v&amp;quot; selector - this will step down the battery&#039;s voltage to around 6v, allowing it to safely drive the servo without risk of overvolting it. The combined current draw of these pins is limited to 2.1 amps, so please check the maximum current draw of the actuators you intend to connect before attempting to drive them.&lt;br /&gt;
&lt;br /&gt;
Additionally, servos need not be the only things driven. By ignoring the central &amp;quot;PWR&amp;quot; connector, the Externals headers become generic output pins - you could, for example, connect an LED via from a &amp;quot;SIG&amp;quot; pin to it&#039;s respective &amp;quot;GND&amp;quot; pin via a current limiting resistor - then, by configuring the output as a digital or PWM output in the [[IO Config Editor]], you can dynamically control that LED from the UI.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
Tips on motor removal, wheel generation + printing, course building and battery selection/upgrading to come here.&lt;br /&gt;
&lt;br /&gt;
=== Prints ===&lt;br /&gt;
Unlike the base PrintABlok parts which use zip-ties, the bloks that we designed for the SMRRF workshop use compliant clips to hold the components in. These can result in it being a little different to get components in and out:&lt;br /&gt;
* Motors should be firmly pushed in with a little more pressure on the rear of the motor first, to ensure proper alignment of the solder joints within the block, followed by force on the front - they will reach a &amp;quot;halfway point&amp;quot; where you will then be able to apply equal pressure to the whole motor.&lt;br /&gt;
* Motors can be removed by hand, but this can hurt. Instead, consider printing the Motor remover part from the Printables object, which requires 4 M2 nuts and 2 M2 cylindrical head bolts - the bolts are placed in such a way that they extend into the cavity in the print, and then motor blocks can be slid onto the bolts, with the bolts sliding through the connector holes and pushing the motors out of the blok.&lt;br /&gt;
* A flathead screwdriver is useful to remove the EduBoard form it&#039;s blok.&lt;br /&gt;
* In order to remove 9v batteries from our holder, grip it by the base and top of the battery+connector combo.&lt;br /&gt;
If you are struggling to remove wheels from the motor shaft, consider using needle-nose grippers as a lever between the wheel and the motor.&lt;br /&gt;
&lt;br /&gt;
The 3D Printing Professor has a number of electrical-oriented bloks that you may find useful in his ElectroBloks kit - in particular, we found that the humble &amp;quot;wire tidy&amp;quot; block was incredibly useful for cable management on our test robots. He&#039;s also got some motor mounts for bigger so-called &amp;quot;yellow&amp;quot; motors, and LEDs.&lt;br /&gt;
&lt;br /&gt;
=== Robot Control and Handling ===&lt;br /&gt;
Before changing the nodegraph editor, it can be easier to fix drive control and orientation issues by simply moving or flipping the connectors connected to M1 and M2. In the default configuration, swap the two connectors to swap which slider controls which wheel, and simply unplug, rotate by 180 degrees, and re-plug a connector in to invert the direction the motor drives. Before learning to race around a home-built course, take some time to configure these things first.&lt;br /&gt;
&lt;br /&gt;
If you are finding your robot to be difficult to control due to its speed, before editing the nodegraph, consider going to the [[IO Config Editor|IO Configuration Editor]] and turning down the forward and reverse scales on the two default  built-in H-bridge motor IO Units that are linked to the M1 and M2 ports on the EduBoard first.&lt;br /&gt;
&lt;br /&gt;
By default, RoboPads are configured with tank-drive (two sliders, with each controlling a single motor). While this gives a very intuitive understanding of how the robot works, and makes for easy debugging, it is &#039;&#039;not&#039;&#039; a very intuitive control scheme. Consider opening the nodegraph editor and trying to configure a [[Example: Simple Joystick-Drive Robot|joystick control]], or for more fine-grained control, plug in a USB controller and configure a [[Gamepad Node]] to work with it.&lt;br /&gt;
&lt;br /&gt;
=== Battery Selection ===&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=353</id>
		<title>SMRRF 2026 Kit</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=353"/>
		<updated>2026-03-24T02:04:08Z</updated>

		<summary type="html">&lt;p&gt;Blayze: /* Tips */ Adds first set of tips&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thank you for picking up a RoboPad kit at SMRRF 2026! On this page you&#039;ll find all the information you&#039;ll need to get setup like we were at the event.&lt;br /&gt;
&lt;br /&gt;
The kit itself is build around the &#039;&#039;RoboPad&#039;&#039;, assembled onto a breakout board that we call the &#039;&#039;EduBoard&#039;&#039;. In order to find out more about the RoboPad, checkout the [https://robopad.co.uk/firmware.html user guide] and the rest of [[Main Page|this wiki]]. The RoboPad can be configured to do quite a few things, but by default it is configured to just drive two brushed motors using a simple tank-drive control scheme - this should be enough to get you started, before you begin taking steps to make more complex bots!&lt;br /&gt;
&lt;br /&gt;
Before you start, we recommend that you [https://robopad.co.uk/register register] your product; in doing so, you&#039;ll be able to choose to sign up for firmware updates and general product updates, should you want to. These are the best ways of keeping up to date with information on the latest RoboPad [[Firmware Releases|firmware releases]] and feature updates.&lt;br /&gt;
&lt;br /&gt;
== Kit Contents and Quickstart ==&lt;br /&gt;
[[File:SMRRF 2026 Kit Components.png|thumb|439x439px|The components in the kit]]&lt;br /&gt;
The kit itself only accounts for the electronic components - everything you need to build a simple 2-wheel robot. However, if you took home parts on the day, you may have additional 3D printed parts.&lt;br /&gt;
&lt;br /&gt;
The kit is designed to make it easy to use a 9v battery and a RoboPad to drive two motors. The power switch (3) is separated from the power distribution wire (5) so that you can easily mount the power switch into any 3D printed enclosure (such as the 3D printed print-a-blok switch holder that was used at SMRRF) without having to resolder its connecting wires.&lt;br /&gt;
&lt;br /&gt;
The RoboPad+EduBoard combo allows for easy connection of servo motors and additional outputs should you want to add more later down the line.&lt;br /&gt;
&lt;br /&gt;
To get going with your RoboPad, simply connect the two motors to the &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; headers on the EduBoard breakout (optionally via the extension leads for extra reach), connect a 9v battery to the connector, the switch to the battery connector, and then the battery connector into the JST-XH connector on the EduBoard, and then flick the switch to turn it on. You should see a network with the same name as the one listed on the RoboPad. Connect to it, and navigate to &amp;quot;start.robopad.co.uk&amp;quot; (or &amp;quot;192.168.4.1&amp;quot; if your phone raises an SSL warning) in your phone&#039;s browser and start driving.&lt;br /&gt;
&lt;br /&gt;
== Printable Parts ==&lt;br /&gt;
The SMRRF 2026 workshop was run in collaboration with [https://www.3dpprofessor.com/ The 3D Printing Professor], facilitated by [https://dreamsvoid.com/ DreamsVoid]. Through this collaboration, we were able to leverage the creativity of the 3D-printable building block system, [https://www.youtube.com/playlist?list=PLVybj_7VBHRJ2tu4gwskeY5XX914GSU9T PrintABlok], as a base for the robots you built! We designed a number of our own PrintABlok parts to support the electrical components available, and DreamsVoid provided kilograms of base parts. If you&#039;d like to 3D print these parts yourself, you can find them below:&lt;br /&gt;
&lt;br /&gt;
* The Blayze Tech [https://www.printables.com/model/1647213-robopad-printablok-parts RoboPad PrintABlok support parts] on Printables&lt;br /&gt;
* The Blayze Tech N20 motor/o-ring wheels on Printables&lt;br /&gt;
* The 3D Printing Professor&#039;s [https://www.3dpprofessor.com/shop/ online store], where you can get the [https://www.3dpprofessor.com/product/printablok-base-set-free/ base PrintABlok parts] and the [https://www.3dpprofessor.com/product/electrobloks-free/ electroBlok parts] for free, as well as many other themed PrintABlok sets at a reasonable price point (we personally are quite excited about his recently released PrintAQuest line)&lt;br /&gt;
*DreamsVoid&#039;s [https://www.printables.com/model/1304091-printablok-connector-remover connector removal tool] - an incredibly useful tool for when you want to remove PrintABlok connectors&lt;br /&gt;
&lt;br /&gt;
== The RoboPad &amp;amp; EduBoard ==&lt;br /&gt;
[[File:RoboPad + EduBoard pinout.png|left|thumb|The pin mappings of a RoboPad mounted onto an EduBoard.]]&lt;br /&gt;
The EduBoard is a carrier board for a RoboPad. It provides a secure battery attachment interface via a JST-XH connector and easily accessible headers to attach motors and additional actuators to.&lt;br /&gt;
&lt;br /&gt;
Just like the RoboPad, the board accepts an input power of between 4 and 10v. The polarity of this input power source matches that indicated on the attached RoboPad - that is, positive on the left, with negative (ground) on the right. If you bought your kit on the day, you may notice that the leads on the supplied JST-XH connection cable do not match this colourscheme; however if you received your kit in the post, you will find that they do. In both cases, the correct way to place the JST-XH cable into the power socket is to align it correctly with the socket itself, rather than considering the wiring colours.&lt;br /&gt;
&lt;br /&gt;
On the base RoboPad, additional actuators [[IO Config Editor|can be attached to a number of the exposed pins]]. However, pins E1 and E2 are considered the &amp;quot;default&amp;quot; external pins, as the other pins can exhibit undefined behaviour briefly on device power-up (these pins are defined as &amp;quot;advanced&amp;quot; or &amp;quot;extra&amp;quot; pins). The EduBoard breaks out these two pins, as well as the most stable of extra pins in a format that makes them easily usable alongside typical hobby-grade servos via the 3-pin connectors on the left of the board. As indicated on the board, the left-most pin is a ground pin, the middle is the power input to the servo, and the right is the signal.&lt;br /&gt;
&lt;br /&gt;
Functionally, the signal pin is directly connected to it&#039;s respective pin on the base RoboPad board, and provides a 3.3v signal to the connected device. The power pin, however, is selectable via two solderable joints on the rear of the EduBoard. Using one or more of these joints, it is possible to select the maximum voltage that will be provided to the given servos. This can be particularly useful when you are trying to drive a servo that operates at a lower voltage than the input voltage provided to the board itself. For example, when powering a hobby 9v servo that operates at 6v, but with a 9v battery connected, you will want to solder the &amp;quot;5.8v&amp;quot; selector - this will step down the battery&#039;s voltage to around 6v, allowing it to safely drive the servo without risk of overvolting it. The combined current draw of these pins is limited to 2.1 amps, so please check the maximum current draw of the actuators you intend to connect before attempting to drive them.&lt;br /&gt;
&lt;br /&gt;
Additionally, servos need not be the only things driven. By ignoring the central &amp;quot;PWR&amp;quot; connector, the Externals headers become generic output pins - you could, for example, connect an LED via from a &amp;quot;SIG&amp;quot; pin to it&#039;s respective &amp;quot;GND&amp;quot; pin via a current limiting resistor - then, by configuring the output as a digital or PWM output in the [[IO Config Editor]], you can dynamically control that LED from the UI.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
Tips on motor removal, wheel generation + printing, course building and battery selection/upgrading to come here.&lt;br /&gt;
&lt;br /&gt;
=== Prints ===&lt;br /&gt;
&lt;br /&gt;
* Unlike the base PrintABlok parts which use zip-ties, the bloks that we designed for the SMRRF workshop use compliant clips to hold the components in. These can result in it being a little different to get components in and out.&lt;br /&gt;
** Motors should be firmly pushed in with a little more pressure on the rear of the motor first, to ensure proper alignment of the solder joints within the block, followed by force on the front - they will reach a &amp;quot;halfway point&amp;quot; where you will then be able to apply equal pressure to the whole motor.&lt;br /&gt;
** Motors can be removed by hand, but this can hurt. Instead, consider printing the Motor remover part from the Printables object, which requires 4 M2 nuts and 2 M2 cylindrical head bolts - the bolts are placed in such a way that they extend into the cavity in the print, and then motor blocks can be slid onto the bolts, with the bolts sliding through the connector holes and pushing the motors out of the blok.&lt;br /&gt;
** A flathead screwdriver is useful to remove the EduBoard form it&#039;s blok.&lt;br /&gt;
** In order to remove 9v batteries from our holder, grip it by the base and top of the battery+connector combo.&lt;br /&gt;
* If you are struggling to remove wheels from the motor shaft, consider using needle-nose grippers as a lever between the wheel and the motor.&lt;br /&gt;
* The 3D Printing Professor has a number of electrical-oriented bloks that you may find useful in his ElectroBloks kit - in particular, we found that the humble &amp;quot;wire tidy&amp;quot; block was incredibly useful for cable management on our test robots. He&#039;s also got some motor mounts for bigger so-called &amp;quot;yellow&amp;quot; motors, and LEDs.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=352</id>
		<title>SMRRF 2026 Kit</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=352"/>
		<updated>2026-03-24T01:54:39Z</updated>

		<summary type="html">&lt;p&gt;Blayze: /* The RoboPad &amp;amp; EduBoard */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thank you for picking up a RoboPad kit at SMRRF 2026! On this page you&#039;ll find all the information you&#039;ll need to get setup like we were at the event.&lt;br /&gt;
&lt;br /&gt;
The kit itself is build around the &#039;&#039;RoboPad&#039;&#039;, assembled onto a breakout board that we call the &#039;&#039;EduBoard&#039;&#039;. In order to find out more about the RoboPad, checkout the [https://robopad.co.uk/firmware.html user guide] and the rest of [[Main Page|this wiki]]. The RoboPad can be configured to do quite a few things, but by default it is configured to just drive two brushed motors using a simple tank-drive control scheme - this should be enough to get you started, before you begin taking steps to make more complex bots!&lt;br /&gt;
&lt;br /&gt;
Before you start, we recommend that you [https://robopad.co.uk/register register] your product; in doing so, you&#039;ll be able to choose to sign up for firmware updates and general product updates, should you want to. These are the best ways of keeping up to date with information on the latest RoboPad [[Firmware Releases|firmware releases]] and feature updates.&lt;br /&gt;
&lt;br /&gt;
== Kit Contents and Quickstart ==&lt;br /&gt;
[[File:SMRRF 2026 Kit Components.png|thumb|439x439px|The components in the kit]]&lt;br /&gt;
The kit itself only accounts for the electronic components - everything you need to build a simple 2-wheel robot. However, if you took home parts on the day, you may have additional 3D printed parts.&lt;br /&gt;
&lt;br /&gt;
The kit is designed to make it easy to use a 9v battery and a RoboPad to drive two motors. The power switch (3) is separated from the power distribution wire (5) so that you can easily mount the power switch into any 3D printed enclosure (such as the 3D printed print-a-blok switch holder that was used at SMRRF) without having to resolder its connecting wires.&lt;br /&gt;
&lt;br /&gt;
The RoboPad+EduBoard combo allows for easy connection of servo motors and additional outputs should you want to add more later down the line.&lt;br /&gt;
&lt;br /&gt;
To get going with your RoboPad, simply connect the two motors to the &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; headers on the EduBoard breakout (optionally via the extension leads for extra reach), connect a 9v battery to the connector, the switch to the battery connector, and then the battery connector into the JST-XH connector on the EduBoard, and then flick the switch to turn it on. You should see a network with the same name as the one listed on the RoboPad. Connect to it, and navigate to &amp;quot;start.robopad.co.uk&amp;quot; (or &amp;quot;192.168.4.1&amp;quot; if your phone raises an SSL warning) in your phone&#039;s browser and start driving.&lt;br /&gt;
&lt;br /&gt;
== Printable Parts ==&lt;br /&gt;
The SMRRF 2026 workshop was run in collaboration with [https://www.3dpprofessor.com/ The 3D Printing Professor], facilitated by [https://dreamsvoid.com/ DreamsVoid]. Through this collaboration, we were able to leverage the creativity of the 3D-printable building block system, [https://www.youtube.com/playlist?list=PLVybj_7VBHRJ2tu4gwskeY5XX914GSU9T PrintABlok], as a base for the robots you built! We designed a number of our own PrintABlok parts to support the electrical components available, and DreamsVoid provided kilograms of base parts. If you&#039;d like to 3D print these parts yourself, you can find them below:&lt;br /&gt;
&lt;br /&gt;
* The Blayze Tech [https://www.printables.com/model/1647213-robopad-printablok-parts RoboPad PrintABlok support parts] on Printables&lt;br /&gt;
* The Blayze Tech N20 motor/o-ring wheels on Printables&lt;br /&gt;
* The 3D Printing Professor&#039;s [https://www.3dpprofessor.com/shop/ online store], where you can get the [https://www.3dpprofessor.com/product/printablok-base-set-free/ base PrintABlok parts] and the [https://www.3dpprofessor.com/product/electrobloks-free/ electroBlok parts] for free, as well as many other themed PrintABlok sets at a reasonable price point (we personally are quite excited about his recently released PrintAQuest line)&lt;br /&gt;
*DreamsVoid&#039;s [https://www.printables.com/model/1304091-printablok-connector-remover connector removal tool] - an incredibly useful tool for when you want to remove PrintABlok connectors&lt;br /&gt;
&lt;br /&gt;
== The RoboPad &amp;amp; EduBoard ==&lt;br /&gt;
[[File:RoboPad + EduBoard pinout.png|left|thumb|The pin mappings of a RoboPad mounted onto an EduBoard.]]&lt;br /&gt;
The EduBoard is a carrier board for a RoboPad. It provides a secure battery attachment interface via a JST-XH connector and easily accessible headers to attach motors and additional actuators to.&lt;br /&gt;
&lt;br /&gt;
Just like the RoboPad, the board accepts an input power of between 4 and 10v. The polarity of this input power source matches that indicated on the attached RoboPad - that is, positive on the left, with negative (ground) on the right. If you bought your kit on the day, you may notice that the leads on the supplied JST-XH connection cable do not match this colourscheme; however if you received your kit in the post, you will find that they do. In both cases, the correct way to place the JST-XH cable into the power socket is to align it correctly with the socket itself, rather than considering the wiring colours.&lt;br /&gt;
&lt;br /&gt;
On the base RoboPad, additional actuators [[IO Config Editor|can be attached to a number of the exposed pins]]. However, pins E1 and E2 are considered the &amp;quot;default&amp;quot; external pins, as the other pins can exhibit undefined behaviour briefly on device power-up (these pins are defined as &amp;quot;advanced&amp;quot; or &amp;quot;extra&amp;quot; pins). The EduBoard breaks out these two pins, as well as the most stable of extra pins in a format that makes them easily usable alongside typical hobby-grade servos via the 3-pin connectors on the left of the board. As indicated on the board, the left-most pin is a ground pin, the middle is the power input to the servo, and the right is the signal.&lt;br /&gt;
&lt;br /&gt;
Functionally, the signal pin is directly connected to it&#039;s respective pin on the base RoboPad board, and provides a 3.3v signal to the connected device. The power pin, however, is selectable via two solderable joints on the rear of the EduBoard. Using one or more of these joints, it is possible to select the maximum voltage that will be provided to the given servos. This can be particularly useful when you are trying to drive a servo that operates at a lower voltage than the input voltage provided to the board itself. For example, when powering a hobby 9v servo that operates at 6v, but with a 9v battery connected, you will want to solder the &amp;quot;5.8v&amp;quot; selector - this will step down the battery&#039;s voltage to around 6v, allowing it to safely drive the servo without risk of overvolting it. The combined current draw of these pins is limited to 2.1 amps, so please check the maximum current draw of the actuators you intend to connect before attempting to drive them.&lt;br /&gt;
&lt;br /&gt;
Additionally, servos need not be the only things driven. By ignoring the central &amp;quot;PWR&amp;quot; connector, the Externals headers become generic output pins - you could, for example, connect an LED via from a &amp;quot;SIG&amp;quot; pin to it&#039;s respective &amp;quot;GND&amp;quot; pin via a current limiting resistor - then, by configuring the output as a digital or PWM output in the [[IO Config Editor]], you can dynamically control that LED from the UI.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
Tips on motor removal, wheel generation + printing, course building and battery selection/upgrading to come here.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=File:RoboPad_%2B_EduBoard_pinout.png&amp;diff=351</id>
		<title>File:RoboPad + EduBoard pinout.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=File:RoboPad_%2B_EduBoard_pinout.png&amp;diff=351"/>
		<updated>2026-03-24T01:36:54Z</updated>

		<summary type="html">&lt;p&gt;Blayze: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The pinout of the RoboPad mounted on an EduBoard.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=350</id>
		<title>SMRRF 2026 Kit</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=350"/>
		<updated>2026-03-23T03:42:40Z</updated>

		<summary type="html">&lt;p&gt;Blayze: /* Kit Contents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thank you for picking up a RoboPad kit at SMRRF 2026! On this page you&#039;ll find all the information you&#039;ll need to get setup like we were at the event.&lt;br /&gt;
&lt;br /&gt;
The kit itself is build around the &#039;&#039;RoboPad&#039;&#039;, assembled onto a breakout board that we call the &#039;&#039;EduBoard&#039;&#039;. In order to find out more about the RoboPad, checkout the [https://robopad.co.uk/firmware.html user guide] and the rest of [[Main Page|this wiki]]. The RoboPad can be configured to do quite a few things, but by default it is configured to just drive two brushed motors using a simple tank-drive control scheme - this should be enough to get you started, before you begin taking steps to make more complex bots!&lt;br /&gt;
&lt;br /&gt;
Before you start, we recommend that you [https://robopad.co.uk/register register] your product; in doing so, you&#039;ll be able to choose to sign up for firmware updates and general product updates, should you want to. These are the best ways of keeping up to date with information on the latest RoboPad [[Firmware Releases|firmware releases]] and feature updates.&lt;br /&gt;
&lt;br /&gt;
== Kit Contents and Quickstart ==&lt;br /&gt;
[[File:SMRRF 2026 Kit Components.png|thumb|439x439px|The components in the kit]]&lt;br /&gt;
The kit itself only accounts for the electronic components - everything you need to build a simple 2-wheel robot. However, if you took home parts on the day, you may have additional 3D printed parts.&lt;br /&gt;
&lt;br /&gt;
The kit is designed to make it easy to use a 9v battery and a RoboPad to drive two motors. The power switch (3) is separated from the power distribution wire (5) so that you can easily mount the power switch into any 3D printed enclosure (such as the 3D printed print-a-blok switch holder that was used at SMRRF) without having to resolder its connecting wires.&lt;br /&gt;
&lt;br /&gt;
The RoboPad+EduBoard combo allows for easy connection of servo motors and additional outputs should you want to add more later down the line.&lt;br /&gt;
&lt;br /&gt;
To get going with your RoboPad, simply connect the two motors to the &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; headers on the EduBoard breakout (optionally via the extension leads for extra reach), connect a 9v battery to the connector, the switch to the battery connector, and then the battery connector into the JST-XH connector on the EduBoard, and then flick the switch to turn it on. You should see a network with the same name as the one listed on the RoboPad. Connect to it, and navigate to &amp;quot;start.robopad.co.uk&amp;quot; (or &amp;quot;192.168.4.1&amp;quot; if your phone raises an SSL warning) in your phone&#039;s browser and start driving.&lt;br /&gt;
&lt;br /&gt;
== Printable Parts ==&lt;br /&gt;
The SMRRF 2026 workshop was run in collaboration with [https://www.3dpprofessor.com/ The 3D Printing Professor], facilitated by [https://dreamsvoid.com/ DreamsVoid]. Through this collaboration, we were able to leverage the creativity of the 3D-printable building block system, [https://www.youtube.com/playlist?list=PLVybj_7VBHRJ2tu4gwskeY5XX914GSU9T PrintABlok], as a base for the robots you built! We designed a number of our own PrintABlok parts to support the electrical components available, and DreamsVoid provided kilograms of base parts. If you&#039;d like to 3D print these parts yourself, you can find them below:&lt;br /&gt;
&lt;br /&gt;
* The BlayzeTech [https://www.printables.com/model/1647213-robopad-printablok-parts RoboPad PrintABlok support parts] on Printables&lt;br /&gt;
* The 3D Printing Professor&#039;s [https://www.3dpprofessor.com/shop/ online store], where you can get the [https://www.3dpprofessor.com/product/printablok-base-set-free/ base PrintABlok parts] and the [https://www.3dpprofessor.com/product/electrobloks-free/ electroBlok parts] for free, as well as many other themed PrintABlok sets at a reasonable price point (we personally are quite excited about his recently released PrintAQuest line)&lt;br /&gt;
*DreamsVoid&#039;s [https://www.printables.com/model/1304091-printablok-connector-remover connector removal tool] - an incredibly useful tool for when you want to remove PrintABlok connectors&lt;br /&gt;
&lt;br /&gt;
== The RoboPad &amp;amp; EduBoard ==&lt;br /&gt;
Notes on the RoboPad and EduBoard to come here.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
Tips on motor removal, wheel generation + printing, course building and battery selection/upgrading to come here.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=349</id>
		<title>SMRRF 2026 Kit</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=349"/>
		<updated>2026-03-23T03:26:28Z</updated>

		<summary type="html">&lt;p&gt;Blayze: /* Kit Contents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thank you for picking up a RoboPad kit at SMRRF 2026! On this page you&#039;ll find all the information you&#039;ll need to get setup like we were at the event.&lt;br /&gt;
&lt;br /&gt;
The kit itself is build around the &#039;&#039;RoboPad&#039;&#039;, assembled onto a breakout board that we call the &#039;&#039;EduBoard&#039;&#039;. In order to find out more about the RoboPad, checkout the [https://robopad.co.uk/firmware.html user guide] and the rest of [[Main Page|this wiki]]. The RoboPad can be configured to do quite a few things, but by default it is configured to just drive two brushed motors using a simple tank-drive control scheme - this should be enough to get you started, before you begin taking steps to make more complex bots!&lt;br /&gt;
&lt;br /&gt;
Before you start, we recommend that you [https://robopad.co.uk/register register] your product; in doing so, you&#039;ll be able to choose to sign up for firmware updates and general product updates, should you want to. These are the best ways of keeping up to date with information on the latest RoboPad [[Firmware Releases|firmware releases]] and feature updates.&lt;br /&gt;
&lt;br /&gt;
== Kit Contents ==&lt;br /&gt;
[[File:SMRRF 2026 Kit Components.png|thumb|439x439px|The components in the kit]]&lt;br /&gt;
The kit itself only accounts for the electronic components - everything you need to build a simple 2-wheel robot. However, if you took home parts on the day, you may have additional 3D printed parts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The kit is designed to make it easy to use a 9v battery and a RoboPad to drive two motors. The power switch (3) is separated from the power distribution wire (5) so that you can easily mount the power switch into any 3D printed enclosure (such as the 3D printed print-a-blok switch holder that was used at SMRRF) without having to resolder its connecting wires.&lt;br /&gt;
&lt;br /&gt;
The RoboPad+EduBoard combo allows for easy connection of servo motors and additional outputs should you want to add more later down the line.&lt;br /&gt;
&lt;br /&gt;
== Printable Parts ==&lt;br /&gt;
The SMRRF 2026 workshop was run in collaboration with [https://www.3dpprofessor.com/ The 3D Printing Professor], facilitated by [https://dreamsvoid.com/ DreamsVoid]. Through this collaboration, we were able to leverage the creativity of the 3D-printable building block system, [https://www.youtube.com/playlist?list=PLVybj_7VBHRJ2tu4gwskeY5XX914GSU9T PrintABlok], as a base for the robots you built! We designed a number of our own PrintABlok parts to support the electrical components available, and DreamsVoid provided kilograms of base parts. If you&#039;d like to 3D print these parts yourself, you can find them below:&lt;br /&gt;
&lt;br /&gt;
* The BlayzeTech [https://www.printables.com/model/1647213-robopad-printablok-parts RoboPad PrintABlok support parts] on Printables&lt;br /&gt;
* The 3D Printing Professor&#039;s [https://www.3dpprofessor.com/shop/ online store], where you can get the [https://www.3dpprofessor.com/product/printablok-base-set-free/ base PrintABlok parts] and the [https://www.3dpprofessor.com/product/electrobloks-free/ electroBlok parts] for free, as well as many other themed PrintABlok sets at a reasonable price point (we personally are quite excited about his recently released PrintAQuest line)&lt;br /&gt;
*DreamsVoid&#039;s [https://www.printables.com/model/1304091-printablok-connector-remover connector removal tool] - an incredibly useful tool for when you want to remove PrintABlok connectors&lt;br /&gt;
&lt;br /&gt;
== The RoboPad &amp;amp; EduBoard ==&lt;br /&gt;
Notes on the RoboPad and EduBoard to come here.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
Tips on motor removal, wheel generation + printing, course building and battery selection/upgrading to come here.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=348</id>
		<title>SMRRF 2026 Kit</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=348"/>
		<updated>2026-03-23T03:25:41Z</updated>

		<summary type="html">&lt;p&gt;Blayze: /* Printable Parts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thank you for picking up a RoboPad kit at SMRRF 2026! On this page you&#039;ll find all the information you&#039;ll need to get setup like we were at the event.&lt;br /&gt;
&lt;br /&gt;
The kit itself is build around the &#039;&#039;RoboPad&#039;&#039;, assembled onto a breakout board that we call the &#039;&#039;EduBoard&#039;&#039;. In order to find out more about the RoboPad, checkout the [https://robopad.co.uk/firmware.html user guide] and the rest of [[Main Page|this wiki]]. The RoboPad can be configured to do quite a few things, but by default it is configured to just drive two brushed motors using a simple tank-drive control scheme - this should be enough to get you started, before you begin taking steps to make more complex bots!&lt;br /&gt;
&lt;br /&gt;
Before you start, we recommend that you [https://robopad.co.uk/register register] your product; in doing so, you&#039;ll be able to choose to sign up for firmware updates and general product updates, should you want to. These are the best ways of keeping up to date with information on the latest RoboPad [[Firmware Releases|firmware releases]] and feature updates.&lt;br /&gt;
&lt;br /&gt;
== Kit Contents ==&lt;br /&gt;
[[File:SMRRF 2026 Kit Components.png|thumb|439x439px|The components in the kit]]&lt;br /&gt;
The kit itself only accounts for the electronic components - everything you need to build a simple 2-wheel robot. However, if you took home parts on the day, you may have additional 3D printed parts that house these components.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The kit is designed to make it easy to use a 9v battery and a RoboPad to drive two motors. The power switch (3) is separated from the power distribution wire (5) so that you can easily mount the power switch into any 3D printed enclosure (such as the 3D printed print-a-blok switch holder that was used at SMRRF) without having to resolder its connecting wires.&lt;br /&gt;
&lt;br /&gt;
The RoboPad+EduBoard combo allows for easy connection of servo motors and additional outputs should you want to add more later down the line.&lt;br /&gt;
&lt;br /&gt;
== Printable Parts ==&lt;br /&gt;
The SMRRF 2026 workshop was run in collaboration with [https://www.3dpprofessor.com/ The 3D Printing Professor], facilitated by [https://dreamsvoid.com/ DreamsVoid]. Through this collaboration, we were able to leverage the creativity of the 3D-printable building block system, [https://www.youtube.com/playlist?list=PLVybj_7VBHRJ2tu4gwskeY5XX914GSU9T PrintABlok], as a base for the robots you built! We designed a number of our own PrintABlok parts to support the electrical components available, and DreamsVoid provided kilograms of base parts. If you&#039;d like to 3D print these parts yourself, you can find them below:&lt;br /&gt;
&lt;br /&gt;
* The BlayzeTech [https://www.printables.com/model/1647213-robopad-printablok-parts RoboPad PrintABlok support parts] on Printables&lt;br /&gt;
* The 3D Printing Professor&#039;s [https://www.3dpprofessor.com/shop/ online store], where you can get the [https://www.3dpprofessor.com/product/printablok-base-set-free/ base PrintABlok parts] and the [https://www.3dpprofessor.com/product/electrobloks-free/ electroBlok parts] for free, as well as many other themed PrintABlok sets at a reasonable price point (we personally are quite excited about his recently released PrintAQuest line)&lt;br /&gt;
*DreamsVoid&#039;s [https://www.printables.com/model/1304091-printablok-connector-remover connector removal tool] - an incredibly useful tool for when you want to remove PrintABlok connectors&lt;br /&gt;
&lt;br /&gt;
== The RoboPad &amp;amp; EduBoard ==&lt;br /&gt;
Notes on the RoboPad and EduBoard to come here.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
Tips on motor removal, wheel generation + printing, course building and battery selection/upgrading to come here.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=347</id>
		<title>SMRRF 2026 Kit</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=347"/>
		<updated>2026-03-23T02:11:27Z</updated>

		<summary type="html">&lt;p&gt;Blayze: Added outline for rest of document.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thank you for picking up a RoboPad kit at SMRRF 2026! On this page you&#039;ll find all the information you&#039;ll need to get setup like we were at the event.&lt;br /&gt;
&lt;br /&gt;
The kit itself is build around the &#039;&#039;RoboPad&#039;&#039;, assembled onto a breakout board that we call the &#039;&#039;EduBoard&#039;&#039;. In order to find out more about the RoboPad, checkout the [https://robopad.co.uk/firmware.html user guide] and the rest of [[Main Page|this wiki]]. The RoboPad can be configured to do quite a few things, but by default it is configured to just drive two brushed motors using a simple tank-drive control scheme - this should be enough to get you started, before you begin taking steps to make more complex bots!&lt;br /&gt;
&lt;br /&gt;
Before you start, we recommend that you [https://robopad.co.uk/register register] your product; in doing so, you&#039;ll be able to choose to sign up for firmware updates and general product updates, should you want to. These are the best ways of keeping up to date with information on the latest RoboPad [[Firmware Releases|firmware releases]] and feature updates.&lt;br /&gt;
&lt;br /&gt;
== Kit Contents ==&lt;br /&gt;
[[File:SMRRF 2026 Kit Components.png|thumb|439x439px|The components in the kit]]&lt;br /&gt;
The kit itself only accounts for the electronic components - everything you need to build a simple 2-wheel robot. However, if you took home parts on the day, you may have additional 3D printed parts that house these components.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The kit is designed to make it easy to use a 9v battery and a RoboPad to drive two motors. The power switch (3) is separated from the power distribution wire (5) so that you can easily mount the power switch into any 3D printed enclosure (such as the 3D printed print-a-blok switch holder that was used at SMRRF) without having to resolder its connecting wires.&lt;br /&gt;
&lt;br /&gt;
The RoboPad+EduBoard combo allows for easy connection of servo motors and additional outputs should you want to add more later down the line.&lt;br /&gt;
&lt;br /&gt;
== Printable Parts ==&lt;br /&gt;
The SMRRF 2026 workshop was run in collaboration with [https://www.3dpprofessor.com/ The 3D Printing Professor], facilitated by [https://dreamsvoid.com/ DreamsVoid]. Through this collaboration, we were able to leverage the creativity of the 3D-printable building block system, [https://www.youtube.com/playlist?list=PLVybj_7VBHRJ2tu4gwskeY5XX914GSU9T PrintABlok], as a base for the robots you built! We designed a number of our own PrintABlok parts to support the electrical components available, and DreamsVoid provided kilograms of base parts. If you&#039;d like to 3D print these parts yourself, you can find them below:&lt;br /&gt;
&lt;br /&gt;
* The BlayzeTech RoboPad PrintABlok support parts on Printables&lt;br /&gt;
* The 3D Printing Professor&#039;s [https://www.3dpprofessor.com/shop/ online store], where you can get the [https://www.3dpprofessor.com/product/printablok-base-set-free/ base PrintABlok parts] and the [https://www.3dpprofessor.com/product/electrobloks-free/ electroBlok parts] for free, as well as many other themed PrintABlok sets at a reasonable price point (we personally are quite excited about his recently released PrintAQuest line)&lt;br /&gt;
*DreamsVoid&#039;s connector removal tool - an incredibly useful tool for when you want to remove PrintABlok connectors&lt;br /&gt;
&lt;br /&gt;
== The RoboPad &amp;amp; EduBoard ==&lt;br /&gt;
Notes on the RoboPad and EduBoard to come here.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
Tips on motor removal, wheel generation + printing, course building and battery selection/upgrading to come here.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=346</id>
		<title>SMRRF 2026 Kit</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=346"/>
		<updated>2026-03-23T01:57:09Z</updated>

		<summary type="html">&lt;p&gt;Blayze: Adds printable parts section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thank you for picking up a RoboPad kit at SMRRF 2026! On this page you&#039;ll find all the information you&#039;ll need to get setup like we were at the event.&lt;br /&gt;
&lt;br /&gt;
The kit itself is build around the &#039;&#039;RoboPad&#039;&#039;, assembled onto a breakout board that we call the &#039;&#039;EduBoard&#039;&#039;. In order to find out more about the RoboPad, checkout the [https://robopad.co.uk/firmware.html user guide] and the rest of [[Main Page|this wiki]]. The RoboPad can be configured to do quite a few things, but by default it is configured to just drive two brushed motors using a simple tank-drive control scheme - this should be enough to get you started, before you begin taking steps to make more complex bots!&lt;br /&gt;
&lt;br /&gt;
Before you start, we recommend that you [https://robopad.co.uk/register register] your product; in doing so, you&#039;ll be able to choose to sign up for firmware updates and general product updates, should you want to. These are the best ways of keeping up to date with information on the latest RoboPad [[Firmware Releases|firmware releases]] and feature updates.&lt;br /&gt;
&lt;br /&gt;
== Kit Contents ==&lt;br /&gt;
[[File:SMRRF 2026 Kit Components.png|thumb|439x439px|The components in the kit]]&lt;br /&gt;
The kit itself only accounts for the electronic components - everything you need to build a simple 2-wheel robot. However, if you took home parts on the day, you may have additional 3D printed parts that house these components.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The kit is designed to make it easy to use a 9v battery and a RoboPad to drive two motors. The power switch (3) is separated from the power distribution wire (5) so that you can easily mount the power switch into any 3D printed enclosure (such as the 3D printed print-a-blok switch holder that was used at SMRRF) without having to resolder its connecting wires.&lt;br /&gt;
&lt;br /&gt;
The RoboPad+EduBoard combo allows for easy connection of servo motors and additional outputs should you want to add more later down the line.&lt;br /&gt;
&lt;br /&gt;
== Printable Parts ==&lt;br /&gt;
The SMRRF 2026 workshop was run in collaboration with [https://www.3dpprofessor.com/ The 3D Printing Professor], facilitated by [https://dreamsvoid.com/ DreamsVoid]. Through this collaboration, we were able to leverage the creativity of the 3D-printable building block system, [https://www.youtube.com/playlist?list=PLVybj_7VBHRJ2tu4gwskeY5XX914GSU9T PrintABlok], as a base for the robots you built! We designed a number of our own PrintABlok parts to support the electrical components available, and DreamsVoid provided kilograms of base parts. If you&#039;d like to 3D print these parts yourself, you can find them below:&lt;br /&gt;
&lt;br /&gt;
* The BlayzeTech RoboPad PrintABlok support parts on thingiverse&lt;br /&gt;
* The 3D Printing Professor&#039;s [https://www.3dpprofessor.com/shop/ online store], where you can get the [https://www.3dpprofessor.com/product/printablok-base-set-free/ base PrintABlok parts] and the [https://www.3dpprofessor.com/product/electrobloks-free/ electroBlok parts] for free, as well as many other themed PrintABlok sets at a reasonable price point (we personally are quite excited about his recently released PrintAQuest line)&lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=345</id>
		<title>SMRRF 2026 Kit</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=345"/>
		<updated>2026-03-23T01:44:00Z</updated>

		<summary type="html">&lt;p&gt;Blayze: /* Kit Contents */ Adds actual text&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thank you for picking up a RoboPad kit at SMRRF 2026! On this page you&#039;ll find all the information you&#039;ll need to get setup like we were at the event.&lt;br /&gt;
&lt;br /&gt;
The kit itself is build around the &#039;&#039;RoboPad&#039;&#039;, assembled onto a breakout board that we call the &#039;&#039;EduBoard&#039;&#039;. In order to find out more about the RoboPad, checkout the [https://robopad.co.uk/firmware.html user guide] and the rest of [[Main Page|this wiki]]. The RoboPad can be configured to do quite a few things, but by default it is configured to just drive two brushed motors using a simple tank-drive control scheme - this should be enough to get you started, before you begin taking steps to make more complex bots!&lt;br /&gt;
&lt;br /&gt;
Before you start, we recommend that you [https://robopad.co.uk/register register] your product; in doing so, you&#039;ll be able to choose to sign up for firmware updates and general product updates, should you want to. These are the best ways of keeping up to date with information on the latest RoboPad [[Firmware Releases|firmware releases]] and feature updates.&lt;br /&gt;
&lt;br /&gt;
== Kit Contents ==&lt;br /&gt;
[[File:SMRRF 2026 Kit Components.png|thumb|439x439px|The components in the kit]]&lt;br /&gt;
The kit itself only accounts for the electronic components - everything you need to build a simple 2-wheel robot. However, if you took home parts on the day, you may have additional 3D printed parts that house these components.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The kit is designed to make it easy to use a 9v battery and a RoboPad to drive two motors. The power switch (3) is separated from the power distribution wire (5) so that you can easily mount the power switch into any 3D printed enclosure (such as the 3D printed print-a-blok switch holder that was used at SMRRF) without having to resolder its connecting wires.&lt;br /&gt;
&lt;br /&gt;
The RoboPad+EduBoard combo allows for easy connection of servo motors and additional outputs should you want to add more later down the line.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=344</id>
		<title>SMRRF 2026 Kit</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=344"/>
		<updated>2026-03-23T01:39:30Z</updated>

		<summary type="html">&lt;p&gt;Blayze: Creates kit contents page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thank you for picking up a RoboPad kit at SMRRF 2026! On this page you&#039;ll find all the information you&#039;ll need to get setup like we were at the event.&lt;br /&gt;
&lt;br /&gt;
The kit itself is build around the &#039;&#039;RoboPad&#039;&#039;, assembled onto a breakout board that we call the &#039;&#039;EduBoard&#039;&#039;. In order to find out more about the RoboPad, checkout the [https://robopad.co.uk/firmware.html user guide] and the rest of [[Main Page|this wiki]]. The RoboPad can be configured to do quite a few things, but by default it is configured to just drive two brushed motors using a simple tank-drive control scheme - this should be enough to get you started, before you begin taking steps to make more complex bots!&lt;br /&gt;
&lt;br /&gt;
Before you start, we recommend that you [https://robopad.co.uk/register register] your product; in doing so, you&#039;ll be able to choose to sign up for firmware updates and general product updates, should you want to. These are the best ways of keeping up to date with information on the latest RoboPad [[Firmware Releases|firmware releases]] and feature updates.&lt;br /&gt;
&lt;br /&gt;
== Kit Contents ==&lt;br /&gt;
[[File:SMRRF 2026 Kit Components.png|thumb|439x439px|The components in the kit]]&lt;br /&gt;
The kit itself only accounts for the electronic components - everything you need to build a simple 2-wheel robot. However, if you took home parts on the day, you may have additional 3D printed parts that house these components.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The kit is designed to&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=File:SMRRF_2026_Kit_Components.png&amp;diff=343</id>
		<title>File:SMRRF 2026 Kit Components.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=File:SMRRF_2026_Kit_Components.png&amp;diff=343"/>
		<updated>2026-03-23T01:28:37Z</updated>

		<summary type="html">&lt;p&gt;Blayze: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A labelled diagram of components in the SMRRF 2026 kit.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=342</id>
		<title>SMRRF 2026 Kit</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=342"/>
		<updated>2026-03-23T00:07:08Z</updated>

		<summary type="html">&lt;p&gt;Blayze: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thank you for picking up a RoboPad kit at SMRRF 2026! On this page you&#039;ll find all the information you&#039;ll need to get setup like we were at the event.&lt;br /&gt;
&lt;br /&gt;
The kit itself is build around the &#039;&#039;RoboPad&#039;&#039;, assembled onto a breakout board that we call the &#039;&#039;EduBoard&#039;&#039;. In order to find out more about the RoboPad, checkout the [https://robopad.co.uk/firmware.html user guide] and the rest of [[Main Page|this wiki]]. The RoboPad can be configured to do quite a few things, but by default it is configured to just drive two brushed motors using a simple tank-drive control scheme - this should be enough to get you started, before you begin taking steps to make more complex bots!&lt;br /&gt;
&lt;br /&gt;
Before you start, we recommend that you [https://robopad.co.uk/register register] your product; in doing so, you&#039;ll be able to choose to sign up for firmware updates and general product updates, should you want to. These are the best ways of keeping up to date with information on the latest RoboPad [[Firmware Releases|firmware releases]] and feature updates.&lt;br /&gt;
&lt;br /&gt;
== Kit Contents ==&lt;br /&gt;
The kit itself only accounts for the electronic components - everything you need to build a simple 2-wheel robot. However, if you took home parts on the day, you may have additional 3D printed parts that house these components.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=341</id>
		<title>SMRRF 2026 Kit</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=341"/>
		<updated>2026-03-23T00:04:52Z</updated>

		<summary type="html">&lt;p&gt;Blayze: Adds introduction.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thank you for picking up a RoboPad kit at SMRRF 2026! On this page you&#039;ll find all the information you&#039;ll need to get setup like we were at the event.&lt;br /&gt;
&lt;br /&gt;
The kit itself is build around the &#039;&#039;RoboPad&#039;&#039;, assembled onto a breakout board that we call the &#039;&#039;EduBoard&#039;&#039;. In order to find out more about the RoboPad, checkout the [https://robopad.co.uk/firmware.html user guide] and the rest of [[Main Page|this wiki]]. The RoboPad can be configured to do quite a few things, but by default it is configured to just drive two brushed motors using a simple tank-drive control scheme - this should be enough to get you started, before you begin taking steps to make more complex bots!&lt;br /&gt;
&lt;br /&gt;
Before you start, we recommend that you [https://robopad.co.uk/register register] your product; in doing so, you&#039;ll be able to choose to sign up for firmware updates and general product updates, should you want to. These are the best ways of keeping up to date with information on the latest RoboPad [[Firmware Releases|firmware releases]] and feature updates.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=340</id>
		<title>SMRRF 2026 Kit</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=SMRRF_2026_Kit&amp;diff=340"/>
		<updated>2026-03-20T16:55:29Z</updated>

		<summary type="html">&lt;p&gt;Blayze: created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the page for the 20206 SMRRF kit!&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=Reference_Materials&amp;diff=339</id>
		<title>Reference Materials</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Reference_Materials&amp;diff=339"/>
		<updated>2025-11-11T22:22:19Z</updated>

		<summary type="html">&lt;p&gt;Blayze: Added info about lack of silkscreen art on the v1.2 boards.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you&#039;ll find some useful reference materials, sorted into RoboPad PCB revision number (see the back of your PCB for the revision number of your board!).&lt;br /&gt;
&lt;br /&gt;
== RoboPad Revision 1.1 ==&lt;br /&gt;
[[File:Screenshot from 2022-11-06 23-38-46.png|thumb|RoboPad 1.1 pin descriptions.]]&lt;br /&gt;
&lt;br /&gt;
* The Revision 1.1 RoboPad board is 22.8mm wide by 39.0mm tall, with a maximum thickness of 7.4mm (all +- 0.2mm) and is 8 grams in weight.&lt;br /&gt;
* The Reference 3D model as an stl file can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/ER1EQw8nlj1OqL284UU0u8gBAGXYZWUz_lbg3cSi9Tfk_A?e=rcFHFr here]&lt;br /&gt;
* If you use the [https://www.salome-platform.org/ Salome Platform] as your CAD software, you can find an [https://www.salome-platform.org/?page_id=327 Shaper] part file [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/ET2sd6JI5lJJjQtLZkPEAbYBWSUCJyN3JeOXF5FK15xcGA?e=Wvy4n2 here]&lt;br /&gt;
&lt;br /&gt;
== RoboPad Revision 1.3 (and 1.2) ==&lt;br /&gt;
[[File:RoboPad 1.3 Pinout.png|left|thumb|544x544px|RoboPad 1.2 &amp;amp; 1.3 pin descriptions.]]&lt;br /&gt;
The latest generation of the RoboPad, revision 1.3, is currently in the development phase. It&#039;s pin functions are largely the same as the 1.2, with a few pins missing. It can drive up to 1.8A on each motor drive pair, and the 3.3v rail is rated for up to 1A (although, as with the 1.1 version, this is to be shared with the RoboPad itself, which draws an average of 300mA and can peak at 800-1000mA).&lt;br /&gt;
&lt;br /&gt;
The version 1.2 boards were a small intermediary run, with 1.3 being the final version. There are a few small differences between the boards:&lt;br /&gt;
* No board silkscreen art (although the pin indicators are still in place).&lt;br /&gt;
* The long-side pins on the v1.2 boards are about 0.8mm left than in the v1.3.&lt;br /&gt;
* The power LED is positioned closer to the pins in the v1.2 board.&lt;br /&gt;
* The v1.3 board has additional dampening circuits in place to reduce start-up motor spin. This was originally left as a useful feature in v1.1 (and v1.2) to indicate that the board had been switched on, however in v1.3 it has been reduced as the power LED serves this function. The start-up spin could not be entirely eliminated - M1 may still actuate, particularly if the board has been turned off and then turned back on within a 10 second period.&lt;br /&gt;
* The v1.3 board has a slightly dimmer LED than the v1.2 revision.&lt;br /&gt;
&lt;br /&gt;
The final specs of the v1.3 board are listed below:&lt;br /&gt;
&lt;br /&gt;
* The Revision 1.3 RoboPad board is 23.0mm wide by 39.0mm tall, with a maximum thickness of 6.9mm (all +- 0.2mm) and is 4.9 grams in weight.&lt;br /&gt;
* The Reference 3D model as an stl file can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/Edac1L5jPPZJpJ0ZMq5iTaEBFhip98ItFqoKR7FIm2xoSA?e=gTr3Jt here]&lt;br /&gt;
* For convenience, the reference 3D model with male header pins attached can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EQUUGGkbpTtHudhVBzOY1CUBiIGVRaeHKkwwjQC14v1VFw?e=UIiFJu here]&lt;br /&gt;
* If you use OpenSCAD, a module is currently being readied for release. If you would like access to it early please [https://robopad.co.uk/contact.html contact us]&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=RoboPad_Kit&amp;diff=338</id>
		<title>RoboPad Kit</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=RoboPad_Kit&amp;diff=338"/>
		<updated>2025-01-10T00:18:44Z</updated>

		<summary type="html">&lt;p&gt;Blayze: Added motor information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on winning the SMRRF raffle! We hope you find this kit entertaining!&lt;br /&gt;
&lt;br /&gt;
In your kit box you should find the following parts:&lt;br /&gt;
[[File:RoboPad-kit-contents.png|center|frameless|624x624px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The motors are 6-volt N20 motors that operate at 800rpm. Ideally, you would use motors and power supplies that match each other&#039;s voltage, but in practice it is difficult to find a perfect match. Using a slightly lower voltage motor and over-volting it avoids the additional current draw that can occur from under-volting a higher-voltage motor. Whatever motor and battery combination you are using, ensure that neither get hot to the touch after use.&lt;br /&gt;
&lt;br /&gt;
These parts can be used to make a basic 2-wheel drive robot (example nodegraphs and configuration options are explained on the [[Example Robot Configurations|Examples]] page). You&#039;ll need to hook up the battery clip and the two wires to the RoboPad, as outlined below. It&#039;s always good practice to attach switches to the &#039;&#039;&#039;positive&#039;&#039;&#039; lead on a power source - electrical engineers and roboticists do this to make sure that the path that electricity can travel is absolutely minimised when the switch is off otherwise, if the switch was on the ground lead, all it would take to short the circuit would be for a grounded part of the circuit to come into contact with any ground on the board. If you&#039;re new to soldering, check out our [[Troubleshooting]] page and make sure you&#039;ve got the help of someone who&#039;s experienced in soldering!&lt;br /&gt;
[[File:Robopad-kit-wiring-diagram.png|center|frameless|601x601px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now all you&#039;ll need to do is design a chasis! 3D printing is often the preferred route to doing this, but you can always start with some thick cardboard, zipties and tape - it&#039;s surprisingly fun! If you have any issues or questions, don&#039;t hesitate to reach out to us at our [https://robopad.co.uk/contact.html contact] page.&lt;br /&gt;
&lt;br /&gt;
Finally, 9v batteries are not an amazing source of current. Usually small robots are run off of Lithium Polymer (LiPo) batteries (our boards are rated for up to &amp;quot;2S&amp;quot; batteries) which can provide significantly more current. If you find that your 9v battery isn&#039;t cutting it any more, seek out a robotics hobbyist with experience working with LiPos and ask for their advice. LiPo batteries can be dangerous if misused, and the choice of which battery to use can vary depending on what kind of robot you&#039;re building, so always be careful and make sure you fully understand what you&#039;re doing if you decide to use them. Local [https://bristolbotbuilders.com/events/ combat robotics] and RC car events and groups can be excellent places to find people in the know!&lt;br /&gt;
&lt;br /&gt;
Have fun and maybe you&#039;ll see us at your next combat robotics event (or perhaps maybe even at next SMRRF)!&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=RoboPad_Kit&amp;diff=337</id>
		<title>RoboPad Kit</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=RoboPad_Kit&amp;diff=337"/>
		<updated>2024-12-09T19:26:21Z</updated>

		<summary type="html">&lt;p&gt;Blayze: Adds the actual content.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on winning the SMRRF raffle! We hope you find this kit entertaining!&lt;br /&gt;
&lt;br /&gt;
In your kit box you should find the following parts:&lt;br /&gt;
[[File:RoboPad-kit-contents.png|center|frameless|624x624px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These parts can be used to make a basic 2-wheel drive robot (example nodegraphs and configuration options are explained on the [[Example Robot Configurations|Examples]] page). You&#039;ll need to hook up the battery clip and the two wires to the RoboPad, as outlined below. It&#039;s always good practice to attach switches to the &#039;&#039;&#039;positive&#039;&#039;&#039; lead on a power source - electrical engineers and roboticists do this to make sure that the path that electricity can travel is absolutely minimised when the switch is off otherwise, if the switch was on the ground lead, all it would take to short the circuit would be for a grounded part of the circuit to come into contact with any ground on the board. If you&#039;re new to soldering, check out our [[Troubleshooting]] page and make sure you&#039;ve got the help of someone who&#039;s experienced in soldering!&lt;br /&gt;
[[File:Robopad-kit-wiring-diagram.png|center|frameless|601x601px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now all you&#039;ll need to do is design a chasis! 3D printing is often the preferred route to doing this, but you can always start with some thick cardboard, zipties and tape - it&#039;s surprisingly fun! If you have any issues or questions, don&#039;t hesitate to reach out to us at our [https://robopad.co.uk/contact.html contact] page.&lt;br /&gt;
&lt;br /&gt;
Finally, 9v batteries are not an amazing source of current. Usually small robots are run off of Lithium Polymer (LiPo) batteries (our boards are rated for up to &amp;quot;2S&amp;quot; batteries) which can provide significantly more current. If you find that your 9v battery isn&#039;t cutting it any more, seek out a robotics hobbyist with experience working with LiPos and ask for their advice. LiPo batteries can be dangerous if misused, and the choice of which battery to use can vary depending on what kind of robot you&#039;re building, so always be careful and make sure you fully understand what you&#039;re doing if you decide to use them. Local [https://bristolbotbuilders.com/events/ combat robotics] and RC car events and groups can be excellent places to find people in the know!&lt;br /&gt;
&lt;br /&gt;
Have fun and maybe you&#039;ll see us at your next combat robotics event (or perhaps maybe even at next SMRRF)!&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=File:Robopad-kit-wiring-diagram.png&amp;diff=336</id>
		<title>File:Robopad-kit-wiring-diagram.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=File:Robopad-kit-wiring-diagram.png&amp;diff=336"/>
		<updated>2024-12-09T19:08:06Z</updated>

		<summary type="html">&lt;p&gt;Blayze: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The wiring diagram for the RoboPad kit.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=File:RoboPad-kit-contents.png&amp;diff=335</id>
		<title>File:RoboPad-kit-contents.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=File:RoboPad-kit-contents.png&amp;diff=335"/>
		<updated>2024-12-09T19:07:42Z</updated>

		<summary type="html">&lt;p&gt;Blayze: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The contents of the RoboPad kit.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=RoboPad_Kit&amp;diff=334</id>
		<title>RoboPad Kit</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=RoboPad_Kit&amp;diff=334"/>
		<updated>2024-12-07T22:49:43Z</updated>

		<summary type="html">&lt;p&gt;Blayze: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on winning the SMRRF raffle! We hope you find this kit entertaining!&lt;br /&gt;
&lt;br /&gt;
Specific instructions coming soon... (in the meantime, please see the rest of the wiki for information, or, if SMRRF is still on-going, come have a chat to us at the Blayze Tech booth!)&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=RoboPad_Kit&amp;diff=333</id>
		<title>RoboPad Kit</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=RoboPad_Kit&amp;diff=333"/>
		<updated>2024-12-06T23:00:11Z</updated>

		<summary type="html">&lt;p&gt;Blayze: Created page with &amp;quot;Congratulations on winning the SMRRF raffle! We hope you find this kit entertaining!  See below for instructions.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on winning the SMRRF raffle! We hope you find this kit entertaining!&lt;br /&gt;
&lt;br /&gt;
See below for instructions.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=Firmware_Releases&amp;diff=332</id>
		<title>Firmware Releases</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Firmware_Releases&amp;diff=332"/>
		<updated>2024-10-31T18:04:29Z</updated>

		<summary type="html">&lt;p&gt;Blayze: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you can find a list of all firmware changes and a link to download the latest version of the Firmware. This page documents the changes added by each new version of RoboPad. The latest version can be downloaded at [https://www.robopad.co.uk/firmware robopad.co.uk/firmware].&lt;br /&gt;
&lt;br /&gt;
Your RoboPad&#039;s firmware can be updated by navigating to the [[Updating Firmware|firmware update page]] which is accessible once connected to the RoboPad via the [[The Management Page|management page]]. Simply download the latest firmware, navigate to the update page, and then under &amp;quot;Firmware&amp;quot; click &amp;quot;browse&amp;quot;, select the downloaded file and then press &amp;quot;Update&amp;quot;. The RoboPad will then reboot into the new firmware - your settings and nodegraphs should remain untouched (&#039;&#039;&#039;Please note: The RoboPad may take a while to reboot once you have clicked the &amp;quot;update&amp;quot; button. Do not leave the page or refresh until you see a notice informing you that the firmware has been successfully uploaded&#039;&#039;&#039;). Note that you may have to manually reboot your RoboPad in order for network settings to update after a firmware upgrade.&lt;br /&gt;
&lt;br /&gt;
== List of Firmware Releases ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Version 2.2&amp;lt;/strong&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Features&lt;br /&gt;
* Adds twin-slider tankdrive as the default nodegraph&lt;br /&gt;
* Adds colour-coded node titles&lt;br /&gt;
* Moves &amp;lt;i&amp;gt;Node Add&amp;lt;/i&amp;gt; UI to the top of the screen&lt;br /&gt;
&lt;br /&gt;
Bug fixes&lt;br /&gt;
* Fixes a bug in the safeboot mode now properly allowing for the management page to be accessible.&lt;br /&gt;
* Various HTML/CSS cleanups&lt;br /&gt;
* Makes nodegraph connections update on page resize&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Version 2.1&amp;lt;/strong&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The first full release of RoboPad. Including:&lt;br /&gt;
* DNS server allowing for connection at start.robopad.co.uk&lt;br /&gt;
* The [https://wiki.robopad.co.uk/index.php/Nodegraph_Editor Nodegraph Editor]&lt;br /&gt;
* A fully-featured hardware configuration page&lt;br /&gt;
* [https://wiki.robopad.co.uk/index.php/Demo_Mode Demo Mode]&lt;br /&gt;
* [https://wiki.robopad.co.uk/index.php/index.php/Safeboot Safeboot] firmware updater&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Version 2.0 and Below&amp;lt;/strong&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
These versions of RoboPad are pre-release versions that differ greatly from the first release version of RoboPad (2.1, above). Please update to the latest version to get many new features.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=Reference_Materials&amp;diff=331</id>
		<title>Reference Materials</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Reference_Materials&amp;diff=331"/>
		<updated>2024-10-29T17:02:17Z</updated>

		<summary type="html">&lt;p&gt;Blayze: Removes seemingly left-over &amp;quot;Welcome to the wiki!&amp;quot; sentence.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you&#039;ll find some useful reference materials, sorted into RoboPad PCB revision number (see the back of your PCB for the revision number of your board!).&lt;br /&gt;
&lt;br /&gt;
== RoboPad Revision 1.1 ==&lt;br /&gt;
[[File:Screenshot from 2022-11-06 23-38-46.png|thumb|RoboPad 1.1 pin descriptions.]]&lt;br /&gt;
&lt;br /&gt;
* The Revision 1.1 RoboPad board is 22.8mm wide by 39.0mm tall, with a maximum thickness of 7.4mm (all +- 0.2mm) and is 8 grams in weight.&lt;br /&gt;
* The Reference 3D model as an stl file can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/ER1EQw8nlj1OqL284UU0u8gBAGXYZWUz_lbg3cSi9Tfk_A?e=rcFHFr here]&lt;br /&gt;
* If you use the [https://www.salome-platform.org/ Salome Platform] as your CAD software, you can find an [https://www.salome-platform.org/?page_id=327 Shaper] part file [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/ET2sd6JI5lJJjQtLZkPEAbYBWSUCJyN3JeOXF5FK15xcGA?e=Wvy4n2 here]&lt;br /&gt;
&lt;br /&gt;
== RoboPad Revision 1.3 (and 1.2) ==&lt;br /&gt;
[[File:RoboPad 1.3 Pinout.png|left|thumb|544x544px|RoboPad 1.2 &amp;amp; 1.3 pin descriptions.]]&lt;br /&gt;
The latest generation of the RoboPad, revision 1.3, is currently in the development phase. It&#039;s pin functions are largely the same as the 1.2, with a few pins missing. It can drive up to 1.8A on each motor drive pair, and the 3.3v rail is rated for up to 1A (although, as with the 1.1 version, this is to be shared with the RoboPad itself, which draws an average of 300mA and can peak at 800-1000mA).&lt;br /&gt;
&lt;br /&gt;
The version 1.2 boards were a small intermediary run, with 1.3 being the final version. There are a few small differences between the boards:&lt;br /&gt;
* The long-side pins on the v1.2 boards are about 0.8mm left than in the v1.3.&lt;br /&gt;
* The power LED is positioned closer to the pins in the v1.2 board.&lt;br /&gt;
* The v1.3 board has additional dampening circuits in place to reduce start-up motor spin. This was originally left as a useful feature in v1.1 (and v1.2) to indicate that the board had been switched on, however in v1.3 it has been reduced as the power LED serves this function. The start-up spin could not be entirely eliminated - M1 may still actuate, particularly if the board has been turned off and then turned back on within a 10 second period.&lt;br /&gt;
* The v1.3 board has a slightly dimmer LED than the v1.2 revision.&lt;br /&gt;
&lt;br /&gt;
The final specs of the v1.3 board are listed below:&lt;br /&gt;
&lt;br /&gt;
* The Revision 1.3 RoboPad board is 23.0mm wide by 39.0mm tall, with a maximum thickness of 6.9mm (all +- 0.2mm) and is 4.9 grams in weight.&lt;br /&gt;
* The Reference 3D model as an stl file can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/Edac1L5jPPZJpJ0ZMq5iTaEBFhip98ItFqoKR7FIm2xoSA?e=gTr3Jt here]&lt;br /&gt;
* For convenience, the reference 3D model with male header pins attached can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EQUUGGkbpTtHudhVBzOY1CUBiIGVRaeHKkwwjQC14v1VFw?e=UIiFJu here]&lt;br /&gt;
* If you use OpenSCAD, a module is currently being readied for release. If you would like access to it early please [https://robopad.co.uk/contact.html contact us]&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=File:RoboPad_1.3_Pinout.png&amp;diff=330</id>
		<title>File:RoboPad 1.3 Pinout.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=File:RoboPad_1.3_Pinout.png&amp;diff=330"/>
		<updated>2024-10-05T23:35:28Z</updated>

		<summary type="html">&lt;p&gt;Blayze: Blayze uploaded a new version of File:RoboPad 1.3 Pinout.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pinout of RoboPad version 1.3.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=TinyBEC&amp;diff=329</id>
		<title>TinyBEC</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=TinyBEC&amp;diff=329"/>
		<updated>2024-09-27T23:47:05Z</updated>

		<summary type="html">&lt;p&gt;Blayze: /* What is TinyBEC? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the TinyBEC product page! If you&#039;re on this page, then it means we think you might get some use out of them in the future and have given you some to sample!&lt;br /&gt;
&lt;br /&gt;
This product is currently a &#039;&#039;prototype&#039;&#039;, so we&#039;re actively looking for feedback on it - if you have any, please contact us at tinybec@blayze.tech! &lt;br /&gt;
&lt;br /&gt;
=== What is TinyBEC? ===&lt;br /&gt;
TinyBEC is exactly as it sounds - a tiny battery elimination circuit (BEC): there are many like them, but this is ours - and it&#039;s configurable too!&lt;br /&gt;
&lt;br /&gt;
Occasionally customers would ask us if a RoboPad can power a 9g micro (or even a 4g sub-micro) servo, and we&#039;d have to tell them that no, it doesn&#039;t. Servos often operate between 5 and 6 volts, with sub-micro servos requiring between 3 and 5 volts, and all pulling up to an amp of current, which we can&#039;t supply. That was until we built the TinyBEC!&lt;br /&gt;
&lt;br /&gt;
The TinyBEC allows you to selectively solder the bridges on the back to get low voltage (both soldered), 4.5v (one soldered), 5.8v (the other soldered) or ~2S battery voltage (neither soldered) when supplying up to 11v input, perfect for powering a servo! It should be noted that the RoboPad still only supplies 3.3v logic signals, however we have yet to find a hobby servo that will not accept these.&lt;br /&gt;
&lt;br /&gt;
The TinyBEC can be connected to your robot&#039;s power supply and will generate the configured voltage, so for a servo you can hook up its power positive and ground lines directly to the TinyBEC, then attach its signal line to the RoboPad as you usually would.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Known Issues ===&lt;br /&gt;
&lt;br /&gt;
* Soldering the voltage selection pads is a little difficult - in the future they will be closer together and slightly smaller.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=TinyBEC&amp;diff=328</id>
		<title>TinyBEC</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=TinyBEC&amp;diff=328"/>
		<updated>2024-09-26T20:13:38Z</updated>

		<summary type="html">&lt;p&gt;Blayze: /* What is TinyBEC? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the TinyBEC product page! If you&#039;re on this page, then it means we think you might get some use out of them in the future and have given you some to sample!&lt;br /&gt;
&lt;br /&gt;
This product is currently a &#039;&#039;prototype&#039;&#039;, so we&#039;re looking for active feedback on it - if you have any, please contact us at tinybec@blayze.tech! &lt;br /&gt;
&lt;br /&gt;
=== What is TinyBEC? ===&lt;br /&gt;
TinyBEC is exactly as it sounds - a tiny battery elimination circuit (BEC): there are many like them, but this is ours - and it&#039;s configurable too!&lt;br /&gt;
&lt;br /&gt;
Occasionally customers would ask if the RoboPad can power a 9g micro (or even a 4g sub-micro) servo, and we&#039;d have to tell them that no, it doesn&#039;t. Servos often operate between 5 and 6 volts, with sub-micro servos being requiring between 3 and 5 volts, and all pulling up to an amp of current. That was until we built this the TinyBEC!&lt;br /&gt;
&lt;br /&gt;
The TinyBEC allows you to selectively solder the bridges on the back to get low voltage (both soldered), 4.5v (one soldered), 5.8v (the other soldered) or ~2S battery voltage (neither soldered) when supplying up to 11v input, perfect for powering a servo! It should be noted that the RoboPad still only supplies 3.3v logic signals, however we have yet to find a hobby servo that will not accept these.&lt;br /&gt;
&lt;br /&gt;
=== Known Issues ===&lt;br /&gt;
&lt;br /&gt;
* Soldering the voltage selection pads is a little difficult - in the future they will be closer together and slightly smaller.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=TinyBEC&amp;diff=327</id>
		<title>TinyBEC</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=TinyBEC&amp;diff=327"/>
		<updated>2024-09-26T20:11:19Z</updated>

		<summary type="html">&lt;p&gt;Blayze: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the TinyBEC product page! If you&#039;re on this page, then it means we think you might get some use out of them in the future and have given you some to sample!&lt;br /&gt;
&lt;br /&gt;
This product is currently a &#039;&#039;prototype&#039;&#039;, so we&#039;re looking for active feedback on it - if you have any, please contact us at tinybec@blayze.tech! &lt;br /&gt;
&lt;br /&gt;
=== What is TinyBEC? ===&lt;br /&gt;
TinyBEC is exactly as it sounds - a tiny battery elimination circuit (BEC): there are many like them, but this is ours - and it&#039;s configurable too!&lt;br /&gt;
&lt;br /&gt;
Occasionally customers would ask if the RoboPad can power a 9g micro (or even a 4g sub-micro) servo, abd we&#039;d have to tell them that no, it doesn&#039;t. Servos often operate between 5 and 6 volts, with sub-micro servos being requiring between 3 and 5 volts, and all pulling up to an amp of current.&lt;br /&gt;
&lt;br /&gt;
The TinyBEC allows you to selectively solder the bridges on the back to get low voltage (both soldered), 4.5v (one soldered), 5.8v (the other soldered) or ~2S battery voltage (neither soldered) when supplying up to 11v input.&lt;br /&gt;
&lt;br /&gt;
=== Known Issues ===&lt;br /&gt;
&lt;br /&gt;
* Soldering the voltage selection pads is a little difficult - in the future they will be closer together and slightly smaller.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=TinyBEC&amp;diff=326</id>
		<title>TinyBEC</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=TinyBEC&amp;diff=326"/>
		<updated>2024-09-26T12:26:07Z</updated>

		<summary type="html">&lt;p&gt;Blayze: Creates the TinyBEC page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the TinyBEC product page! If you&#039;re on this page, then it means we think you might get some use out of them in the future and have given you some to sample!&lt;br /&gt;
&lt;br /&gt;
This product is currently a &#039;&#039;prototype&#039;&#039;, so we&#039;re looking for active feedback on it - if you have any, please contact us at tinybec@blayze.tech! &lt;br /&gt;
&lt;br /&gt;
=== Known Issues ===&lt;br /&gt;
&lt;br /&gt;
* Soldering the voltage selection pads is a little difficult - in the future they will be closer together and slightly smaller.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=IO_Config_Editor&amp;diff=325</id>
		<title>IO Config Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=IO_Config_Editor&amp;diff=325"/>
		<updated>2024-09-20T12:25:05Z</updated>

		<summary type="html">&lt;p&gt;Blayze: /* Unidirectional Brushless Motor */ Adds notice about ESCs &amp;quot;beeping&amp;quot; non-used motors.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;&amp;lt;u&amp;gt;NOTICE: This page consists of information on a feature currently in [[Beta]]. Information is liable to change or be incomplete.&amp;lt;/u&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The Input/Output (IO) Configuration Editor page is the page where you can edit the physical IO configuration of the RoboPad board by configuring &#039;&#039;&#039;IO Units&#039;&#039;&#039;. You can, for instance, set one of the [[:File:Screenshot from 2022-11-06 23-38-46.png|external pins]] to output a digital electronic signal, which can be controlled via the [[Nodegraph Editor|nodegraph]]. It is accessible via the [[The Management Page|Management Page.]]&lt;br /&gt;
[[File:The default IO Configuration Editor page 2023-02-19.png|thumb|The default IO Configuration Editor page as of 2023-02-19]]&lt;br /&gt;
Each &#039;&#039;&#039;IO Unit&#039;&#039;&#039; has a number of settings and will add it&#039;s own input and output ports to the [[Chip Node]] in the [[Nodegraph Editor|nodegraph]]. Importantly, for actuators, you are able to specify &#039;&#039;&#039;safe values&#039;&#039;&#039; - these are the values that the IO Unit will default to when the RoboPad looses connection to your phone or you are on any screen other than the controller screen (it&#039;s [[emergency stop state]]). It is very important that you understand how your safe values and IO Units in general interact with the physical circuitry you have added to your RoboPad - for instance, if you are adding an additional motor to your robot using a Generic PWM IO Unit, you will most likely want to ensure that it&#039;s safe value is set to 0 so that it will turn off in an emergency situation. Some IO Units do not have safe value settings (such as HBridge motors and unidirectional brushless motors) as all of these configurations are configured to turn off by default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changing the physical configuration of the RoboPad and the behaviour of it&#039;s pins using the IO Configuration Editor should be considered an advanced topic - ensure that you have read and fully understand everything on this wiki page and everything you are doing before attempting to change these settings.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Emergency Stop Behaviour When Changing IO Unit Configuration ===&lt;br /&gt;
It is also important to understand that IO Unit safe values &#039;&#039;&#039;remain configured&#039;&#039;&#039; on the pins they are set to, &#039;&#039;&#039;even when removed&#039;&#039;&#039; (using the red &amp;quot;x&amp;quot;) until either &#039;&#039;&#039;another IO Unit is configured to use that pin&#039;&#039;&#039; or the &#039;&#039;&#039;device is reset&#039;&#039;&#039;. This has been done because it is &#039;&#039;&#039;not recommended, expected or suggested&#039;&#039;&#039; that a user would change the physical configuration of their RoboPad circuit without first powering it down. Therefore, the firmware assumes that the safest thing to do is retain the last set safe value for any given pin until it is told otherwise (or the device is power cycled, at which point unconfigured pins remain at a high-impedance state).&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Advanced Pins&amp;quot; ===&lt;br /&gt;
Some Pins - namely all pins that are not External 1 and External 2 (marked E1 and E2 respectively on the board) are considered &#039;&#039;Advanced Pins&#039;&#039;. This is because they may behave in a way outside of expected behaviour. For instance, many of these pins will output arbitrary signals within the first 500 milliseconds of RoboPad boot and as such should not be used for actuators that may cause harm if they were to unexpectedly move. Others (particularly the &amp;quot;Internal&amp;quot; pins) are already connected to some internal electronics on the RoboPad, such as the built-in HBridge that drives the default M1 and M2 outputs. In order to use these pins, you would have to remove the HBridge from the device (which is not advised and will void the product&#039;s guarantee).&lt;br /&gt;
&lt;br /&gt;
== Pins ==&lt;br /&gt;
[[File:Screenshot from 2022-11-06 23-38-46.png|thumb|Accessible pins, as they are seen on the RoboPad version 1.1 board.]]&lt;br /&gt;
Much like an Arduino, pins are capable of driving a small current (~12mA per pin) at 3.3v to external circuitry, or can sink a small current (~20mA). Below is a list of the different pin names and how they might be used.&lt;br /&gt;
[[File:RoboPad 1.3 Pinout.png|thumb|Accessible pins, as they are seen on the RoboPad version 1.2 and 1.3 boards.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Pin names, IDs and additional information&lt;br /&gt;
!Pin Name&lt;br /&gt;
!ID on Board&lt;br /&gt;
!Information&lt;br /&gt;
|-&lt;br /&gt;
|External 1&lt;br /&gt;
|E1&lt;br /&gt;
|Non-advanced pin.&lt;br /&gt;
|-&lt;br /&gt;
|External 2&lt;br /&gt;
|E2&lt;br /&gt;
|Non-advanced pin.&lt;br /&gt;
|-&lt;br /&gt;
|TX&lt;br /&gt;
|T&lt;br /&gt;
|The &amp;quot;Transmit&amp;quot; pin when manually reprogramming the RoboPad.&lt;br /&gt;
Subject to pseudo-random signal state for the first 500ms after RoboPad boot.&lt;br /&gt;
|-&lt;br /&gt;
|RX&lt;br /&gt;
|R&lt;br /&gt;
|The &amp;quot;Recieve&amp;quot; pin when manually reprogramming the RoboPad.&lt;br /&gt;
Subject to pseudo-random signal state for the first 500ms after RoboPad boot.&lt;br /&gt;
|-&lt;br /&gt;
|Safeboot&lt;br /&gt;
|SB&lt;br /&gt;
|Pulled &#039;&#039;&#039;low&#039;&#039;&#039; through an on-board 10kΩ resistor, and meant to be connected to the 3.3v pin (pulling it &#039;&#039;&#039;high&#039;&#039;&#039;) at the 4 seconds after boot point to enable [[Safeboot|safeboot.]]&lt;br /&gt;
Subject to pseudo-random signal state for the first 500ms after RoboPad boot.&lt;br /&gt;
|-&lt;br /&gt;
|Program Enable&lt;br /&gt;
|PE&lt;br /&gt;
|Used along with the TX and RX pins to manually reprogram the RoboPad.&lt;br /&gt;
Subject to pseudo-random signal state for the first 500ms after RoboPad boot.&lt;br /&gt;
|-&lt;br /&gt;
|Unset&lt;br /&gt;
|&lt;br /&gt;
|When &amp;quot;Unset&amp;quot; is available, the pin may optionally be non-configured. Choosing this option means no pin is used for the particular option.&lt;br /&gt;
|-&lt;br /&gt;
|Drive Enable&lt;br /&gt;
|Internal&lt;br /&gt;
|An internal pin used to enable or disable the built-in HBridge chip.&lt;br /&gt;
Subject to pseudo-random signal state for the first 500ms after RoboPad boot.&lt;br /&gt;
|-&lt;br /&gt;
|Drive Pin 1&lt;br /&gt;
Forward&lt;br /&gt;
|Internal&lt;br /&gt;
|An internal pin attached to the built-in HBridge chip.&lt;br /&gt;
Subject to pseudo-random signal state for the first 500ms after RoboPad boot.&lt;br /&gt;
|-&lt;br /&gt;
|Drive Pin 1&lt;br /&gt;
Backward&lt;br /&gt;
|Internal&lt;br /&gt;
|An internal pin attached to the built-in HBridge chip.&lt;br /&gt;
Subject to pseudo-random signal state for the first 500ms after RoboPad boot.&lt;br /&gt;
|-&lt;br /&gt;
|Drive Pin 2&lt;br /&gt;
Forward&lt;br /&gt;
|Internal&lt;br /&gt;
|An internal pin attached to the built-in HBridge chip.&lt;br /&gt;
Subject to pseudo-random signal state for the first 500ms after RoboPad boot.&lt;br /&gt;
|-&lt;br /&gt;
|Drive Pin 2&lt;br /&gt;
Backward&lt;br /&gt;
|Internal&lt;br /&gt;
|An internal pin attached to the built-in HBridge chip.&lt;br /&gt;
Subject to pseudo-random signal state for the first 500ms after RoboPad boot.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== IO Units ==&lt;br /&gt;
A variety of IO Units can be added that are suitable for a number of uses, all are listed here.&lt;br /&gt;
=== Actuators ===&lt;br /&gt;
All actuators add input ports to the [[Chip Node]], allowing signals to be passed from the [[Nodegraph Editor|Node Graph]] to each actuator. On top of this, each actuator will create an output port on the Chip Node, usually labelled ending with &#039;&#039;&amp;quot;Armed&amp;quot;&#039;&#039; - this is an indicator of whether or not the actuator is &#039;&#039;&#039;armed&#039;&#039;&#039;. The signal to any specific actuator &#039;&#039;must&#039;&#039; pass through that actuator&#039;s configured &#039;&#039;&#039;safe value&#039;&#039;&#039; for it to be considered to be &#039;&#039;&#039;armed&#039;&#039;&#039; - then and only then will the actuator start to process new control signals. As an example, an servo attached using the &amp;quot;PWM Output&amp;quot; with a safety value set to 50% would require a near-50% signal to be sent to it&#039;s input before you will be able to see any change in the pin&#039;s output.&lt;br /&gt;
&lt;br /&gt;
All actuators output &#039;&#039;&#039;3.3 volts&#039;&#039;&#039; along their output pins. Make sure that any connected peripherals such as ESCs or H-Bridges operate with 3.3 volt logic.&lt;br /&gt;
==== H-Bridge Motor ====&lt;br /&gt;
[[File:H-Bridge Motor IO Unit Screenshot 2023-2-20.png|right|frameless|410x410px]]A [[wikipedia:H-bridge|H-Bridge]] is a simple, common circuit that can control the polarity of electricity to an attached electrical component - commonly a motor. In practice this means that a typical brushed DC motor&#039;s direction and speed can be controlled from one using two control signals.  While you can make one yourself [https://www.robotroom.com/BipolarHBridge.html using transistors] (that site also has a [https://www.robotroom.com/DPDT-Bidirectional-Motor-Switch.html useful example] using switches which might make the concept easier to understand too), they often come in integrated circuit (IC) form factors, such as the Texas Instruments &#039;&#039;L293D&#039;&#039;, which packs two H-bridges and comes bundled with some additional features.&lt;br /&gt;
&lt;br /&gt;
Using this IO Unit, the RoboPad will send drive signals suitable for use with a H-bridge through the specified pins (&#039;&#039;PinA&#039;&#039; and &#039;&#039;PinB&#039;&#039;). It&#039;s emergency stop state is to stop all signals and power down associated pins. The nodegraph is expected to supply a value between 0 and 1 to this IO Unit&#039;s input port, where 0 is maximum reverse rotation, 0.5 is stationary and 1 is maximum forward rotation. This IO Unit creates an output port (labeled &amp;quot;&amp;lt;name&amp;gt; armed&amp;quot;) on the Chip Node that signals high (1) when a control signal has been passed to it that would place it into it&#039;s safe state.&lt;br /&gt;
* &#039;&#039;&#039;Name&#039;&#039;&#039;: The name of this HBridge motor, basically only changes the name of the motor input port on the Chip Node.&lt;br /&gt;
* &#039;&#039;&#039;Pin A&#039;&#039;&#039;: One of the two directional signals needed by H-Bridge chips.&lt;br /&gt;
* &#039;&#039;&#039;Pin B&#039;&#039;&#039;: One of the two directional signals needed by H-Bridge chips, signalling the opposite direction from that signalled in &#039;&#039;Pin A.&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Enable Pin&#039;&#039;&#039;: If set to a value other than &amp;quot;Unset&amp;quot;, a high signal will be transmitted whenever the H-Bridge is in use; to be connected to a H-Bridge chip&#039;s &amp;quot;enable&amp;quot; pin(s).&lt;br /&gt;
* &#039;&#039;&#039;Forward Scale&#039;&#039;&#039;: Scales the forward signal (over 50%) before it is transmitted to the motor signal pins - if your motor drives forward faster than backwards, then you can lower this value.&lt;br /&gt;
* &#039;&#039;&#039;Reverse Scale&#039;&#039;&#039;: Scales the backward signal (below 50%) before it is transmitted to the motor signal pins - if your motor drives backwards faster than forwards, then you can lower this value.&lt;br /&gt;
&lt;br /&gt;
==== Built-in H-Bridge Motor ====&lt;br /&gt;
[[File:Built-in H-Bridge Motor 2023-02-20-b.png|right|frameless|410x410px|The Built-In H-Bridge Motor IO Unit UI]]The &amp;quot;Built-in H-Bridge Motor&amp;quot; IO unit is a specialised version of the &amp;quot;H-Bridge Motor&amp;quot; above, specifically designed to work only with the two built-in H-Bridges on the RoboPad, allowing you to select motors to be attached to the &#039;&#039;M1&#039;&#039; and &#039;&#039;M2&#039;&#039; pin pairs on the board. By default, two of these are configured, one for M1 and one for M2. When in the [[emergency stop state]], these IO Units attempt to send a stop signal to any attached motors, not powering any associated pins. Just as in the &amp;quot;H-Bridge Motor&amp;quot; IO Unit, the nodegraph is expected to supply a value between 0 and 1 to this IO Unit&#039;s input port, where 0 is maximum reverse rotation, 0.5 is stationary and 1 is maximum forward rotation. This IO Unit creates an output port (labeled &amp;quot;&amp;lt;name&amp;gt; armed&amp;quot;) on the Chip Node that signals high (1) when a control signal has been passed to it that would place it into it&#039;s safe state.&lt;br /&gt;
* &#039;&#039;&#039;Name&#039;&#039;&#039;: The name of this HBridge motor, basically only changes the name of the motor input port on the Chip Node.&lt;br /&gt;
* &#039;&#039;&#039;Built-in Motor&#039;&#039;&#039;: Which of the two built-in motor pins this H-Bridge Motor IO Unit references - M1 connects to the M1 pins, M2 to the M2 pins.&lt;br /&gt;
* &#039;&#039;&#039;Forward Scale&#039;&#039;&#039;: Scales the forward signal (over 50%) before it is transmitted to the motor signal pins - if your motor drives forward faster than backwards, then you can lower this value.&lt;br /&gt;
* &#039;&#039;&#039;Backward Scale&#039;&#039;&#039;: Scales the backward signal (below 50%) before it is transmitted to the motor signal pins - if your motor drives backwards faster than forwards, then you can lower this value.&lt;br /&gt;
==== Unidirectional Brushless Motor ====&lt;br /&gt;
[[File:UniBrushless 2023-02-21.png|right|frameless|410x410px]]&lt;br /&gt;
A [[wikipedia:Brushless_DC_electric_motor|brushless motor]] is a type of motor that uses many (usually three) electromagnetic circuits, pulsed in a specific sequence to generate a moving magnetic field - this field then &amp;quot;pulls&amp;quot; the motor&#039;s magnetised rotor with it, allowing for rotation without direct electrical contact (as is found in brushed motors, where metal brushes must transfer power directly to the rotor), resulting in motors that are less prone to wear and generally operate more smoothly and efficiently. The downside of this is that they require [[wikipedia:Electronic_speed_control|electronic speed controllers (ESCs)]] to be driven, which are circuits containing microprocessors that power the motor&#039;s coils in the correct sequential pattern. These ESCs take in a control signal, and will often require an arming sequence before they start to energise the motor&#039;s coils.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Unidirectional Brushless Motor&amp;quot; IO Unit allows the RoboPad to send drive signals (much as a traditional RC radio receiver would) suitable for reception by an ESC that can accept a PWM control signal, and will automatically send thvcbe configured arming sequence beforehand in order to initialise the ESC ready for motor control. Note that this only configures one pin as a control signal pin, and as such is designed to work with &#039;&#039;unidirectional&#039;&#039; brushless motor ESCs, i.e. ESCs that allow a single motor to be driven in a single direction at varying speeds. An incoming nodegraph signal of 0 results in the minimum microseconds signal being sent to the ESC, while an incoming nodegraph signal of 1 results in the maximum microseconds signal being sent to the ESC. This IO Unit creates an output port (labeled &amp;quot;&amp;lt;name&amp;gt; armed&amp;quot;) on the Chip Node that signals high (1) when a control signal has been passed to it that would place it into it&#039;s safe state.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Name&#039;&#039;&#039;: The name of this brushless motor, basically only changes the name of the motor input port on the Chip Node.&lt;br /&gt;
* &#039;&#039;&#039;Pin&#039;&#039;&#039;: Which pin will generate the ESC control signal.&lt;br /&gt;
* &#039;&#039;&#039;Minimum Microseconds [&#039;&#039;Advanced&#039;&#039;]&#039;&#039;&#039;: The minimum value the PWM control signal generated has (i.e. what it has when a 0/low signal is sent to the IO Unit via the nodegraph). &#039;&#039;&#039;Only change this if you know what you are doing!&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Maximum Microseconds [&#039;&#039;Advanced&#039;&#039;]&#039;&#039;&#039;: The maximum value the PWM control signal generated has (i.e. what it has when a 1/high signal is sent to the IO Unit via the nodegraph). &#039;&#039;&#039;Only change this if you know what you are doing!&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Arm Sequence&#039;&#039;&#039;: The sequence of signals that must be sent to the ESC to arm it. Refer to your ESC&#039;s manual to understand it&#039;s arming sequence and select the appropriate option here. If none match, [https://robopad.co.uk/contact.html drop us a line and tell us].&lt;br /&gt;
&#039;&#039;Note:&#039;&#039; Many ESCs will emit a &amp;quot;standby&amp;quot; noise if you have them armed but not in use for a prolonged time. This is usually expressed as the motor spinning small amounts to beep every few seconds.&lt;br /&gt;
&lt;br /&gt;
==== Servo Motor ====&lt;br /&gt;
[[File:Servo 2023-02-22.png|right|frameless|410x410px]]&lt;br /&gt;
A [[wikipedia:Servomotor|servo motor]] is a motor/control board combination integrated circuit that takes a control signal and actuates to a position within its range of movement that aligns with the received signal.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Servo Motor&amp;quot; IO Unit allows the RoboPad to send PWM drive signals that a servo motor can interpret. While the control signal provided by the RoboPad is at 3.3v and as such should work fine under most common servos, they will require their own power supply - some servos accept a range of input voltages and will be suitable to power directly from your robot&#039;s power source (such as a battery), but others will require power circuitry to ensure that you are providing them a safe and expected voltage. In a similar vein, make sure that you can provide the appropriate voltage and currant to your servo motor. The &#039;&#039;5v&#039;&#039; output pin of the RoboPad is only rated up to 500mA (and it already powers the built-in Dual H-Bridge), and many servos will require either a higher voltage or draw a higher current, which could damage the board. &#039;&#039;&#039;Always refer to your motor&#039;s manual and/or technical information and verify that it will work with the rest of your electrical circuit.&#039;&#039;&#039; This IO Unit creates an output port (labeled &amp;quot;&amp;lt;name&amp;gt; armed&amp;quot;) on the Chip Node that signals high (1) when a control signal has been passed to it that would place it into it&#039;s safe state.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Name&#039;&#039;&#039;: The name of this servo motor, basically only changes the name of the motor input port on the Chip Node.&lt;br /&gt;
* &#039;&#039;&#039;Pin&#039;&#039;&#039;: Which pin will generate the PWM control signal.&lt;br /&gt;
* &#039;&#039;&#039;Minimum Microseconds&#039;&#039;&#039;: The minimum value the PWM control signal generated has (i.e. what it has when a 0/low signal is sent to the IO Unit via the nodegraph). &#039;&#039;&#039;Only change this if you know what you are doing!&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Maximum Microseconds&#039;&#039;&#039;: The maximum value the PWM control signal generated has (i.e. what it has when a 1/high signal is sent to the IO Unit via the nodegraph). &#039;&#039;&#039;Only change this if you know what you are doing!&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Disconnect Behaviour&#039;&#039;&#039;: What this IO Unit should do in the [[emergency stop state]]. By default this is &amp;quot;Stay in place&amp;quot; meaning that the control signal will remain at what it last sent - this makes sense for most servo-based actuators as in an emergency stop state, you would not want the servo moving. However, in some cases you may want the servo to move to a pre-defined position. In that case this can be set to &amp;quot;Return to disconnect %&amp;quot; which will set the servo control signal to &#039;&#039;Disconnect Percent&#039;&#039; (defined below) in the emergency stop state.&lt;br /&gt;
* &#039;&#039;&#039;Disconnect Percent&#039;&#039;&#039;: The percent, relative from the &#039;&#039;minimum microseconds&#039;&#039; value (0%) to the &#039;&#039;maximum microseconds&#039;&#039; value (100%) to return to when entering the [[emergency stop state]] if &#039;&#039;Disconnect Behaviour&#039;&#039; is set to &amp;quot;Return to disconnect %&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Digital Output ====&lt;br /&gt;
[[File:Digital Output 2023-02-22.png|right|frameless|410x410px]]&lt;br /&gt;
The simplest IO Unit actuator, the &amp;quot;Digital Out&amp;quot; IO Unit sets a physical pin as a binary digital output, similar to those you might find on an [https://reference.arduino.cc/reference/en/language/functions/digital-io/digitalwrite/ arduino]. As a control signal comes into the IO Unit via the nodegraph, if the value is over 0.5 then a logical high (at 3.3 volts) is sent out of the selected pin, if the value is below 0.5 then a logical low (at 0 volts) is sent out of the selected pin. When you are driving external devices (such as LEDs, motors, etc), remember that the pins can only drive a small current (chip specifications recommend ~12mA source, ~20mA sink) so you may want to use a [[wikipedia:Transistor|transistor]] to drive heavier loads. This IO Unit creates an output port (labeled &amp;quot;&amp;lt;name&amp;gt; armed&amp;quot;) on the Chip Node that signals high (1) when a control signal has been passed to it that would place it into it&#039;s safe state.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Name&#039;&#039;&#039;: The name of this digital output, basically only changes the name of the input port on the Chip Node.&lt;br /&gt;
* &#039;&#039;&#039;Pin&#039;&#039;&#039;: Which pin will generate the digital signal.&lt;br /&gt;
* &#039;&#039;&#039;Safety Value&#039;&#039;&#039;: What value to output when in the [[emergency stop state]] if the &#039;&#039;Stop Behaviour&#039;&#039; is configured as &amp;quot;Return to safe&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;Stop Behaviour&#039;&#039;&#039;: What this IO Unit should do when the RoboPad goes into the [[emergency stop state]]. By default &amp;quot;Return to safe&amp;quot;, meaning that it will transmit the value set in &#039;&#039;Safety Value&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== PWM Output ====&lt;br /&gt;
[[File:PWM Output IO Unit.png|right|frameless|410x410px]]&lt;br /&gt;
The &amp;quot;PWM Output&amp;quot; IO Unit sets a physical pin as a PWM pseudo-analog output, similar to those you can configure on an [https://docs.arduino.cc/learn/microcontrollers/analog-output arduino]. As the signal (between 0 and 1) comes into the IO Unit via the nodegraph, the value is then ouput as a PWM signal from the RoboPad &amp;quot;between&amp;quot; 0 and 3.3 volts. When you are driving external devices (such as LEDs, motors, etc), remember that the pins can only drive a small current (chip specifications recommend ~12mA source, ~20mA sink) so you may want to use a [[wikipedia:Transistor|transistor]] to drive heavier loads. This IO Unit creates an output port (labeled &amp;quot;&amp;lt;name&amp;gt; armed&amp;quot;) on the Chip Node that signals high (1) when a control signal has been passed to it that would place it into it&#039;s safe state.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Name&#039;&#039;&#039;: The name of this PWM output, basically only changes the name of the input port on the Chip Node.&lt;br /&gt;
* &#039;&#039;&#039;Pin&#039;&#039;&#039;: Which pin will generate the PWM control signal.&lt;br /&gt;
* &#039;&#039;&#039;Safety Value&#039;&#039;&#039;: The percent, relative from the &#039;&#039;minimum microseconds&#039;&#039; value (0%) to the &#039;&#039;maximum microseconds&#039;&#039; value (100%) to return to when entering the [[emergency stop state]] if &#039;&#039;Stop Behaviour&#039;&#039; is set to &amp;quot;Return to safe&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;Stop Behaviour&#039;&#039;&#039;: What value to output when in the [[emergency stop state]] if the &#039;&#039;Stop Behaviour&#039;&#039; is configured as &amp;quot;Return to safe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Physically Attaching Hardware ==&lt;br /&gt;
Hardware such as motors typically connects to one of the M1 or M2 output pairs or the E1 and E2 output pins (or others if in advanced mode, as laid out in the &amp;quot;Pins&amp;quot; section [[IO Config Editor#Pins|above]]). While M1 and M2 can drive motors directly via a passthrough to the RoboPad&#039;s supply voltage, motors that require their own voltage supply such as servos or brushless motors will require a connection directly to their own power supply. Typically this is the same power source as that used to power the RoboPad, however it could also be a battery elimination circuit (BEC) or any other voltage-appropriate power source. The images below show some example wiring diagrams (use the left and right buttons to change between images):&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Basic 2-Motor wiring diagram.png|The most basic RoboPad circuit configuration, consisting of two drive motors connected to the M1 and M2 pin pairs.&lt;br /&gt;
File:Servo Wiring Diagram.png|A servo motor with it&#039;s control signal connected to the E1 pin, while it&#039;s power supply is connected to the same battery power supply powering the RoboPad.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=Slider_Node&amp;diff=324</id>
		<title>Slider Node</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Slider_Node&amp;diff=324"/>
		<updated>2024-09-14T15:02:00Z</updated>

		<summary type="html">&lt;p&gt;Blayze: /* Settings */ Adds upper and lower value settings.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Return to nodes}}{{Node Data&lt;br /&gt;
|title=Slider Node&lt;br /&gt;
|gallery=&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Slider-node.png&lt;br /&gt;
File:Slider-settings.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
|output-list=&amp;lt;li&amp;gt;signal&amp;lt;/li&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
The Slider Node is a UI Node that places a slider on the [[The Controller|controller]]. A slider is a simple element that can can be dragged in one direction - either up and down or left and right.&lt;br /&gt;
&lt;br /&gt;
Slider Nodes were introduced in [[Firmware Releases|firmware version]] 2.1 along with all basic nodes.&lt;br /&gt;
&lt;br /&gt;
The [[Example: Simple Tank-Drive Robot|Example Tank-Drive Robot]] uses a pair of sliders as it&#039;s central input method - check that out for an example nodegraph!&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
A Slider Node has a single output port - &#039;&#039;signal&#039;&#039;. This output port will emit the position of the slider, from 0 to 1 (clipped), every time the slider is moved when in the [[The Controller|controller]].&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
The Slider Node&#039;s settings can be configured to alter its visual presentation, mode of operation and output value mapping.&lt;br /&gt;
&lt;br /&gt;
{{UI_Node_Settings|node=Slider}}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Stick Colour&#039;&#039;&#039;: Configures the colour of the stick of this slider as it&#039;s seen in the [[The Controller|controller]].&lt;br /&gt;
* &#039;&#039;&#039;Render Orientation&#039;&#039;&#039;: Configures the direction the slider will render - &#039;&#039;vertical&#039;&#039; will result in a stick that can move up and down within its region, while &#039;&#039;horizontal&#039;&#039; will draw a stick that can move left and right.&lt;br /&gt;
* &#039;&#039;&#039;Release Behaviour&#039;&#039;&#039;: Configures what should happen to the slider when a held click or touch is released - &#039;&#039;reset&#039;&#039; will result in the slider returning to its &#039;&#039;Start Position&#039;&#039; when released - much like a spring-loaded self-centering joystick on a traditional physical controller, while &#039;&#039;hold&#039;&#039; will leave the Slider in its current position, similar to non-self-centering joysticks. Sliders set to &#039;&#039;hold&#039;&#039; will render with three little bars in the center of the slider perpendicular to the direction of movement allowed (you can think of them as gear teeth, meshing into some unseen rack to stop the slider from moving back on its own).&lt;br /&gt;
* &#039;&#039;&#039;Start Position&#039;&#039;&#039;: This configures both the position the slider starts in and the position that it returns to if its &#039;&#039;Release Behaviour&#039;&#039; is set to &#039;&#039;reset&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Invert Output&#039;&#039;&#039;: This option inverts the output. By default a fully downward position makes the output &#039;&#039;Signal&#039;&#039; port emit &#039;&#039;&#039;0&#039;&#039;&#039;, and a fully upwards emits &#039;&#039;&#039;1&#039;&#039;&#039;, however enabling this inverts that, with a fully downward slider position emitting &#039;&#039;&#039;1&#039;&#039;&#039; and a fully upward position emitting &#039;&#039;&#039;0&#039;&#039;&#039;. Note that similar achievement could be achieved by using an [[Inverter Node]] on the &#039;&#039;signal&#039;&#039; output port.&lt;br /&gt;
* &#039;&#039;&#039;Upper Value&#039;&#039;&#039;: &#039;&#039;[Added in version 2.4-b5]&#039;&#039; The value this slider will output at it&#039;s maximum position, defaults to &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Lower Value&#039;&#039;&#039;: &#039;&#039;[Added in version 2.4-b5]&#039;&#039; The value this slider will output at it&#039;s minimum position, defaults to &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Default Controller 2023-02-25.png|Two sliders are present in the default nodegraph configuration. Both of these sliders are in &#039;&#039;reset&#039;&#039; mode and their sticks will ping back to the center once released.&lt;br /&gt;
File:Slider-vertical-reset-and-hold-UI.png|Two sliders in the &#039;&#039;vertical&#039;&#039; orientation, the left set to &#039;&#039;reset&#039;&#039; mode and the right set to &#039;&#039;hold&#039;&#039; mode.&lt;br /&gt;
File:Slider-horizontal-reset-and-hold-UI.png|Two sliders in the &#039;&#039;horizontal&#039;&#039; orientation. The upper is set to &#039;&#039;reset&#039;&#039; mode, with the lower set to &#039;&#039;hold&#039;&#039;.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=The_Management_Page&amp;diff=323</id>
		<title>The Management Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=The_Management_Page&amp;diff=323"/>
		<updated>2024-09-12T01:06:56Z</updated>

		<summary type="html">&lt;p&gt;Blayze: Updates to robopad.local&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Management-page-2023-02-26.png|thumb|A screenshot of the management page displaying near-default firmware configuration as of 2023-02-26 ([[beta]] version 2.4-b2).]]&lt;br /&gt;
The management page is the page where you can configure almost all aspects of the RoboPad that aren&#039;t editable in the [[Nodegraph Editor]] and [[IO Config Editor|IO Configuration Editor]].&lt;br /&gt;
&lt;br /&gt;
The page is split into 4 areas that handle storage information, general configuration, nodegraph management and input/output management.&lt;br /&gt;
&lt;br /&gt;
=== Storage Information ===&lt;br /&gt;
At the very top of the page information and options for the entire system are displayed. Here you can see a visual indicator of the amount of storage used, as a red bar that fills a light-coloured region. In the screenshot shown to the right, 50% of the storage is used.&lt;br /&gt;
&lt;br /&gt;
Below this are two buttons used to control the firmware and storage stored on the device. The [[Firmware Releases|Firmware Updater]] can be accessed by clicking on it&#039;s button, allowing you to update the firmware to the [[Firmware Releases|latest version]] (or a [[Beta|beta version]]), and all user-configured data on the device can be removed (and automatically reset to it&#039;s default values) via the &#039;&#039;&#039;Format Device&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
=== General Configuration ===&lt;br /&gt;
The settings under the &#039;&#039;general configuration&#039;&#039; heading reflect things that can change about the RoboPad in general - these things tend to skew towards wifi configuration settings. Since these settings are core to the RoboPad, when they are changed a reboot is required. Hence, to save any of these settings you must click the &amp;quot;Save and Reboot&amp;quot; button, which will update the settings and reboot the device. Leaving this page without clicking this button will &#039;&#039;&#039;not&#039;&#039;&#039; save the settings.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Robot Name&#039;&#039;&#039;: The name of the RoboPad, also used as the RoboPad&#039;s local wifi network [[wikipedia:Service_set_(802.11_network)#SSID|SSID]]. Has a maximum length of 32 characters.&lt;br /&gt;
* &#039;&#039;&#039;Robot Password&#039;&#039;&#039;: The password used when accessing the RoboPad&#039;s local wifi network. Has a maximum length of 32 characters.&lt;br /&gt;
* &#039;&#039;&#039;Network Channel&#039;&#039;&#039;: Allows you to select [[wikipedia:List_of_WLAN_channels#2.4_GHz_(802.11b/g/n/ax)|which of the 14 designated 2.4GHz range channels]] to run the RoboPad&#039;s wifi network on. In practice, performing a scan of channels in use by surrounding wifi networks and changing this to a less-populated channel might improve signal performance.&lt;br /&gt;
* &#039;&#039;&#039;Enable DNS&#039;&#039;&#039;: In order to let the address &amp;quot;robopad.local&amp;quot; (&amp;quot;start.robopad.co.uk&amp;quot; in versions up to 2.3) direct to &amp;quot;192.168.4.1&amp;quot; (the [[wikipedia:IP_address|IP address]] of the RoboPad) when you are connected to the RoboPad&#039;s wifi network, a [[wikipedia:Domain_Name_System|domain name server (DNS)]] must run on the device. While this is a relatively small service, it still takes up processing power and computation time to run. If you are comfortable with or prefer navigating to &amp;quot;192.168.4.1&amp;quot; over &amp;quot;robopad.local&amp;quot;, you may disable this feature for a minor performance boost.&lt;br /&gt;
* &#039;&#039;&#039;Heartbeat Timeout&#039;&#039;&#039;: This is a critical safety feature of the RoboPad. In normal operation, the [[The Controller|controller]] sends &amp;quot;heartbeat&amp;quot; signals to the RoboPad, letting it know that it&#039;s still connected. If these signals are not detected by the RoboPad for a certain time period, then it will assume that it has lost connection to the controller or phone and transition to the [[emergency stop state]]. This setting controls how long it takes, in seconds, before the RoboPad considers the controller disconnected. To ensure safe operation, &#039;&#039;&#039;you should set this value to as low as it can go&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Transmission Interval&#039;&#039;&#039;: This indicates, in milliseconds, how often the controller transmits data back to the RoboPad. In practice, the controller samples things like [[Slider Node|Sliders]] or other [[Nodegraph Editor#UI Element Nodes|UI Elements]] at an incredibly high sampling rate - much higher than it makes sense to transmit to the RoboPad (higher transmission rates can clog the network, particularly if there are lots of RoboPads operating in one place), so we artificially limit transmissions to only occur in batches, the time between which is controlled by this setting. This value increments in steps of 16ms, and goes from 0 (instantaneous transmission) to 496ms (batching changes from the last half-second). Note that if an incoming signal over-writes a previous one in the same batch, the latest value is transmitted, not each value in turn - i.e. it is lossy.&lt;br /&gt;
* &#039;&#039;&#039;Reset General Config&#039;&#039;&#039;: The &#039;&#039;Reset General Data&#039;&#039; button allows you to reset the general configuration options to their default values.&lt;br /&gt;
&lt;br /&gt;
=== Node Graph Management ===&lt;br /&gt;
These settings give direct control over the [[Nodegraph Editor|nodegraph]] settings file.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;View Nodegraph&#039;&#039;&#039;: The &#039;&#039;Download Nodegraph&#039;&#039; button takes you to a page showing the direct [[wikipedia:JSON|.json]] file representing the nodegraph. Some browsers will show this as an explorable object, some will simply display it as text. By saving the page you are able to download a copy of the nodegraph itself. Note that like all setting configuration downloads, it will download named &amp;quot;info&amp;quot; under most web browsers - make sure you re-name the downloaded file to something memorable.&lt;br /&gt;
* &#039;&#039;&#039;Upload Nodegraph&#039;&#039;&#039;: This lets you upload a nodegraph file downloaded previously using the button under &#039;&#039;View Nodegraph&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Reset Nodegraph&#039;&#039;&#039;: This resets the nodegraph to it&#039;s default configuration.&lt;br /&gt;
&lt;br /&gt;
=== IO Management &#039;&#039;[beta version 2.4 and newer]&#039;&#039; ===&lt;br /&gt;
These settings give direct control over the [[IO Config Editor|input/output configuration]] file, and provide a link to the [[IO Config Editor|IO Configuration Editor]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Edit IO Config&#039;&#039;&#039;: The &#039;&#039;Open IO Config Editor&#039;&#039; button allows you to access the [[IO Config Editor|input/output (IO) Configuration Editor]].&lt;br /&gt;
* &#039;&#039;&#039;View IO Config&#039;&#039;&#039;: Similar to the &#039;&#039;View Nodegraph&#039;&#039; section, this will take you to a page that contains the raw IO configuration file. Most web browsers will immediately start downloading this file, usually titled as &amp;quot;info.bin&amp;quot;. Make sure that you rename the downloaded file to something memorable.&lt;br /&gt;
* &#039;&#039;&#039;Upload IO Config&#039;&#039;&#039;: Similar to the &#039;&#039;Upload Nodegraph&#039;&#039; section, this lets you upload an IO configuration previously downloaded using the button under &#039;&#039;View IO Config&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Reset IO Config&#039;&#039;&#039;: This resets the IO configuration file to it&#039;s default configuration.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=Nodegraph_Editor&amp;diff=322</id>
		<title>Nodegraph Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Nodegraph_Editor&amp;diff=322"/>
		<updated>2024-08-24T22:14:44Z</updated>

		<summary type="html">&lt;p&gt;Blayze: /* Example Nodegraphs */ Links to examples.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Node Editor Screenshot.png|thumb|675x675px|The Nodegraph Editor page, displaying the default nodegraph (as of 2023-02-25, [[beta]] build).]]&lt;br /&gt;
At the core of the configurability of RoboPad is the Nodegraph Editor. It allows you to specify a control flow from the UI elements that make up your on-screen controller when in [[The Controller|controller mode]] all the way to the RoboPad itself. While the nodegraph itself is stored on the RoboPad, every bit of processing that is performed on the node graph is performed on the device you are using to control the robot (usually a mobile phone), meaning that it has minimal impact on the robot&#039;s performance. Every time a node is updated - either by it&#039;s UI element moving (such as a joystick being moved or a button being pressed), it transmits that change out of it&#039;s output ports (golden rounded-squares on the left side of the node), and into the input ports (blue circles on the right side of the node) of any connected nodes. In this way, data can be transformed using different nodes before transmission to the robot itself. This lets you do things like configure different controllers on the screen, adding buttons to perform additional functions or process control signals in different ways.&lt;br /&gt;
&lt;br /&gt;
If you are looking to start exploring the nodegraph editor, you may want to start with the list of &#039;&#039;&#039;Node Catalogue&#039;&#039;&#039; or list of &#039;&#039;&#039;Example Nodegraphs&#039;&#039;&#039; below, once you have familiarised yourself with general usage of the nodegraph editor and the concepts of inter-node communication.&lt;br /&gt;
&lt;br /&gt;
== General Usage ==&lt;br /&gt;
The Nodegraph Editor stage is fairly simple - the top-bar is where you&#039;ll find every button to handle things that effect the whole nodegraph. Here you can:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Save the Nodegraph&#039;&#039;&#039;, which will save the current nodegraph to the RoboPad, allowing it to be loaded when you [[The Controller|open the controller]].&lt;br /&gt;
* &#039;&#039;&#039;Add a Node&#039;&#039;&#039;, which will spawn a new node of the type specified by the dropdown on the left to the top-left of the nodegraph editor stage.&lt;br /&gt;
* &#039;&#039;&#039;Automatically adjust the UI&#039;&#039;&#039;, the &amp;quot;Auto UI&amp;quot; button will automatically arrange the UI elements on the controller following a simple pattern. This is useful if you wan to quickly iterate on controller UI designs. The new UI transform settings will be visible in each UI node&#039;s settings menu, meaning you can change them (or the nodegraph) to fine-tune the UI placement.&lt;br /&gt;
&lt;br /&gt;
In order to change settings about individual nodes on the stage, you can use the three buttons at the bottom of each node. The &#039;&#039;&#039;clone&#039;&#039;&#039; and &#039;&#039;&#039;delete&#039;&#039;&#039; buttons allow you to copy (along with all configured settings) and delete the node, while the &#039;&#039;&#039;edit&#039;&#039;&#039; button opens each node&#039;s specific settings menu that allows you to configure that node&#039;s behaviour. On UI nodes, this will generally involve things like placement and physical behaviour of the UI element that the node describes, while on non-UI nodes these settings will control node behaviour. The only non-removable node is the [[Chip Node]], which is a special node that represents the RoboPad itself. The input and output ports on the Chip Node are defined by the physical configuration of the RoboPad in the [[IO Config Editor]].&lt;br /&gt;
&lt;br /&gt;
Nodes can communicate with each other via &#039;&#039;&#039;signals&#039;&#039;&#039; over &#039;&#039;&#039;connections&#039;&#039;&#039;, which can be made by first clicking/tapping on either a &#039;&#039;&#039;port&#039;&#039;&#039; (the blue or gold shapes extending out of the side of each node) and then tapping on a port of the other colour on another node, linking them and allowing data to flow from one to the other.&lt;br /&gt;
&lt;br /&gt;
== Inter-Node Communication ==&lt;br /&gt;
Individual nodes can control a variety of processes and communicate with each other via the gold and blue &#039;&#039;&#039;ports&#039;&#039;&#039; on either side of them - &#039;&#039;&#039;rounded-square edges gold&#039;&#039;&#039; &#039;&#039;&#039;ports on the left&#039;&#039;&#039; of the node always &#039;&#039;&#039;output&#039;&#039;&#039; signals, &#039;&#039;emitting&#039;&#039; data away from the node, while &#039;&#039;&#039;circular light-blue ports on the right&#039;&#039;&#039; of the node &#039;&#039;consume&#039;&#039; signals. In the example below, signals flow from the right-hand side into the Chip Node, which then actuators the robot&#039;s &#039;&#039;M1&#039;&#039; output. Every time the &#039;&#039;Slider&#039;&#039; is moved on the controller, it&#039;s signal is sent into the &#039;&#039;divide&#039;&#039; Math node (which has also previously been sent the signal &amp;quot;3&amp;quot; from the Number node), which computes the new value of &#039;&#039;a/b&#039;&#039; and the &#039;&#039;emits&#039;&#039; that value into &#039;&#039;M1&#039;&#039; on the Chip Node. In this case, that has the effect of decreasing the sensitivity and maximum value of the slider by three.&lt;br /&gt;
&lt;br /&gt;
Similarly, the Chip Node will &#039;&#039;emit&#039;&#039; a signal of &amp;quot;1&amp;quot; on the &#039;&#039;M1 armed&#039;&#039; output port whenever M1 becomes armed. In the example, we connect this signal to an &#039;&#039;Indicator&#039;&#039;, a UI element that will allow us to see that the motor is armed.&lt;br /&gt;
[[File:Control flow example.png|center|frameless|710x710px]]&lt;br /&gt;
You&#039;ll notice that signals can be &#039;&#039;&#039;any numeric value&#039;&#039;&#039; - while most built-in UI elements and [[IO Config Editor|IO Units]] work within the range of &#039;&#039;&#039;zero to one&#039;&#039;&#039;, any value can be passed between the nodes. This can be very useful when you are trying to perform more complex behaviours within a nodegraph, however you should always know what values the input ports on the Chip Node (as defined by the [[IO Config Editor|IO Units currently configured]]) accept. Strange and difficult to debug behaviour may be the result of sending values to the Chip Node that it&#039;s not expecting. If in doubt, try adding an Indicator Node to the stage first before hooking anything up to the Chip Node and check that the values it&#039;s displaying are as expected as you use the UI elements on the screen. Once you&#039;ve verified that, then you can start hooking up nodes to the Chip Node itself.&lt;br /&gt;
&lt;br /&gt;
== Node Catalogue ==&lt;br /&gt;
Here is a list of all nodes available to you while in the nodegraph editor, clicking on each will bring you to a page outlining it&#039;s function, behaviour and available settings. The list has been split into the groups found on the &amp;quot;Add Node&amp;quot; UI selector in the editor, with the addition of a link to the Chip Node.&lt;br /&gt;
&lt;br /&gt;
=== Special Nodes ===&lt;br /&gt;
The chip node is in it&#039;s own category as it is solely configured through the [[IO Config Editor|IO Configuration Editor]]. It has a golden title region.&lt;br /&gt;
* [[Chip Node]]&lt;br /&gt;
&lt;br /&gt;
=== UI Element Nodes ===&lt;br /&gt;
The User Interface (UI) nodes almost all draw things to the [[The Controller|controller]], allowing you to actually interactively change values within the nodegraph. All UI nodes have a dark blue title region to separate them from other nodes. &lt;br /&gt;
&lt;br /&gt;
* [[Slider Node]] - Places a slider element (acting like a single-direction joystick on a traditional hand-held controller) on the controller either horizontally or vertically, allowing you to input a linear signal between 0 and 1.&lt;br /&gt;
* [[Joystick Node]] - Places what is essentially a two-dimensional slider (acting like a bidirectional joystick on a traditional hand-held controller) on the controller that allows you to input a linear XY signal between 0 and 1 indicating the position of the stick within it&#039;s zone on the controller.&lt;br /&gt;
* [[Button Node]] - Places a button on the controller, allowing you to send a signal into the nodegraph when it is pressed.&lt;br /&gt;
* [[Indicator Node]] - Places a region on the controller that changes as a signal is sent to it; this is like an LED or indicator light on a traditional hand-held controller. You can also label and configure these indicators to show the value passed to them - very useful for debugging!&lt;br /&gt;
* [[Gamepad Node]] - Does not place a UI element on the controller, but instead when the controller is running, searches the device for a connected [[wikipedia:Gamepad|gamepad]], allowing you to use a physical input device to send signals to the nodegraph.&lt;br /&gt;
&lt;br /&gt;
=== Signal Processing ===&lt;br /&gt;
Most nodes within the nodegraph deal with signals between 0 and 1, and signal processing nodes are designed to work with this in mind, providing basic manipulation steps that you might want to perform on nodegraph signals. Also found in this group are nodes that control signal flow through the nodegraph, allowing for things like signal delay or signal switching.&lt;br /&gt;
&lt;br /&gt;
* [[Joystick Mixer Node]] - Specifically designed to transform a signal pair (between 0 and 1) that encodes a joystick position (as is generated by the &#039;&#039;[[Joystick Node]]&#039;&#039;) into a dual-wheel drive signal, suitable for passing to [[IO Config Editor#H-Bridge Motor|Hbridge Motor]] IO Units.&lt;br /&gt;
* [[Inverter Node]] - Inverts a signal about 0.5; 0 becomes 1, 0.2 becomes 0.8 ect.&lt;br /&gt;
* [[Scaler Node]] - Scales a signal around 0.5 (by default).&lt;br /&gt;
* [[Switch Node]] - Switches which input it uses as an output dependant on another value, think of it like a [[wikipedia:Railroad_switch|train track switch]], allowing a node to selectively listen to signals emitted by one or another node.&lt;br /&gt;
* [[Delay Node]] - Delays a signal by a set number of milliseconds. Useful for timed behaviour.&lt;br /&gt;
&lt;br /&gt;
=== Computation ===&lt;br /&gt;
The nodes found here perform generic computational operations - anything that allows you to perform mathematical manipulations of signal data&lt;br /&gt;
&lt;br /&gt;
* [[Math Node]] - Performs basic mathematical operations on incoming signals.&lt;br /&gt;
* [[Number Node]] - Used to generate a static numeric signal.&lt;br /&gt;
&lt;br /&gt;
=== Custom Nodes ===&lt;br /&gt;
Two nodes are configured to allow for custom JavaScript, so that you can write fully customised nodes. Be aware, however, that the JavaScript you write for these is currently stored &#039;&#039;&#039;uncompressed&#039;&#039;&#039; on the RoboPad&#039;s internal memory store, which is quite limited. You can see how much of the internal memory is currently in use by checking in the [[The Management Page|Management Page]]. Note that [[Updating Firmware|updating the firmware]] can require a large chunk of internal memory to cache the update.&lt;br /&gt;
&lt;br /&gt;
* [[Custom Node]] - A general node that can be programmed to act on incoming signals, without drawing to the [[The Controller|controller]].&lt;br /&gt;
* [[Custom UI Node]] - The same as the &#039;&#039;Custom Node&#039;&#039;, but functions specified to draw to the [[The Controller|controller]].&lt;br /&gt;
&lt;br /&gt;
== Example Nodegraphs ==&lt;br /&gt;
The [[Example Robot Configurations|Example Robots page]] has some more in-depth worked examples of nodegraph usage.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=Example:_Simple_Joystick-Drive_Robot&amp;diff=321</id>
		<title>Example: Simple Joystick-Drive Robot</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Example:_Simple_Joystick-Drive_Robot&amp;diff=321"/>
		<updated>2024-08-21T16:27:49Z</updated>

		<summary type="html">&lt;p&gt;Blayze: /* Troubleshooting */ Adds troubleshooting guidelines&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;&amp;lt;u&amp;gt;NOTICE: This page consists of information (the IO Config editor) on a feature currently in [[Beta]]. Information is liable to change or be incomplete. However, a similar nodegraph is constructable for version 2.3 or lower builds of RoboPad.&amp;lt;/u&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
While a [[Example: Simple Tank-Drive Robot|tank-drive robot]] is the most simple type of robot that you can make with a RoboPad, many people want to control both drive motors of a simple two-motor robot with a single [[Joystick Node|Joystick]]. This page aims to give you a walk-through of building a robot that can be driven in this manner.&lt;br /&gt;
&lt;br /&gt;
The nodegraph from this example can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EctL76vbaS5HupqStJggtA8BuB2ThmnzbZDuQlYE2ZUg0g?e=57FshM here] (click the download button in the top left of the viewer to get a local copy that can be uploaded via the [[The Management Page#Node Graph Management|Nodegraph Management Page]]).&lt;br /&gt;
&lt;br /&gt;
The IO Configuration can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EdDMS4fiFFNBk0XiUJGwuLEB8vUZF1rG9RE07kyvFVDZIw?e=3PVTYd here].&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Tank drive robots have only two actuators: A left drive motor and a right drive motor, both attached to a wheel. After attaching your power supply to the &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; pins, it simply requires that two motors be soldered - one each to the M1 and M2 pin pairs on the RoboPad.&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Basic 2-Motor wiring diagram.png|Motors are attached to M1 and M2 of the RoboPad in a simple 2-wheel Tank-Drive Robot.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IO Configuration ==&lt;br /&gt;
In order to tell the RoboPad that there are two motors attached, you will need to configure the [[IO Config Editor|IO Units]] on the device. The RoboPad has special IO Units available for drive motors called &amp;quot;[[IO Config Editor#Built-in H-Bridge Motor|Built-in H-Bridge Motor]]&amp;quot; units. These use the internal [[wikipedia:H-bridge|H-bridges]] to drive the motors forwards and backwards:&lt;br /&gt;
[[File:Default IO Units.png|center|thumb|494x494px|With two &amp;quot;Built-in H-Bridge Motor&amp;quot; IO Units added, you can control up to two motors attached to the RoboPad on the &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; pins.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
They allow you tot set a &amp;quot;Forward Scale&amp;quot; and a &amp;quot;Reverse Scale&amp;quot; for each, which lets you change how fast the attached motors spin when told to go all the way forward or backward, which is useful for tuning a robot if it&#039;s not driving straight when you tell it to go forward or backward, or just to slow it down if forward or backwards is too fast. They should be there by default, and if not you can add them with the &amp;quot;Add&amp;quot; menu at the top of the IO Configuration page.&lt;br /&gt;
&lt;br /&gt;
== Nodegraph Configuration ==&lt;br /&gt;
By adding the H-Bridge Motor IO Units, the [[Chip Node]] in the [[Nodegraph Editor]] gains 2 new inputs and 2 new outputs:&lt;br /&gt;
[[File:Chip Node with Default IO.png|center|thumb|437x437px|The Chip Node gets a pair of &amp;quot;&amp;lt;motor name&amp;gt; armed&amp;quot; output and &amp;quot;&amp;lt;motor name&amp;gt;&amp;quot; inputs, allowing you to drive the motors and get their status.]]&lt;br /&gt;
The two input ports - here named &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; (because that&#039;s the name of each motor in the IO Configuration) - drive each motor. They expect values between 0 and 1, with 0 being &amp;quot;full reverse&amp;quot; and 1 being &amp;quot;full forward&amp;quot;. The two outputs - here named &amp;quot;M1 armed&amp;quot; and &amp;quot;M2 armed&amp;quot; - indicate whether the motors are [[IO Config Editor#Actuators|armed]]. The concept of actuator arming can feel a little complex, but it is important because without it the chance of accidentally driving a motor is much higher: any actuator is considered &amp;quot;armed&amp;quot; once the actuator has recieved a drive signal corresponding to it&#039;s &amp;quot;safe state&amp;quot; (see the [[Example: Simple Tank-Drive Robot|Tank Drive example]] for more information on this - in this example, we assume knowledge of arming mechanics, and include armed status indicators).&lt;br /&gt;
&lt;br /&gt;
In order to drive the motors M1 and M2, we will employ the use of a [[Joystick Node]] and a [[Joystick Mixer Node]]. By default the Joystick Node outputs two values: The position of the &amp;quot;stick&amp;quot; within the joystick in terms of it&#039;s X and Y position, between 0 and 1. We could hook this directly up to the M1 and M2 inputs if we wanted to:&lt;br /&gt;
[[File:Bad-joystick-config.PNG|center|thumb|A badly-connected joystick nodegraph that will cause incorrect motor drive.]]&lt;br /&gt;
However, this would result in moving the joystick left and right driving one wheel (if M1 is connected to it as in this example, the left wheel) only of the robot, and moving it vertically drives the other (here, the right):&lt;br /&gt;
[[File:Bad-joystick-config-diagram.PNG|center|thumb|A very difficult to drive robot.]]&lt;br /&gt;
In this case, driving the robot is very difficult. In the example above, moving the stick to the top right results in the robot moving forward, and the top left has it just spinning counter-clockwise in-place. We need some kind of mixing so that moving the stick up makes the robot move forwards, down backwards and left and right makes it turn left and right variably. Fortunately, that&#039;s what the [[Joystick Mixer Node]] is for:&lt;br /&gt;
[[File:Basic-joystick-drive-nodegraph.png|center|thumb|A properly mixed joystick node.]]&lt;br /&gt;
Now the robot should drive something more like this:&lt;br /&gt;
[[File:Good-joystick-diagram.png|center|thumb|When a joystick mixer node is used, the robot will drive forward when the joystick is moved upwards, and turn left and right as the joystick is moved left and right.]]&lt;br /&gt;
While this is still a relatively simple control scheme, it can still be a little confusing, especially if you decide to make any changes to the output of the Joystick Node before they go into the mixer node. In this case [[Indicator Node|Indicator Nodes]] can be very useful as they can be configured to display a value directly which can help you debug your nodegraph. In the final version of this example configuration, we use two to indicate whether the motors have been armed:&lt;br /&gt;
[[File:Joystick-drive-with-indicators.PNG|center|thumb|Here we have connected two indicators to tell us if and when the drive motors are armed.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The nodegraph for this example can be downloaded [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EctL76vbaS5HupqStJggtA8BuB2ThmnzbZDuQlYE2ZUg0g?e=57FshM here]. The IO Configuration can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EdDMS4fiFFNBk0XiUJGwuLEB8vUZF1rG9RE07kyvFVDZIw?e=jLDhIO here].&lt;br /&gt;
&lt;br /&gt;
Using a joystick node opens up a lot of real estate on your screen and (since it&#039;s a single-finger input), gives you the chance to add additional controlls on the screen. It&#039;s the perfect input mode to use alongside a [[Slider Node]] to drive a [[IO Config Editor#Servo Motor|Servo]] as a lifter for your robot.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
Even though you&#039;ve configured your nodegraph following this page, you might still have some issues with driving your robot - these can arise when the physical configuration of the robot doesn&#039;t match up with the software settings you&#039;ve configured - usually this can be that your left and right motors are flipped, or the power to one of the motors is inverted. You can of course fix these by re-soldering, but you can also usually just change the nodegraph as appropriate. Below are some common situations and their solutions.&lt;br /&gt;
&lt;br /&gt;
=== The Robot Drives Backwards When the Stick is Pushed Forwards ===&lt;br /&gt;
In this case, it&#039;s likely that the drive motors have been soldered in the opposite polarity to the nodegraph configuration - you could reverse the polarity of the motors, or you can invert the output of the [[Joystick Node|joystick UI node]]. In the node&#039;s settings, there is an option for &#039;&#039;&#039;invert Y axis&#039;&#039;&#039; which will mean that instead of the y-axis output port emitting 0 when the joystick is at the bottom and 1 when it is at the top, it will emit 1 when at the bottom and 0 when at the top, flipping the forward/backward behaviour.&lt;br /&gt;
&lt;br /&gt;
Note that you could also achieve this behaviour by putting an [[Inverter Node]] between the &#039;&#039;y&#039;&#039; output port of the Joystick and the &#039;&#039;yaxis&#039;&#039; input of the [[Joystick Mixer Node]].&lt;br /&gt;
&lt;br /&gt;
=== The Robot Turns The Wrong Way ===&lt;br /&gt;
If the robot is turning right when you want to turn left (and vice-versa), this is similar to the previous issue, and can be solved in a similar way - you must &#039;&#039;&#039;invert the X axis&#039;&#039;&#039; before the signal gets to the [[Joystick Mixer Node]]. You can also achieve this same result by disconnecting the Joystick Mixer&#039;s &#039;&#039;left/right drive&#039;&#039; output ports and the [[Chip Node]]&#039;s &#039;&#039;M1&#039;&#039; and &#039;&#039;M2&#039;&#039; ports and then connecting them in the other order, so that the drive signals cross and each of the Joystick Mixer Node&#039;s &#039;&#039;drive&#039;&#039; outputs is driving the opposite side it was before. The physical solution to this issue is usually switching which motor is connected to which &amp;quot;M&amp;quot; port - i.e. if M1 was left and M2 right, switch M2 to left and M1 to right.&lt;br /&gt;
&lt;br /&gt;
=== Instead of Driving Forward, the Robot Turns ===&lt;br /&gt;
Lift the robot up off of its wheels - when you push the stick up to drive forward, do the wheels turn in opposite directions? When you pull the stick back to attempt to drive backwards, do they spin again in opposite directions but the other way? In this situation only &#039;&#039;&#039;one&#039;&#039;&#039; motor is connected in it&#039;s inverted polarisation. You could fix this by flipping the polarisation of the motor that is moving in the way you don&#039;t want it to, or you could connect an [[Inverter Node]] between the [[Joystick Mixer Node]]&#039;s output &#039;&#039;left/right drive&#039;&#039; port and the Chip&#039;s &#039;&#039;M1&#039;&#039; or &#039;&#039;M2&#039;&#039; port (depending on which motor you want to invert).&lt;br /&gt;
&lt;br /&gt;
=== The Robot Turns or Moves Too Fast ===&lt;br /&gt;
Controlling a robot from a phone can be finickety at times, and if your robot&#039;s got fast motors, you can loose control when turning. A simple way of reducing turning speed is to add a [[Scaler Node]] between the &#039;&#039;x&#039;&#039; output of the [[Joystick Node|Joystick]] and the &#039;&#039;xaxis&#039;&#039; input of the [[Joystick Mixer Node|Joystick Mixer]]. At this point the &#039;&#039;&#039;scale size&#039;&#039;&#039; can be set to some value lower than 1 to &#039;&#039;scale&#039;&#039; down the input signal so instead of emitting between 0 and 1, it might emit between, say, 0.3 and 0.8.&lt;br /&gt;
&lt;br /&gt;
Scaler nodes can also be added to the Joystick&#039;s &#039;&#039;y&#039;&#039; output port to scale down speed. Or, if you prefer to keep the nodegraph simple, you can manually set the forward and backward scales in the [[IO Config Editor#Built-in H-Bridge Motor|H-Bridge IO Config settings]].&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=Example:_Simple_Joystick-Drive_Robot&amp;diff=320</id>
		<title>Example: Simple Joystick-Drive Robot</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Example:_Simple_Joystick-Drive_Robot&amp;diff=320"/>
		<updated>2024-08-21T16:12:24Z</updated>

		<summary type="html">&lt;p&gt;Blayze: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;&amp;lt;u&amp;gt;NOTICE: This page consists of information (the IO Config editor) on a feature currently in [[Beta]]. Information is liable to change or be incomplete. However, a similar nodegraph is constructable for version 2.3 or lower builds of RoboPad.&amp;lt;/u&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
While a [[Example: Simple Tank-Drive Robot|tank-drive robot]] is the most simple type of robot that you can make with a RoboPad, many people want to control both drive motors of a simple two-motor robot with a single [[Joystick Node|Joystick]]. This page aims to give you a walk-through of building a robot that can be driven in this manner.&lt;br /&gt;
&lt;br /&gt;
The nodegraph from this example can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EctL76vbaS5HupqStJggtA8BuB2ThmnzbZDuQlYE2ZUg0g?e=57FshM here] (click the download button in the top left of the viewer to get a local copy that can be uploaded via the [[The Management Page#Node Graph Management|Nodegraph Management Page]]).&lt;br /&gt;
&lt;br /&gt;
The IO Configuration can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EdDMS4fiFFNBk0XiUJGwuLEB8vUZF1rG9RE07kyvFVDZIw?e=3PVTYd here].&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Tank drive robots have only two actuators: A left drive motor and a right drive motor, both attached to a wheel. After attaching your power supply to the &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; pins, it simply requires that two motors be soldered - one each to the M1 and M2 pin pairs on the RoboPad.&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Basic 2-Motor wiring diagram.png|Motors are attached to M1 and M2 of the RoboPad in a simple 2-wheel Tank-Drive Robot.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IO Configuration ==&lt;br /&gt;
In order to tell the RoboPad that there are two motors attached, you will need to configure the [[IO Config Editor|IO Units]] on the device. The RoboPad has special IO Units available for drive motors called &amp;quot;[[IO Config Editor#Built-in H-Bridge Motor|Built-in H-Bridge Motor]]&amp;quot; units. These use the internal [[wikipedia:H-bridge|H-bridges]] to drive the motors forwards and backwards:&lt;br /&gt;
[[File:Default IO Units.png|center|thumb|494x494px|With two &amp;quot;Built-in H-Bridge Motor&amp;quot; IO Units added, you can control up to two motors attached to the RoboPad on the &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; pins.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
They allow you tot set a &amp;quot;Forward Scale&amp;quot; and a &amp;quot;Reverse Scale&amp;quot; for each, which lets you change how fast the attached motors spin when told to go all the way forward or backward, which is useful for tuning a robot if it&#039;s not driving straight when you tell it to go forward or backward, or just to slow it down if forward or backwards is too fast. They should be there by default, and if not you can add them with the &amp;quot;Add&amp;quot; menu at the top of the IO Configuration page.&lt;br /&gt;
&lt;br /&gt;
== Nodegraph Configuration ==&lt;br /&gt;
By adding the H-Bridge Motor IO Units, the [[Chip Node]] in the [[Nodegraph Editor]] gains 2 new inputs and 2 new outputs:&lt;br /&gt;
[[File:Chip Node with Default IO.png|center|thumb|437x437px|The Chip Node gets a pair of &amp;quot;&amp;lt;motor name&amp;gt; armed&amp;quot; output and &amp;quot;&amp;lt;motor name&amp;gt;&amp;quot; inputs, allowing you to drive the motors and get their status.]]&lt;br /&gt;
The two input ports - here named &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; (because that&#039;s the name of each motor in the IO Configuration) - drive each motor. They expect values between 0 and 1, with 0 being &amp;quot;full reverse&amp;quot; and 1 being &amp;quot;full forward&amp;quot;. The two outputs - here named &amp;quot;M1 armed&amp;quot; and &amp;quot;M2 armed&amp;quot; - indicate whether the motors are [[IO Config Editor#Actuators|armed]]. The concept of actuator arming can feel a little complex, but it is important because without it the chance of accidentally driving a motor is much higher: any actuator is considered &amp;quot;armed&amp;quot; once the actuator has recieved a drive signal corresponding to it&#039;s &amp;quot;safe state&amp;quot; (see the [[Example: Simple Tank-Drive Robot|Tank Drive example]] for more information on this - in this example, we assume knowledge of arming mechanics, and include armed status indicators).&lt;br /&gt;
&lt;br /&gt;
In order to drive the motors M1 and M2, we will employ the use of a [[Joystick Node]] and a [[Joystick Mixer Node]]. By default the Joystick Node outputs two values: The position of the &amp;quot;stick&amp;quot; within the joystick in terms of it&#039;s X and Y position, between 0 and 1. We could hook this directly up to the M1 and M2 inputs if we wanted to:&lt;br /&gt;
[[File:Bad-joystick-config.PNG|center|thumb|A badly-connected joystick nodegraph that will cause incorrect motor drive.]]&lt;br /&gt;
However, this would result in moving the joystick left and right driving one wheel (if M1 is connected to it as in this example, the left wheel) only of the robot, and moving it vertically drives the other (here, the right):&lt;br /&gt;
[[File:Bad-joystick-config-diagram.PNG|center|thumb|A very difficult to drive robot.]]&lt;br /&gt;
In this case, driving the robot is very difficult. In the example above, moving the stick to the top right results in the robot moving forward, and the top left has it just spinning counter-clockwise in-place. We need some kind of mixing so that moving the stick up makes the robot move forwards, down backwards and left and right makes it turn left and right variably. Fortunately, that&#039;s what the [[Joystick Mixer Node]] is for:&lt;br /&gt;
[[File:Basic-joystick-drive-nodegraph.png|center|thumb|A properly mixed joystick node.]]&lt;br /&gt;
Now the robot should drive something more like this:&lt;br /&gt;
[[File:Good-joystick-diagram.png|center|thumb|When a joystick mixer node is used, the robot will drive forward when the joystick is moved upwards, and turn left and right as the joystick is moved left and right.]]&lt;br /&gt;
While this is still a relatively simple control scheme, it can still be a little confusing, especially if you decide to make any changes to the output of the Joystick Node before they go into the mixer node. In this case [[Indicator Node|Indicator Nodes]] can be very useful as they can be configured to display a value directly which can help you debug your nodegraph. In the final version of this example configuration, we use two to indicate whether the motors have been armed:&lt;br /&gt;
[[File:Joystick-drive-with-indicators.PNG|center|thumb|Here we have connected two indicators to tell us if and when the drive motors are armed.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The nodegraph for this example can be downloaded [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EctL76vbaS5HupqStJggtA8BuB2ThmnzbZDuQlYE2ZUg0g?e=57FshM here]. The IO Configuration can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EdDMS4fiFFNBk0XiUJGwuLEB8vUZF1rG9RE07kyvFVDZIw?e=jLDhIO here].&lt;br /&gt;
&lt;br /&gt;
Using a joystick node opens up a lot of real estate on your screen and (since it&#039;s a single-finger input), gives you the chance to add additional controlls on the screen. It&#039;s the perfect input mode to use alongside a [[Slider Node]] to drive a [[IO Config Editor#Servo Motor|Servo]] as a lifter for your robot.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
Even though you&#039;ve configured your nodegraph following this page, you might still have some issues with driving your robot - these can arise when the physical configuration of the robot doesn&#039;t match up with the software settings you&#039;ve configured - usually this can be that your left and right motors are flipped, or the power to one of the motors is inverted. You can of course fix these by re-soldering, but you can also usually just change the nodegraph as appropriate. Below are some common situations and their solutions.&lt;br /&gt;
&lt;br /&gt;
=== The Robot Drives Backwards When the Stick is Pushed Forwards ===&lt;br /&gt;
In this case, it&#039;s likely that the drive motors have been soldered in the opposite polarity to the nodegraph configuration - you could reverse the polarity of the motors, or you can invert the output of the [[Joystick Node|joystick UI node]]. In the node&#039;s settings, there is an option for &#039;&#039;&#039;invert Y axis&#039;&#039;&#039; which will mean that instead of the y-axis output port emitting 0 when the joystick is at the bottom and 1 when it is at the top, it will emit 1 when at the bottom and 0 when at the top, flipping the forward/backward behaviour.&lt;br /&gt;
&lt;br /&gt;
Note that you could also achieve this behaviour by putting an [[Inverter Node]] between the &#039;&#039;y&#039;&#039; output port of the Joystick and the &#039;&#039;yaxis&#039;&#039; input of the [[Joystick Mixer Node]].&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=Joystick_Node&amp;diff=319</id>
		<title>Joystick Node</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Joystick_Node&amp;diff=319"/>
		<updated>2024-08-21T16:08:30Z</updated>

		<summary type="html">&lt;p&gt;Blayze: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Return to nodes}}{{Node Data&lt;br /&gt;
|title=Joystick Node&lt;br /&gt;
|gallery=&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Joystick-node.png&lt;br /&gt;
File:Joystick-settings.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
|output-list=&amp;lt;li&amp;gt;x&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;y&amp;lt;/li&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
The Joystick Node is a UI Node that places a simulated dual-axis joystick on the [[The Controller|controller]]. A joystick is a simple element that can can be dragged in two directions - up and down (the &#039;&#039;x axis&#039;&#039;) and left and right (the &#039;&#039;y axis&#039;&#039;). These values are reported out of Joystick node&#039;s &#039;&#039;x&#039;&#039; and &#039;&#039;y&#039;&#039; output ports as an &#039;&#039;x&#039;&#039; value, the position of the joystick from the left to the right, expressed as a number between 0 and 1, and the &#039;&#039;y&#039;&#039; value, the position of the joystick from the bottom to the top, again expressed as a number between 0 and 1.&lt;br /&gt;
&lt;br /&gt;
Joystick Nodes were introduced in [[Firmware Releases|firmware version]] 2.1 along with all basic nodes.&lt;br /&gt;
&lt;br /&gt;
The [[Example: Simple Joystick-Drive Robot|Joystick drive example robot]] uses a joystick as it&#039;s central input method - check that out for an example nodegraph!&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
Joystick Nodes are very similar to [[Slider Node|Slider Nodes]], but have an additional degree of freedom, meaning they can move in 2 axes. They are designed to mimic traditional dual-axis joystick found on a physical controller. Joystick Nodes have two output ports - &#039;&#039;x&#039;&#039; and &#039;&#039;y&#039;&#039;, reflective of the stick&#039;s position in the x axis and y axis of it&#039;s region of movement. Both outputs are emitted from 0 to 1 (clipped), every time the slider is moved when in the [[The Controller|controller]].&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
The Joystick Node&#039;s settings can be configured to alter it&#039;s visual presentation, mode of operation and output value mapping.&lt;br /&gt;
&lt;br /&gt;
{{UI_Node_Settings|node=Joystick}}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Stick Colour&#039;&#039;&#039;: Configures the colour of the stick of this joystick as it&#039;s seen in the [[The Controller|controller]].&lt;br /&gt;
* &#039;&#039;&#039;X-Axis Release Behaviour&#039;&#039;&#039;: Configures what should happen to the stick when a held click or touch is released, but only along the &#039;&#039;x-axis&#039;&#039; - &#039;&#039;reset&#039;&#039; will result in the stick returning to it&#039;s x-axis (horizontal) &#039;&#039;Start Position&#039;&#039; when released - much like a spring-loaded self-centering joystick on a traditional physical controller, while &#039;&#039;hold&#039;&#039; will leave the stick in it&#039;s current position along the x-axis, similar to non-self-centering joysticks. Joysticks set to &#039;&#039;hold&#039;&#039; in the x-axis will render with three little vertical bars in the center of the stick. &lt;br /&gt;
* &#039;&#039;&#039;Y-Axis Release Behaviour&#039;&#039;&#039;: This behaves identically to the &#039;&#039;X-Axis Release Behaviour&#039;&#039;, but along the y-axis (vertically).&lt;br /&gt;
* &#039;&#039;&#039;X-Axis Start Position&#039;&#039;&#039;: This configures both the position the slider starts in along the x-axis (horizontally) and the position that it returns to if it&#039;s &#039;&#039;X-Axis Release Behaviour&#039;&#039; is set to &#039;&#039;reset&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Y-Axis Start Position&#039;&#039;&#039;: This behaves identically to the &#039;&#039;X-Axis Start Position&#039;&#039;, but along the y-axis (vertically).&lt;br /&gt;
* &#039;&#039;&#039;Invert X Axis&#039;&#039;&#039;: This option inverts the output along the x-axis (horizontally). By default a fully leftwards stick position makes the output &#039;&#039;x&#039;&#039; port emit &#039;&#039;&#039;0&#039;&#039;&#039;, and a fully right stick emits &#039;&#039;&#039;1&#039;&#039;&#039;, however enabling this inverts that, with a stick position fully to the left emitting &#039;&#039;&#039;1&#039;&#039;&#039; and a fully right position emitting &#039;&#039;&#039;0&#039;&#039;&#039;. Note that similar achievement could be achieved by using an [[Inverter Node]] on the &#039;&#039;x&#039;&#039; output port.&lt;br /&gt;
* &#039;&#039;&#039;Invert Y Axis&#039;&#039;&#039;: This behaves identically to the &#039;&#039;Invert X Axis&#039;&#039; option, but inverts along the y-axis (vertically).&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Joystick-return-behaviour-examples.png|Three joystick node elements drawn to the controller, one with both x and y behaviours set to reset (bottom left), one with both set to hold (middle) and one with only x-axis set to hold (right), all in their starting position.&lt;br /&gt;
File:Joystick-return-behaviour-examples-2.png|Three joystick node elements drawn to the controller, one with both x and y behaviours set to reset (bottom left), one with both set to hold (middle) and one with only x-axis set to hold (right). After movement, only the top can be completely off-center in both axes.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=Example:_Simple_Joystick-Drive_Robot&amp;diff=318</id>
		<title>Example: Simple Joystick-Drive Robot</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Example:_Simple_Joystick-Drive_Robot&amp;diff=318"/>
		<updated>2024-08-21T15:05:55Z</updated>

		<summary type="html">&lt;p&gt;Blayze: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;&amp;lt;u&amp;gt;NOTICE: This page consists of information (the IO Config editor) on a feature currently in [[Beta]]. Information is liable to change or be incomplete. However, a similar nodegraph is constructable for version 2.3 or lower builds of RoboPad.&amp;lt;/u&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
While a [[Example: Simple Tank-Drive Robot|tank-drive robot]] is the most simple type of robot that you can make with a RoboPad, many people want to control both drive motors of a simple two-motor robot with a single [[Joystick Node|Joystick]]. This page aims to give you a walk-through of building a robot that can be driven in this manner.&lt;br /&gt;
&lt;br /&gt;
The nodegraph from this example can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EctL76vbaS5HupqStJggtA8BuB2ThmnzbZDuQlYE2ZUg0g?e=57FshM here] (click the download button in the top left of the viewer to get a local copy that can be uploaded via the [[The Management Page#Node Graph Management|Nodegraph Management Page]]).&lt;br /&gt;
&lt;br /&gt;
The IO Configuration can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EdDMS4fiFFNBk0XiUJGwuLEB8vUZF1rG9RE07kyvFVDZIw?e=3PVTYd here].&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Tank drive robots have only two actuators: A left drive motor and a right drive motor, both attached to a wheel. After attaching your power supply to the &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; pins, it simply requires that two motors be soldered - one each to the M1 and M2 pin pairs on the RoboPad.&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Basic 2-Motor wiring diagram.png|Motors are attached to M1 and M2 of the RoboPad in a simple 2-wheel Tank-Drive Robot.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IO Configuration ==&lt;br /&gt;
In order to tell the RoboPad that there are two motors attached, you will need to configure the [[IO Config Editor|IO Units]] on the device. The RoboPad has special IO Units available for drive motors called &amp;quot;[[IO Config Editor#Built-in H-Bridge Motor|Built-in H-Bridge Motor]]&amp;quot; units. These use the internal [[wikipedia:H-bridge|H-bridges]] to drive the motors forwards and backwards:&lt;br /&gt;
[[File:Default IO Units.png|center|thumb|494x494px|With two &amp;quot;Built-in H-Bridge Motor&amp;quot; IO Units added, you can control up to two motors attached to the RoboPad on the &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; pins.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
They allow you tot set a &amp;quot;Forward Scale&amp;quot; and a &amp;quot;Reverse Scale&amp;quot; for each, which lets you change how fast the attached motors spin when told to go all the way forward or backward, which is useful for tuning a robot if it&#039;s not driving straight when you tell it to go forward or backward, or just to slow it down if forward or backwards is too fast. They should be there by default, and if not you can add them with the &amp;quot;Add&amp;quot; menu at the top of the IO Configuration page.&lt;br /&gt;
&lt;br /&gt;
== Nodegraph Configuration ==&lt;br /&gt;
By adding the H-Bridge Motor IO Units, the [[Chip Node]] in the [[Nodegraph Editor]] gains 2 new inputs and 2 new outputs:&lt;br /&gt;
[[File:Chip Node with Default IO.png|center|thumb|437x437px|The Chip Node gets a pair of &amp;quot;&amp;lt;motor name&amp;gt; armed&amp;quot; output and &amp;quot;&amp;lt;motor name&amp;gt;&amp;quot; inputs, allowing you to drive the motors and get their status.]]&lt;br /&gt;
The two input ports - here named &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; (because that&#039;s the name of each motor in the IO Configuration) - drive each motor. They expect values between 0 and 1, with 0 being &amp;quot;full reverse&amp;quot; and 1 being &amp;quot;full forward&amp;quot;. The two outputs - here named &amp;quot;M1 armed&amp;quot; and &amp;quot;M2 armed&amp;quot; - indicate whether the motors are [[IO Config Editor#Actuators|armed]]. The concept of actuator arming can feel a little complex, but it is important because without it the chance of accidentally driving a motor is much higher: any actuator is considered &amp;quot;armed&amp;quot; once the actuator has recieved a drive signal corresponding to it&#039;s &amp;quot;safe state&amp;quot; (see the [[Example: Simple Tank-Drive Robot|Tank Drive example]] for more information on this - in this example, we assume knowledge of arming mechanics, and include armed status indicators).&lt;br /&gt;
&lt;br /&gt;
In order to drive the motors M1 and M2, we will employ the use of a [[Joystick Node]] and a [[Joystick Mixer Node]]. By default the Joystick Node outputs two values: The position of the &amp;quot;stick&amp;quot; within the joystick in terms of it&#039;s X and Y position, between 0 and 1. We could hook this directly up to the M1 and M2 inputs if we wanted to:&lt;br /&gt;
[[File:Bad-joystick-config.PNG|center|thumb|A badly-connected joystick nodegraph that will cause incorrect motor drive.]]&lt;br /&gt;
However, this would result in moving the joystick left and right driving one wheel (if M1 is connected to it as in this example, the left wheel) only of the robot, and moving it vertically drives the other (here, the right):&lt;br /&gt;
[[File:Bad-joystick-config-diagram.PNG|center|thumb|A very difficult to drive robot.]]&lt;br /&gt;
In this case, driving the robot is very difficult. In the example above, moving the stick to the top right results in the robot moving forward, and the top left has it just spinning counter-clockwise in-place. We need some kind of mixing so that moving the stick up makes the robot move forwards, down backwards and left and right makes it turn left and right variably. Fortunately, that&#039;s what the [[Joystick Mixer Node]] is for:&lt;br /&gt;
[[File:Basic-joystick-drive-nodegraph.png|center|thumb|A properly mixed joystick node.]]&lt;br /&gt;
Now the robot should drive something more like this:&lt;br /&gt;
[[File:Good-joystick-diagram.png|center|thumb|When a joystick mixer node is used, the robot will drive forward when the joystick is moved upwards, and turn left and right as the joystick is moved left and right.]]&lt;br /&gt;
While this is still a relatively simple control scheme, it can still be a little confusing, especially if you decide to make any changes to the output of the Joystick Node before they go into the mixer node. In this case [[Indicator Node|Indicator Nodes]] can be very useful as they can be configured to display a value directly which can help you debug your nodegraph. In the final version of this example configuration, we use two to indicate whether the motors have been armed:&lt;br /&gt;
[[File:Joystick-drive-with-indicators.PNG|center|thumb|Here we have connected two indicators to tell us if and when the drive motors are armed.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The nodegraph for this example can be downloaded [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EctL76vbaS5HupqStJggtA8BuB2ThmnzbZDuQlYE2ZUg0g?e=57FshM here]. The IO Configuration can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EdDMS4fiFFNBk0XiUJGwuLEB8vUZF1rG9RE07kyvFVDZIw?e=jLDhIO here].&lt;br /&gt;
&lt;br /&gt;
Using a joystick node opens up a lot of real estate on your screen and (since it&#039;s a single-finger input), gives you the chance to add additional controlls on the screen. It&#039;s the perfect input mode to use alongside a [[Slider Node]] to drive a [[IO Config Editor#Servo Motor|Servo]] as a lifter for your robot.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
Even though you&#039;ve configured your nodegraph following this page, you might still have some issues with driving your robot - these can arise when the physical configuration of the robot doesn&#039;t match up with the software settings you&#039;ve configured - usually this can be that your left and right motors are flipped, or the power to one of the motors is inverted. You can of course fix these by re-soldering, but you can also usually just change the nodegraph as appropriate. Below are some common situations and their solutions.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=Example:_Simple_Tank-Drive_Robot&amp;diff=317</id>
		<title>Example: Simple Tank-Drive Robot</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Example:_Simple_Tank-Drive_Robot&amp;diff=317"/>
		<updated>2024-08-21T14:36:44Z</updated>

		<summary type="html">&lt;p&gt;Blayze: Adds instructions on how to download the nodegraph.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;&amp;lt;u&amp;gt;NOTICE: This page consists of information (the IO Config editor) on a feature currently in [[Beta]]. Information is liable to change or be incomplete. However, a similar nodegraph is constructable for version 2.3 or lower builds of RoboPad.&amp;lt;/u&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A tank-drive robot is the most simple type of robot that you can make with a RoboPad. It is the default configuration that the roboPad is set up for and allows for driving two motors using two sliding sticks ([[Slider Node|Sliders]]) - one to control power to the left motor and one to control power to the right motor. This page aims to give you a walk-through of building a robot like.&lt;br /&gt;
&lt;br /&gt;
The nodegraph from this example can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EZw9oIJKxlpOpjSIfN2ZZmgBktOBPOnqY55PVyKPJLDxrQ?e=gjRYLT here] (click the download button in the top left of the viewer to get a local copy that can be uploaded via the [[The Management Page#Node%20Graph%20Management|Nodegraph Management Page]]).&lt;br /&gt;
&lt;br /&gt;
The IO Configuration can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EdDMS4fiFFNBk0XiUJGwuLEB8vUZF1rG9RE07kyvFVDZIw?e=3PVTYd here].&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Tank drive robots have only two actuators: A left drive motor and a right drive motor, both attached to a wheel. After attaching your power supply to the &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; pins, it simply requires that two motors be soldered - one each to the M1 and M2 pin pairs on the RoboPad.&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Basic 2-Motor wiring diagram.png|Motors are attached to M1 and M2 of the RoboPad in a simple 2-wheel Tank-Drive Robot.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IO Configuration ==&lt;br /&gt;
In order to tell the RoboPad that there are two motors attached, you will need to configure the [[IO Config Editor|IO Units]] on the device. The RoboPad has special IO Units available for drive motors called &amp;quot;[[IO Config Editor#Built-in H-Bridge Motor|Built-in H-Bridge Motor]]&amp;quot; units. These use the internal [[wikipedia:H-bridge|H-bridges]] to drive the motors forwards and backwards:&lt;br /&gt;
[[File:Default IO Units.png|center|thumb|494x494px|With two &amp;quot;Built-in H-Bridge Motor&amp;quot; IO Units added, you can control up to two motors attached to the RoboPad on the &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; pins.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
They allow you tot set a &amp;quot;Forward Scale&amp;quot; and a &amp;quot;Reverse Scale&amp;quot; for each, which lets you change how fast the attached motors spin when told to go all the way forward or backward, which is useful for tuning a robot if it&#039;s not driving straight when you tell it to go forward or backward, or just to slow it down if forward or backwards is too fast. They should be there by default, and if not you can add them with the &amp;quot;Add&amp;quot; menu at the top of the IO Configuration page.&lt;br /&gt;
&lt;br /&gt;
== Nodegraph Configuration ==&lt;br /&gt;
By adding the H-Bridge Motor IO Units, the [[Chip Node]] in the [[Nodegraph Editor]] gains 2 new inputs and 2 new outputs:&lt;br /&gt;
[[File:Chip Node with Default IO.png|center|thumb|437x437px|The Chip Node gets a pair of &amp;quot;&amp;lt;motor name&amp;gt; armed&amp;quot; output and &amp;quot;&amp;lt;motor name&amp;gt;&amp;quot; inputs, allowing you to drive the motors and get their status.]]&lt;br /&gt;
The two input ports - here named &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; (because that&#039;s the name of each motor in the IO Configuration) - drive each motor. They expect values between 0 and 1, with 0 being &amp;quot;full reverse&amp;quot; and 1 being &amp;quot;full forward&amp;quot;. The two outputs - here named &amp;quot;M1 armed&amp;quot; and &amp;quot;M2 armed&amp;quot; - indicate whether the motors are [[IO Config Editor#Actuators|armed]]. The concept of actuator arming can feel a little complex, but it is important because without it the chance of accidentally driving a motor is much higher: any actuator is considered &amp;quot;armed&amp;quot; once the actuator has recieved a drive signal corresponding to it&#039;s &amp;quot;safe state&amp;quot;. In the case of H-Bridge IO Units, the &amp;quot;safe state&amp;quot; is not moving, meaning that the RoboPad &#039;&#039;must&#039;&#039; recieve a value of 0.5 on each of the M1 and M2 input ports before each motor will move in any other way. Without this, it would be possible to (for example) add a signal to the M1 port that constantly fed the port with a value of &amp;quot;1&amp;quot;, which would cause the robot to start driving it&#039;s M1 wheel immediately as soon as the [[The Controller|controller]] was accessed, which wouldn&#039;t be safe:&lt;br /&gt;
[[File:Non-Armable Configuration.png|center|thumb|A potentially unsafe RoboPad configuration that is intended to cause the M1 motor to continually drive forward on launch. However, as M1 is a H-Bridge motor, it will never be armed as it requires the value &amp;quot;0.5&amp;quot; (no motion) to be passed to it first, so the unsafe situation is avoided.]]&lt;br /&gt;
Fortunately for us, the [[Slider Node]] defaults to emitting the value 0.5, so we can simply connect two Sliders to the M1 and M2 inputs. In the images below, we&#039;ve hooked them up and positioned them on the [[The Controller|Controller Stage]] so that one is on the left and one on the right (use the left and right buttons to see additional images):&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Basic Tankdrive.png|Two Sliders attached to the RoboPad chip node.&lt;br /&gt;
File:Basic Tankdrive Left Slider.png|The left slider configuration - it&#039;s positioned on the left of the screen, with a default value of 0.5 and &amp;quot;reset&amp;quot; behaviour. This means that as the stick is dragged up and down it will emit values between 0 and 1, driving M1 backwards and forwards, and when released it will output 0.5, stopping the motor.&lt;br /&gt;
File:Basic Tankdrive Right Slider.png|The right slider configuration - it&#039;s positioned on the right of the screen, with a default value of 0.5 and &amp;quot;reset&amp;quot; behaviour. This means that as the stick is dragged up and down it will emit values between 0 and 1, driving M2 backwards and forwards, and when released it will output 0.5, stopping the motor.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;However, while this is the minimum requirements to drive a robot using two sliders, it is often helpful to keep track whether your actuators are armed, which is why by default the RoboPad is bundled with a more advanced nodegraph that includes two [[Indicator Node|Indicator Nodes]] that change from dark to light green when each actuator is activated (again, use the arrows to see additional images):&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Indicator Tankdrive Nodegraph.png|In this nodegraph, two Indicators have been added to indicate the armed status of the two drive motors.&lt;br /&gt;
File:Indicator-tankdrive-left-indicator.PNG|The left (M1) indicator has been placed above the left slider. The label visibility has been turned off and it set to &amp;quot;binary&amp;quot; mode so that it only turns a lighter shade of green to indicate the motor is armed.&lt;br /&gt;
File:Indicator-tankdrive-right-indicator.PNG|The right (M2) indicator has been placed above the right slider. The label visibility has been turned off and it set to &amp;quot;binary&amp;quot; mode so that it only turns a lighter shade of green to indicate the motor is armed.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;The nodegraph for this example is actually the default configuration of the RoboPad, so resetting the nodegraph and IO Configs via the [[The Management Page|Management Page]] should set it to this. However, you can download the nodegraph for yourself [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EZw9oIJKxlpOpjSIfN2ZZmgBktOBPOnqY55PVyKPJLDxrQ?e=gjRYLT here]. The IO Configuration can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EdDMS4fiFFNBk0XiUJGwuLEB8vUZF1rG9RE07kyvFVDZIw?e=jLDhIO here].&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=Example:_Simple_Joystick-Drive_Robot&amp;diff=316</id>
		<title>Example: Simple Joystick-Drive Robot</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Example:_Simple_Joystick-Drive_Robot&amp;diff=316"/>
		<updated>2024-08-21T14:35:13Z</updated>

		<summary type="html">&lt;p&gt;Blayze: Adds download instructions for the nodegraph.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;&amp;lt;u&amp;gt;NOTICE: This page consists of information (the IO Config editor) on a feature currently in [[Beta]]. Information is liable to change or be incomplete. However, a similar nodegraph is constructable for version 2.3 or lower builds of RoboPad.&amp;lt;/u&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
While a [[Example: Simple Tank-Drive Robot|tank-drive robot]] is the most simple type of robot that you can make with a RoboPad, many people want to control both drive motors of a simple two-motor robot with a single [[Joystick Node|Joystick]]. This page aims to give you a walk-through of building a robot that can be driven in this manner.&lt;br /&gt;
&lt;br /&gt;
The nodegraph from this example can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EctL76vbaS5HupqStJggtA8BuB2ThmnzbZDuQlYE2ZUg0g?e=57FshM here] (click the download button in the top left of the viewer to get a local copy that can be uploaded via the [[The Management Page#Node Graph Management|Nodegraph Management Page]]).&lt;br /&gt;
&lt;br /&gt;
The IO Configuration can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EdDMS4fiFFNBk0XiUJGwuLEB8vUZF1rG9RE07kyvFVDZIw?e=3PVTYd here].&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Tank drive robots have only two actuators: A left drive motor and a right drive motor, both attached to a wheel. After attaching your power supply to the &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; pins, it simply requires that two motors be soldered - one each to the M1 and M2 pin pairs on the RoboPad.&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Basic 2-Motor wiring diagram.png|Motors are attached to M1 and M2 of the RoboPad in a simple 2-wheel Tank-Drive Robot.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IO Configuration ==&lt;br /&gt;
In order to tell the RoboPad that there are two motors attached, you will need to configure the [[IO Config Editor|IO Units]] on the device. The RoboPad has special IO Units available for drive motors called &amp;quot;[[IO Config Editor#Built-in H-Bridge Motor|Built-in H-Bridge Motor]]&amp;quot; units. These use the internal [[wikipedia:H-bridge|H-bridges]] to drive the motors forwards and backwards:&lt;br /&gt;
[[File:Default IO Units.png|center|thumb|494x494px|With two &amp;quot;Built-in H-Bridge Motor&amp;quot; IO Units added, you can control up to two motors attached to the RoboPad on the &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; pins.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
They allow you tot set a &amp;quot;Forward Scale&amp;quot; and a &amp;quot;Reverse Scale&amp;quot; for each, which lets you change how fast the attached motors spin when told to go all the way forward or backward, which is useful for tuning a robot if it&#039;s not driving straight when you tell it to go forward or backward, or just to slow it down if forward or backwards is too fast. They should be there by default, and if not you can add them with the &amp;quot;Add&amp;quot; menu at the top of the IO Configuration page.&lt;br /&gt;
&lt;br /&gt;
== Nodegraph Configuration ==&lt;br /&gt;
By adding the H-Bridge Motor IO Units, the [[Chip Node]] in the [[Nodegraph Editor]] gains 2 new inputs and 2 new outputs:&lt;br /&gt;
[[File:Chip Node with Default IO.png|center|thumb|437x437px|The Chip Node gets a pair of &amp;quot;&amp;lt;motor name&amp;gt; armed&amp;quot; output and &amp;quot;&amp;lt;motor name&amp;gt;&amp;quot; inputs, allowing you to drive the motors and get their status.]]&lt;br /&gt;
The two input ports - here named &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; (because that&#039;s the name of each motor in the IO Configuration) - drive each motor. They expect values between 0 and 1, with 0 being &amp;quot;full reverse&amp;quot; and 1 being &amp;quot;full forward&amp;quot;. The two outputs - here named &amp;quot;M1 armed&amp;quot; and &amp;quot;M2 armed&amp;quot; - indicate whether the motors are [[IO Config Editor#Actuators|armed]]. The concept of actuator arming can feel a little complex, but it is important because without it the chance of accidentally driving a motor is much higher: any actuator is considered &amp;quot;armed&amp;quot; once the actuator has recieved a drive signal corresponding to it&#039;s &amp;quot;safe state&amp;quot; (see the [[Example: Simple Tank-Drive Robot|Tank Drive example]] for more information on this - in this example, we assume knowledge of arming mechanics, and include armed status indicators).&lt;br /&gt;
&lt;br /&gt;
In order to drive the motors M1 and M2, we will employ the use of a [[Joystick Node]] and a [[Joystick Mixer Node]]. By default the Joystick Node outputs two values: The position of the &amp;quot;stick&amp;quot; within the joystick in terms of it&#039;s X and Y position, between 0 and 1. We could hook this directly up to the M1 and M2 inputs if we wanted to:&lt;br /&gt;
[[File:Bad-joystick-config.PNG|center|thumb|A badly-connected joystick nodegraph that will cause incorrect motor drive.]]&lt;br /&gt;
However, this would result in moving the joystick left and right driving one wheel (if M1 is connected to it as in this example, the left wheel) only of the robot, and moving it vertically drives the other (here, the right):&lt;br /&gt;
[[File:Bad-joystick-config-diagram.PNG|center|thumb|A very difficult to drive robot.]]&lt;br /&gt;
In this case, driving the robot is very difficult. In the example above, moving the stick to the top right results in the robot moving forward, and the top left has it just spinning counter-clockwise in-place. We need some kind of mixing so that moving the stick up makes the robot move forwards, down backwards and left and right makes it turn left and right variably. Fortunately, that&#039;s what the [[Joystick Mixer Node]] is for:&lt;br /&gt;
[[File:Basic-joystick-drive-nodegraph.png|center|thumb|A properly mixed joystick node.]]&lt;br /&gt;
Now the robot should drive something more like this:&lt;br /&gt;
[[File:Good-joystick-diagram.png|center|thumb|When a joystick mixer node is used, the robot will drive forward when the joystick is moved upwards, and turn left and right as the joystick is moved left and right.]]&lt;br /&gt;
While this is still a relatively simple control scheme, it can still be a little confusing, especially if you decide to make any changes to the output of the Joystick Node before they go into the mixer node. In this case [[Indicator Node|Indicator Nodes]] can be very useful as they can be configured to display a value directly which can help you debug your nodegraph. In the final version of this example configuration, we use two to indicate whether the motors have been armed:&lt;br /&gt;
[[File:Joystick-drive-with-indicators.PNG|center|thumb|Here we have connected two indicators to tell us if and when the drive motors are armed.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The nodegraph for this example can be downloaded [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EctL76vbaS5HupqStJggtA8BuB2ThmnzbZDuQlYE2ZUg0g?e=57FshM here]. The IO Configuration can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EdDMS4fiFFNBk0XiUJGwuLEB8vUZF1rG9RE07kyvFVDZIw?e=jLDhIO here].&lt;br /&gt;
&lt;br /&gt;
Using a joystick node opens up a lot of real estate on your screen and (since it&#039;s a single-finger input), gives you the chance to add additional controlls on the screen. It&#039;s the perfect input mode to use alongside a [[Slider Node]] to drive a [[IO Config Editor#Servo Motor|Servo]] as a lifter for your robot.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=Example_Robot_Configurations&amp;diff=315</id>
		<title>Example Robot Configurations</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Example_Robot_Configurations&amp;diff=315"/>
		<updated>2024-08-21T11:50:32Z</updated>

		<summary type="html">&lt;p&gt;Blayze: Added links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you can find some examples of robot electrical topologies you might want to utilise when building your own robot, and the nodegraphs that best suit them.&lt;br /&gt;
&lt;br /&gt;
* [[Example: Simple Tank-Drive Robot|Tank-Drive Controlled Robot]]&lt;br /&gt;
* [[Example: Simple Joystick-Drive Robot|Joystick Controlled Robot]]&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=Example:_Simple_Joystick-Drive_Robot&amp;diff=314</id>
		<title>Example: Simple Joystick-Drive Robot</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Example:_Simple_Joystick-Drive_Robot&amp;diff=314"/>
		<updated>2024-08-21T02:48:33Z</updated>

		<summary type="html">&lt;p&gt;Blayze: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;&amp;lt;u&amp;gt;NOTICE: This page consists of information (the IO Config editor) on a feature currently in [[Beta]]. Information is liable to change or be incomplete. However, a similar nodegraph is constructable for version 2.3 or lower builds of RoboPad.&amp;lt;/u&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
While a [[Example: Simple Tank-Drive Robot|tank-drive robot]] is the most simple type of robot that you can make with a RoboPad, many people want to control both drive motors of a simple two-motor robot with a single [[Joystick Node|Joystick]]. This page aims to give you a walk-through of building a robot that can be driven in this manner.&lt;br /&gt;
&lt;br /&gt;
The nodegraph from this example can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EctL76vbaS5HupqStJggtA8BuB2ThmnzbZDuQlYE2ZUg0g?e=57FshM here].&lt;br /&gt;
&lt;br /&gt;
The IO Configuration can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EdDMS4fiFFNBk0XiUJGwuLEB8vUZF1rG9RE07kyvFVDZIw?e=3PVTYd here].&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Tank drive robots have only two actuators: A left drive motor and a right drive motor, both attached to a wheel. After attaching your power supply to the &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; pins, it simply requires that two motors be soldered - one each to the M1 and M2 pin pairs on the RoboPad.&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Basic 2-Motor wiring diagram.png|Motors are attached to M1 and M2 of the RoboPad in a simple 2-wheel Tank-Drive Robot.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IO Configuration ==&lt;br /&gt;
In order to tell the RoboPad that there are two motors attached, you will need to configure the [[IO Config Editor|IO Units]] on the device. The RoboPad has special IO Units available for drive motors called &amp;quot;[[IO Config Editor#Built-in H-Bridge Motor|Built-in H-Bridge Motor]]&amp;quot; units. These use the internal [[wikipedia:H-bridge|H-bridges]] to drive the motors forwards and backwards:&lt;br /&gt;
[[File:Default IO Units.png|center|thumb|494x494px|With two &amp;quot;Built-in H-Bridge Motor&amp;quot; IO Units added, you can control up to two motors attached to the RoboPad on the &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; pins.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
They allow you tot set a &amp;quot;Forward Scale&amp;quot; and a &amp;quot;Reverse Scale&amp;quot; for each, which lets you change how fast the attached motors spin when told to go all the way forward or backward, which is useful for tuning a robot if it&#039;s not driving straight when you tell it to go forward or backward, or just to slow it down if forward or backwards is too fast. They should be there by default, and if not you can add them with the &amp;quot;Add&amp;quot; menu at the top of the IO Configuration page.&lt;br /&gt;
&lt;br /&gt;
== Nodegraph Configuration ==&lt;br /&gt;
By adding the H-Bridge Motor IO Units, the [[Chip Node]] in the [[Nodegraph Editor]] gains 2 new inputs and 2 new outputs:&lt;br /&gt;
[[File:Chip Node with Default IO.png|center|thumb|437x437px|The Chip Node gets a pair of &amp;quot;&amp;lt;motor name&amp;gt; armed&amp;quot; output and &amp;quot;&amp;lt;motor name&amp;gt;&amp;quot; inputs, allowing you to drive the motors and get their status.]]&lt;br /&gt;
The two input ports - here named &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; (because that&#039;s the name of each motor in the IO Configuration) - drive each motor. They expect values between 0 and 1, with 0 being &amp;quot;full reverse&amp;quot; and 1 being &amp;quot;full forward&amp;quot;. The two outputs - here named &amp;quot;M1 armed&amp;quot; and &amp;quot;M2 armed&amp;quot; - indicate whether the motors are [[IO Config Editor#Actuators|armed]]. The concept of actuator arming can feel a little complex, but it is important because without it the chance of accidentally driving a motor is much higher: any actuator is considered &amp;quot;armed&amp;quot; once the actuator has recieved a drive signal corresponding to it&#039;s &amp;quot;safe state&amp;quot; (see the [[Example: Simple Tank-Drive Robot|Tank Drive example]] for more information on this - in this example, we assume knowledge of arming mechanics, and include armed status indicators).&lt;br /&gt;
&lt;br /&gt;
In order to drive the motors M1 and M2, we will employ the use of a [[Joystick Node]] and a [[Joystick Mixer Node]]. By default the Joystick Node outputs two values: The position of the &amp;quot;stick&amp;quot; within the joystick in terms of it&#039;s X and Y position, between 0 and 1. We could hook this directly up to the M1 and M2 inputs if we wanted to:&lt;br /&gt;
[[File:Bad-joystick-config.PNG|center|thumb|A badly-connected joystick nodegraph that will cause incorrect motor drive.]]&lt;br /&gt;
However, this would result in moving the joystick left and right driving one wheel (if M1 is connected to it as in this example, the left wheel) only of the robot, and moving it vertically drives the other (here, the right):&lt;br /&gt;
[[File:Bad-joystick-config-diagram.PNG|center|thumb|A very difficult to drive robot.]]&lt;br /&gt;
In this case, driving the robot is very difficult. In the example above, moving the stick to the top right results in the robot moving forward, and the top left has it just spinning counter-clockwise in-place. We need some kind of mixing so that moving the stick up makes the robot move forwards, down backwards and left and right makes it turn left and right variably. Fortunately, that&#039;s what the [[Joystick Mixer Node]] is for:&lt;br /&gt;
[[File:Basic-joystick-drive-nodegraph.png|center|thumb|A properly mixed joystick node.]]&lt;br /&gt;
Now the robot should drive something more like this:&lt;br /&gt;
[[File:Good-joystick-diagram.png|center|thumb|When a joystick mixer node is used, the robot will drive forward when the joystick is moved upwards, and turn left and right as the joystick is moved left and right.]]&lt;br /&gt;
While this is still a relatively simple control scheme, it can still be a little confusing, especially if you decide to make any changes to the output of the Joystick Node before they go into the mixer node. In this case [[Indicator Node|Indicator Nodes]] can be very useful as they can be configured to display a value directly which can help you debug your nodegraph. In the final version of this example configuration, we use two to indicate whether the motors have been armed:&lt;br /&gt;
[[File:Joystick-drive-with-indicators.PNG|center|thumb|Here we have connected two indicators to tell us if and when the drive motors are armed.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The nodegraph for this example can be downloaded [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EctL76vbaS5HupqStJggtA8BuB2ThmnzbZDuQlYE2ZUg0g?e=57FshM here]. The IO Configuration can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EdDMS4fiFFNBk0XiUJGwuLEB8vUZF1rG9RE07kyvFVDZIw?e=jLDhIO here].&lt;br /&gt;
&lt;br /&gt;
Using a joystick node opens up a lot of real estate on your screen and (since it&#039;s a single-finger input), gives you the chance to add additional controlls on the screen. It&#039;s the perfect input mode to use alongside a [[Slider Node]] to drive a [[IO Config Editor#Servo Motor|Servo]] as a lifter for your robot.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=Example:_Simple_Tank-Drive_Robot&amp;diff=313</id>
		<title>Example: Simple Tank-Drive Robot</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Example:_Simple_Tank-Drive_Robot&amp;diff=313"/>
		<updated>2024-08-21T02:48:27Z</updated>

		<summary type="html">&lt;p&gt;Blayze: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;&amp;lt;u&amp;gt;NOTICE: This page consists of information (the IO Config editor) on a feature currently in [[Beta]]. Information is liable to change or be incomplete. However, a similar nodegraph is constructable for version 2.3 or lower builds of RoboPad.&amp;lt;/u&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A tank-drive robot is the most simple type of robot that you can make with a RoboPad. It is the default configuration that the roboPad is set up for and allows for driving two motors using two sliding sticks ([[Slider Node|Sliders]]) - one to control power to the left motor and one to control power to the right motor. This page aims to give you a walk-through of building a robot like.&lt;br /&gt;
&lt;br /&gt;
The nodegraph from this example can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EZw9oIJKxlpOpjSIfN2ZZmgBktOBPOnqY55PVyKPJLDxrQ?e=gjRYLT here].&lt;br /&gt;
&lt;br /&gt;
The IO Configuration can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EdDMS4fiFFNBk0XiUJGwuLEB8vUZF1rG9RE07kyvFVDZIw?e=3PVTYd here].&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Tank drive robots have only two actuators: A left drive motor and a right drive motor, both attached to a wheel. After attaching your power supply to the &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; pins, it simply requires that two motors be soldered - one each to the M1 and M2 pin pairs on the RoboPad.&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Basic 2-Motor wiring diagram.png|Motors are attached to M1 and M2 of the RoboPad in a simple 2-wheel Tank-Drive Robot.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IO Configuration ==&lt;br /&gt;
In order to tell the RoboPad that there are two motors attached, you will need to configure the [[IO Config Editor|IO Units]] on the device. The RoboPad has special IO Units available for drive motors called &amp;quot;[[IO Config Editor#Built-in H-Bridge Motor|Built-in H-Bridge Motor]]&amp;quot; units. These use the internal [[wikipedia:H-bridge|H-bridges]] to drive the motors forwards and backwards:&lt;br /&gt;
[[File:Default IO Units.png|center|thumb|494x494px|With two &amp;quot;Built-in H-Bridge Motor&amp;quot; IO Units added, you can control up to two motors attached to the RoboPad on the &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; pins.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
They allow you tot set a &amp;quot;Forward Scale&amp;quot; and a &amp;quot;Reverse Scale&amp;quot; for each, which lets you change how fast the attached motors spin when told to go all the way forward or backward, which is useful for tuning a robot if it&#039;s not driving straight when you tell it to go forward or backward, or just to slow it down if forward or backwards is too fast. They should be there by default, and if not you can add them with the &amp;quot;Add&amp;quot; menu at the top of the IO Configuration page.&lt;br /&gt;
&lt;br /&gt;
== Nodegraph Configuration ==&lt;br /&gt;
By adding the H-Bridge Motor IO Units, the [[Chip Node]] in the [[Nodegraph Editor]] gains 2 new inputs and 2 new outputs:&lt;br /&gt;
[[File:Chip Node with Default IO.png|center|thumb|437x437px|The Chip Node gets a pair of &amp;quot;&amp;lt;motor name&amp;gt; armed&amp;quot; output and &amp;quot;&amp;lt;motor name&amp;gt;&amp;quot; inputs, allowing you to drive the motors and get their status.]]&lt;br /&gt;
The two input ports - here named &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; (because that&#039;s the name of each motor in the IO Configuration) - drive each motor. They expect values between 0 and 1, with 0 being &amp;quot;full reverse&amp;quot; and 1 being &amp;quot;full forward&amp;quot;. The two outputs - here named &amp;quot;M1 armed&amp;quot; and &amp;quot;M2 armed&amp;quot; - indicate whether the motors are [[IO Config Editor#Actuators|armed]]. The concept of actuator arming can feel a little complex, but it is important because without it the chance of accidentally driving a motor is much higher: any actuator is considered &amp;quot;armed&amp;quot; once the actuator has recieved a drive signal corresponding to it&#039;s &amp;quot;safe state&amp;quot;. In the case of H-Bridge IO Units, the &amp;quot;safe state&amp;quot; is not moving, meaning that the RoboPad &#039;&#039;must&#039;&#039; recieve a value of 0.5 on each of the M1 and M2 input ports before each motor will move in any other way. Without this, it would be possible to (for example) add a signal to the M1 port that constantly fed the port with a value of &amp;quot;1&amp;quot;, which would cause the robot to start driving it&#039;s M1 wheel immediately as soon as the [[The Controller|controller]] was accessed, which wouldn&#039;t be safe:&lt;br /&gt;
[[File:Non-Armable Configuration.png|center|thumb|A potentially unsafe RoboPad configuration that is intended to cause the M1 motor to continually drive forward on launch. However, as M1 is a H-Bridge motor, it will never be armed as it requires the value &amp;quot;0.5&amp;quot; (no motion) to be passed to it first, so the unsafe situation is avoided.]]&lt;br /&gt;
Fortunately for us, the [[Slider Node]] defaults to emitting the value 0.5, so we can simply connect two Sliders to the M1 and M2 inputs. In the images below, we&#039;ve hooked them up and positioned them on the [[The Controller|Controller Stage]] so that one is on the left and one on the right (use the left and right buttons to see additional images):&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Basic Tankdrive.png|Two Sliders attached to the RoboPad chip node.&lt;br /&gt;
File:Basic Tankdrive Left Slider.png|The left slider configuration - it&#039;s positioned on the left of the screen, with a default value of 0.5 and &amp;quot;reset&amp;quot; behaviour. This means that as the stick is dragged up and down it will emit values between 0 and 1, driving M1 backwards and forwards, and when released it will output 0.5, stopping the motor.&lt;br /&gt;
File:Basic Tankdrive Right Slider.png|The right slider configuration - it&#039;s positioned on the right of the screen, with a default value of 0.5 and &amp;quot;reset&amp;quot; behaviour. This means that as the stick is dragged up and down it will emit values between 0 and 1, driving M2 backwards and forwards, and when released it will output 0.5, stopping the motor.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;However, while this is the minimum requirements to drive a robot using two sliders, it is often helpful to keep track whether your actuators are armed, which is why by default the RoboPad is bundled with a more advanced nodegraph that includes two [[Indicator Node|Indicator Nodes]] that change from dark to light green when each actuator is activated (again, use the arrows to see additional images):&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Indicator Tankdrive Nodegraph.png|In this nodegraph, two Indicators have been added to indicate the armed status of the two drive motors.&lt;br /&gt;
File:Indicator-tankdrive-left-indicator.PNG|The left (M1) indicator has been placed above the left slider. The label visibility has been turned off and it set to &amp;quot;binary&amp;quot; mode so that it only turns a lighter shade of green to indicate the motor is armed.&lt;br /&gt;
File:Indicator-tankdrive-right-indicator.PNG|The right (M2) indicator has been placed above the right slider. The label visibility has been turned off and it set to &amp;quot;binary&amp;quot; mode so that it only turns a lighter shade of green to indicate the motor is armed.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;The nodegraph for this example is actually the default configuration of the RoboPad, so resetting the nodegraph and IO Configs via the [[The Management Page|Management Page]] should set it to this. However, you can download the nodegraph for yourself [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EZw9oIJKxlpOpjSIfN2ZZmgBktOBPOnqY55PVyKPJLDxrQ?e=gjRYLT here]. The IO Configuration can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EdDMS4fiFFNBk0XiUJGwuLEB8vUZF1rG9RE07kyvFVDZIw?e=jLDhIO here].&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=Slider_Node&amp;diff=312</id>
		<title>Slider Node</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Slider_Node&amp;diff=312"/>
		<updated>2024-08-21T02:47:24Z</updated>

		<summary type="html">&lt;p&gt;Blayze: links to example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Return to nodes}}{{Node Data&lt;br /&gt;
|title=Slider Node&lt;br /&gt;
|gallery=&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Slider-node.png&lt;br /&gt;
File:Slider-settings.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
|output-list=&amp;lt;li&amp;gt;signal&amp;lt;/li&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
The Slider Node is a UI Node that places a slider on the [[The Controller|controller]]. A slider is a simple element that can can be dragged in one direction - either up and down or left and right.&lt;br /&gt;
&lt;br /&gt;
Slider Nodes were introduced in [[Firmware Releases|firmware version]] 2.1 along with all basic nodes.&lt;br /&gt;
&lt;br /&gt;
The [[Example: Simple Tank-Drive Robot|Example Tank-Drive Robot]] uses a pair of sliders as it&#039;s central input method - check that out for an example nodegraph!&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
A Slider Node has a single output port - &#039;&#039;signal&#039;&#039;. This output port will emit the position of the slider, from 0 to 1 (clipped), every time the slider is moved when in the [[The Controller|controller]].&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
The Slider Node&#039;s settings can be configured to alter its visual presentation, mode of operation and output value mapping.&lt;br /&gt;
&lt;br /&gt;
{{UI_Node_Settings|node=Slider}}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Stick Colour&#039;&#039;&#039;: Configures the colour of the stick of this slider as it&#039;s seen in the [[The Controller|controller]].&lt;br /&gt;
* &#039;&#039;&#039;Render Orientation&#039;&#039;&#039;: Configures the direction the slider will render - &#039;&#039;vertical&#039;&#039; will result in a stick that can move up and down within its region, while &#039;&#039;horizontal&#039;&#039; will draw a stick that can move left and right.&lt;br /&gt;
* &#039;&#039;&#039;Release Behaviour&#039;&#039;&#039;: Configures what should happen to the slider when a held click or touch is released - &#039;&#039;reset&#039;&#039; will result in the slider returning to its &#039;&#039;Start Position&#039;&#039; when released - much like a spring-loaded self-centering joystick on a traditional physical controller, while &#039;&#039;hold&#039;&#039; will leave the Slider in its current position, similar to non-self-centering joysticks. Sliders set to &#039;&#039;hold&#039;&#039; will render with three little bars in the center of the slider perpendicular to the direction of movement allowed (you can think of them as gear teeth, meshing into some unseen rack to stop the slider from moving back on its own).&lt;br /&gt;
* &#039;&#039;&#039;Start Position&#039;&#039;&#039;: This configures both the position the slider starts in and the position that it returns to if its &#039;&#039;Release Behaviour&#039;&#039; is set to &#039;&#039;reset&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Invert Output&#039;&#039;&#039;: This option inverts the output. By default a fully downward position makes the output &#039;&#039;Signal&#039;&#039; port emit &#039;&#039;&#039;0&#039;&#039;&#039;, and a fully upwards emits &#039;&#039;&#039;1&#039;&#039;&#039;, however enabling this inverts that, with a fully downward slider position emitting &#039;&#039;&#039;1&#039;&#039;&#039; and a fully upward position emitting &#039;&#039;&#039;0&#039;&#039;&#039;. Note that similar achievement could be achieved by using an [[Inverter Node]] on the &#039;&#039;signal&#039;&#039; output port.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Default Controller 2023-02-25.png|Two sliders are present in the default nodegraph configuration. Both of these sliders are in &#039;&#039;reset&#039;&#039; mode and their sticks will ping back to the center once released.&lt;br /&gt;
File:Slider-vertical-reset-and-hold-UI.png|Two sliders in the &#039;&#039;vertical&#039;&#039; orientation, the left set to &#039;&#039;reset&#039;&#039; mode and the right set to &#039;&#039;hold&#039;&#039; mode.&lt;br /&gt;
File:Slider-horizontal-reset-and-hold-UI.png|Two sliders in the &#039;&#039;horizontal&#039;&#039; orientation. The upper is set to &#039;&#039;reset&#039;&#039; mode, with the lower set to &#039;&#039;hold&#039;&#039;.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=Joystick_Node&amp;diff=311</id>
		<title>Joystick Node</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Joystick_Node&amp;diff=311"/>
		<updated>2024-08-21T02:46:11Z</updated>

		<summary type="html">&lt;p&gt;Blayze: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Return to nodes}}{{Node Data&lt;br /&gt;
|title=Joystick Node&lt;br /&gt;
|gallery=&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Joystick-node.png&lt;br /&gt;
File:Joystick-settings.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
|output-list=&amp;lt;li&amp;gt;x&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;y&amp;lt;/li&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
The Joystick Node is a UI Node that places a simulated dual-axis joystick on the [[The Controller|controller]]. A joystick is a simple element that can can be dragged in two directions - up and down (the &#039;&#039;x axis&#039;&#039;) and left and right (the &#039;&#039;y axis&#039;&#039;). These values are reported out of Joystick node&#039;s &#039;&#039;x&#039;&#039; and &#039;&#039;y&#039;&#039; output ports.&lt;br /&gt;
&lt;br /&gt;
Joystick Nodes were introduced in [[Firmware Releases|firmware version]] 2.1 along with all basic nodes.&lt;br /&gt;
&lt;br /&gt;
The [[Example: Simple Joystick-Drive Robot|Joystick drive example robot]] uses a joystick as it&#039;s central input method - check that out for an example nodegraph!&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
Joystick Nodes are very similar to [[Slider Node|Slider Nodes]], but have an additional degree of freedom, meaning they can move in 2 axes. They are designed to mimic traditional dual-axis joystick found on a physical controller. Joystick Nodes have two output ports - &#039;&#039;x&#039;&#039; and &#039;&#039;y&#039;&#039;, reflective of the stick&#039;s position in the x axis and y axis of it&#039;s region of movement. Both outputs are emitted from 0 to 1 (clipped), every time the slider is moved when in the [[The Controller|controller]].&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
The Joystick Node&#039;s settings can be configured to alter it&#039;s visual presentation, mode of operation and output value mapping.&lt;br /&gt;
&lt;br /&gt;
{{UI_Node_Settings|node=Joystick}}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Stick Colour&#039;&#039;&#039;: Configures the colour of the stick of this joystick as it&#039;s seen in the [[The Controller|controller]].&lt;br /&gt;
* &#039;&#039;&#039;X-Axis Release Behaviour&#039;&#039;&#039;: Configures what should happen to the stick when a held click or touch is released, but only along the &#039;&#039;x-axis&#039;&#039; - &#039;&#039;reset&#039;&#039; will result in the stick returning to it&#039;s x-axis (horizontal) &#039;&#039;Start Position&#039;&#039; when released - much like a spring-loaded self-centering joystick on a traditional physical controller, while &#039;&#039;hold&#039;&#039; will leave the stick in it&#039;s current position along the x-axis, similar to non-self-centering joysticks. Joysticks set to &#039;&#039;hold&#039;&#039; in the x-axis will render with three little vertical bars in the center of the stick. &lt;br /&gt;
* &#039;&#039;&#039;Y-Axis Release Behaviour&#039;&#039;&#039;: This behaves identically to the &#039;&#039;X-Axis Release Behaviour&#039;&#039;, but along the y-axis (vertically).&lt;br /&gt;
* &#039;&#039;&#039;X-Axis Start Position&#039;&#039;&#039;: This configures both the position the slider starts in along the x-axis (horizontally) and the position that it returns to if it&#039;s &#039;&#039;X-Axis Release Behaviour&#039;&#039; is set to &#039;&#039;reset&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Y-Axis Start Position&#039;&#039;&#039;: This behaves identically to the &#039;&#039;X-Axis Start Position&#039;&#039;, but along the y-axis (vertically).&lt;br /&gt;
* &#039;&#039;&#039;Invert X Axis&#039;&#039;&#039;: This option inverts the output along the x-axis (horizontally). By default a fully leftwards stick position makes the output &#039;&#039;x&#039;&#039; port emit &#039;&#039;&#039;0&#039;&#039;&#039;, and a fully right stick emits &#039;&#039;&#039;1&#039;&#039;&#039;, however enabling this inverts that, with a stick position fully to the left emitting &#039;&#039;&#039;1&#039;&#039;&#039; and a fully right position emitting &#039;&#039;&#039;0&#039;&#039;&#039;. Note that similar achievement could be achieved by using an [[Inverter Node]] on the &#039;&#039;x&#039;&#039; output port.&lt;br /&gt;
* &#039;&#039;&#039;Invert Y Axis&#039;&#039;&#039;: This behaves identically to the &#039;&#039;Invert X Axis&#039;&#039; option, but inverts along the y-axis (vertically).&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Joystick-return-behaviour-examples.png|Three joystick node elements drawn to the controller, one with both x and y behaviours set to reset (bottom left), one with both set to hold (middle) and one with only x-axis set to hold (right), all in their starting position.&lt;br /&gt;
File:Joystick-return-behaviour-examples-2.png|Three joystick node elements drawn to the controller, one with both x and y behaviours set to reset (bottom left), one with both set to hold (middle) and one with only x-axis set to hold (right). After movement, only the top can be completely off-center in both axes.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=Example:_Simple_Joystick-Drive_Robot&amp;diff=310</id>
		<title>Example: Simple Joystick-Drive Robot</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Example:_Simple_Joystick-Drive_Robot&amp;diff=310"/>
		<updated>2024-08-21T02:44:55Z</updated>

		<summary type="html">&lt;p&gt;Blayze: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;&amp;lt;u&amp;gt;NOTICE: This page consists of information on a feature currently in [[Beta]]. Information is liable to change or be incomplete.&amp;lt;/u&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
While a [[Example: Simple Tank-Drive Robot|tank-drive robot]] is the most simple type of robot that you can make with a RoboPad, many people want to control both drive motors of a simple two-motor robot with a single [[Joystick Node|Joystick]]. This page aims to give you a walk-through of building a robot that can be driven in this manner.&lt;br /&gt;
&lt;br /&gt;
The nodegraph from this example can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EctL76vbaS5HupqStJggtA8BuB2ThmnzbZDuQlYE2ZUg0g?e=57FshM here].&lt;br /&gt;
&lt;br /&gt;
The IO Configuration can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EdDMS4fiFFNBk0XiUJGwuLEB8vUZF1rG9RE07kyvFVDZIw?e=3PVTYd here].&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Tank drive robots have only two actuators: A left drive motor and a right drive motor, both attached to a wheel. After attaching your power supply to the &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; pins, it simply requires that two motors be soldered - one each to the M1 and M2 pin pairs on the RoboPad.&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Basic 2-Motor wiring diagram.png|Motors are attached to M1 and M2 of the RoboPad in a simple 2-wheel Tank-Drive Robot.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IO Configuration ==&lt;br /&gt;
In order to tell the RoboPad that there are two motors attached, you will need to configure the [[IO Config Editor|IO Units]] on the device. The RoboPad has special IO Units available for drive motors called &amp;quot;[[IO Config Editor#Built-in H-Bridge Motor|Built-in H-Bridge Motor]]&amp;quot; units. These use the internal [[wikipedia:H-bridge|H-bridges]] to drive the motors forwards and backwards:&lt;br /&gt;
[[File:Default IO Units.png|center|thumb|494x494px|With two &amp;quot;Built-in H-Bridge Motor&amp;quot; IO Units added, you can control up to two motors attached to the RoboPad on the &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; pins.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
They allow you tot set a &amp;quot;Forward Scale&amp;quot; and a &amp;quot;Reverse Scale&amp;quot; for each, which lets you change how fast the attached motors spin when told to go all the way forward or backward, which is useful for tuning a robot if it&#039;s not driving straight when you tell it to go forward or backward, or just to slow it down if forward or backwards is too fast. They should be there by default, and if not you can add them with the &amp;quot;Add&amp;quot; menu at the top of the IO Configuration page.&lt;br /&gt;
&lt;br /&gt;
== Nodegraph Configuration ==&lt;br /&gt;
By adding the H-Bridge Motor IO Units, the [[Chip Node]] in the [[Nodegraph Editor]] gains 2 new inputs and 2 new outputs:&lt;br /&gt;
[[File:Chip Node with Default IO.png|center|thumb|437x437px|The Chip Node gets a pair of &amp;quot;&amp;lt;motor name&amp;gt; armed&amp;quot; output and &amp;quot;&amp;lt;motor name&amp;gt;&amp;quot; inputs, allowing you to drive the motors and get their status.]]&lt;br /&gt;
The two input ports - here named &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; (because that&#039;s the name of each motor in the IO Configuration) - drive each motor. They expect values between 0 and 1, with 0 being &amp;quot;full reverse&amp;quot; and 1 being &amp;quot;full forward&amp;quot;. The two outputs - here named &amp;quot;M1 armed&amp;quot; and &amp;quot;M2 armed&amp;quot; - indicate whether the motors are [[IO Config Editor#Actuators|armed]]. The concept of actuator arming can feel a little complex, but it is important because without it the chance of accidentally driving a motor is much higher: any actuator is considered &amp;quot;armed&amp;quot; once the actuator has recieved a drive signal corresponding to it&#039;s &amp;quot;safe state&amp;quot; (see the [[Example: Simple Tank-Drive Robot|Tank Drive example]] for more information on this - in this example, we assume knowledge of arming mechanics, and include armed status indicators).&lt;br /&gt;
&lt;br /&gt;
In order to drive the motors M1 and M2, we will employ the use of a [[Joystick Node]] and a [[Joystick Mixer Node]]. By default the Joystick Node outputs two values: The position of the &amp;quot;stick&amp;quot; within the joystick in terms of it&#039;s X and Y position, between 0 and 1. We could hook this directly up to the M1 and M2 inputs if we wanted to:&lt;br /&gt;
[[File:Bad-joystick-config.PNG|center|thumb|A badly-connected joystick nodegraph that will cause incorrect motor drive.]]&lt;br /&gt;
However, this would result in moving the joystick left and right driving one wheel (if M1 is connected to it as in this example, the left wheel) only of the robot, and moving it vertically drives the other (here, the right):&lt;br /&gt;
[[File:Bad-joystick-config-diagram.PNG|center|thumb|A very difficult to drive robot.]]&lt;br /&gt;
In this case, driving the robot is very difficult. In the example above, moving the stick to the top right results in the robot moving forward, and the top left has it just spinning counter-clockwise in-place. We need some kind of mixing so that moving the stick up makes the robot move forwards, down backwards and left and right makes it turn left and right variably. Fortunately, that&#039;s what the [[Joystick Mixer Node]] is for:&lt;br /&gt;
[[File:Basic-joystick-drive-nodegraph.png|center|thumb|A properly mixed joystick node.]]&lt;br /&gt;
Now the robot should drive something more like this:&lt;br /&gt;
[[File:Good-joystick-diagram.png|center|thumb|When a joystick mixer node is used, the robot will drive forward when the joystick is moved upwards, and turn left and right as the joystick is moved left and right.]]&lt;br /&gt;
While this is still a relatively simple control scheme, it can still be a little confusing, especially if you decide to make any changes to the output of the Joystick Node before they go into the mixer node. In this case [[Indicator Node|Indicator Nodes]] can be very useful as they can be configured to display a value directly which can help you debug your nodegraph. In the final version of this example configuration, we use two to indicate whether the motors have been armed:&lt;br /&gt;
[[File:Joystick-drive-with-indicators.PNG|center|thumb|Here we have connected two indicators to tell us if and when the drive motors are armed.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The nodegraph for this example can be downloaded [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EctL76vbaS5HupqStJggtA8BuB2ThmnzbZDuQlYE2ZUg0g?e=57FshM here]. The IO Configuration can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EdDMS4fiFFNBk0XiUJGwuLEB8vUZF1rG9RE07kyvFVDZIw?e=jLDhIO here].&lt;br /&gt;
&lt;br /&gt;
Using a joystick node opens up a lot of real estate on your screen and (since it&#039;s a single-finger input), gives you the chance to add additional controlls on the screen. It&#039;s the perfect input mode to use alongside a [[Slider Node]] to drive a [[IO Config Editor#Servo Motor|Servo]] as a lifter for your robot.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=Example:_Simple_Joystick-Drive_Robot&amp;diff=309</id>
		<title>Example: Simple Joystick-Drive Robot</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Example:_Simple_Joystick-Drive_Robot&amp;diff=309"/>
		<updated>2024-08-21T02:42:22Z</updated>

		<summary type="html">&lt;p&gt;Blayze: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;&amp;lt;u&amp;gt;NOTICE: This page consists of information on a feature currently in [[Beta]]. Information is liable to change or be incomplete.&amp;lt;/u&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
While a [[Example: Simple Tank-Drive Robot|tank-drive robot]] is the most simple type of robot that you can make with a RoboPad, many people want to control both drive motors of a simple two-motor robot with a single [[Joystick Node|Joystick]]. This page aims to give you a walk-through of building a robot that can be driven in this manner.&lt;br /&gt;
&lt;br /&gt;
The nodegraph from this example can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EctL76vbaS5HupqStJggtA8BuB2ThmnzbZDuQlYE2ZUg0g?e=57FshM here].&lt;br /&gt;
&lt;br /&gt;
The IO Configuration can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EdDMS4fiFFNBk0XiUJGwuLEB8vUZF1rG9RE07kyvFVDZIw?e=3PVTYd here].&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Tank drive robots have only two actuators: A left drive motor and a right drive motor, both attached to a wheel. After attaching your power supply to the &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; pins, it simply requires that two motors be soldered - one each to the M1 and M2 pin pairs on the RoboPad.&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Basic 2-Motor wiring diagram.png|Motors are attached to M1 and M2 of the RoboPad in a simple 2-wheel Tank-Drive Robot.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IO Configuration ==&lt;br /&gt;
In order to tell the RoboPad that there are two motors attached, you will need to configure the [[IO Config Editor|IO Units]] on the device. The RoboPad has special IO Units available for drive motors called &amp;quot;[[IO Config Editor#Built-in H-Bridge Motor|Built-in H-Bridge Motor]]&amp;quot; units. These use the internal [[wikipedia:H-bridge|H-bridges]] to drive the motors forwards and backwards:&lt;br /&gt;
[[File:Default IO Units.png|center|thumb|494x494px|With two &amp;quot;Built-in H-Bridge Motor&amp;quot; IO Units added, you can control up to two motors attached to the RoboPad on the &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; pins.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
They allow you tot set a &amp;quot;Forward Scale&amp;quot; and a &amp;quot;Reverse Scale&amp;quot; for each, which lets you change how fast the attached motors spin when told to go all the way forward or backward, which is useful for tuning a robot if it&#039;s not driving straight when you tell it to go forward or backward, or just to slow it down if forward or backwards is too fast. They should be there by default, and if not you can add them with the &amp;quot;Add&amp;quot; menu at the top of the IO Configuration page.&lt;br /&gt;
&lt;br /&gt;
== Nodegraph Configuration ==&lt;br /&gt;
By adding the H-Bridge Motor IO Units, the [[Chip Node]] in the [[Nodegraph Editor]] gains 2 new inputs and 2 new outputs:&lt;br /&gt;
[[File:Chip Node with Default IO.png|center|thumb|437x437px|The Chip Node gets a pair of &amp;quot;&amp;lt;motor name&amp;gt; armed&amp;quot; output and &amp;quot;&amp;lt;motor name&amp;gt;&amp;quot; inputs, allowing you to drive the motors and get their status.]]&lt;br /&gt;
The two input ports - here named &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; (because that&#039;s the name of each motor in the IO Configuration) - drive each motor. They expect values between 0 and 1, with 0 being &amp;quot;full reverse&amp;quot; and 1 being &amp;quot;full forward&amp;quot;. The two outputs - here named &amp;quot;M1 armed&amp;quot; and &amp;quot;M2 armed&amp;quot; - indicate whether the motors are [[IO Config Editor#Actuators|armed]]. The concept of actuator arming can feel a little complex, but it is important because without it the chance of accidentally driving a motor is much higher: any actuator is considered &amp;quot;armed&amp;quot; once the actuator has recieved a drive signal corresponding to it&#039;s &amp;quot;safe state&amp;quot; (see the [[Example: Simple Tank-Drive Robot|Tank Drive example]] for more information on this - in this example, we assume knowledge of arming mechanics, and include armed status indicators).&lt;br /&gt;
&lt;br /&gt;
In order to drive the motors M1 and M2, we will employ the use of a [[Joystick Node]] and a [[Joystick Mixer Node]]. By default the Joystick Node outputs two values: The position of the &amp;quot;stick&amp;quot; within the joystick in terms of it&#039;s X and Y position, between 0 and 1. We could hook this directly up to the M1 and M2 inputs if we wanted to:&lt;br /&gt;
[[File:Bad-joystick-config.PNG|center|thumb|A badly-connected joystick nodegraph that will cause incorrect motor drive.]]&lt;br /&gt;
However, this would result in moving the joystick left and right driving one wheel (if M1 is connected to it as in this example, the left wheel) only of the robot, and moving it vertically drives the other (here, the right):&lt;br /&gt;
[[File:Bad-joystick-config-diagram.PNG|center|thumb|A very difficult to drive robot.]]&lt;br /&gt;
In this case, driving the robot is very difficult. In the example above, moving the stick to the top right results in the robot moving forward, and the top left has it just spinning counter-clockwise in-place. We need some kind of mixing so that moving the stick up makes the robot move forwards, down backwards and left and right makes it turn left and right variably. Fortunately, that&#039;s what the [[Joystick Mixer Node]] is for:&lt;br /&gt;
[[File:Basic-joystick-drive-nodegraph.png|center|thumb|A properly mixed joystick node.]]&lt;br /&gt;
Now the robot should drive something more like this:&lt;br /&gt;
[[File:Good-joystick-diagram.png|center|thumb|When a joystick mixer node is used, the robot will drive forward when the joystick is moved upwards, and turn left and right as the joystick is moved left and right.]]&lt;br /&gt;
While this is still a relatively simple control scheme, it can still be a little confusing, especially if you decide to make any changes to the output of the Joystick Node before they go into the mixer node. In this case [[Indicator Node|Indicator Nodes]] can be very useful as they can be configured to display a value directly which can help you debug your nodegraph. In the final version of this example configuration, we use two to indicate whether the motors have been armed:&lt;br /&gt;
[[File:Joystick-drive-with-indicators.PNG|center|thumb|Here we have connected two indicators to tell us if and when the drive motors are armed.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The nodegraph for this example can be downloaded [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EctL76vbaS5HupqStJggtA8BuB2ThmnzbZDuQlYE2ZUg0g?e=57FshM here]. The IO Configuration can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EdDMS4fiFFNBk0XiUJGwuLEB8vUZF1rG9RE07kyvFVDZIw?e=jLDhIO here].&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=Example:_Simple_Joystick-Drive_Robot&amp;diff=308</id>
		<title>Example: Simple Joystick-Drive Robot</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Example:_Simple_Joystick-Drive_Robot&amp;diff=308"/>
		<updated>2024-08-21T02:40:50Z</updated>

		<summary type="html">&lt;p&gt;Blayze: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;&amp;lt;u&amp;gt;NOTICE: This page consists of information on a feature currently in [[Beta]]. Information is liable to change or be incomplete.&amp;lt;/u&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
While a [[Example: Simple Tank-Drive Robot|tank-drive robot]] is the most simple type of robot that you can make with a RoboPad, many people want to control both drive motors of a simple two-motor robot with a single [[Joystick Node|Joystick]]. This page aims to give you a walk-through of building a robot that can be driven in this manner.&lt;br /&gt;
&lt;br /&gt;
The nodegraph from this example can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EZw9oIJKxlpOpjSIfN2ZZmgBktOBPOnqY55PVyKPJLDxrQ?e=gjRYLT here].&lt;br /&gt;
&lt;br /&gt;
The IO Configuration can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EdDMS4fiFFNBk0XiUJGwuLEB8vUZF1rG9RE07kyvFVDZIw?e=3PVTYd here].&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Tank drive robots have only two actuators: A left drive motor and a right drive motor, both attached to a wheel. After attaching your power supply to the &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; pins, it simply requires that two motors be soldered - one each to the M1 and M2 pin pairs on the RoboPad.&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Basic 2-Motor wiring diagram.png|Motors are attached to M1 and M2 of the RoboPad in a simple 2-wheel Tank-Drive Robot.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IO Configuration ==&lt;br /&gt;
In order to tell the RoboPad that there are two motors attached, you will need to configure the [[IO Config Editor|IO Units]] on the device. The RoboPad has special IO Units available for drive motors called &amp;quot;[[IO Config Editor#Built-in H-Bridge Motor|Built-in H-Bridge Motor]]&amp;quot; units. These use the internal [[wikipedia:H-bridge|H-bridges]] to drive the motors forwards and backwards:&lt;br /&gt;
[[File:Default IO Units.png|center|thumb|494x494px|With two &amp;quot;Built-in H-Bridge Motor&amp;quot; IO Units added, you can control up to two motors attached to the RoboPad on the &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; pins.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
They allow you tot set a &amp;quot;Forward Scale&amp;quot; and a &amp;quot;Reverse Scale&amp;quot; for each, which lets you change how fast the attached motors spin when told to go all the way forward or backward, which is useful for tuning a robot if it&#039;s not driving straight when you tell it to go forward or backward, or just to slow it down if forward or backwards is too fast. They should be there by default, and if not you can add them with the &amp;quot;Add&amp;quot; menu at the top of the IO Configuration page.&lt;br /&gt;
&lt;br /&gt;
== Nodegraph Configuration ==&lt;br /&gt;
By adding the H-Bridge Motor IO Units, the [[Chip Node]] in the [[Nodegraph Editor]] gains 2 new inputs and 2 new outputs:&lt;br /&gt;
[[File:Chip Node with Default IO.png|center|thumb|437x437px|The Chip Node gets a pair of &amp;quot;&amp;lt;motor name&amp;gt; armed&amp;quot; output and &amp;quot;&amp;lt;motor name&amp;gt;&amp;quot; inputs, allowing you to drive the motors and get their status.]]&lt;br /&gt;
The two input ports - here named &amp;quot;M1&amp;quot; and &amp;quot;M2&amp;quot; (because that&#039;s the name of each motor in the IO Configuration) - drive each motor. They expect values between 0 and 1, with 0 being &amp;quot;full reverse&amp;quot; and 1 being &amp;quot;full forward&amp;quot;. The two outputs - here named &amp;quot;M1 armed&amp;quot; and &amp;quot;M2 armed&amp;quot; - indicate whether the motors are [[IO Config Editor#Actuators|armed]]. The concept of actuator arming can feel a little complex, but it is important because without it the chance of accidentally driving a motor is much higher: any actuator is considered &amp;quot;armed&amp;quot; once the actuator has recieved a drive signal corresponding to it&#039;s &amp;quot;safe state&amp;quot; (see the [[Example: Simple Tank-Drive Robot|Tank Drive example]] for more information on this - in this example, we assume knowledge of arming mechanics, and include armed status indicators).&lt;br /&gt;
&lt;br /&gt;
In order to drive the motors M1 and M2, we will employ the use of a [[Joystick Node]] and a [[Joystick Mixer Node]]. By default the Joystick Node outputs two values: The position of the &amp;quot;stick&amp;quot; within the joystick in terms of it&#039;s X and Y position, between 0 and 1. We could hook this directly up to the M1 and M2 inputs if we wanted to:&lt;br /&gt;
[[File:Bad-joystick-config.PNG|center|thumb|A badly-connected joystick nodegraph that will cause incorrect motor drive.]]&lt;br /&gt;
However, this would result in moving the joystick left and right driving one wheel (if M1 is connected to it as in this example, the left wheel) only of the robot, and moving it vertically drives the other (here, the right):&lt;br /&gt;
[[File:Bad-joystick-config-diagram.PNG|center|thumb|A very difficult to drive robot.]]&lt;br /&gt;
In this case, driving the robot is very difficult. In the example above, moving the stick to the top right results in the robot moving forward, and the top left has it just spinning counter-clockwise in-place. We need some kind of mixing so that moving the stick up makes the robot move forwards, down backwards and left and right makes it turn left and right variably. Fortunately, that&#039;s what the [[Joystick Mixer Node]] is for:&lt;br /&gt;
[[File:Basic-joystick-drive-nodegraph.png|center|thumb|A properly mixed joystick node.]]&lt;br /&gt;
Now the robot should drive something more like this:&lt;br /&gt;
[[File:Good-joystick-diagram.png|center|thumb|When a joystick mixer node is used, the robot will drive forward when the joystick is moved upwards, and turn left and right as the joystick is moved left and right.]]&lt;br /&gt;
While this is still a relatively simple control scheme, it can still be a little confusing, especially if you decide to make any changes to the output of the Joystick Node before they go into the mixer node. In this case [[Indicator Node|Indicator Nodes]] can be very useful as they can be configured to display a value directly which can help you debug your nodegraph. In the final version of this example configuration, we use two to indicate whether the motors have been armed:&lt;br /&gt;
&lt;br /&gt;
The nodegraph for this example is actually the default configuration of the RoboPad, so resetting the nodegraph and IO Configs via the [[The Management Page|Management Page]] should set it to this. However, you can download the nodegraph for yourself [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EZw9oIJKxlpOpjSIfN2ZZmgBktOBPOnqY55PVyKPJLDxrQ?e=gjRYLT here]. The IO Configuration can be found [https://yelllowcube.sharepoint.com/:u:/s/BlayzeTechLimited/EdDMS4fiFFNBk0XiUJGwuLEB8vUZF1rG9RE07kyvFVDZIw?e=jLDhIO here].&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=File:Joystick-drive-with-indicators.PNG&amp;diff=307</id>
		<title>File:Joystick-drive-with-indicators.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=File:Joystick-drive-with-indicators.PNG&amp;diff=307"/>
		<updated>2024-08-21T02:40:33Z</updated>

		<summary type="html">&lt;p&gt;Blayze: An example nodegraph that uses a joystick node.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
An example nodegraph that uses a joystick node.&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
</feed>