No one is sitting around their workbench trying to come up with the next great oscilloscope or multimeter, but function generators still remain one of the pieces of test equipment anyone – even someone with an Arduino starter pack – can build at home. Most of these function generators aren’t very good; you’re lucky if you can get a sine wave above the audio spectrum. [Bruce Land] had the idea to play around with DMA channels on a PIC32 and ended up with a function generator that uses zero CPU cycles. It’s perfect for a homebrew function generator build, or even a very cool audio synthesizer.
The main obstacles to generating a good sine wave at high frequencies are a high sample rate and an accurate DAC. For homebrew function generators, it’s usually the sample rate that’s terrible; it’s hard pushing bits out a port that fast. By using the DMA channel on a PIC32, [Bruce] can shove arbitrary waveforms out of the chip without using any CPU cycles. By writing a sine wave, or any other wave for that matter, to memory, the PIC32 will just spit them out and leave the CPU to do more important work.
[Bruce] was able to generate a great-looking sine wave up to 200 kHz, and the highest amplitude of the harmonics was about 40db below the fundamental up to 100 kHz. That’s a spectacular sine wave, and the perfect basis for a DIY function generator build.


[Max] designed all of the mechanical parts himself. After weighing the advantages and disadvantages of different materials, he decided that the frame would be made from 5mm acrylic sheet. The main body of the robot has acrylic ribs that are spaced apart by threaded rods. Twelve RC servos make up all of the joints, 3 in each leg. Notice in this photo how there is one servo that immediately rotates another servo. To support the other side of the rotating servo, [Max] epoxied on a T-nut, stuck in a short length of threaded rod which is then supported in the frame by a ball bearing. Simple and effective! The upper portions of the legs are also made from acrylic sheet and the lower legs are from a cheap camera tripod. Rubber feet ensure a slip resistant stance.



