Feedback on Function Generator App Design - Page 1
Forum section: electronics / projects

author: aaronsnoswell
author_rank: Contributor
timestamp: September 24, 2013, 06:56:42 am
content: Hi All,I'm working on a Function Generator App for electronics hobbyists. I'm aware there are several out there that already do this, but I wanted to develop one anyways for fun. I've tried to use the 'flat design' approach that seems to be all the rage at the moment. I'd love to hear your feedback on the features and usability of this design. The screenshot is on Red Pen:http://redpen.io/qh74amThanks all

author: madshaman
author_rank: Frequent Contributor
timestamp: September 24, 2013, 07:13:46 am
content: Sweeps?

author: Harvs
author_rank: Super Contributor
timestamp: September 24, 2013, 09:11:17 am
content: When you say "app" my guess is you're talking about a phone/tablet? If so, I thought the outputs were all AC coupled at some point in the signal chain, in which case how are you going to implement the DC part?

author: madshaman
author_rank: Frequent Contributor
timestamp: September 24, 2013, 09:42:12 am
content: Quote from: Harvs on September 24, 2013, 09:11:17 amVery very good point!Too bad the outputs generally won't be other than AC coupled, otherwise you could write an open-loop bench supply App ^^'

author: aaronsnoswell
author_rank: Contributor
timestamp: September 24, 2013, 11:43:58 am
content: Thanks all.Great point Harvs! I didn't even think about that. Yes - planning to target both major phone OS's, with tablet versions later on.madshaman - I would love to include this feature, but am not sure how it would work from a user interface perspective. Essentially the user would need to specify two separate frequencies, and a time, then the program linearly interpolates between them - right? I'm a relative electronics hobbyist newbie myself - do people ever need to be able to sweep e.g. amplitude or other parameters?

author: madshaman
author_rank: Frequent Contributor
timestamp: September 27, 2013, 11:26:04 am
content: Quote from: aaronsnoswell on September 24, 2013, 11:43:58 amYes, you have the basic idea. Most signal sources that do sweeps usually provide an option to go one-way or back and forth, allow specification of the sweep period and some allow non-linear progressions of the frequencies etc.I'm positive *someone* has a use for being able to sweep other parameters. Many signal sources have the option of am/fm modulation, but there's not great utility at such low frequencies.If you're looking for feature creep you could always do stuff with the audio input as well and make your app into a full-fledged dynamic signal analyser with a tracking generator, but imho the devices' signal paths to digital and the dac/adcs themselves will have such deplorable harmonic and phase distortion (caused by non-linear response and timing jitter) that it wouldn't be useful. That's why those software-based audio analysers which use an audio card are total crap (but that's just my opinion)

author: aaronsnoswell
author_rank: Contributor
timestamp: October 07, 2013, 03:43:43 pm
content: Thanks,Yeah, I have vauge plans to maybe make other apps (e.g. signal analyser) in the future. I'm aware the audio A/D and D/A converters aren't that good - but even a crappy tool is better than no tool, for someone with none

author: madshaman
author_rank: Frequent Contributor
timestamp: October 08, 2013, 02:35:06 pm
content: Don't get me wrong, it's a great project and will have lots of uses as a tool.You are aware of its limitations. You could prolly null out, the harmonic distortion with an enormous table (I'd think you'd need a table by both frequency and amplitude because of the non-linear response of the system) and an interpolation scheme if you don't want a table as large as the number of points in your longest fft (sample-wise) by the resolution of the values in it.Without this kind of compensation it wouldn't be a good tool to determine if an amplifier circuit was linear, for example.Have you thought of building a little front end for this?

author: aaronsnoswell
author_rank: Contributor
timestamp: October 10, 2013, 05:16:34 pm
content: Yeah - a little board you could plug into the 3.15mm Jack that could include an amplifier (with external power of course) or something - it would also allow you to control the output impedance somewhat right?

author: madshaman
author_rank: Frequent Contributor
timestamp: October 25, 2013, 12:34:30 pm
content: Quote from: aaronsnoswell on October 10, 2013, 05:16:34 pmYeah, if you fed the output through an appropriate opamp for example, you'd have a lower output impedance (although I'd wager since the audio jack is expected to drive headphones, it already has a low output impedance, maybe 0-30 ohms; every device will be different so the opamp would normalise the output impedance). You could use a simple pot to control the gain.I'm unsure if you'd need to reduce/dynamically-adjust the input impedance to the opamp to keep the audio output behaving, I doubt it, it would draw more power from the device and as stated before, the output impedance of the audio port from device to device will be different.One additional thought: if you really wanted the output peak to peak voltage to be selectable by the user, you'll need variable attenuation in front of the input to your amplifying circuitry and some fancy circuitry to auto-calibrate the front end. Now things are getting a bit out of hand, you'll probably need a peak detector, a digital pot (to facilitate the input attenuation), a voltage reference and either a micro or some clever analog circuitry combined with some random logic to achieve this (at least if you want auto-calibration). At this stage in the thinking process, I'd be tempted to ditch the idea or abandon using the portable device for signal generation, maybe just use it for UI and make the front-end itself the function gen ^^'I haven't really thought much about this so take my advice with a grain or two of salt.