Made this prototyping board

Started by cloudscapes, October 27, 2014, 09:31:05 PM

Previous topic - Next topic

cloudscapes

Since I've got a couple upcoming projects built around the same foundations, I designed this prototyping board yesterday to help. PCBs should arrive from oshpark in a couple weeks.



It has very little analog stuff on it. I made it to be plugged along the top of my breadboard. It's got the power supply stuff, the microcontroller, hooked up to a 12bit ADC and 16bit DAC, and accompanying circuitry. Plus a bunch of socketed serial SRAM. 4Mb worth. Not much for a looper, but certainly good enough for a delay! About 8 seconds worth at an okay quality, 32khz 16bit.

And that's what I want to do first. :) I've got time off until january, and I haven't really made a new design since 2012! I want to build a PDS style delay! I have a PDS8000 I love dearly, on its last legs that I've decided to take off my board, in fear of destroying it completely. They're getting harder and more expensive to find. So that's where this prototyping board will come in.

- Two soft stomp design. Relay bypass. Hold mode on the other stomp (like the PDS)
- Delay time, delay range switch, delay regen, blend, input and output (also like the PDS)
- New stuff, like modulation (somewhat like the 20/20)
- Resonant analog filter, and digital tape-ish "erosion" effect (already wrote the effect for another PIC32 project of mine. re-use!)
- Reverse toggle, maybe tap tempo
~~~~~~~~~~~~~~~~~~~~~~
{DIY blog}
{www.dronecloud.org}

SISKO

Lovely work!
I too have a PDS (clone), love those stuff.
Quote from: cloudscapes on October 27, 2014, 09:31:05 PM
- Resonant analog filter, and digital tape-ish "erosion" effect (already wrote the effect for another PIC32 project of mine. re-use!)

Why go analog when you have all the digital flexibility at hands?
--Is there any body out there??--

cloudscapes

Quote from: SISKO on October 27, 2014, 11:11:19 PM
Lovely work!
I too have a PDS (clone), love those stuff.
Quote from: cloudscapes on October 27, 2014, 09:31:05 PM
- Resonant analog filter, and digital tape-ish "erosion" effect (already wrote the effect for another PIC32 project of mine. re-use!)

Why go analog when you have all the digital flexibility at hands?

Thanks!

Because I'm not left brained enough to do the math for a digital filter. I've tried, and it was a headache. DSP is not something my brain can handle very easily. Meanwhile, an analog filter is a relative piece of cake. And looping/delay is just holding onto samples and playing them back a bit later.

I also want to experiment with the filter circuit, with clipping diodes, maybe a transformer, stuff I wouldn't even know where to begin with digitally.  :icon_biggrin: This way, I keep it to what I already know how to do, so it'll be a quick project.

Care to share some info on your PDS clone?
~~~~~~~~~~~~~~~~~~~~~~
{DIY blog}
{www.dronecloud.org}

cloudscapes

Also ordered the teensy 3.1 and the codec board today.

I've never used arduino. just been using bascom for 8bit AVRs, and mikroc for PIC32s. mikro have poor codec support, though (their one example, which took years to arrive after they started selling the board, is just a half-example), and a lot of the PIC32s I use just aren't suited for I2S/codecs anyway. figure I'd give ARM a try, this year. I was intimidated by coocox and some other IDEs which all looked like they were intended for engineers (which I am not) who already had in-depth knowledge of ARMs. so teensy it is! compiled code seems to be bloated, though. 10KB for a blinky led example? WTF

but yeah, I'm looking forward to both these things. the PIC32 board I made so I can quickly get started on the delay, and the teensy so I can learn something possibly less migrane-inducing.
~~~~~~~~~~~~~~~~~~~~~~
{DIY blog}
{www.dronecloud.org}

slacker

Nice, look forward to seeing what you come up with. Are you going to have an option to drop the sample rate for even longer delays? I've done 8 seconds of 16 Bit at 8Khz using one 23LC1024 and sound quality is Ok, very usable if a bit lofi.

Have you ever tried dsPICs? They have a specific interface for I2S that's relatively easy to use, basically the same as SPI once it's set up. I'm playing about with one and a codec at the minute.

cloudscapes

Quote from: slacker on October 28, 2014, 01:45:44 PM
Nice, look forward to seeing what you come up with. Are you going to have an option to drop the sample rate for even longer delays? I've done 8 seconds of 16 Bit at 8Khz using one 23LC1024 and sound quality is Ok, very usable if a bit lofi.

Have you ever tried dsPICs? They have a specific interface for I2S that's relatively easy to use, basically the same as SPI once it's set up. I'm playing about with one and a codec at the minute.

Yeah lots of samplerate control. The way I see it, I can have a 3-way toggle for delay ranges. 8/2/0.5 seconds. but on any of those modes, I could adjust the samplerate *3 or /3. so all the way up to 24 seconds at 11-ish khz.

I've used dsPICs, but at the time went with PIC32s instead since they were higher power (I know dsPICs now have 70mhz parts). which IDE I'm using makes the whole difference. I'm kind of at a crossroad now, and unsure how to proceed after the next couple projects. I think I just need to ditch the mikroc IDE/compiler altogether. they just don't seem to care about I2S support, even though they have compilers for dsPICs, PIC32s and ARM. sound just doesn't seem to be a priority for those guys.

so I'm kind of slowly shopping around for a new IDE that has lots of examples/libraries. I can't deal with peripheral configurations. 20 lines of stuff like "PKD653_.86sdhjDG=0000038" just to tell a timer to interrupt every milisecond makes my head hurt, and I will just avoid. and arduino is the other polar extreme. it's too simple and inflexible. I'm a bit discouraged.

it's all a matter of finding the right IDE for me, rather than chip (be it ARM, PIC32 or dsPIC).
~~~~~~~~~~~~~~~~~~~~~~
{DIY blog}
{www.dronecloud.org}

Ice-9

That looks fantastic Etienne, I'm looking forward to seeing the pcb when they arrive from oshpark. I've been thinking of trying out a new DSP other than my usual favourite.
www.stanleyfx.co.uk

Sanity: doing the same thing over and over again and expecting the same result. Mick Taylor

Please at least have 1 forum post before sending me a PM demanding something.

SISKO

Quote from: cloudscapes on October 27, 2014, 11:28:20 PM
Care to share some info on your PDS clone?

Im sorry for not being clearer, its not a clone of my own, its a copy of the PDS made by a national manufacturer named Aplauss in the 80s. Its in micro rack form. Theres a schematic for PDS if you are interested, though.

Quote from: cloudscapes on October 28, 2014, 12:05:35 AM
Also ordered the teensy 3.1 and the codec board today.


Excellent score! I hadnt had the chance to try its audio libray, but will do some time near. Its GUI is fantastic and you can learn what the differents blocks do by looking at thiers codes.

I should buy the audio codec..
--Is there any body out there??--

cloudscapes

Quote from: Ice-9 on October 29, 2014, 06:19:31 AM
That looks fantastic Etienne, I'm looking forward to seeing the pcb when they arrive from oshpark. I've been thinking of trying out a new DSP other than my usual favourite.

FV-1?

The PIC32 in my board isn't really a DSP, though it supports DSP instructions and is pretty fast multiplying 32bit words. it can pass audio at a pretty high quality with the right codec, too. 24bit 96khz isn't much of an issue, bit overkill though. but I'm thinking there are things the FV-1 would be better suited at, being a dedicated DSP.
~~~~~~~~~~~~~~~~~~~~~~
{DIY blog}
{www.dronecloud.org}

cloudscapes

Quote from: SISKO on October 30, 2014, 08:30:52 AM
Im sorry for not being clearer, its not a clone of my own, its a copy of the PDS made by a national manufacturer named Aplauss in the 80s. Its in micro rack form. Theres a schematic for PDS if you are interested, though.

Excellent score! I hadnt had the chance to try its audio libray, but will do some time near. Its GUI is fantastic and you can learn what the differents blocks do by looking at thiers codes.

I should buy the audio codec..

Thanks for the schematic offer, I'm fine (I have one too). And what I'll build won't be a clone anyway. My own implementation.

Yeah the audio library and seemingly immidiate plug & play of the codec is what got me to shell out the $40 for both boards! I have no experience with arduino though, so I'm still unclear on the capabilities. Shortly after buying the board, I also found out something I didn't quite like. How you need the bootloader chip plugged into the main ARM if you're going to be putting it on your own board.
~~~~~~~~~~~~~~~~~~~~~~
{DIY blog}
{www.dronecloud.org}

jk-fm

Quote from: cloudscapes on October 31, 2014, 11:31:34 PM
Shortly after buying the board, I also found out something I didn't quite like. How you need the bootloader chip plugged into the main ARM if you're going to be putting it on your own board.

I think you can add your own JTAG pin header and program it through OpenOCD, JTAG USB programmers start around $50.

cloudscapes

Quote from: jk-fm on November 06, 2014, 10:16:24 PM
Quote from: cloudscapes on October 31, 2014, 11:31:34 PM
Shortly after buying the board, I also found out something I didn't quite like. How you need the bootloader chip plugged into the main ARM if you're going to be putting it on your own board.

I think you can add your own JTAG pin header and program it through OpenOCD, JTAG USB programmers start around $50.

Yeah but from what I understood on their forum is that to be able to boot the teensyduino bootloader properly, it still needs the secondary bootloader chip.  To quote the teensy dev about running just the main ARM chip, "it's possible, but you'll have to resolve a lot more small issues".
~~~~~~~~~~~~~~~~~~~~~~
{DIY blog}
{www.dronecloud.org}

jk-fm

The Mini54 is only needed to load the program, once it is loaded you can power off and on without it.

Some users have made a programming board out of the Mini54 and the program button - run the traces that connect to the ARM out to pins, then put sockets on your ARM boards. If you don't use USB on the ARM, then put the USB socket on the Mini board and add more pins/sockets for them. Plug in, download program, unplug, box it up.

http://forum.pjrc.com/threads/26450-help-with-pre-programmed-MINI54-setup

cloudscapes

Quote from: jk-fm on November 13, 2014, 07:54:43 PM
The Mini54 is only needed to load the program, once it is loaded you can power off and on without it.

Some users have made a programming board out of the Mini54 and the program button - run the traces that connect to the ARM out to pins, then put sockets on your ARM boards. If you don't use USB on the ARM, then put the USB socket on the Mini board and add more pins/sockets for them. Plug in, download program, unplug, box it up.

http://forum.pjrc.com/threads/26450-help-with-pre-programmed-MINI54-setup


boom, that's what I needed it looks like! :) thanks! I did comb through a few dozens of pages of threads looking for something like this, but missed this one. unsurprisingly, since at the time I wasn't *quite* sure how it could have been done, so I didn't know exactly what to look for.

I've already recieved the teensy, though haven't done anything with it yet. I should be getting the board in my OP any day now, which is what I want to work on first
~~~~~~~~~~~~~~~~~~~~~~
{DIY blog}
{www.dronecloud.org}

jk-fm

Yeah, this is pretty much what I've wanted but don't have the time or skill to build - a Cortex M4 with a 16 or more bit codec. Maybe add a big ISSI PSRAM for long delay.

cloudscapes

Quote from: jk-fm on November 17, 2014, 08:22:44 PM
Yeah, this is pretty much what I've wanted but don't have the time or skill to build - a Cortex M4 with a 16 or more bit codec. Maybe add a big ISSI PSRAM for long delay.

Been wanting to integrate PSRAM... since I'm too dense to figure out refreshs on DRAM. Whenever I'd looked, could only find it in BGA. It's pretty elusive, but hopefully it's the next best thing.

Haven't jumped to ARM yet. I really should. After the next few projects, though (as always).
~~~~~~~~~~~~~~~~~~~~~~
{DIY blog}
{www.dronecloud.org}

cloudscapes

Still waiting for the board. Been testing stuff on samey hardware, benchmarking speeds and such. Figured out a bunch on how to use SPI more intelligently. Like before I was hanging the whole MCU during SPI data transfer, which eats up a bunch of clocks. That was using the IDE's own library. Made my own routines, and I can get the SPI stuff to be sent/received/buffered in the background, freeing up major clock!

The original PDS-8000 has these three delay ranges:
125 - 500 ms
500 - 2000 ms
2000 - 8000 ms

I'm thinking of doing these four:
54 - 218 ms
218 - 875 ms
875 - 3500 ms
3500 - 14000 ms

It's all four octaves worth per range. The ranges just activate greater banks of memory, rather than alter the speed. Delay time knob will do that, between 72khz at the short end and 18khz at the long. Already benched 72khz on this pic, it's no problem.
~~~~~~~~~~~~~~~~~~~~~~
{DIY blog}
{www.dronecloud.org}


cloudscapes

Ah, yeah I've seen those meg ones. I'm greedy though :) I can get 1 megabyte as normal SRAM pretty easily. to me, the real appeal of PSRAM is to access the huge capacities of DRAM, and cheaply. Then it's worth it.

For this delay project, I was gonna use 23LC1024 x4 (total 512KB). But am settling with MR25H40 instead. Same pinout and nearly the same serial commands, but with the added benifit of being greater capacity (same as 4 of the other chips) and double clock speed. 40MHz instead of 20. Saving a few valuable clocks per sample. With the old chips, about 8-9us for read and write, with the new it's 6us. Also, my DAC runs at 40MHz serial clock so I can have the RAM and DAC on the same SPI line.

Still haven't received my board though. Any day now....
~~~~~~~~~~~~~~~~~~~~~~
{DIY blog}
{www.dronecloud.org}

cloudscapes

end result:



that's a power jack in the top-left
~~~~~~~~~~~~~~~~~~~~~~
{DIY blog}
{www.dronecloud.org}