
Your hardware has a new alter ego.
If you have a second-generation Pulse Pal, head over to the new beta branch of Pulse Pal's public repository. There, you'll find two new firmware versions for Pulse Pal, each with a new object-oriented MATLAB API. Firmware v2.0.1 simplifies Pulse Pal's communication code with ArCOM functions, improving its USB data transfer speed and hackability. The other firmware entirely repurposes the device as a programmable, triggerable waveform generator.
WaveGen can play sine, sawtooth, triangle and square waves between 1 and 15kHz. It can also play white noise, and loop an arbitrary waveform of up to 40,000 samples at up to 50kHz sampling frequency (configurable). The output amplitude can range between 0 and 20V peak to peak (12 bits of resolution). Parametric waveforms are automatically sampled at ~60kHz (actually variable, depending on your requested frequency) so output will not be as seamless as a DDS, and you should definitely evaluate waveform quality before starting an experiment, to make sure it suits your needs. Switching between frequencies, amplitudes or waveforms requires recomputation of the waveform, so there is a tiny delay whose duration depends on the selected frequency. The firmware supports three TTL trigger-logic modes - triggered, gated and continuous playback. In triggered mode, you can set the playback duration for a single TTL pulse. Playback latency after a trigger signal is ~20 microseconds, providing excellent temporal control of your stimulus.
WaveGen documentation will become available shortly on the Pulse Pal wiki. For now, only MATLAB support is provided. Add /WaveformGenerator/ to your MATLAB path, and create an object with WaveGen = PulsePalWaveGen('COM3') where 'COM3' is your serial port. Modifying the fields of the object (i.e. WaveGen.frequency = 2500;) will immediately update the device.
We also encourage MATLAB users to try out the new object oriented Pulse Pal API in the beta repository branch, at /MATLAB_Gen2/. It provides a much cleaner interface with only two m-files, one of which is a copy of ArCOM. Pro tip: use the Arduino.cc software (not .org) to change Pulse Pal's firmware. Any bugs you encounter are of enormous interest - please post to the software support forums.
