An Attiny3224 IC controls the system with a rotary encoder, a potentiometer, some buttons and a small display. It is powered with a USB-C connector.

The frequency range goes from 1 Hz to 7 MHz and the amplitude can go from less than 20mV to 3V approximately. Above 4 Mhz the maximum amplitude decreases to about 1.6 V, but there will be a 'boost' button to double the gain.

The sine wave looks good up to 5 MHz and then starts to show some distortion.

The signal is amplified with the high speed LMH6658 opamp. It has a 140 MHz GBWP and a slew rate of 700 V/μs. These parameters are key in the opamp selection, otherwise it won't be able to amplify much the signal above 500 KHz.

More details in the GITHUB project: https://github.com/aresta/Function_Generator