xod/core

License: AGPL-3.0

The very basic nodes of XOD
NodeDescription
add
Adds numbers
and
Outputs true if and only if all inputs are true
any
Pulses on output when any input recieves a pulse
branch
Routes an incoming pulse to either of outputs depending on condition
boot
Outputs a single pulse when the program starts
buffer
Permanently holds a single value
clock
Outputs pulses at regular intervals
concat
Concatenates (adds together) strings
constant-boolean
Constant value
console-log
Outputs a line of text to the board standard debug interface
constant-byteNo description
constant-numberNo description
constant-portNo description
constant-stringNo description
continuously
Continuously outputs pulses
continuously-pausable
Continuously outputs pulses, can be paused
count
Stores a number which gets incremented on each `INC` pulse.
debounce
Debounces a value. The `OUT` value would change only after a period of at least `Ts` seconds while which the input state `ST` has not changed.
defer
Allows to create feedback loops. Repeats a change of the input on the output right after the current transaction will complete.
debounce(boolean)
Debounces a boolean value. The `OUT` value would change only after a period of at least `Ts` seconds while which the input state `ST` has not changed. The node is useful to fight signal bouncing of mechanical switches.
defer(byte)
Allows to create feedback loops. Repeats a change of the input on the output right after the current transaction will complete.
defer(boolean)
Allows to create feedback loops. Repeats a change of the input on the output right after the current transaction will complete.
defer(pulse)
Allows to create feedback loops. Repeats a change of the input on the output right after the current transaction will complete.
defer(number)
Allows to create feedback loops. Repeats a change of the input on the output right after the current transaction will complete.
defer(string)
Allows to create feedback loops. Repeats a change of the input on the output right after the current transaction will complete.
delay
Delays triggering of an incoming pulse by specified time
delta
Outputs a difference between the current `IN` value and its value at the moment of the last node update.
delta-time
Outputs time difference between the current and previous updates.
divide
Divides two numbers
duty-to-time
Converts total time and duty cycle values into absolute on/off time values
equal
Outputs true if `IN1` = `IN2`, and false otherwise
equal(number)
Outputs true if `IN1` = `IN2`, and false otherwise
equal(byte)
Outputs true if `IN1` = `IN2`, and false otherwise
fade
Lineary animates an internal value toward target value `TARG` with a rate `RATE`. Use the node to smoothen LED switching, motor starting, or servo angular position update.
equal(string)
Outputs true if `IN1` = `IN2`, and false otherwise
flip-flop
Permanently holds either 0 or 1
flip-n-times
Generates `N` switches of output boolean signal. Useful to flash/blink/flip/switch something for several times in a row.
format-number
Transforms a number into a string with specified precision
gate
Allows values to pass through only if EN pin is set to true
format-progress
Outputs one of “...”, “OK”, “ERR” depending on the pulse which came last. Useful for demonstrating progress of a long-running process.
gate(boolean)
Allows values to pass through only if EN pin is set to true
gate(byte)
Allows values to pass through only if EN pin is set to true
gate(number)
Allows values to pass through only if EN pin is set to true
gate(pulse)
Allows values to pass through only if EN pin is set to true
gate(string)
Allows values to pass through only if EN pin is set to true
greater
Outputs true if `IN1` > `IN2`, and false otherwise
if-else
Outputs either input value depending on condition
if-else(number)
Outputs either input value depending on condition
if-else(byte)
Outputs either input value depending on condition
if-else(string)
Outputs either input string depending on condition
join
Joins multiple strings together inserting a delimiter between each pair. Useful for separating string parts with spaces and building CSV lines.
length(string)No description
less
Outputs true if `IN1` < `IN2`, and false otherwise
modulo
Computes the remainder of `IN1` divided by `IN2`.
multiply
Multiplies numbers
nor
Outputs true if and only if all inputs are false
nand
Outputs false if and only if all inputs are true
nth-input
Selects either `X0` or `X1` based on `IDX` index value.
not
Inverses a boolean value
nth-input(number)
Selects either `X0` or `X1` based on `IDX` index value.
nth-input(string)
Selects either `X0` or `X1` based on `IDX` index value.
or
Outputs false if and only if all inputs are false
pad-with-zeroes
Transforms a number into a string and adds zeroes to the beginning of the string until it is W-sized. Ignores a fractional part of the value and a sign. If the width of a string for a number is greater than the specified W value, node produces a string with the untransformed number
pid-controller
A proportional–integral–derivative controller. Computes fuzzy output value based on an actual current input value and the desired value.
pulse-on-change
Emits a pulse every time input value changes.
pulse-on-false
Emits a pulse on a falling edge, i.e. when `true` changes to `false`
pulse-on-true
Emits a pulse on a rising edge, i.e. when false changes to true
saw-wave
Generates sawtooth wave signal
select
Outputs `X𝑛` value based on which `S𝑛` pulse came last. By default outputs `X1`.
saw-wave-map
Computes sawtooth function value
sine-waveNo description
sine-wave-map
Computes sine wave function value. It’s a periodical function with range [0, 1] which starts from 0.
square-waveNo description
subtract
Subtracts two numbers
time-to-duty
Converts two absolute time values representing on and off time to a total duration and duty cycle values
system-time
Outputs time spent since the program start
timer
A simple timer/stopwatch
to-percent
Transforms a number to percent string. For example, 0.42 to “42%”
tri-wave-map
Computes triangle function value
tri-wave
Generates triangle wave signal
word-to-number
Packs two bytes into an integer number
watch
Shows incoming values in the realtime, when a debug session is active
xor
Outputs true if and only if just one of inputs has true value