One of the most basic yet useful instruments in a electronics desk is a function generator.
From the basics, a function generator is an instrument that generates waveforms with a well known pattern to serve as input to test and debug analog circuit blocks.
The usual signals are Square, Triangular and Sine waveforms.
Digital systems have a hard time generating high frequency analog signals, meaning anything different from zeros and ones (square wave). Therefore to generate a triangular ramp signal and sine waveform, the digital systems (like a Intel Edison) will need a DAC (Digital to Analog Converter) attached to one of its port.
The simplest and cheapest form of DAC is a simple R2R Ladder. Made only with resistors.
The purpose of this article is to make a board with a R2R Ladder network to convert the signal in a byte (8 bits) format into a analog signal (with varying voltages between zero volts (GND) and supply voltage (VDD)).
First you´ll need to download the PCB files and make a printed circuit board shield (use your own method) and the plug this shield into Intel Edison arduino compatible breakout board.
On Intel Edison, run the code FunctionGenerator.c ...
I wrote this code in vim, directly on Edison and compiled with gcc using libmraa.
Type the following command:
gcc FunctionGenerator.c -o FunctionGenerator -lmraa
Then run the executable program in the shell:
And look at the output waveforms using an oscilloscope.