Close

Pivot from the UI

A project log for Funktion Generator

An AVR DDS function generator.

tim-savageTim Savage 04/13/2017 at 08:160 Comments

While the large touch display would be nice, the frustration with unreliable initialisation of the display has made me look at what other displays. In the parts bin I also have a 128x128 Color LCD (with a nice driver) however, it utilises 3.3V logic which has led to a change to a ESP8266 as the master MCU.

There is a number of side benefits of using the ESP8266, more flash storage (with a filesystem), Wifi and, a much faster clock speed. The filesystem has been a real boon for storing Waveforms and ll of my standard wave forms are now stored here. Wifi has come in really handy, as I already had a fairly capable piece of software for designing waveforms having a network connection provides for a simple way to get custom waveforms onto the device. The ESP8266 also comes with a mDNS library providing ZeroConf support (supported by the Python zeroconf library listening for new Funktion generator devices on my network).

There is one caveat however, limited IO pins. To build the UI, I'm leaning towards a second ATTiny to drive/handle button and rotary encoder inputs.

Project Status

The initialisation sequence is complete (with both boot display and serial dump of the boot sequence) and is dropping into a main screen. Currently investigating options for building a rich GUI. I'd prefer to get an pre-built solution (or at least modify an existing one) rather than building a toolkit myself, of course this project is all about learning new skills so a simple interface toolkit might have to just be written (I spent years building GUI's for PalmOS) ryankurte's micro-gui looks like it could be a suitable base for this, customised for my situation.

On a side note I took the main DDS board along to the recent EEVBlog meetup and got some great feedback and suggestions.

Discussions