Aleph Teletype Port

I have several ideas which will expand functionality and flexibility of my system by linking aleph, teletype, and others in the same family (monome + whimsical modules).

Continuing the discussion from Aleph ii / i2c Dev:

My 1st goal? Clone teletype to aleph

7 Likes

Righty ho.

Simplest question first. Have you coded anything for the Aleph’s control processor or for any of the modules? (e.g. the AVR32 processors).

Also, what OS are you on?

No, not yet. Will follow the path outlined here https://monome.org/docs/aleph/dev/app/ for mac os toolchain

Should I be aiming to make an OP? or something else?

I hear everybody talk about github but never actually messed with anything that matters. Forgive me if I use wrong terms and don’t hesitate to correct me or ask for detail…as an overview:

  • I’ll need to clone the current TT code to allow me to make changes (or better to clone an aleph OP?)
  • Compare differences between existing ports (MP, WW, KR, etc)
  • Tweak tt and make a file to test (in the virtual box? on hardware?)
2 Likes

Probably best to avoid the term OP, as I think it means something different in Aleph world (Bees?). I got a bit confused and wondered why you wanted to start by writing a Teletype OP!

I only know a little about the Aleph in terms of it’s hardware and software. I do know that it uses a different bootloader setup for the AVR32, which means the linker script is a bit different. Plus I think it has some extra SDRAM that the Teletype doesn’t. Obviously the IO setup is different too.

Anyway, first of, use this repo to get a toolchain on OSX:

If that one doesn’t compile, comeback to me and I will suggest a different one (don’t ask it’s complicated).

Next up I would suggest trying to get some of the Aleph apps to compile locally. Probably best asking someone other than me for which ones to start with.

If it were me, the first major milestone I would work towards was to get a butchered version of the Teletype codebase to compile and boot on the Aleph. And by butchered I mean removing anything that seems like too much effort to make work. You’re just looking for a proof of concept, and to figure out what the road blocks are.

One of the biggest issue you will run into is which version of libavr32 to use on the Aleph.

Gotta be honest though, you’ll need to get comfortable with both the Aleph codebase and the Teletype codebase to get the port done. Once you’re at that point it should be an easy job (e.g. a weekend of coding).

How much C coding have you done? Likewise embedded coding? For reference, I’d done some C++ and Objective-C before, but the Teletype work I’ve done was my first real use of C. Similarly, I’d only played with Arduinos before.

Ultimately you’re going to want to hack on the Teletype codebase. Do you own a Teletype?

You’ll need to get familiar with git if you’re not. Also, the Teletype repo makes use of submodules, which can catch you out if you’ve never used them before.

The Teletype code is a whole extra level of complex compared to anything else. It’s about 16,000 lines of C (not including the tests or libavr32), vs 1,600 for White Whale.

There is a simulator for Teletype, but it’s only for the programming language (which is abstracted from the hardware). The actual app, with the script editor and the pattern editor and such only runs on hardware. AFAIK there is an Aleph DSP simulator environment, but not one for the control side.


Yikes, bit of a wall of text. I hope it’s not too overwhelming.

2 Likes

No experience whatsoever so I’m fully aware this might not be wise. Once I look at the code I’ll have a better idea whether this idea is unrealistic for someone at my level.

We’ll see

This was eye opening…makes sense for what it’s capable of though

I anticipated this. Glad to have that much confirmed

I’m so new I wanna make sure: when you say “locally” you mean on my laptop, right? Not using the aleph hardware yet…

1 Like

You’ll definitely learn a lot along the way… a decent amount of it will be useful in future programming endeavours. But similarly don’t be afraid to say it’s too big a thing to start with.

If you’ve never coded before or are unfamiliar with the command line, then it might be best to start smaller.

Yes compile the app on your laptop to whatever format you’re supposed to put on the SD card. I think there is supposed to be a way to avoid the SD card and send the app directly from your computer over USB. For the sake of your sanity you may wish to investigate this.

1 Like