The No.1 Website for Pro Audio
 Search This Thread  Search This Forum  Search Reviews  Search Gear Database  Search Synths for sale  Search Gearslutz Go Advanced
Andromeda A6 OS Update Project Keyboard Synthesizers
Old 18th January 2015
  #91
Gear Addict
 
J# Minor's Avatar
 

Quote:
Originally Posted by bklein View Post
My unit's flash looks like it has been removed, written, and replaced a few times (pins rough shape).
I'm surprised anyone tried.

I wonder why they failed, other than age? From what I've read so far in the code, it seems that the flash is kept in read-only mode except during software updates, and then is written in blocks. (The erase/write procedure is documented in the publicly-available technical manual for the flash chip.) There is no wear-leveling algorithm like in SSDs, but also not many write cycles against the flash cells.

Quote:
Originally Posted by bklein View Post
I'm curious what hardware tools you are using for your work on this.
Just an Andromeda and a Mac. Actually, I haven't really needed the Andromeda yet, other than to confirm expectations. Nearly everything* done so far has been disassembly and code analysis of the available update files.

I'm not a hardware person. I have just enough basic electronics training to read the schematics and understand the gist of what's going on. Perhaps better (or any) hardware tools would help; I had planned to not think about that until I hit a brick wall of some sort.

*Well, that, and I was off in the weeds working on a macro preprocessor that takes some of the ugly out of the GNU assembler. That's what became of the "language" mentioned in my previous comment. I worked the idea five times and threw away the first four. This is a fun, what-the-hell project, so some irresponsible use of a parser is to be expected.

Quote:
Originally Posted by bklein View Post
Do you have an image file I could write into a new part and then try?
Not yet. I've thought about writing a routine to dump the entire flash out of the MIDI port. However, I don't know enough yet about the OS update process to be reasonably sure I won't brick my A6 while trying to get that routine onto the device.
Old 18th January 2015
  #92
Gear Nut
 

You may be interested in the tools PE Micro sells (like the microlink universal). They offer a software package that has some canned routines but it is expensive and you may get by using Code Warrior. It looks like you could make up a cable interface and plug this in and be able to write/test all memory devices. I'm going to first just try shotgunning it by replacing IC's one at a time.
Old 25th January 2015
  #93
Gear Nut
 

swapping IC's

As I got my unit, it would occasionally be able to boot into the diagnostic page or bootloader. With the bootloader I could load the OS file but it would fail on verify of flash.
I then replaced the NVRAM, no change.
I then replaced the two SRAM parts. Now it will not go into the diag or bootloader pages. The parts I put in are the same as I took out, same 15ns and ISSI. So now I am wondering what the heck?? Should be the same or better. I'm wondering whether to install different manufacturer's parts or different speed.
Old 26th January 2015
  #94
Gear Addict
 
J# Minor's Avatar
 

Quote:
Originally Posted by bklein View Post
You may be interested in the tools PE Micro sells (like the microlink universal).
Those are very tempting. The A6 mainboard does expose a header for the ColdFire debug port. Theoretically this would allow one to do some pretty amazing things, like observing the CPU state in situ at full speed.

Quote:
Originally Posted by bklein View Post
I then replaced the two SRAM parts. Now it will not go into the diag or bootloader pages.
Hmm. The diagrams I have show the fast SRAM part as a IS61LV25616-15T in both revs B and C.
Old 30th January 2015
  #95
Gear Nut
 

Not Good.

I ordered two of the ISSI flash - same part as was on the board originally and swapped the onboard chips and could not get a diag or boot OS screen to pop up. So then I ordered two 12nS parts and two 15nS parts of a different brand and new (Digikey). I put in the 12nS parts and still cannot get any response to the soft keys. This is bad as now I can't load new data into the flash. I need a flash image file. Then I can program a part and swap out the one there now. I bought 4 parts for this sort of thing but have no image file - don't know if anyone else has tried this or even if it can be done if you start with a good programmed part. I have a bios flash programmer and TSOP44 adapter on the way from China but it will be useless without an image file or good part to try. Perhaps it would read the old part and tell me if it looks to be intact or not.
I know there is the bootloader.syx file out there as well as the full OS and perhaps bootloader file on the Alesis site. How to convert such a file back to a .hex image file? Any hope for this or do I put this beautiful thing up for sale?
Old 30th January 2015
  #96
Gear Addict
 
J# Minor's Avatar
 

Just to be sure, the two ISSI chips are not flash memory, they are SRAM. The flash is a single chip, the AM29LV160D. If anything gets programmed, it will be the flash chip. The SRAM does not retain its contents while power is off, and it is initialized at boot time.

Quote:
Originally Posted by bklein View Post
I know there is the bootloader.syx file out there as well as the full OS and perhaps bootloader file on the Alesis site. How to convert such a file back to a .hex image file?
The conversion is not difficult at all, programming-wise. I can release a command-line tool that will convert it for you. In fact, I have the tool now; it just needs a bit of polish. Sounds like a good weekend task.

Once you have the raw bootloader bytes and a device to program the flash, you MIGHT be able to bootstrap your A6 from nothing. Just place the bootloader at the beginning (0h) of flash, perhaps erasing the rest. That *should* be enough to boot the A6, if everything else works.
Old 30th January 2015
  #97
Gear Nut
 

Yes correct. When you use the boot loader to upload the sysx file it goes into these two sram chips first. Then you hit "store" and this is transferred to flash. A boot loader only image should be enough. I suspect the flash has two identical images in case a write goes bad.
Old 30th January 2015
  #98
Gear Addict
 
J# Minor's Avatar
 

Quote:
Originally Posted by bklein View Post
I suspect the flash has two identical images in case a write goes bad.
The flash contains ~70K of bootloader starting at offset 0, then ~600K of OS starting at the 128K mark (20000h). I don't know yet what's beyond that. There seems to be room for a second copy, but I'm not confident there is one.

When the A6 is powered on, flash starts out mapped to the bottom 2MB of address space. The CPU then loads the address of the first instruction from the longword at address 4h. I am not aware of any mechanism to alter that process, so the A6 would not boot from a backup bootloader even if there was one.
Old 1st February 2015
  #99
Gear Nut
 

flash chip select via

I found a bad (open) via along the flash CS path.
Maybe this will help someone in debugging their unit in the future...
Fixed that but still not a go for me. Might have fried the original SRAM chips heating to remove? I have gone pin by pin on all both SRAMs, the flash, and the PLD /CS outputs. Look ok, no floating lines. Code runs for about a second or two and hangs. Got the flash programmer today.
Old 1st February 2015
  #100
Gear Addict
 
J# Minor's Avatar
 

@bklein: PM sent.
Old 1st February 2015
  #101
Lives for gear
 
GYang's Avatar
Guys I don't understand 95% of this thread, but truly enjoy it.
Old 18th February 2015
  #102
Gear Maniac
 
M.Retra's Avatar
J# Minor, I wish you the best of luck! This will be awesome if the OS is finalized. I'm not interested in any tweaks and improvements, but more so in terms of longevity and ensuring that the A6 can live on through many part replacements and reflashes. Now if we can just get a chip manufacturer to remake the ASICS...hmm...

If you need me, I'll be hanging out over in my thread in the meantime! This code stuff is a little beyond me, but I will help out where I can. I'm going with more hardware-based fixes though.

Ultimately, I need to put my A6 back together again, and start using it! However, if you need information, then I'll crack it back open from time to time.
Old 25th February 2015
  #103
Gear Addict
 
J# Minor's Avatar
 

Update: Out of side projects and back on the main objective. I've discovered how the OS controls the osc/filter ASICs. I was quite anxious that this subject would present a roadblock and lead to failure. Instead, there has been slow and steady progress.

Currently, I am mapping the individual parameters of each ASIC. To accomplish this, I'm comparing presets to see what's different between them, and correlating that to changes in the data sent to the ASICs. I've mapped all of the osc chip switches and about half of the osc chip CV inputs. I know which parameters go to the filter chips, but haven't mapped those yet.

Once I have completed these mappings, I plan to backtrack into the code and see where each parameter is getting modified. This should expose some information about the control and modulation system.
Old 25th February 2015
  #104
Lives for gear
 
goldphinga's Avatar
 

amazing man, thanks for keeping us in the loop
Old 5th March 2015
  #105
Here for the gear
 

Hi,

I've been watching this thread with great interest and just want to say good luck! This seems like a monumental task, but it would be fantastic to see a new OS for the Andromeda. Something I would love to see in any future update is built-in hardware diagnostic routines, as many A6's seem to suffer from difficult to diagnose and intermittent problems, my own included.

Cheers, vout
Old 5th March 2015
  #106
Gear Addict
 
J# Minor's Avatar
 

Yes, I think some hardware diagnostics would be a good idea — not just someone with a cranky A6, but also for the community to get some real data about lifespan and common failure modes.

Since the last update, I have mapped 100% of the analog ASIC parameters, including the parameters' ranges. Ranges were confirmed by comparing values in the SysEx to values shown on my A6's screen. As suspected, this has opened up further investigation into A6 programs themselves: how they are initialized, stored, and loaded, and modulated. Still lots to do, but something new is revealed each day.

I can say with surety that there is some room for optimization of the OS. It is fairly tight if you were looking at the C-language code (which I don't have, but I can make good guesses at), but about 10% fluff, give or take, when looking at the assembly language (which I generate). This is to be expected in any code produced by an older C toolchain, and is just one of the engineering tradeoffs programmers make. Hand-optimization of the assembly-language code has the potential to squeeze more performance out of the A6 (e.g. snappier modulation, tighter MIDI) as well as free up resources for new features.

The more I discover about the A6, the more I discover it is just a monster synth.
Old 2nd May 2015
  #107
Gear Head
Would love a quick update on this project:-)
Old 3rd May 2015
  #108
Gear Addict
 
J# Minor's Avatar
 

Hi @Phatsynth.

Several good things have happened since the last update.

A forum member let me borrow a device that connects a PC to the debug port on the A6 main board. It is working, and now I have much improved developer powers over the synth. I can observe and control all sorts of internal things while the A6 runs. I can put modified code onto the machine (no SysEx needed) or even restore back to a known-working firmware if things get too out of hand.

I'm now working with the 1.20.37 bootloader, obtained from my own A6 via the debug module. Previously the latest I had was 1.20.31. Not a lot of changes between the two.

bklein and I were able to revive his dead Andromeda. It seems to have had a corrupted flash chip. He replaced the chip with a freshly-programmed one, and now he has a working unit.

Recently I have been working to make a complete translation of the code that handles communication with the front panel and drawing the various widgets on the display. Progress is about 85% on this one. This has been a good area to focus on, as it helps to detangle the UI code (and there's a *lot* of that, I've found).

The first "display a UI page" functions to be identified are the ANAFX and ANAFX MOD pages, which are only partially translated currently.

Finally, I found the tables that contain the modulation curves and have extracted those.

In summary, work is proceeding slowly but surely.
Old 3rd May 2015
  #109
Lives for gear
 

Wow. Is there any way or chance that I might be able to get a freshly programmed flash ROM as well? My tech's had my Andromeda for the past few months and he's convinced that it's the only way to get it working again. My issues and road to it not working are well documented here and I'd really appreciate a fresh working ROM.
Old 3rd May 2015
  #110
Gear Nut
 

Please see my update to the "no boot" thread. I can make a new flash part. Just have to set it all up again. Lost my job at WDC. Just before that I bought a second A6. I suppose it could have a corrupted flash too but I kind of doubt it this time.
The image I used for my first synth was J#'s first. He later did another with newer bootloader. We assume it will work and be better somehow but haven't tried it.
Old 3rd May 2015
  #111
Gear Head
J# Minor Thank you very much for the update. This raises hope for a OS update and even the resurrection of dead A6'es.
Keep up the good work:-)
Old 5th May 2015
  #112
Gear Addict
 
J# Minor's Avatar
 

Quote:
Originally Posted by bklein View Post
He later did another with newer bootloader. We assume it will work and be better somehow but haven't tried it.
The main difference I saw in bootloader 1.20.37 (as compared with 1.20.31) is a little more code in the diagnostic program, and removal of some other code that was never used.
Old 15th May 2015
  #113
Here for the gear
 

Keep up the good work J#Minor, many thanks for your dedication!


-A6 owner since '04
Old 17th May 2015
  #114
Lives for gear
 
GYang's Avatar
This thread should be immortal.
Old 9th July 2015
  #115
Gear Nut
Great news that you now have debugging hardware, that should really help.
Also really cool that you have been figuring out the GUI code.

If the code could be optimized enough, maybe the modulation frequency could be improved, if not, I wonder if it would be possible to replace the coldfire chips with faster ones and support those in the firmware.

And the original developer of the firmware said once that he would be able to add tuning to the fm modulation, that would be awesome.

Anyway, great to see you have been making steady progress, if you have any more updates, please post them.

Last edited by LamerDeluxe; 9th July 2015 at 11:28 AM.. Reason: I fail at typing
Old 16th July 2015
  #116
Gear Addict
 
J# Minor's Avatar
 

Not much to update at this time. I've moved on from the front-panel display code to the pot-scan code (i.e. the "is any knob turning right now?" code). I had been without the debug module for several weeks, as bklein was using it to resuscitate several dead units. I now have the module again and am using it to unravel the harder parts of the pot-scan code. I think I've found the code that tries to decide whether you've really moved the knob, as opposed to ADC noise or bumping the machine.

Been having some trouble with the GNU Assembler. It does some optimizations that can't be turned off, and that prevents getting an exact binary build that can be compared with the factory OS. I've built a small pile of hacks to get around this, but it's getting unwieldy. I'm looking at vasm as a replacement, which has a switch to turn off all optimizations.
Old 17th July 2015
  #117
Gear Nut
Cool, so now you have the sound chip logic, the display logic and the knob logic mostly figured out. What's next, modulation? (LFO & Envelopes), you already found the curves, or is that done already? The main problem with the Andromeda is how slow the modulations are.

And then of course there are the keyboard, mod wheel, touch strip, pitch bend, mix mode, MIDI, patches, tuning, digital effects etc. the code must be huge.

Will vasm work with your own macro language? Or is it easy to port?
Old 18th July 2015
  #118
Gear Addict
 
J# Minor's Avatar
 

Knob logic is still in progress. The portion of display logic understood is mainly the primitives (text, rectangle, menus, gauges, blitting, etc.) and a couple of screens. There are a *bunch* of screens I haven't looked at yet. I do want to get into the modulation code, but there might be prerequisites, like discovering how the current patch is represented in memory.

I extracted the modulation curves a while back; those stuck out and were easy targets. They are in the same order as in the manual. There is, however, one extra curve in the A6 binary. It's purpose is unclear. Tuning or calibration of some sort, perhaps?

The wheels and ribbon are are treated just like knobs, for the most part.

Not really sure on GNU vs. vasm, TBH. Might have been a premature alarm. Typical programmer's dilemma of how long do you spend on tools vs. the actual thing you were trying to write in the first place. Especially on fun/therapeutic projects, it's easy to get sidetracked.
Old 18th July 2015
  #119
Here for the gear
The main reason who ever has the A6 source code will never EVER release it to you is through fear of exposing evidence of patent theft.
The most likely case is it was all shredded -- together with the pensions accounts, long ago during a change of ownership.

I don't doubt your skills or enthusiasm, but business is business unfortunately.
Old 18th July 2015
  #120
Lives for gear
 

Quote:
Originally Posted by mookid View Post
The main reason who ever has the A6 source code will never EVER release it to you is through fear of exposing evidence of patent theft.
The most likely case is it was all shredded -- together with the pensions accounts, long ago during a change of ownership.

I don't doubt your skills or enthusiasm, but business is business unfortunately.
Yup. Even if they could release the code they developed, there may be proprietary DSP related code in their developer kits that they are not licensed to release to anyone.
Topic:
Post Reply

Welcome to the Gearslutz Pro Audio Community!

Registration benefits include:
  • The ability to reply to and create new discussions
  • Access to members-only giveaways & competitions
  • Interact with VIP industry experts in our guest Q&As
  • Access to members-only sub forum discussions
  • Access to members-only Chat Room
  • Get INSTANT ACCESS to the world's best private pro audio Classifieds for only USD $20/year
  • Promote your eBay auctions and Reverb.com listings for free
  • Remove this message!
You need an account to post a reply. Create a username and password below and an account will be created and your post entered.


 
 
Slide to join now Processing…
Thread Tools
Search this Thread
Search this Thread:

Advanced Search
Forum Jump
Forum Jump