<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="bbPress/1.0.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>LeafLabs Garden &#187; Topic: Fast shift register</title>
		<link>http://forums.leaflabs.com/topic.php?id=11822</link>
		<description>A place to share, learn, and grow...</description>
		<language>en-US</language>
		<pubDate>Fri, 22 Jan 2016 00:04:37 +0000</pubDate>
		<generator>http://bbpress.org/?v=1.0.2</generator>
		<textInput>
			<title><![CDATA[Search]]></title>
			<description><![CDATA[Search all topics from these forums.]]></description>
			<name>q</name>
			<link>http://forums.leaflabs.com/search.php</link>
		</textInput>
		<atom:link href="http://forums.leaflabs.com/rss.php?topic=11822" rel="self" type="application/rss+xml" />

		<item>
			<title>pyrohaz on "Fast shift register"</title>
			<link>http://forums.leaflabs.com/topic.php?id=11822&amp;page=2#post-26398</link>
			<pubDate>Sun, 02 Jun 2013 16:06:21 +0000</pubDate>
			<dc:creator>pyrohaz</dc:creator>
			<guid isPermaLink="false">26398@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;I like the look of the Orone mini, I'll be looking to definitely make one of them in the future!&#60;/p&#62;
&#60;p&#62;Back to the point of SPI, i've decided to use a much newer DAC that uses straight SPI, its the DAC8411 (I got some free sample off TI since i'm a student luckily!), it can be found:&#60;/p&#62;
&#60;p&#62;&#60;a href=&#34;http://www.ti.com/product/dac8411&#34; rel=&#34;nofollow&#34;&#62;http://www.ti.com/product/dac8411&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;This chip solely uses SCK and MOSI with a sync line and as far as I can decipher of the datasheet, sync is low triggered so I can just use the standard NSS pin to pull this up once data is finished transferring. The chip does have a 24bit shift register input where the topmost bits determine which mode the chip is in (00 is normal mode) therefore, for this, I can just pulse the data clock twice for these two then initiate serial transfer, after that, it needs an extra 6 &#34;padding&#34; bits which it doesn't care about, the sync is then bought high etc. Luckily, it works at up to 50MHz SPI so i'll be able to use it with full speed SPI.&#60;/p&#62;
&#60;p&#62;I'll update once I receiver the chip!
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "Fast shift register"</title>
			<link>http://forums.leaflabs.com/topic.php?id=11822&amp;page=2#post-26372</link>
			<pubDate>Sat, 01 Jun 2013 13:02:53 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">26372@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;tlgosser - &#60;em&#62;&#34;That is very interesting about a higher frequency data stream causing less noise.&#34;&#60;/em&#62;&#60;/p&#62;
&#60;p&#62;Sorry if I wasn't clear. Higher frequency sampling might cause more noise. However, if the noise is at a high frequency, it is &#60;em&#62;much&#60;/em&#62; easier to filter out, without introducing other signal distortion, than filtering noise near to the audio frequency range. Further, if it is random noise, rather than a repetitive signal, the noise energy is 'spread' across the frequency spectrum and becomes less noticeable too.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "Fast shift register"</title>
			<link>http://forums.leaflabs.com/topic.php?id=11822&amp;page=2#post-26369</link>
			<pubDate>Sat, 01 Jun 2013 06:08:42 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">26369@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;pyrohaz - &#60;em&#62;&#34;Do you know if LeafLabs are going to be making any more of the maple series or have they decided to no longer bother?&#34;&#60;/em&#62;&#60;/p&#62;
&#60;p&#62;LeafLabs staff have posted that they will continue to sell existing Maple designs, but are unlikely to develop a new board this year. A bunch of us are working on newer boards, but right now, these are DIY assembly, which might not be suitable for you.&#60;br /&#62;
The designs are discussed on:&#60;br /&#62;
&#60;a href=&#34;http://forums.leaflabs.com/topic.php?id=10410&#38;amp;page=10&#34; rel=&#34;nofollow&#34;&#62;http://forums.leaflabs.com/topic.php?id=10410&#38;amp;page=10&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;and the designs are at:&#60;br /&#62;
&#60;a href=&#34;https://github.com/gbulmer/openstm32hw&#34; rel=&#34;nofollow&#34;&#62;https://github.com/gbulmer/openstm32hw&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;ventosus has made an STM32F303 board using:&#60;br /&#62;
&#60;a href=&#34;https://github.com/gbulmer/openstm32hw/tree/master/Orone-mini-v0/Orone-mini-S8A-v0r001&#34; rel=&#34;nofollow&#34;&#62;https://github.com/gbulmer/openstm32hw/tree/master/Orone-mini-v0/Orone-mini-S8A-v0r001&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;I've updated that design to use lower-cost components (about 10 GBP + PCB), and hopefully easier to use a 'raw' STM32F303 at&#60;br /&#62;
&#60;a href=&#34;https://github.com/gbulmer/openstm32hw/tree/master/Orone-mini-v0/Orone-mini-S8E-v0r001&#34; rel=&#34;nofollow&#34;&#62;https://github.com/gbulmer/openstm32hw/tree/master/Orone-mini-v0/Orone-mini-S8E-v0r001&#60;/a&#62;
&#60;/p&#62;</description>
		</item>
		<item>
			<title>pyrohaz on "Fast shift register"</title>
			<link>http://forums.leaflabs.com/topic.php?id=11822&amp;page=2#post-26353</link>
			<pubDate>Fri, 31 May 2013 17:35:04 +0000</pubDate>
			<dc:creator>pyrohaz</dc:creator>
			<guid isPermaLink="false">26353@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;See I did consider getting the STM32F4 series but the board was massive! Can is be as easily programmed as the maple? I'm fine with low level GPIO changing but i'm not too sure on how to change timers and more complex topics like that, is it hard to move from maple environment to another ARM board?
&#60;/p&#62;</description>
		</item>
		<item>
			<title>mlundinse on "Fast shift register"</title>
			<link>http://forums.leaflabs.com/topic.php?id=11822&amp;page=2#post-26351</link>
			<pubDate>Fri, 31 May 2013 15:54:22 +0000</pubDate>
			<dc:creator>mlundinse</dc:creator>
			<guid isPermaLink="false">26351@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;For a synth project like this I think the STM32F4Discovery is good.&#60;br /&#62;
Its got an onboard codec and you can pick it up for 17 €,&#60;br /&#62;
Since its a STM32F4 chip it doesnt work well with the current Maple IDE&#60;br /&#62;
but you can use libmaple and download firmware using the USB ROM&#60;br /&#62;
dfu bootloader and an up to date dfu-util.&#60;br /&#62;
You dont have to spend your life bitbanging relucant spi ports,&#60;br /&#62;
an interesting hobby if you like that sort of stuff,&#60;br /&#62;
but a waste of time if you primarily wants to make sound.&#60;/p&#62;
&#60;p&#62;Just my take. I love the Maple and the dev environment&#60;br /&#62;
but its slowly slipping behing the main stream.&#60;/p&#62;
&#60;p&#62;Magnus
&#60;/p&#62;</description>
		</item>
		<item>
			<title>pyrohaz on "Fast shift register"</title>
			<link>http://forums.leaflabs.com/topic.php?id=11822&amp;page=2#post-26350</link>
			<pubDate>Fri, 31 May 2013 15:03:28 +0000</pubDate>
			<dc:creator>pyrohaz</dc:creator>
			<guid isPermaLink="false">26350@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;I agree with you on that one gbulmer, the data bit rate isn't extremely large. I also completely agree with you on the audio quality, i'm happy with my Cambridge Audio hi-fi, AKG Headphones and Tascam D/A, even with my young ears, I can't hear the difference between a 192kbps MP3 and a standard old Wav file, as much as i'm sure being an audiophile is good, I just don't seem to have good enough ears! I enjoy the music I listen to anyway so thats no worry. Great article though :) &#60;/p&#62;
&#60;p&#62;As you probably know from one of my many last posts, i'm currently using two 8 bit PWM outputs summed together with a 1:256 resistor value ratio to produce the output, while this suffices for the current version of the project, its pretty noisy! And I can imagine that the phase difference between each PWM isn't amazing, not forgetting resistor precision.&#60;/p&#62;
&#60;p&#62;Surprisingly, the TDA1543 has dedicated DACS internally as opposed to any delta sigma stuff, though it is from the very early 90's, probably why its so cheap!&#60;/p&#62;
&#60;p&#62;Do you know if LeafLabs are going to be making any more of the maple series or have they decided to no longer bother? I've recently bought a PIC32MX440 which has a higher DMIPS than the ARM at cost of higher power etc. I've also got the ST discovery STM32F0 board (it was only £7 so I thought why not!)&#60;/p&#62;
&#60;p&#62;And close! Its just a synthesizer project, i'm quite happy to have squeezed all the DSP processing into about 15us!&#60;/p&#62;
&#60;p&#62;It was a good idea to use a stand alone waveform generator, it just unfortunately doesn't suit my needs! &#60;/p&#62;
&#60;p&#62;I was considering using the AD1851 but it required a split supply which I unfortunately don't have!
&#60;/p&#62;</description>
		</item>
		<item>
			<title>tlgosser on "Fast shift register"</title>
			<link>http://forums.leaflabs.com/topic.php?id=11822&amp;page=2#post-26349</link>
			<pubDate>Fri, 31 May 2013 12:56:11 +0000</pubDate>
			<dc:creator>tlgosser</dc:creator>
			<guid isPermaLink="false">26349@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Wow!  That's a lot of DSP.  Is this a mega-stompbox?&#60;/p&#62;
&#60;p&#62;That is very interesting about a higher frequency data stream causing less noise.&#60;/p&#62;
&#60;p&#62;I use 12bit AD5340s for industrial purposes.  It can be latched open so that whatever number you write to the port register comes out as a voltage.  Doesn't get any faster than that.  That resolution may not suit your needs but since as you say there are no 'complete' registers available that may be the best that can be done.  They're $5.16 at Arrow.&#60;/p&#62;
&#60;p&#62;The AD9833 is what I was thinking of for the waveform, also probably unsuitable for audio since they take 6 cycles to change frequency.  They do make a clean sine.&#60;/p&#62;
&#60;p&#62;Obviously I am not an audio guy so I will recluse myself.  Sounds like an interesting project.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "Fast shift register"</title>
			<link>http://forums.leaflabs.com/topic.php?id=11822#post-26347</link>
			<pubDate>Fri, 31 May 2013 11:39:58 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">26347@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;tlgosser - &#60;em&#62;&#34;f you really need speed the best way to do it is usually with a parallel input DAC.&#34;&#60;/em&#62;&#60;/p&#62;
&#60;p&#62;Agreed, if high speed were the only aim.&#60;/p&#62;
&#60;p&#62;The data rate for audio is quite low. Christopher “Monty” Montgomery has quite a good explananation of why 16 bit 48ksamples/s is as good as we can perceive: &#60;a href=&#34;http://xiph.org/~xiphmont/demo/neil-young.html&#34; rel=&#34;nofollow&#34;&#62;http://xiph.org/~xiphmont/demo/neil-young.html&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;For mono that is only 48k * 16 = 768Kbit/s.&#60;/p&#62;
&#60;p&#62;Even if we go for higher sample rates, and wider samples to make signal processing easier, then 192ksample/s 24bit/sample or 32 bit/sample is a common serial data rate, AFAIK good enough for most applications. For stereo that is 2 * 192k * 32 = 12.288 Mbit/s or 768k 16bit transfers/second.&#60;/p&#62;
&#60;p&#62;This is well within the capability of Maple's on-board serial shift registers (upto 18Mbit/s). This is about the same as USB. So if the signal paths to the DAC or CODEC are reasonably short and shielded, it should be pretty good. &#60;/p&#62;
&#60;p&#62;Further serial transfer only takes three pins, data, clock and 'word select', which is much easier to layout than 16, 24 or 32 pins plus latch and right/left. Also SPI or I2S may have a small benefit of flexibility to trade-off sample rate and word size without changing board layout. &#60;/p&#62;
&#60;p&#62;Much MCU and chip pricing is strongly related to the number of pins. So for production, a chip which only needs 3 pins for audio vs 17 upto 34 pins will be lower cost, and potentially require less PCB area. So bit serial has some useful commercial and technical advantages over parallel data transfer at these low-bit rates.&#60;/p&#62;
&#60;p&#62;I2S is an augmented SPI. As well as SPI's data and clock signals, it provides 'word select' which is typically used to identify the channel, and also defines the word length or number of bits in a frame. The TDA1543 is a low-cost example, it is an 8pin chip, which is likely part of the reason it is so low-cost. AFAICT, the majority of consumer-end audio CODECS use I2S for audio data. &#60;/p&#62;
&#60;p&#62;There may be another benefit from serial audio data, especially most-significant-bit first. The DAC might not actually implement a traditional DACs multi-value conversion mechanism, but instead might be 'bit stream' or 1-bit DAC: &#60;a href=&#34;http://en.wikipedia.org/wiki/1-bit_DAC&#34; rel=&#34;nofollow&#34;&#62;http://en.wikipedia.org/wiki/1-bit_DAC&#60;/a&#62;. Bit stream conversion can be easy and cheap to make. One advantage over multi-value DACs is the output signal 'runs' at multi-MHz; the the noise from D to A conversion is such a high frequency that it is easy to filter from the audio output. Audio CODECs often include this circuitry, making them even easier to use than a simple DAC.&#60;/p&#62;
&#60;p&#62;If folks used the more recent STM32F's (e.g. STM32F3 on my Orone-mini :-) or the higher-density STM32F103 (e.g. on the RET6), then they get I2S peripheral hardware on the MCU, so this becomes even easier.&#60;/p&#62;
&#60;p&#62;(Full disclosure: I am not a member of LeafLabs staff.)
&#60;/p&#62;</description>
		</item>
		<item>
			<title>pyrohaz on "Fast shift register"</title>
			<link>http://forums.leaflabs.com/topic.php?id=11822#post-26334</link>
			<pubDate>Fri, 31 May 2013 06:34:33 +0000</pubDate>
			<dc:creator>pyrohaz</dc:creator>
			<guid isPermaLink="false">26334@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Yeh, I think that SPI would be the best way forward personally, the DMA option sounds great because i'm trying to keep my ISR routine as short as possible (i'm currently on about 16us while it fires every 22.2us or so consuming about 75% of cpu time), luckily in my loop, i'm not doing much, just a bit of low level IO and calculating the tuning words.&#60;/p&#62;
&#60;p&#62;With using SPI, it normally works by setting a device select output low, can this be automated along with the SPI transfer?&#60;/p&#62;
&#60;p&#62;I'm only really using this chip because its cheap as chips! Two of them cost me ~£2, i've got a fair few audio projects lined up so at that price, its perfect!&#60;/p&#62;
&#60;p&#62;Do you know any well priced 16 bit parallel dacs? I can easily free up one of the GPIO's although none of them seem to be able to transfer a full 2bytes as one seems to be missing from A, B and C.&#60;/p&#62;
&#60;p&#62;I would use a signal generator chip outboard but that limits my DSP within the maple, i've got a phaser, bit crusher, filter, distortion, multiple oscillators and envelope generators i'm afraid!
&#60;/p&#62;</description>
		</item>
		<item>
			<title>tlgosser on "Fast shift register"</title>
			<link>http://forums.leaflabs.com/topic.php?id=11822#post-26319</link>
			<pubDate>Thu, 30 May 2013 19:04:15 +0000</pubDate>
			<dc:creator>tlgosser</dc:creator>
			<guid isPermaLink="false">26319@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;I'm not sure why you are using this chip?  If you really need speed the best way to do it is usually with a parallel input DAC.  You can shoot a whole port register straight in and get a voltage out with no funny business.  Also there are I2C sine/square/sawtooth generators that put out nice perfect sine waves according to your requested frequency.&#60;/p&#62;
&#60;p&#62;Is there a reason you want to use this chip?  Shift register chips are not usually optimal for making high speed changes.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "Fast shift register"</title>
			<link>http://forums.leaflabs.com/topic.php?id=11822#post-26318</link>
			<pubDate>Thu, 30 May 2013 18:54:46 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">26318@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;The main advantage of using SPI to shift the bits into a device, in this case TDA1543, is the processor can do other things at the same time. &#60;/p&#62;
&#60;p&#62;ventosus' gives a code example which shows how to get things working. However, once everything is working the way pyrohaz needs it, then the code code be moved into an interrupt service routine, and driven by a clock interrupt. &#60;/p&#62;
&#60;p&#62;The SPI peripheral needs servicing roughly every 2.6us (192kHz * 2 16bit transfers). This is quite quick, but it is still slow enough for an interrupt service routine to handle, and leave time for other processing. I guess a well written interrupt routine would take under 25% of the processor, so plenty available for other things.&#60;/p&#62;
&#60;p&#62;Further, the transfer to SPI could be done using DMA, triggered by the clock, with no processor interaction for longer periods. This would take a bit of ingenuity to get the word select signal, but pyrohaz says mono is enough. It may be feasible to set up a buffer-full of values for transfer by DMA via SPI to the TDA1543 such that it only needs attention every few milli seconds. At that sort of rate the processor could do a lot of other work in between attending to the DMA transfers.&#60;/p&#62;
&#60;p&#62;Of course, it is possible to use DMA to toggle GPIO pins, but for a single bit stream, SPI is a pretty good fit.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>pyrohaz on "Fast shift register"</title>
			<link>http://forums.leaflabs.com/topic.php?id=11822#post-26317</link>
			<pubDate>Thu, 30 May 2013 18:16:52 +0000</pubDate>
			<dc:creator>pyrohaz</dc:creator>
			<guid isPermaLink="false">26317@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;I had a quick mess around with the SPI library but didn't seem to get very far, I bought my chips from HK and they don't seem to respond to any form of data (the output stays constant regardless of any inputs) could it be that I've biased them incorrectly? Looking at the data sheet and how op amps are directly connected to the output would show that i'd need to bias to vdd/2 for maximum headroom, is this correct?&#60;/p&#62;
&#60;p&#62;As far as I know too, you have to pulse the bit clock when changing the word select too! Manual implementations of I2S is a massive ball ache!
&#60;/p&#62;</description>
		</item>
		<item>
			<title>tlgosser on "Fast shift register"</title>
			<link>http://forums.leaflabs.com/topic.php?id=11822#post-26314</link>
			<pubDate>Thu, 30 May 2013 14:09:51 +0000</pubDate>
			<dc:creator>tlgosser</dc:creator>
			<guid isPermaLink="false">26314@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;I'm getting exactly the same speed with my code as you were with your original example.  digitalWriteFaster.h is using moderator gbulmer's bit banding code.  I'll be curious if there is any improvement with SPI:&#60;/p&#62;
&#60;p&#62;#include &#34;digitalWriteFaster.h&#34;&#60;/p&#62;
&#60;p&#62;int latchPin = 36;&#60;br /&#62;
int clockPin = 34;&#60;br /&#62;
int dataPin = 32;&#60;/p&#62;
&#60;p&#62;void shiftOutFaster16(uint8 dataPin, uint8 clockPin, int val) {// this is correct only for MSBFIRST&#60;br /&#62;
    int i;&#60;/p&#62;
&#60;p&#62;    for (i = 0; i &#38;lt; 16; i++) {&#60;br /&#62;
        digitalWriteFaster(dataPin, !!(val &#38;amp; (1 &#38;lt;&#38;lt; (15 - i))));&#60;br /&#62;
        digitalWriteFaster(clockPin, HIGH);&#60;br /&#62;
        digitalWriteFaster(clockPin, LOW);&#60;br /&#62;
    }&#60;br /&#62;
}&#60;/p&#62;
&#60;p&#62;void setup(){&#60;br /&#62;
  pinMode(latchPin, OUTPUT);&#60;br /&#62;
  pinMode(clockPin, OUTPUT);&#60;br /&#62;
  pinMode(dataPin, OUTPUT);&#60;br /&#62;
}&#60;/p&#62;
&#60;p&#62;void loop() {&#60;/p&#62;
&#60;p&#62;    digitalWriteFaster(latchPin, LOW);&#60;br /&#62;
    shiftOutFaster16(dataPin, clockPin, 43690);//I don't know why you wanted this number&#60;br /&#62;
    digitalWriteFaster(latchPin, HIGH);&#60;/p&#62;
&#60;p&#62;}
&#60;/p&#62;</description>
		</item>
		<item>
			<title>ventosus on "Fast shift register"</title>
			<link>http://forums.leaflabs.com/topic.php?id=11822#post-26310</link>
			<pubDate>Thu, 30 May 2013 04:10:34 +0000</pubDate>
			<dc:creator>ventosus</dc:creator>
			<guid isPermaLink="false">26310@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Wirish only supports 8bit SPI mode (&#60;a href=&#34;http://forums.leaflabs.com/topic.php?id=2624)&#34; rel=&#34;nofollow&#34;&#62;http://forums.leaflabs.com/topic.php?id=2624)&#60;/a&#62;. To get access to 16bit mode, you'll have use some of the underlying libmaple functions.&#60;/p&#62;
&#60;p&#62;Something like the following may work or at least get you on the right track (NOTE: this is not tested).&#60;/p&#62;
&#60;p&#62;&#60;code&#62;&#60;br /&#62;
void setup(){&#60;br /&#62;
pinMode(30, OUTPUT);&#60;br /&#62;
spi.begin(SPI_9MHZ, MSBFIRST, SPI_MODE_1);&#60;br /&#62;
uint32 cr1 = SPI2-&#38;gt;regs-&#38;gt;CR1; // get the current SPI configuration&#60;br /&#62;
cr1 &#124;= SPI_CR1_DFF_16_BIT; // enable 16bit mode&#60;br /&#62;
spi_reconfigure(SPI2, cr1); // reconfigure the SPI device in 16bit mode&#60;br /&#62;
}&#60;/p&#62;
&#60;p&#62;uint16_t left, right;&#60;/p&#62;
&#60;p&#62;void loop(){&#60;br /&#62;
digitalWrite(30, LOW);&#60;br /&#62;
spi_tx(SPI2, &#38;amp;left, 1)&#60;br /&#62;
digitalWrite(30, HIGH);&#60;br /&#62;
spi_tx(SPI2, &#38;amp;right, 1);&#60;br /&#62;
}&#60;br /&#62;
&#60;/code&#62;
&#60;/p&#62;</description>
		</item>
		<item>
			<title>tlgosser on "Fast shift register"</title>
			<link>http://forums.leaflabs.com/topic.php?id=11822#post-26307</link>
			<pubDate>Thu, 30 May 2013 02:14:32 +0000</pubDate>
			<dc:creator>tlgosser</dc:creator>
			<guid isPermaLink="false">26307@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;The new digitalWriteFaster library includes shiftOutFaster:&#60;br /&#62;
&#60;a href=&#34;https://github.com/tlgosser/Maplefiles&#34; rel=&#34;nofollow&#34;&#62;https://github.com/tlgosser/Maplefiles&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;I don't know offhand if it will be faster but it certainly is simpler!
&#60;/p&#62;</description>
		</item>

	</channel>
</rss>
