When I think about signals generators, I usually think about equipment that costs several hundred dollars, but depending on your needs you could also use much cheaper solutions like PSLab electronics lab board ($65), or an Arduino board to generate a signal.
Another option is to get an ultra-cheap signal generator such as XY-PWM1 which I found on ICStation for just $4.19.Its function is limited to PWM pulses from 1Hz to 150KHz, with a voltage range between 3.3V and 30V.
- LCD display showing frequency and duty cycle
- Voltage Range – DC 3.3V-30V
- Frequency range
- Normal mode: 1Hz~150KHz
- Precise mode: 1Hz~15KHz
- Frequency accuracy: 2%
- Duty cycle accuracy
- 1% in Normal mode
- 0.1% in Precise mode
- Duty cycle range – 0.00%-100%
- Output Current – About 5-30mA
- Dimensions – 79x43x37mm
- Temperature Range – -40~85
- Humidity – 0%~95% RH
There’s no obvious button to select mode, but apparently, you’d just need to use a combination of short and long press to select the mode and adjust the duty cycle and frequency using the potentiometer.
A typical workflow goes as follows:
- Connect to power supply
- Press rotary switch for 10second to switch Normal mode and Precise mode
- Short press rotary switch to set frequency and change value by rotating switch
- Press rotary switch for 2 seconds to set the duty cycle
- Keep press for 5second to lock set parameters
- Test
- Remove power and connect load to use module.
They have an interesting way to display frequencies at 100KHz or greater:
- Display ‘100’ means PWM output frequency is 100Hz
- Display ‘1.91’ means PWM output frequency is 1.91KHz
- Display ‘52.1’ means PWM output frequency is 52.1KHz
- Display ‘1.3.4’ means PWM output frequency is 134KHz;
This type of tool can be used to generate square waves, to control motors, as a dimmer, or speed governor, and more.
Beside ICStation, XY-PWM1 can also be purchased on Aliexpress or eBay for under $5. I could also find a similar model on Amazon (WHDTS)with basically the exact same features, except the rotary switch is replaced by four touch buttons.

Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress