News:

SMF for DIYStompboxes.com!

Main Menu

A tale of two 9's

Started by bean, August 03, 2020, 11:32:19 AM

Previous topic - Next topic

Govmnt_Lacky

Quite exciting. Reminds me of the Digitech XP-series mods. Following closely  8)
A Veteran is someone who, at one point in his or her life, wrote a blank check made payable to The United States of America
for an amount of 'up to and including my life.'

pruttelherrie

Quote from: free electron on August 13, 2021, 04:37:40 AM
The '138 will not work here. You still need the Blackfin to control the /CS line, the chip has to route it to the selected flash. '138 is a 3 to 8 line decoder. The 3 address inputs control where the '1' will show up. There is no data input (/CS coming from the Blackfin) as on the LVC1G18.
74HC4051 could work, although i'm not sure how or if the switching/propagation delays would impact the SPI timings.
Aha, but we're running the Blackfin to one of the enable inputs of the '138.

Check the logic table on page 4 (section 6) of this datasheet: https://assets.nexperia.com/documents/data-sheet/74HC_HCT138.pdf

We're gonna do the following:
* E1 pulled Low,
* The Blackfin is connected to E2,
* E3 pulled High
* A0..2 are the address (determining which flash is selected)
* Y0...Yhowevermany are connected to /CS of howevermanyFlashchips.

Now the signal from the Blackfin is 1:1 passed to the selected Y output, all the otherY's are kept High. :icon_cool:

If this will work SPI timing-wise depends on the implementation at the DSP side. Normally /CS is not switched at DMA-speeds, but I have no idea what delays there are between switching and clocking. I'm trying to get this sorted out later this weekend, will keep you posted.

pruttelherrie

Quote from: vigilante397 on August 13, 2021, 09:58:21 AM
Question that got me thinking: has anyone tried copying the flash to another chip with something like a bus pirate so you could build a big combo pedal without ruining the other units?

Yeah I'm kinda torn here. Everything done so far is 100% ok. Building a combo pedal with the desoldered chips of a bunch of pedals I've bought is 100% ok. Reading the chips and writing them to other chips and then sell is 100% _not_ ok (see the Mooer case). But in between those cases there's a whole lot of grey!

Personally, I don't have a problem with copying the data of 3 chips to build 3 combo pedals. But where does that end?
In the case of XP-ALL, these are discontinued pedals so even if legally it's not ok to copy, I don't have a moral problem with that. In the case of EHX9 that's different.
I would really like to hear all your opinions on this!

vigilante397

Quote from: pruttelherrie on August 13, 2021, 11:57:16 AM
Personally, I don't have a problem with copying the data of 3 chips to build 3 combo pedals.

That was really what I was wondering about. Otherwise you're spending $200+ on pedals that you're really just buying for the firmware then throwing away the hardware, just seems wasteful. I'm not saying you should start a business selling combo builds with ripped memories, that feels sketchy, but just trying to figure out how not to waste otherwise perfectly good hardware.
  • SUPPORTER
"Some people love music the way other people love chocolate. Some of us love music the way other people love oxygen."

www.sushiboxfx.com

pruttelherrie

Quote from: vigilante397 on August 13, 2021, 02:53:42 PM
Quote from: pruttelherrie on August 13, 2021, 11:57:16 AM
Personally, I don't have a problem with copying the data of 3 chips to build 3 combo pedals.

That was really what I was wondering about. Otherwise you're spending $200+ on pedals that you're really just buying for the firmware then throwing away the hardware, just seems wasteful. I'm not saying you should start a business selling combo builds with ripped memories, that feels sketchy, but just trying to figure out how not to waste otherwise perfectly good hardware.

True.

There's just a huge grey area and it's not always clear where the line is.

Putting the programs on github is a no-no, but if someone were to put them on Mega.io or so, I'm not hesitating to use them in my own pedals/enclosures (19" anyone?).

pruttelherrie

Hey guys,

Quote from: pruttelherrie on August 13, 2021, 11:49:57 AM
We're gonna do the following:
* E1 pulled Low,
* The Blackfin is connected to E2,
* E3 pulled High
* A0..2 are the address (determining which flash is selected)
* Y0...Yhowevermany are connected to /CS of howevermanyFlashchips.

I'm happy to report that this works! Did a quick test with an Arduino board and a simplistic program.

Next thing is waiting for the ordered MX flash chips and try to write those. Then design a PCB and we are go!





pruttelherrie

VICTORY!

Successfully copied the original C9 to a brand new chip. Short demo movie will follow.

Now it's time to design a PCB.

vigilante397

Excellent! Thanks for keeping us posted, looking forward to seeing the results :)
  • SUPPORTER
"Some people love music the way other people love chocolate. Some of us love music the way other people love oxygen."

www.sushiboxfx.com

pruttelherrie

#28
I was thinking along these lines. The J1 header on the 3D view is on the rendered wrong side but that's no problem, just solder the other way around. I just *LOVE* the push-and-shove routing of KiCAD!

There's a spot for an ATTiny, but the RST line and address lines are also router to a header, if you want to have control from another board (like my sandwich board). Just leave the ATTiny out in that case. The ATTiny can be programmed with a simple switch + LED-readout, for WYSIWYG mode (LED(s) show what flash is selected), but I was also thinking about commanding the ATTiny with just a serial line, because I'm as good as out of pins on the blackpill STM32 board on my sandwich board...

It has footprints for a maximum of 6 flash chips, since that's the number of EHX6 pedals (for now?) and also  since there's not much room left :icon_biggrin: (I need some room on the left for the MIDI socket)







pruttelherrie

Small update.

Cleanup, labels, a couple of decoupling caps, etc. All ATTiny pins are now broken out for future use if needed. Unused pins and ATTiny (depending on application) can be left vacated if not needed.



pruttelherrie

Another update. After a DOH! moment, I started to put the ATTiny on the *bottom* of the board. Also, I switched from the 84A to the 2313. This one has an UART, so we could also have it receive MIDI. But my experience is that it needs a crystal for stability if you want to receive at 31250.
The Tiny is programmable over the header, the SPI lines are the ones I used for A0..A2.

These changes make it much more compact, see pictures. Please note that you can still drive it from an external MCU if needed.

Another review later tonight then the design goes out to JLCPCB.





pruttelherrie

Update.

Received the PCB's from JLCPCB, populated with the flashes and the 74HC138, wrote a simple program on the Arduino Due in order to control the PCB.

Short crappy video (can't be bothered to put time into that right now ;) here: https://youtu.be/ek83jL4IOa4

Next level: internal control with the Attiny2313. Stay tuned.

pruttelherrie

Another quicky.
Now I added the ATtiny2313 to the bottom side of the board for "internal" control of the selection, which brings us to "Level 2".
A pushbutton on the side to switch to the next, an LED to show which one is active, for a WYSIWYG experience.

Another craptastic short demo video here: https://youtu.be/pFx3OJI5Fcs

Note:  these are the original flash chips of the 4 pedals of the previous video, desoldered and put on one board.
As stated before, there's a 3 second mute as the DSP loads the next program.

As-is this already saves a lot of space on your pedalboard, if you only use an effect here and there.

vigilante397

Quote from: pruttelherrie on September 07, 2021, 02:17:32 PM
As stated before, there's a 3 second mute as the DSP loads the next program.

Does it need to be that long? 3 seconds is an eternity in a live scenario. Would be a pretty tedious guess-and-check to figure out the minimum time needed though.
  • SUPPORTER
"Some people love music the way other people love chocolate. Some of us love music the way other people love oxygen."

www.sushiboxfx.com

pruttelherrie

Quote from: vigilante397 on September 07, 2021, 02:22:20 PM
Quote from: pruttelherrie on September 07, 2021, 02:17:32 PM
As stated before, there's a 3 second mute as the DSP loads the next program.

Does it need to be that long? 3 seconds is an eternity in a live scenario. Would be a pretty tedious guess-and-check to figure out the minimum time needed though.

That's how long the DSP takes to reboot and load the program, it's not in my hands... [edit] listen closely to the video, you can hear the plinging of the strings while it reboots.
Normally it happens during power-up of the pedal/board, and then it's no problem.

In practice you'll have to "prepare" the pedal (mode and settings) and then use the bypass footswitch. That one's instantaneous.

Right now I'm working on Level 3: integration with the previous work to make it programmable. Stay tuned.

pruttelherrie

Level 3: the board is now controlled by the BluePill board of that other project. since I'm running out of memory, I had to switch to a smaller font (ok for the demo) and there's no "Presets" in this version.

Short video: https://youtu.be/diUQOLxw-JE

I'm working on a new board, for use with a BlackPill with an STM32F401 MCU on it. Much more flash and RAM. This will take a couple of weeks, in the meantime I'll put up the development files (notes, KiCAD files and gerbers) for the switcher board somewhere.
When the STM32F401 is operational, there's also going to be a better 'tweak' mode. When that's all done, I'll try to record a better video to show off the usability.

The only drawback of this mod is the 3 second mute when switching pedals. Of course, when switching programs *within* a pedal it's no problem! In my own (live) setup I'm using a matrix/loop switcher and I'll have to "prepare" the program to be used during the song. It's anyone's own responsibility to think of solutions that fit their own circumstances! Ifyouknowhwatimean...

vigilante397

Well I'm having a great time ;D Keep the updates and videos coming!
  • SUPPORTER
"Some people love music the way other people love chocolate. Some of us love music the way other people love oxygen."

www.sushiboxfx.com

bean

I'm really happy to see someone else take this up. I actually ended up selling my B9 several months ago when I went through a gear purge so I never pursued it further. And, no way I would have accomplished what pruttelherrie has done here!

pruttelherrie

Quote from: bean on September 08, 2021, 11:04:48 PM
I'm really happy to see someone else take this up. I actually ended up selling my B9 several months ago when I went through a gear purge so I never pursued it further. And, no way I would have accomplished what pruttelherrie has done here!

Hahaha don't backpedal, you started all this madness!!!   :icon_biggrin:

pruttelherrie

Ok, got it mostly working the way I want it in a standalone pedal.

So I have the multiplexer board plugged in the boxed header. I have a purple PCB sandwiched with a blackpill (stm32f401cc) plugged in it. There's a MIDI-in going to the blackpill, the MIDI-out goes to the multiplexer board. The Attiny on the multiplexer board reacts to the MIDI from the blackpill and resets the Blackfin on the EHX board.

There's 5 encoders: 1 for the menu and 4 for the regular parameters.

Depending on the selected chip (max. 1-of-6) and program (1-of-9), the parameters shown on the display will change.
The UI has basically two modes: the WYSIWYG mode and a menu mode for a few additional functions like settings and store. There's still some bugs in the code, but it mostly works as intended.

Another demo video showing off some of the handling here:  https://youtu.be/hHlw6phnWmI
This video does not show all the possibilities of the firmware, for example it is possible to change pedal and program when you're in WYSIWYG mode but this is not demoed.

I'll clean up the PCB files (KiCAD + gerbers) and firmware and then upload it somewhere. I'm thinking GitHub.
I'll also add some instructions on how to read and write EEPROMs with a Pickit2 and the 'flashrom' program. Everything I've shown so far is 100% legal. However depending on your jurisdiction making a copy of the code in the EEPROM of a pedal you own may or may not be legal, most probably it will not be legal but I'm not a lawyer and this is not legal advice ;)

Attached a picture from the inside, the purple wire on the left is the MIDI out from the blackpill to the multiplexer board.
The other pictures show the two modes of the firmware.