Skip to main content
The generator needs a sketch flashed once. It receives the signal you have open in the editor and plays it on its outputs.
It does not connect to the internet, to a cloud, or to any server: the link is always point to point, over the USB cable.

What you need

Flashing it

1

Install the core

Arduino IDE → Boards Manager → esp32 by Espressif Systems.
2

Pick the board

ESP32 Dev Module, and the port it is plugged into.
3

Upload the sketch

Open oryx_signal_esp32.ino and upload. It needs no external libraries.
4

Close the serial monitor

Before connecting from the app: while it is open, the port is taken.
The serial monitor (115200) shows a greeting at boot.
The firmware code is also inside the app, in Device → ESP32 firmware, with a button to copy it.

Outputs

Voltage

In analog, the voltage scales directly what the DAC puts out, between 0 and 3.3 V. In digital, a pin knows nothing of intermediate levels: it outputs 3.3 V or 0. There the voltage value comes out on GPIO 25 as a steady reference voltage, meant to feed the external stage —divider, buffer or level shifter— that sets the real pulse height.
Without that external stage, the pins always output 3.3 V and the voltage setting changes nothing.

Device limits

If your signal does not fit, the app tells you before sending it and explains what was adjusted.

Cycles and step time

Both adjust the same thing from two sides:
  • With cycles at 0, the step time rules as it is.
  • With cycles above 0, one full pass of the signal is one engine revolution:
Changing either one restarts the pass in progress, so the change shows on the oscilloscope right away. The lap counter is not zeroed: that is what Restart is for.

When the signal stops on its own

If the cable comes loose or you close the tab, the signal stops and the outputs go low. It is on purpose: the device cannot find out that nobody is on the other end, so if it goes a while without receiving orders it treats the link as finished.