Frank: Does this mean your Rev #4 board is tested and safe to relink for general use?
Also - what else was on your 'castellated' T_3.1 mounting board you posted the snip of showing proto area? I didn't see a link to it.
Frank: Does this mean your Rev #4 board is tested and safe to relink for general use?
Also - what else was on your 'castellated' T_3.1 mounting board you posted the snip of showing proto area? I didn't see a link to it.
Frank's version 4 MemoryBoard just arrived from OSH Park!
Frank, do you have parts placement diagram I could print, so Erin can solder up one of these boards? If not, I can probably draw something.
One useful piece of info would be the order to populate the 6 memory chips. We'll probably build the first board with 1 or 2 chips, and if that works, another with all 6. I'm pretty sure I have only 8 memory chips left.
Wow cool, i still have to wait..
Sorry, have no diagrm. Aren't the IC# numbers printed on the board ?
On the backside (the 8-pin soic the RAMS, ascending numbers, pin 1 is marked),
on the top there is only one soic-16 and one soic-14 so nothing can not be confused.
All 'C' are 0.1uf, all R something like 10K or more..
Pls sorry, it's midnight, i can write details tomorrow. I hope it works!
Perhaps solder it without RAMs, and check wether all chipselect-pins are working before adding the RAMs!
Paul,
I built a memoryboard3 over the weekend -- parts placement was straightforward using the part id's printed on the board. It's up and running with no errors from the test program.
The design appears to be sound -- look forward to hearing how the memoryboard4 works.
Best regards,
Michael
I can confirm Memoryboard4 works with IC1 and IC2.
I'm building one now with all 6 chips.....
Memoryboard4 is working with all 6 chips!
I've added support in the audio library. Anyone who builds on should be able to have it "just work" with the audio lib. Well, you do have to add the "AUDIO_MEMORY_MEMORYBOARD" parameter to the AudioEffectDelayExternal constructor. See the code below for an example.
In other news, 9 seconds is far beyond my "it's working" attention span for electronics....
Here's a little test program.
(click for full size)
Notice the horizontal scale is 1 second per division!
Code:#include <Audio.h> #include <Wire.h> #include <SPI.h> #include <SD.h> #include <SerialFlash.h> AudioSynthWaveformSine sine; AudioEffectEnvelope env; AudioEffectDelayExternal dly(AUDIO_MEMORY_MEMORYBOARD); AudioMixer4 mix; AudioOutputI2S headphones; AudioConnection patchCord1(sine, env); AudioConnection patchCord2(env, dly); AudioConnection patchCord3(dly, 0, mix, 0); AudioConnection patchCord4(dly, 1, mix, 1); AudioConnection patchCord5(env, 0, headphones, 0); AudioConnection patchCord6(mix, 0, headphones, 1); AudioControlSGTL5000 audioShield; void setup() { AudioMemory(10); audioShield.enable(); audioShield.volume(0.6); sine.amplitude(0.9); sine.frequency(800); dly.delay(0, 8000); dly.delay(1, 9000); } void loop() { env.noteOn(); delay(450); env.noteOff(); delay(10000); Serial.print("CPU: "); Serial.println(AudioProcessorUsageMax()); AudioProcessorUsageMaxReset(); }
Great news !
Now that I know that the board is ok:
Here is the link!
https://oshpark.com/shared_projects/KZt5PaU7
Thank you Paul!
Can i use them for github and OSH-Park project descriptions ?
Are those memory chips: 23LC1024 ? Even with HiDef images my ChipID search_foo is lacking
<edit>: Also is there a drop in FLASH chip that would work interchangeably on this board as designed for static memory?
Last edited by defragster; 08-19-2015 at 09:16 PM.
Frank --- would you mind posting the .sch file, too? i suppose it looks straightforward enough but just to make sure. (ie for people not wanting to stack too many boards or use other pins)
Last edited by mxxx; 08-19-2015 at 09:40 PM.
I updated the repository, and added your video too:
https://github.com/FrankBoesing/memoryboard
I have plans to add more sourcecode/examples (not audio) , and perhaps code for flash, mixed ram/flash.
But this will take some time.
Last edited by Frank B; 09-25-2015 at 06:32 AM. Reason: typo
I've updated the web design tool documentation, including a photo of Memoryboard4.
http://www.pjrc.com/teensy/gui/?info...tDelayExternal
Hi,
Trying to do digital delay for guitar. Delay work's fine at long delay times and external memory also. But if I'll try to adjust delay time with potentiometer, there is crunching and crackling constantly. Also there is huge amount of background noise. Initial test code:
Code:#include <Audio.h> #include <Wire.h> #include <SPI.h> #include <SD.h> #include <SerialFlash.h> //const int myInput = AUDIO_INPUT_MIC; const int myInput = AUDIO_INPUT_LINEIN; // GUItool: begin automatically generated code AudioInputI2S i2s1; //xy=221,271 AudioMixer4 mixer1; //xy=388,160 AudioEffectDelayExternal delayExt1; //xy=528,436 AudioMixer4 mixer2; //xy=545,175 AudioOutputI2S i2s2; //xy=813,254 AudioConnection patchCord1(i2s1, 0, mixer1, 0); AudioConnection patchCord2(i2s1, 1, mixer1, 1); AudioConnection patchCord3(mixer1, 0, mixer2, 0); AudioConnection patchCord4(mixer1, delayExt1); AudioConnection patchCord5(delayExt1, 6, mixer2, 2); AudioConnection patchCord6(delayExt1, 7, mixer1, 2); AudioConnection patchCord7(mixer2, 0, i2s2, 0); AudioConnection patchCord8(mixer2, 0, i2s2, 1); AudioControlSGTL5000 audioShield; // GUItool: end automatically generated code int delayt; void setup() { AudioMemory(10); audioShield.enable(); audioShield.volume(1); audioShield.inputSelect(myInput); mixer1.gain(0, 0.5); mixer1.gain(1, 0.5); mixer1.gain(2, 0.5); // mix1.gain(3, 0.4); mixer2.gain(0, 0.5); mixer2.gain(2, 0.5); delayExt1.delay(6, 1500); delayExt1.delay(7, 1500); } void loop() { int n = analogRead(15); if (n != delayt) { delayt= n; delayExt1.delay(6, delayt*2); delayExt1.delay(7, delayt*2); } int vol = analogRead(15); delay(250); }
Last edited by Juhap82; 09-10-2015 at 03:48 PM.
Yes, changing the delay while the delay loop is runing will create bad effects unless you are very careful. The sample point of the delay will make big jumps that are not phase adjusted, and the result will be like ripping the sound apart. You can add code to move the delay time smoothly, giving a phasor effect, or setting up a new delay with the modified delay time and make some kind of smoth transition, crossfade, between delay times.
Here is the schematic of an old Version:
https://forum.pjrc.com/threads/28599...ll=1#post77403
The only differences are:
- CS is now on Pins 2,3,4
- More decoupling capacitors
Edit: I realized, that it is difficult to solder the Winbond-Flash. The package is a bit too wide (>5mm) for the solderpads. But it's possible.
I make a new version, when the T3.x ++ comes out..
Last edited by Frank B; 09-26-2015 at 10:48 AM.
I've got a spare Memoryboard 4 from my OSH Park order, if anyone UK based wants it drop me a note and I'll pop it in the posts (free to a good home). Cheers, Paul
PS many thanks to Frank and Paul S for sharing their work on these these excellent tools.
Is there any chance to find someone who provides a fully assembled memory-board at an reasonable price? I would like to assemble it myself, but despite I earned some money with soldering earlier in my student days, my abilities in soldering SMD stuff are quite inexistent ... so I'm hoping some enthusiast might help me with this problem ... because I would like to use the teensy board (my favorite among all "Arduino like programmable" boards!) for some audio experiments like crossover-network for a little Loudspeaker-Box or even to create an individual synthesizer. So some fast accessible memory will be helpful in this matter ...
THX, Manfred
I don't know of anyone selling the memory shield.
Before you put too much time and money into pursuing a memory shield, you might ask whether it'll really do you much (or any) good. Currently the audio library has only 1 object which uses the memory shield, for long delays. If you're building real-time effects that need a delay more than about 0.3 to 0.5 second, the memory shield could really help. Otherwise, nothing else in the library makes use of its memory.
You can get short but very useful delays without the memory shield. For example, see the new tutorial video starting at 16:55. There's also a filter demo right after the two delay demos.
https://www.youtube.com/watch?v=wqt55OAabVs
Most of the things you'd do with synthesis just don't need lengthy delays. Likewise, filters you'd use for speaker crossover applications don't use external memory.
Building a memory shield will only help if you use the external memory delay object. Of course, if you're doing something really strange that needs long delay, it's pretty awesome!