Hacker News new | ask | show | jobs
by guitarbill 3383 days ago
Paul Stoffregen's Teensy boards are the way to go. The hardware and the software are excellent. Heaps of power thanks to the ARM Cortex M4 and you still get the Arduino IDE. Can't recommend them enough, wish I had of moved to them far sooner. Everybody I've given one to has loved them, and the USB support is also very welcome. (As far as price goes, they're development boards and worth every cent for beginners.)
5 comments

The Teensy boards are fabulous. I'm so impressed by what Paul Stoffgren has done. He must be some kind of 100x developer. And there are some power users of his boards, who have contributed libraries as well.

It's worth noting that while you can ease your way into programming with the functions available within the Arduino IDE, there are libraries for many of the special functions of the chips, and all of the special function registers are exposed, so you can make full use of your hardware capabilities if desired.

As for choosing a microcontroller, I'm generally tempted to start by choosing a development tool, because I'll be spending more of my time in code development and testing than in any other activity.

We've had the pleasure of having Paul as a sponsor for our senior project, a sample-based midi synthesizer, running on, at least, the Teensy 3.2 and 3.6; we got free hardware for development, and he's been quite supportive, despite being obviously perpetually busy. And I can't say I ever felt at all hindered by the hardware or its libraries, and although we started the project with almost no embedded experience. Quite a fun way to end college.
Do you have a site about your project?

I'm interested in synths (and teensies) and would be interested to see it.

Having worked on college labs with Paul 100x is about right. We just kinda looked in wonder at his projects... and he sold us the parts for ours... A real serving individual actually.
One of the things I like about this choice is one does not need an IDE, at least not with the 2.0. One can do non-graphical (systems) programming on an underpowered computer with no graphics.

I statically compile the loader. On BSD at least, no 3rd party libs are needed. Then all I need is avr-gcc. I can do everything from the command line. No closed source tools. No requisite graphics layer (e.g., Windows OS). No large interpreters (Python, etc.).

https://raw.githubusercontent.com/PaulStoffregen/teensy_load...

Can anyone recommend other boards where everything can be done like this, i.e., without needing closed sorce tools, graphics layer, or installation of interpreters and scripting libraries?

e.g.: http://home.hccnet.nl/anij/nof/noforth.html

The AVR-based Arduinos (Really, I think most AVR-based boards, unless it has some really strange proprietary way of flashing).

The MSP430-based TI Launchpads.

The various ESP-something WLAN boards have open toolchains and programming over serial as well as far as I know.

I have about 2/3 of an 8080 emulator running CP/M for a MSP430 LaunchPad somewhere; because that MSP430 only has 2kB of RAM it has to swap to an external SRAM device. There's AT keyboard support (via an external level shifter).

I got it to the point of booting (very slowly) up to the command line prompt and processing basic commands, but unfortunately I never figured out how to make the screen work, so that's where the project stalled. The hardware's since been broken up and repurposed.

All in C and hand-written assembly tied together with a makefile, using tools that are in Debian. The standard flash tool (also in Debian) is really easy to use and even supports JTAG debugging over USB. (Also the MSP430 has a lovely assembly instruction set if you want to work with that sort of thing.)

Can't comment about AVR or ESP; never used them.

Any of the Cortex-M* series are also generally a good choice, for example the STM32* series. All of these are supported in mainline gcc, and have open source support libraries provided by the vendor or via libopencm3. Be a bit careful, as some vendors like to use proprietary licenses for their headers, but in most cases there is at least one open source alternative.

And of course the RISC-V HiFive1, though it's still very new and in sampling quantities.

And you can use OpenOCD to program/debug most ARM devices.
I'll have to look into those. Being able to start with the Arduino IDE is a big plus for beginners.
Additionally, there is a (small) community around programming Teensy in Rust, which is awesome.
Extreme agreement from me.