Ansible Earthsea

I’ve updated my Teletype, Ansible, TXo’s, TXi’s, W/, Stillson Hammer, O_c, ER-301/101/102, and a bunch of others and nothing has ever been bricked. Jump in and simply follow the instructions like @merlatte pointed you to.

20chars of thank you!

1 Like

Once you have homebrew installed it’s a breeze. I just got a 2nd hand white whale and loaded orca on it last night

Just want to caution that in my experience Ansible (mine was bought new from monome mid last year) uses the at32uc3b0512 chip, which has more flash than the at32uc3b0256, and I believe this backup procedure did not back up the presets from flash unless I used the

dfu-programmer at32uc3b0512 read > firmware-backup.hex

command listed under the Teletype instructions. If you want to try out a new firmware and then go back to the saved Ansible presets you had, I think you might be unpleasantly surprised when using the at32uc3b0256 command.

1 Like

good catch!

@tehn - looks like this page needs to be updated for the above:

6 posts were split to a new topic: Ansible: help and issues

should we merge earthsea into the main ansible branch? was there any functional compromise compared to master? (i apologize i haven’t kept up!)


I think the main concern is with running out of memory/flash on Ansible that could be a constraint for future feature development of existing apps: Ansible Earthsea I haven’t actually tried to build a firmware with both Earthsea and the new Kria features + preset saving included, and Earthsea would also need kind of a large JSON document definition which would also take quite a bit of space. I can try to merge ES into my dev branch and see where we’re at with memory… once I’m back at my computer late tomorrow night.


yeah, definitely memory / preset concerns. not just for expanding existing apps but for adding other apps in the future - should earthsea be part of the standard pack? or should this space be reserved for some future app?

no functional changes done to the official firmware other than having an extra grid app.

a side note (which shouldn’t drive the decision): merging earthsea to official ansible firmware would also mean i don’t have to rebase each time the official firmware is updated. at this point i’m afraid i don’t have the resources to maintain both ansible earthsea and polyearthsea. getting ansible earthsea working with presets is probably the last time i’ll touch ansible earthsea.

thank you - this would be super helpful!

1 Like

After merging and adding the preset save/load functionality here’s the binary size info:

   text    data     bss     dec     hex filename
0x1ccf2  0x1cb0 0x4af08  432298   698aa ansible.elf

So if I’m figuring this right we’ve got 0x7E000 - 0x698AA = 0x14756 or about 82 kB left flash, or 16%.
Here’s master for comparison (30% available):

   text    data     bss     dec     hex filename
0x1a5e2  0x18a4 0x3a278  352510   560fe ansible.elf

This approximately doubles the time it takes to save/load presets (from 10 seconds to a little over 20 seconds). That’s probably largely because it almost triples the size of the JSON file, (to about 1 MB) since Earthsea state has a more nested structure/fewer buffers compared to Kria, so the JSON structure is less compact. Branch is here.


this is great - thank you! could you post the hex file, and perhaps folks could help with testing it?

significantly increased time and file size make for a strong argument against including ansible earthsea in the official firmware.

I just wanted to cast my vote in favor of including ansible earthsea. It’s likely my most used ansible app, but not even close to the “only” app I use. :slight_smile:


For me time is not that important as it mostly occurs only in the beginning - but finally having the possibility to save presets to USB before updating the firmware or would be a big thing and I would strongly prefer it to having Earthsea as an Ansible app.

7 posts were split to a new topic: Ansible Development and Beta Firmware Discussion

Yeah I think that a 1MB preset file size is not a huge concern, and a 20 second load time is not maybe the end of the world. I’ve sort of been thinking of the feature as being designed for making backups, but if you had a lot of different presets you needed to load there might be a scenario where you’d want to use it in a performance, in which case that would be a big deal. The current version kind of locks down the outputs while a USB disk operation is underway though. It should also be technically possible to load/save only the presets for a specific app so it’s possible to save time that way – it’s happy to load whatever it’s able to from the JSON file. Having a PC editor for managing presets could help with this, this might be an interesting future project.

All this to say I think it’s pretty nice to have Earthsea included, it more than makes up for the space it uses. With maybe a few tweaks and preprocessor directives it might also be straightforward to make/automate “light” builds that only include a single app if that’s something there’s an interest in.

I hesitated to post the build with master + Earthsea I was using above because I wanted to have a chance to post an updated build combining everything I’ve been working on so that there’s only a single firmware to test. The latest build including Earthsea and everything else is in this thread: Ansible Development and Beta Firmware Discussion


i’m generally in favor of a combined master: more people will as a result use the great code created by the generous people here.

preset load time and size to me are not of concern. preset bank switching to/from USB during performance absolutely was never a feature :slight_smile:


re: merging in Earthsea: what’s the state of the documentation? I wrote a pass quite a while back and it’s in a branch, but I don’t know if it reflects latest state, or needs rebasing against latest Ansible docs. I have a little time this week and am happy to look into it.


@csboling since you already merged earthsea into your branch, do you want to do a pull request? alternatively i could update my branch from yours and submit a pull request, whichever you prefer.

do we want to merge first and then post a new beta, or do testing first? unfortunately due to family circumstances i have very limited time to work on any projects, so won’t be able to test it.

@infovore - that’d be great! as far as i can tell the only changes/additions that are probably not in the doc yet are these: Ansible Earthsea

OK. I will update that in the next day or two, perhaps on a plane tomorrow.


I have a branch with Earthsea merged in and with JSON preset support added for it, I can make a PR tonight. (edit: here)

I’m trying to keep the posted beta build current with master while also including other features in it that are still pending merge. Everything should be tested again once it’s in master I think, but the beta build as-is should be relatively close to the release version, excepting fixes for bugs found by users currently beta testing. We should be able to look at the diff between master and my dev branch after everything’s merged to get a sense of how/where master is different from the beta(s).