Zorlon Cannon MKII - Firmware rewrite work
Moderators: Kent, Joe., luketeaford
Zorlon Cannon MKII - Firmware rewrite work
Hey all!
I've been tediously reverse engineering the Harvestman Zorlon Cannon MKII and have finally gotten a basic firmware together with some of the very basic functionality needed to control the main output pins!
So far, I've figured out everything except how exactly the behind-the-button LEDs are controlled. I also haven't really done the ADC, LED Shift registers, or the rotary encoder... but I know how they should work in theory so mostly it's just about writing a new firmware now.
More notes are in the repository:
https://github.com/JamesHagerman/Zorlon-Cannon-MKII-Firmware
Have fun!
I've been tediously reverse engineering the Harvestman Zorlon Cannon MKII and have finally gotten a basic firmware together with some of the very basic functionality needed to control the main output pins!
So far, I've figured out everything except how exactly the behind-the-button LEDs are controlled. I also haven't really done the ADC, LED Shift registers, or the rotary encoder... but I know how they should work in theory so mostly it's just about writing a new firmware now.
More notes are in the repository:
https://github.com/JamesHagerman/Zorlon-Cannon-MKII-Firmware
Have fun!
Last edited by Jamisnemo on Thu Sep 04, 2014 12:57 am, edited 1 time in total.
this sounds cool!
My goal in all of this is to turn the Zorlon Cannon MKII into a 8 channel, 16 step (or maybe longer?) clock sequencer. Kinda like ALM Busy Circuits Pamala's Workout or like Delptronic's Trigger Man...
Another goal would be to also be able to use the original LFSR source on one of the two output busses but since rewritting that code is not exactly something at the top of the list, it's probably not something that's going to happen for quite a while.
Last edited by Modulus on Wed Sep 03, 2014 2:19 pm, edited 1 time in total.
- infradead
- leader of the secret trombones
- Posts: 3996
- Joined: Thu Jan 20, 2011 1:28 am
- Location: tacoma wa
Seriouslysduck wrote:Have you been in touch with the Jaegers about this? I would imagine so, otherwise you probably wouldn't be posting this, but was curious what they think about it.
forget everything you know about sound, then turn the synth on. You can thank me later - slow_riot
cases: doepfer 6u and monster base
Tacoma Noise Rodeo
cases: doepfer 6u and monster base
Tacoma Noise Rodeo
Yeah, I'm all for reverse engineering, but I don't know about posting it without checking in with the designer first. Scott's a really cool guy, who even posts a lot about the inner workings in the HM forum here. However, he also puts a metric ton of work into these things. I would definitely ask. It may appear that a bigger company is behind these, but it is just one guy doing it. I'd just shoot him a quick email or PM. Also, as it is mainly an LFSR at heart, which anyone can build, use, etc. the UI and additional functionality of the Zorlon is definitely all Scott.
Are you lemon? Does your head come to a nub?
Since alot of people are probably responding to the title of the thread without downloading or looking at the reverse engineering text file- he (Jamisnemo) states that he talked to Scott about it and got his oral approval, and also sent him a follow up email informing him of what he was doing (to which there was no reply).
According to the reverse engineering text file, the intent here isn't to recreate the Zorlon Cannon and make a cheap knock off, but rather to figure out the hardware and how it is connected to the processor in order to be able to modify the code and provide extended functionality to the original module.
According to the reverse engineering text file, the intent here isn't to recreate the Zorlon Cannon and make a cheap knock off, but rather to figure out the hardware and how it is connected to the processor in order to be able to modify the code and provide extended functionality to the original module.
- sduck
- experimental use of gravity
- Posts: 14691
- Joined: Wed Feb 18, 2009 6:03 pm
- Location: Vortepexaion, TN, USA
Oh, sorry, also forgot to do all the research - was typing on my ipad over lunch at work - it's right there in plain sight on page one -
Probably time for a follow up email to Scott -

My current concern is that a possible appearance of what's involved here is that you're providing the means for someone to build their own zorlon cannon. Probably not at all what you intended. And probably not what Scott gave his initial ok for. He probably assumed you were doing this for your own personal edification, and not that you were going to post the information publicly for anyone to use. I could be totally misunderstanding what's going on here though - apologies if I've got it wrong.
Probably time for a follow up email to Scott -

My current concern is that a possible appearance of what's involved here is that you're providing the means for someone to build their own zorlon cannon. Probably not at all what you intended. And probably not what Scott gave his initial ok for. He probably assumed you were doing this for your own personal edification, and not that you were going to post the information publicly for anyone to use. I could be totally misunderstanding what's going on here though - apologies if I've got it wrong.
Can we really call deducing the inner workings of a module from the front panel controls "reverse engineering"? Point being that this is information which is readily available to anyone simply by using the module and thinking about it. Not to downplay this as work, but it can't be considered anything like a trade secret.
Talk about synthesis is a bit borken if people are dissuaded from discussing how modules may work behind the panel. It's essential for any practical understanding of these things.
Talk about synthesis is a bit borken if people are dissuaded from discussing how modules may work behind the panel. It's essential for any practical understanding of these things.
When I spoke with Scott, he seemed pretty nonchalant about me trying to write a new firmware for the thing. I mentioned some of the ideas to him and he just kinda shrugged and said go for it. Hell, he specifically told me what port the outputs were on.
I did ask him multiple times through the night in Santa Monica if he was really sure it was okay and he continued to be up for it. He also said "good luck" because he wasn't so happy about the board layout and would be impressed if I was able to figure it out.
Still, yes, maybe I am taking this too far by releasing this information... but even so, it's still going to be a hell of a lot of work to take this information and write a new firmware. And it's really not nearly enough information to make a clone. There is a LOT of extra circuitry on this board that I just flat out don't understand.
That said, I really, REALLY, SERIOUSLY, do not want to infringe on his work at all. I don't know what else to do except send him yet another email asking for more specific permission. So, I'll write him another email and see if he's okay with it one more time. If he disapproves, I'll take down the repo and keep the information to myself, as stated in the repositories readme file.
An even greater fear is that people will break their modules because of this and expect Scott to repair them. Shame on that type of person for being absolute jerks.
Still, it's a VERY versatile - not to mention well built - module, considering the actual hardware. It's effectively got two 16 bit analog inputs and two 16 bit analog outputs as well. That combined with a the DSP functions on board (which I also hardly understand) and this module could be hacked in some pretty seriously astonishing directions.
I'll let you all know if I hear back from Scott.
I did ask him multiple times through the night in Santa Monica if he was really sure it was okay and he continued to be up for it. He also said "good luck" because he wasn't so happy about the board layout and would be impressed if I was able to figure it out.
Still, yes, maybe I am taking this too far by releasing this information... but even so, it's still going to be a hell of a lot of work to take this information and write a new firmware. And it's really not nearly enough information to make a clone. There is a LOT of extra circuitry on this board that I just flat out don't understand.
That said, I really, REALLY, SERIOUSLY, do not want to infringe on his work at all. I don't know what else to do except send him yet another email asking for more specific permission. So, I'll write him another email and see if he's okay with it one more time. If he disapproves, I'll take down the repo and keep the information to myself, as stated in the repositories readme file.
An even greater fear is that people will break their modules because of this and expect Scott to repair them. Shame on that type of person for being absolute jerks.
Still, it's a VERY versatile - not to mention well built - module, considering the actual hardware. It's effectively got two 16 bit analog inputs and two 16 bit analog outputs as well. That combined with a the DSP functions on board (which I also hardly understand) and this module could be hacked in some pretty seriously astonishing directions.
I'll let you all know if I hear back from Scott.
- Kent
- Curator/Janitor/Zookeeper
- Posts: 13521
- Joined: Thu Mar 06, 2008 10:17 am
- Location: Vienna, Austria
- Contact:
You guys are very much over-reacting. Who is going to launch their own Zorlon Cannon? It would take so much work and the product is already out there established. All that this would do is sell more Zorlon Cannons.
Also, besides allowing us to feel good about ourselves and convince ourselves that we are wonderful people, I doubt that getting Scott's permission is even necessary.
Also, besides allowing us to feel good about ourselves and convince ourselves that we are wonderful people, I doubt that getting Scott's permission is even necessary.
- sduck
- experimental use of gravity
- Posts: 14691
- Joined: Wed Feb 18, 2009 6:03 pm
- Location: Vortepexaion, TN, USA
Yea, forgive me for worrying about this. I think you're probably fine with what you're doing. The only problem I'm seeing now is the subject of the thread - it reads that you've actually accomplished this reverse engineering; but reading further seems to indicate that wasn't really your intent, isn't what you've accomplished so far, and your end goal hasn't been finalized yet.
Alright. Good point, sduck.
I've renamed the thread to be a little less "in your face" about it
In other news, I've written some basic encoder handling methods and checked them in to the repo while I wait for a response.
Next, I'm going to work on the bar light shift registers. I honestly have no real plan as to how to architecture a good, solid firmware, but I do software dev for a living so over time it'll get a lot cleaner as I figure out better ways to approach the complex problems I'll run into.
I've renamed the thread to be a little less "in your face" about it

In other news, I've written some basic encoder handling methods and checked them in to the repo while I wait for a response.
Next, I'm going to work on the bar light shift registers. I honestly have no real plan as to how to architecture a good, solid firmware, but I do software dev for a living so over time it'll get a lot cleaner as I figure out better ways to approach the complex problems I'll run into.
re "reverse engineering": leaving aside the semantic thing (nothing was reverse engineered; even if it had, it's not that some proprietary format or "tap-to-zoom" thing was involved; scott jaeger's icloud wasn't hacked and his private CAM files posted; etc), what puzzles me is:
since the OP (well, Jamisnemo) seems to know his way around the dsPIC33, what's the point of providing *alternate* firmware for a $400+ module, if it would have been much easier to do your own dsPIC33 board from scratch? with controls and panel art to match, and so on.
well, none of my business really. interesting thread though.
since the OP (well, Jamisnemo) seems to know his way around the dsPIC33, what's the point of providing *alternate* firmware for a $400+ module, if it would have been much easier to do your own dsPIC33 board from scratch? with controls and panel art to match, and so on.
well, none of my business really. interesting thread though.
I have my own module in progress... but I'm much better at software development than I am at hardware development and I haven't had the time to get all of the parts I need to build the board quite yet.
Honestly, releasing hardware is difficult at any scale and that's one of my main hang up points. After 4 PCB revisions of a simple LM13700 VCO (from scratch) I've realized that analog circuit design is a pain in my ass and that anything I build in that realm is just going to suck.
So, I've moved back into digital designs.
The first digital module I want to get out into the world is a MIDI USB Host to CV/Gate module. It'd be like the Mutable Instruments CV Pal but you'd be able to just plug a USB MIDI device into it directly instead of needing to run it through a computer first. I've got all of the USB host, MIDI translation, and output code written... but building the board is taking longer than it should because I stupidly decided to use SMD for the board instead of through hole.
Even then, going through the process of releasing the module, even as a DIY kit, is a lot of work. I've got a list of places that will do the work for me but I haven't had time to dig into that process.
In the end, I'm more interested in writing firmware than I am in engineering hardware. So, the Zorlon Cannon is a perfect way for me to play with that while I work up motivation to finish out the hardware on my own works.
Last night I got the shift registers working on the ZC. It's pretty satisfying being able to animate the Bar LED's! 8_)
Honestly, releasing hardware is difficult at any scale and that's one of my main hang up points. After 4 PCB revisions of a simple LM13700 VCO (from scratch) I've realized that analog circuit design is a pain in my ass and that anything I build in that realm is just going to suck.
So, I've moved back into digital designs.
The first digital module I want to get out into the world is a MIDI USB Host to CV/Gate module. It'd be like the Mutable Instruments CV Pal but you'd be able to just plug a USB MIDI device into it directly instead of needing to run it through a computer first. I've got all of the USB host, MIDI translation, and output code written... but building the board is taking longer than it should because I stupidly decided to use SMD for the board instead of through hole.
Even then, going through the process of releasing the module, even as a DIY kit, is a lot of work. I've got a list of places that will do the work for me but I haven't had time to dig into that process.
In the end, I'm more interested in writing firmware than I am in engineering hardware. So, the Zorlon Cannon is a perfect way for me to play with that while I work up motivation to finish out the hardware on my own works.
Last night I got the shift registers working on the ZC. It's pretty satisfying being able to animate the Bar LED's! 8_)
I also was only giving the suggestion to contact Scott based on the first post, not the content of the link which I couldn't read from work. I also have zero problem with this knowing what the real deal is, and think it's a very cool project. So really, no overreaction here either.
Are you lemon? Does your head come to a nub?
Keep up the great work! I'm really looking forward to trying out the new Pam's CannonJamisnemo wrote:I have my own module in progress... but I'm much better at software development than I am at hardware development and I haven't had the time to get all of the parts I need to build the board quite yet.
Honestly, releasing hardware is difficult at any scale and that's one of my main hang up points. After 4 PCB revisions of a simple LM13700 VCO (from scratch) I've realized that analog circuit design is a pain in my ass and that anything I build in that realm is just going to suck.
So, I've moved back into digital designs.
The first digital module I want to get out into the world is a MIDI USB Host to CV/Gate module. It'd be like the Mutable Instruments CV Pal but you'd be able to just plug a USB MIDI device into it directly instead of needing to run it through a computer first. I've got all of the USB host, MIDI translation, and output code written... but building the board is taking longer than it should because I stupidly decided to use SMD for the board instead of through hole.
Even then, going through the process of releasing the module, even as a DIY kit, is a lot of work. I've got a list of places that will do the work for me but I haven't had time to dig into that process.
In the end, I'm more interested in writing firmware than I am in engineering hardware. So, the Zorlon Cannon is a perfect way for me to play with that while I work up motivation to finish out the hardware on my own works.
Last night I got the shift registers working on the ZC. It's pretty satisfying being able to animate the Bar LED's! 8_)

Hey again,
I've taken this project farther in the last few weeks and have been checking in my code as I figure things out. I've still gotta write code to get the analog inputs and the demultiplexers working but I've figured out most of the module otherwise.
At least in theory. I haven't written the state machines for the UI or the input interrupts but that shouldn't be too hard to write at this point.
Oh, and I still have to make sure I have the timings write on the crystal. I don't know exactly what frequency the crystal is running at.
If you compile the code right now, and flash it to the Zorlon Cannon, it won't do much more than shift a preset value across the LED bar display.
But it's getting closer!
Stay tuned for a beta version of my gate sequencer firmware!
I've taken this project farther in the last few weeks and have been checking in my code as I figure things out. I've still gotta write code to get the analog inputs and the demultiplexers working but I've figured out most of the module otherwise.
At least in theory. I haven't written the state machines for the UI or the input interrupts but that shouldn't be too hard to write at this point.
Oh, and I still have to make sure I have the timings write on the crystal. I don't know exactly what frequency the crystal is running at.
If you compile the code right now, and flash it to the Zorlon Cannon, it won't do much more than shift a preset value across the LED bar display.
But it's getting closer!
Stay tuned for a beta version of my gate sequencer firmware!
Hey guys,
I posted the work (again... sorry for all these cross posts...) over in the Harvestman subforum.
At this point, Scott finally replied and said that he didn't want the module's inner workings released to the public.
I'm asking him if he's okay if I release the hex file but until then, this is all on hold.
I posted the work (again... sorry for all these cross posts...) over in the Harvestman subforum.
At this point, Scott finally replied and said that he didn't want the module's inner workings released to the public.
I'm asking him if he's okay if I release the hex file but until then, this is all on hold.
