Ansible Kria Feature Requests




Just hoping to clarify something…

I have an Ansible but no TT. Will there be some kind of official announcement if and when the “official” Ansible firmware is revised?

It looks like much of this thread has to do with TT related issues, so I’m only kind of skimming it…


I’d recommend reading a bit deeper on what @csboling has been adding. Only a small portion deals with Teletype and it’s mostly a preset saving behavior. The rest has been adding upon Kria’s functionality in very exciting ways! No idea on an official merge as it seems the specifics are still being “beta tested” in a way.

I haven’t had a chance to try out the newest build but I’m looking forward to it!


all of the recent changes (thank you @csboling) have been accepted into the master branch of the repository, so they are now “official”

one thing we need help with is keeping the documentation up to date. so far changes have been made to the main web docs but we will quickly reach a point where some diagrams should be revised, and perhaps some micro-tutorial vids would be very helpful for others— again reiterating how non-coders can help push an open-source project forward and be a part of the movement


Thanks Brian.

In case it’s useful to see the process a non coding newb might take, I followed the link to the github, where I found the link to the

Once there I scrolled down to Modular and then to Ansible underneath. Opening the Ansible link, I see firmware updates, and the firmware version is listed as 1.6.1 but there is no date listed for that version, so I don’t know what is on my Ansible now or if I need to update to get current.

I’m sure I’m missing something along the way, and suspect that there is probably something on the github that I should be looking at!

Needless to say, I’m going to be grateful for any pointers on how to proceed…


1 Like

1.6.1 is the current released version and is what’s currently shipping on newly sold Ansibles. A release date would be good to include in the docs, I’ll add that in my next docs PR. The release history can be found on the github page here but that is not too straightforward to find starting from the docs page. Future versions which have the preset save to USB disk feature will include the firmware version at the top of the preset file, so from then on you should be able to answer “what firmware version am I running?” by saving your presets to disk and opening the text file on a computer.

If you’d like to try out the new features I’d be thrilled to have you beta test! That procedure goes something like this (which I will also write up for the docs page):

  • Back up your presets. If you have existing presets saved on Ansible that you don’t want to lose when you update firmwares, do the following. If you don’t mind Ansible’s saved presets being overwritten, you don’t need to do this part, but you will still need to get into bootloader mode to update the firmware. WARNING: you may want to take photos of your scales before updating. In one case someone’s scale data has failed to load when recovering from a backup. I’m not sure the cause of this issue yet but am looking into it (2019/10/13)
    1. get a dfu-programmer binary appropriate for your platform.
      • linux: install dfu-programmer from your distro’s package manager, so like sudo apt-get install dfu-programmer
      • mac: brew install dfu-programmer
      • windows: get from here, use it like this
    2. unplug whatever’s in ansible’s USB port
    3. turn off ansible
    4. plug in the USB A-A cable (that came with ansible) to your ansible and your PC
    5. hold down the preset/mode button while powering on ansible. ansible is now in bootloader mode. my Windows machine plays a chime when this happens to notify me that a USB device was found.
    6. run the following in a terminal:
      dfu-programmer at32uc3b0512 read > ansible-backup.hex
      dfu-programmer at32uc3b0512 start
    7. Disconnect the USB cable from Ansible, then power your case off. If the cable is still connected to your computer when your case powers off, sometimes Ansible won’t have powered off and it can be stuck in a weird state. If this happens you may need to get back into bootloader mode and run the start command again.
    8. PM me that ansible-backup.hex file. I will send you back an ansible-preset.json file. put that on a USB disk you want to use. I do these conversions with the Python extract program I wrote, if you prefer to do it yourself.
    9. once you’ve got that ansible-preset.json file in hand, time to update your firmware!
  • Update your firmware.
    1. get back into bootloader mode via the procedure above.
    2. this time, download the new firmware file from this post. then you’re gonna run:
      dfu-programmer at32uc3b0512 erase
      dfu-programmer at32uc3b0512 flash ansible.hex --suppress-bootloader-mem
      dfu-programmer at32uc3b0512 start
    3. Disconnect the USB cable from Ansible and power cycle your case.
  • Load up your presets off that USB disk! Note that some people have had problems with some USB drives, I’m still looking into this – if this procedure hits a snag you might want to try with another disk or two. Insert the USB disk with ansible-preset.json (must have this filename and be at the top-level of the drive) into ansible. press KEY 1 (on the left). the LED next to the USB port turns orange to indicate that preset loading is armed. press KEY 1 again and the LED starts blinking. Once the LED stops blinking (roughly 10 seconds), your presets should be loaded! If there was an error when loading a preset from disk, it will try to recover the module’s existing presets by loading them off an ansible-backup.bin file it creates on the disk. If you have any errors loading or saving presets please let me know and provide any of these files you can so I can do some surgery.
  • In the future you won’t need to do the "read > ansible-backup.hex and PM it to @csboling" part, because you’ll be able to save presets directly to the USB disk with a similar procedure: insert USB disk, press KEY 2 (white LED comes on), press KEY 2 again (white LED starts blinking - you can remember, say, “key on the right + white light means write” for writing to disk), wait for the blinking to stop. If for some reason there was an error, both LEDs will come on and stay on until you unplug the USB stick.

I realize that’s a little involved! Don’t hesitate to PM me or post on the Preset save to USB disk thread with questions. If you know you have any firmware version other than 1.6.1, it would be great to know what version, otherwise it’s probably possible to figure it out with a bit of guesswork.


Thanks! I can try to get to this over the weekend.

This is already beyond my skills and knowledge so I look forward to learning more!

1 Like


I just installed this new firmware and had some fun with it. Alternate notes and the ratchet implementation are a bit complex to understand at first but then quite interesting.

My thoughts/ideas for a first feedback are:

  1. As it is now the CV changes at the first of the possible ratchet sub steps, even when it is not selected/skipped. It would be great (but mirght be complicated) if the CV update would be delayed until there is actually a trigger. But, it still should be the CV that is associated to the active main step. If the note sequence has already moved on when the first ratchet sub step occurs, this should not be taken into account for the CV output till the next full step. I hope that was somehow clear? :thinking:

  2. I find the glide feature a bit hard to dial in for long term practical use and wondered if it might fit better if the the glide time is not fixed in steps up to 120 ms but, as the ratchet, stepped in relation to either the tempo or the note distance. As it is now it tends to just not really fit.

Apart from that and despite my usual skepticism towards too many new features and modes, I have to say that I really like this. :grinning::+1:

1 Like

Thank you for all your work with this!

1 Like

I can’t seem to find the additional toggle, is the page I’m supposed to be the 15th button on the 1st row?

Is it supposed to be the 1.6.1 version or will a new release be coming soon? Because I’ve just tried the 1.6.1 version and it doesn’t include the changes @csboling recently made.

1.6.1 is from last year, so I expect a new release is due.

Last year I worked on a feature sort of related to this. It was a per-track toggle that would only advance any of the parameters when a trigger fired: (Kria) Feature(?) trigger-step params

Wouldn’t that be the same as the implemented synchronize / standard sequencer function?

What I meant was, that the CV parameter is happily moving on but only gets read when a trigger occurs.

EDIT: Wait…no it’s not the same…sort of…:thinking:

The config page I’m talking about is the one from holding down key 2 on the Ansible panel, the one where note sync/loop sync are configured. On that page it should be a single toggle toward the left side of the bottom row.

I think probably it makes sense to group as many features together as possible before cutting a new release. In particular the preset saving feature is important for making updates make sense for people who’ve been using an older firmware version, but this is a big and error-prone addition that needs a lot of testing to be confident in its correctness before it goes in the official firmware. I’ve also worked on Ansible support for some new Teletype remote ops that would be nice to include, and would like to see if I can chip away at some of the known bugs in addition to adding and polishing features. So I think it might be a little while before an official update makes sense. However, the preset feature is implemented in such a way that you should be able to keep updating to new betas as often as you’d like without losing presets if you want to stay on the bleeding edge.

This makes sense. Delaying the CV change I think is pretty straightforward (basically set the DAC value when the trigger output is set high, rather than immediately when reaching an active trigger step) but keeping the previous CV value if it has already changed when the trigger happens seems trickier. I won’t have time to prototype this for the next several days but I can give it a whirl. Not sure if this is always the desired behavior or if it should be configurable, in which case it needs some UI.

This seems very useful, and may not be too hard to implement. In addition to off-panel configuration by Teletype, the USB save feature should also give us the ability to do some more persistent configuration by tweaking the JSON file, so that’s also an option for introducing some settings without cluttering the grid UI, though these would be a bit more of a pain to tweak. In particular I’ve been thinking that you could use this to load up a custom scale table if you want to use something other than equal temperament. Glide customization could also be done this way. Going this route would benefit a lot from some kind of PC program that would let you load up a preset file and graphically tweak it, rather than having to sift through >300KB of unindented JSON to find the setting you want.

This is awesome, hadn’t seen this thread. I would use it all the time. From the video (without looking at the code yet) am I understanding right that each trigger in a ratchet will clock the track? In combination with the ability to toggle gates on and off when ratcheting this seems super powerful. We would need to figure out where to put the UI. There is one extra column available in the section of the scale page that’s now used for TT clock enables + step direction settings, which seems like definitely the place that makes sense, but it seems like it might get kind of confusing with several different settings clustered in that corner.

Big thanks to everyone for all the testing and discussion so far!


Tbh I don’t remember. I’m pretty sure I implemented it so that it was actual trigger steps and not ratchets that would trigger it, but it wouldn’t be hard to modify it to use the individual ratchet triggers too.

Yea that is where I put it.


Is this commit part of the 1.61 FW? or a totally different branch?

These commits are in master now but an official (2.0.0) release has not been made yet (soon!). 1.6.1 was released April 2018. For the latest betas, changelog, and ongoing dev discussion see Ansible Development and Beta Firmware Discussion.

Hey @csboling, hope you’re well! Wanted to update on the latest firmware testing, my Kria/Ansible crashed again today, second time this happened on the latest and also one of the previous firmwares.

It would freeze up, all the gate lights would light up, none of the CV lights light up, but the sequence keeps playing though without outputing gates.

I tried to short press the preset button but it would change apps instead.

I took a video but didn’t upload as it’s too big for here, if you want to see, I could upload somewhere else.

That’s really interesting, especially that the sequence keeps playing instead of the app freezing completely – so the CV outputs are changing, but the gates aren’t? Or the sequence appears to be running on the grid but the outputs are all constant? Do you know what you were doing when this happened, like what page you were on or what parameter you were changing, were you working with a fast or slow master clock, did you have external clock or reset patched, was there I2C stuff involved in your patch? Definitely would like to fix this before release, I have some hazy ideas of what would cause this but it sounds like it might be a bit tricky to reproduce (and therefore to be confident that it’s fixed). @Leverkusen it sounded like you had experienced something similar?

1 Like

The CV outputs kept outputting the melody, but the Lights stopped responding (maybe the pitch was too low? Don’t know) and all the gate lights went on super bright but none of the gates were actually opened.

If I remember right, the grid was looking pretty normal.

Unfortunately I don’t remember doing anything with Ansible when this happened, think I was adjusting another module.

I was synced to TT clock, the internal clock was set to the fastest speed, no cables were connected to Ansible, and the only thing in i2c was the clock from Ansible which wasn’t very fast.

It was quite arbitrary, when it happened the first time, I thought it was an issue with that specific Beta and didn’t report as I soon installed a newer version (not the current version) and the issue went away until today on the latest Beta.

I’ve posted the video for reference, though it only shows my trying to do short presses on the preset button. But you’l be able to see the 4 gate lights on when Ansible is on I think. Hope it helps!

Thank you!

1 Like