All figures are nominal and uncalibrated unless noted. Voltage figures are the
design values of the analog chain, not measurements against a traceable
reference.
Platform
Microcontroller
ATmega32A
Clock
16 MHz
Flash
32 KB — 25348 bytes used (77.4%)
SRAM
2 KB — 1250 bytes used (61.0%)
Firmware
Bare-metal C++; no Arduino framework, no OS, no dynamic allocation
Wireless
HM-10 Bluetooth Low Energy module on the MCU UART
Clients
Web app, PyWebView desktop app, Android app
Function generator
Channels
2
Frequency range
1 Hz - 20 kHz
Frequency range, Dual with both channels active
1 Hz - 10 kHz per channel
Frequency setting resolution
1 Hz
Underlying DDS resolution
9.31 µHz (32-bit phase accumulator at 40 kHz)
Update rate
40 kSa/s single channel; 20 kSa/s per channel in Dual
Built-in waveforms
Sine, square, triangle, sawtooth, haversine
Arbitrary waveform
1 per channel (waveform index 5)
Arbitrary table length
256 points CH1, 128 points CH2
Arbitrary point width
16-bit
Duty cycle
1 - 99% in 1% steps (square wave only)
Phase
0 - 359° in 1° steps
Output
Amplitude range
0.93 - 15.15 Vpp
Amplitude control
X9C103 attenuator + X9C104 gain digital potentiometers, 100 positions each = 10,000 analog combinations
Digital fine scale
15-bit, 32,768 steps
DC offset range
±7.58 V
Offset converter
16-bit DAC, 65,536 codes
Supply rails
±15 V analog, ±8 V, +5 V logic (78xx/79xx linear)
Signal converter
Dual 16-bit R-2R ladder DAC via daisy-chained 74HC595 shift registers
Converter interface
SPI at 8 MHz — one 16-bit word every 2 µs
Output filter
Sallen-Key low-pass
Frequency modulation
Carrier
≤ 10 kHz
Modulating frequency
≤ 1 kHz
Peak deviation
≤ 5 kHz
Modulating waveforms
Sine, square (FSK), triangle, sawtooth (chirp)
Channels
Both, independently
Oscilloscope
Input
Input divider
None on board — attenuation comes from the probe
Programmable gain
×0.19 - ×3.03 (10,000 combinations)
Converter full scale
±2.5 V at the converter node
Input range at unity gain
±2.5 V at the BNC (±25 V through a 10× probe)
Input range at minimum gain
±13.2 V at the BNC (±132 V through a 10× probe)
Input range at maximum gain
±0.83 V at the BNC (±8.3 V through a 10× probe)
Protection
Relay isolation (K4) only; no input clamp
16-bit SAR path
Method
Successive approximation; CH1 signal DAC as reference, LM393 comparator
Resolution
16 bits — 76 µV at the converter node
Referred to input at unity chain gain
76 µV at the BNC (~0.76 mV at a 10× probe tip)
Time per bit
~13.5 µs
Time per sample
216 µs (~4.6 kSa/s)
Available in
Oscilloscope mode only
Internal 10-bit ADC path
Method
ATmega internal ADC; touches no DAC
Resolution
10 bits — 4.88 mV at the converter node
Conversion
13 ADC clocks
Div32 prescaler
26 µs per sample (~38 kSa/s)
Div16 prescaler
13 µs per sample (~77 kSa/s), noticeably degraded
Available in
Oscilloscope mode and CH2 Generator + Scope mode
Acquisition and display
Capture depth
up to 1000 samples per burst
App display buffer
4096 samples
Automatic measurements
26, drag-reorderable, selection persisted
Cursors
4 draggable — 2 vertical, 2 horizontal
Trigger
Post-capture; edge, rising/falling, auto or normal
Hardware trigger circuit
None
Hardware timebase
None
Autoset
Searches upward from minimum gain
Link
Transport
Bluetooth Low Energy via HM-10
MCU-to-module UART
115200 baud, 8-N-1. Fixed — not switchable from the board or over BLE
Throughput, ASCII format
~1.1 kSa/s
Throughput, compact binary format
~3.5 kSa/s
Protocol
Line-oriented ASCII, CR/LF terminated
Relay assignment
Relay
Function
K1
Signal path configuration
K2
CH1 output gate — mutes when energised
K3
CH2 output gate — mutes when energised
K4
Oscilloscope input connect
K5
Redirects CH1’s gain pack into the comparator stage
Not specified here
The following are deliberately absent because no verified figure exists. Do not
infer them from the numbers above.
Output impedance and maximum output current.
The op-amp clip point, and therefore the true maximum output swing. The
amplitude figures above are the gain network’s design ceiling; they take no
account of where the output stage actually saturates against its ±15 V rails.
Analog bandwidth of the oscilloscope input chain, and its -3 dB point.
Amplitude and offset accuracy, linearity and temperature drift.
Total harmonic distortion of the generator output.
Power consumption and supply requirements.
BLE range.
These are measurable on a bench and should be characterised before any of them
is quoted.