I'm learning electronics/microcontroller programming through TI-MSP430 Launchpad(Energia) and Arduino.

Both are based on wiring framework, and very good place to start for a beginner like me.

Now as I'm forwarding in my learning, I'm thinking to explore more and want to do a real world project. My project can be easily done on both above mentioned platforms, but I want to use STM8S-Discovery(Dev board or STM8S series MCU) for this but there is no wiring framework for STM8S as far as I know and I don't want to use if there is any.

What other skills/information I need to migrate from these wiring framework based platform to real world microcontroller projects?

  • \$\begingroup\$ blasting all the sites at stackexchange with the same question is frowned upon. \$\endgroup\$
    – old_timer
    Dec 17, 2013 at 2:48

1 Answer 1


I've figured out how to program an ATmega on an Arduino board directly from the command line, without using the Arduino IDE and its libraries. I can program it now like any other bare AVR, but with the advantage of an integrated USB ICP programmer. So I am still using the board (which is little more than a crystal, a USB to UART interface and a voltage regulator), but I'm using real world tool chain to program it, without the Arduino bloat.

I guess all the tools to do bare metal programming for the MSP430 should be on your system too if you have Energia installed. You just have to figure out what the Energia IDE adds as libraries and wrappers. You can check that by viewing the verbose output when compiling and programming the device. (File => Preferences => Show verbose output during: ☑ compilation ☑ upload).

Find the compiler commands and its flags, find the commands to program the controller. Then check with the documentation which commands, what flags you really need and which ones are Energia/Arduino specific. This probably leaves you with a compiler stage, linker stage, conversion to binary/hex stage and a flash-the-controller stage.

  • \$\begingroup\$ I took a similar approach. I have an Uno that has the Arduino ready ATmega328 removed and replaced with a bare metal ATmega168P I had laying around. I use the Arduino board for the support circuitry, and program and debug with a JTAG ICE3 on the supplied header. \$\endgroup\$
    – Matt Young
    Dec 9, 2013 at 21:07
  • \$\begingroup\$ I guess I'm still using the bootloader, you are even closer to the bare metal @MattYoung \$\endgroup\$
    – jippie
    Dec 9, 2013 at 21:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.