ESPP Logo
  • ADC APIs
  • ADRC APIs
  • Base Component
  • Base Peripheral
  • Battery APIs
  • Motor (BDC + BLDC) APIs
  • BLE APIs
  • Button APIs
  • ALXV Labs Byte90
  • Controller APIs
  • Command Line Interface (CLI) APIs
  • COBS (Consistent Overhead Byte Stuffing)
  • Color APIs
  • CSV APIs
  • Display APIs
  • Distance Sensor APIs
  • Encoder APIs
  • ESP32 TimerCam
  • ESP BOX
  • Event Manager APIs
  • File System APIs
  • Filter APIs
  • FTP APIs
  • Haptics APIs
  • HID APIs
  • I2C
  • IMU APIs
  • Interrupt APIs
  • Input APIs
  • IO Expander APIs
  • Iperf Menu
  • Joystick APIs
  • LED APIs
  • LED Driver Components
  • LED Strip APIs
  • Logging APIs
  • M5Stack Tab5
  • Math APIs
  • MaTouch Rotary Display
  • Monitoring APIs
  • MotorGo Mini
  • MotorGo Plink
    • MotorGo Plink
      • MotorGo Plink Example
        • How to use example
    • API Reference
  • Neopixel APIs
  • Network APIs
  • NFC APIs
  • NVS APIs
  • ODrive ASCII Protocol Component
  • PID APIs
  • Power Monitoring APIs
  • QtPy ESP32 Pico and QtPy ESP32-S3
  • QwiicNES
  • Remote Debug APIs
  • Remote Control Transceiver (RMT)
  • RTC APIs
  • RTSP APIs
  • RunQueue APIs
  • Seeed Studio Round Display
  • Serialization APIs
  • Smart Panlee SC01 Plus
  • SPI
  • State Machine APIs
  • LilyGo T-Deck
  • LilyGo T-Dongle S3
  • Tabulate APIs
  • Task APIs
  • Thermistor APIs
  • Timer APIs
  • WiFi APIs
  • ESP32-WROVER-KIT
  • Waveshare ESP32-S3 GEEK
  • Waveshare ESP32-S3 LCD 1.47”
  • Waveshare ESP32-S3 TouchLCD
  • XIAO ESP32S3 Sense
ESPP
  • MotorGo Plink
  • MotorGo Plink Example
  • Edit on GitHub

MotorGo Plink Example

This example demonstrates how to use the espp::MotorGoPlink component to initialize the hardware on the MotorGo Plink board.

By default the example is intentionally safe:

  • it logs the documented motor, encoder, servo, I2C, and LED pin mappings

  • it starts the user and status LEDs breathing out of phase

  • it leaves the motor PWM outputs disabled unless the motor sweep demo is enabled

Optional menuconfig flags let you also:

  • initialize and poll the four encoder inputs

  • run a stronger sinusoidal motor sweep across the four channels, with a zero crossing window and an active command range chosen to push past typical motor deadband

The indicator LEDs continue pulsing while the motor sweep is active because the motor outputs use MCPWM instead of LEDC.

How to use example

Hardware Required

This example is designed for the MotorGo Plink board.

The default configuration does not require motors or encoders to be connected. If you enable the motor-sweep or encoder-polling options, connect the matching hardware first.

Configuration

Open the example configuration menu if you want to enable the optional hardware exercise modes:

idf.py menuconfig

Then open MotorGo Plink Example Configuration and enable any of:

  • Enable encoder polling

  • Enable motor sweep demo

Build and Flash

Build the project and flash it to the board, then run monitor tool to view serial output:

idf.py -p PORT flash monitor

(Replace PORT with the name of the serial port to use.)

(To exit the serial monitor, type Ctrl-].)

Previous Next

© Copyright 2022 - 2026, William Emfinger.

  • Built with Sphinx using a theme based on Read the Docs Sphinx Theme.