Which platform should I use learning to develop digital modules/hardware?

I’ve been looking at putting together a few digital module ideas, such as voltage storage and trigger generators, and wondering which setup would provide the least friction and most flexibility to someone with limited electronics experience but a fair chunk of programming experience. Not concerned on language, would look at it as an opportunity to learn something new. A cursory look around, and look-mum-no-computer’s videos suggest a Teensy? Anyway keen to hear any suggestions on where to start.

2 Likes

Awesome question! I’m in the same boat; lots of software engineering experience, no EE experience, but eager to start to play around in this space.

It feels like expanding an existing project could be a good start. Have you tried contributing to Teletype? I was thinking about maybe starting there.

Teensy is a great platform. For less computionally intense tasks (e.g. trigger sequencing or manipulation) an Arduino would also work.

Another option, that saves you from needing to breadboard jacks and pots, is to use an existing digital module that can be reprogrammed. Mutable Instruments’ modules are perfect for this. Here’s a write-up courtesy of @tomwhitwell:

5 Likes

Another reason to not sell my Clouds! Thanks

Another easy place to start is my Radio Music - which is a Teensy + 2 knobs + SD card + 2 CV ins + one digital in/out. The thing it isn’t good for is effects - audio in doesn’t really work without a lot of level messing about (it’s 0-5v so bipolar audio needs scaling and shifting). The Teensy audio library is a bit easier than starting with STM coding on Clouds.

4 Likes

Lots of good suggestions in this thread so far: Teensy is very powerful for what it costs, and there’s lots of examples in the wild:

  • @TomWhitwell’s Radio Music works a nice harness for wrapping some analogue or digital ins/outs to a Teensy with a few controllers. You can use it for very simple things, and it can go as far as (obviously) playing back audio.
  • @Cutlasses’ Glitch Delay and Freeze modules use a Teensy 3.6, six pots, two buttons and accompanying audio library - the 3.6 doesn’t need an external audio board to do stereo out, and it has multiple ADCs so you can read pots and stream audio. Those boards are going through a revision, I think, but they act as a nice harness for building audio.
  • if you’re not interested in audio, an Arduino Nano or clone - as used a bit by Sam-LookMum - is a dirt cheap way of interfacing with gates and pots.
  • Ornament and Crime and Temps Utile are really good examples of boards and code that wrap the Teensy in useful ways - in particularly, giving you high-quality DACs out on the OC, and doing realtime code.
  • if you want to scale up or build something more standalone, Olivier Gillet has put so much STM32 code in the wild.
  • “contributing to Teletype” is, dependent on your level of C and familiarity with Teletype, possibly not as simple as you might think. That’s a moderately chunky piece of code there.
  • going beyond boards with USB bootloaders - the Teensys and Arduinos - you may end up needing a programming interface of some kind, like a J-Link or USBasp. But that’s probably a more advanced topic.

If you’re comfortable with the code, that’s great. From an electronics standpoint, there are a few key problems to solve - and that some of these designs have solved for you:

  • most importantly, these boards operate from 0-3.3V. They do not want anything outside that; at best, things won’t work, and at worst, you’ll fry things. So all the analogue inputs need to be scaled, offset, and possibly clamped. (eg: clamp to bipolar 5V, and then scale/offset to unipolar 0-3.3V). That’s a problem to solve.
  • …that also means you’ll need to scale any output back up, too, especially if you’re generating CV. Scale/offset can be done in a single move. You’ll learn a chunk about op-amps doing this.
  • You’ll come up against the limits of how many input pins you have, frequently - especially when it comes to wanting to read and write analogue sources. The Teensys have 1-2 output DACs, for instance, at most. And input ADC varies between boards. You might quickly find that mux chips (eg a 4051) will make you life a lot easier - a multiplexer chip allows you to read a number of sources in turn, meaning you could read, say, eight pots from one analogue input by reading them quickly in turn. These are not hard to wire up. There’s a tendency to want to do everything in code when a 50p part will do tons for you.
  • More accurate analogue input/output might require ADC/DAC parts better than what’s on a controller. A good example here is the Ornament and Crime, which uses a high-quality external DAC for its outputs.

Language: is going to be plain old C, perhaps wrapped in a *duino wrapper, but still.

The other reason to at least look at example projects is that they do cover a lot of the belt and braces: filtering a power supply, clamping inputs, correct impedence resistors everywhere. The free version of Autodesk EAGLE will help you look at the schematics for the boards I mentioned up top.

14 Likes

WOW. Incredible response, thank you! I was feeling a little guilty after I managed to dig up some old threads covering similar ground, but that’s such a wealth of information I’m glad I resurrected the question.