About


No, don’t ask…. It’s all Kevin’s fault….

Ok, you ask anyway: This blog is because I have been asked to share my thoughts, tips and tricks around Eclipse, CodeWarrior, Kinetis Design Studio and anything else around software, microcontrollers and BBQ (!!!) in an accessible way, instead of sending emails or store it in obscure folders on a network.

If you are still reading…. My name is Erich Styger, and I’m an engineer at heart. I started my professional career as a compiler engineer and  I always loved to get down to the bits and bytes. When I had to decide about what I should study at the ETH Zürich, I was bouncing back and forward between Computer Science and Electrical Engineering. While finally I ended up doing Computer Science, I always had one foot in the domain of Electrical Engineering. With this, ‘Embedded Systems’ and the world of microcontroller, hardware and software has been my home over the course of more than 20 years.

My passion is the interdisciplinary world, and as such I’m wearing many hats: I’m working for Freescale (now NXP) and the same time teaching embedded systems programming at the Lucerne University of Applied Sciences and Arts.

Campus Horw with Pilatus Mountain

Campus Horw with Pilatus Mountain

In my spare time (if any?) I’m engaged in many other domains: including my family, community voluntary work or my own projects.

It is important to note that this blog is my personal one, and as such my comments and thoughts are my personal ones too. I want be fair and balanced about everything I write, say and do, of course. I appreciate comments and feedback, as long it does not insult or harm anyone.

With this, I think this is a good start. This blog might evolve over time, and I’m excited about the journey.

Commenting

If you post your first comment, it won’t show up as it is pending in the approval queue to prevent spam comments. I usually approve comments within 24h so be patient. I try to answer every question the best I can, but please be aware that my time (and knowledge) is limited, and I cannot solve every problem.

Contact Information

If you want to contact me directly at the university: erich.styger(_at_)hslu.ch. For post related or topic questions, please use the comment feature in the blog pages: That way everyone else can benefit.

My postal address at the university (no advertisement, please!):
Hochschule Luzern
Technik & Architektur
Abt. E, Prof. Erich Styger
Technikumstrasse 21
6048 Horw
(Switzerland)

Using Content

You are free to re-use/reblog the content of this blog, under following conditions:

  1. A link back to the source/original content is prominently provided.
  2. For any commercial or profit usage (publications, books, etc), you ask me for permission (see above contact information).

Donations

Donations (e.g. hardware) for student projects (without obligations!) are always welcome, but please check with me first.

Other donations (Flattr) are given to a kids and children project in my community (Verein Jugend Steinerberg): this non-profit group engages kids and children and organizes various events.

Have fun 🙂

Tip: If you are wondering what kinda tool I’m using to create all these screenshots? It is Snagit from http://techsmith.com/. Really cool tool! And no, I have no relationship with that company at all.

Disclaimers

  1. The opinions expressed here are my own and are not necessarily shared by my employer, any other organization, or any other individual.
  2. Any trademarked names or labels used in this blog remain the property of their respective trademark owners.
  3. No guarantees are made regarding the accuracy or usefulness of content on this blog, though I do make an effort to be accurate.
  4. Links to external sites do not imply endorsement of the linked-to sites.

60 thoughts on “About

  1. A wonderful site of useful and very perceptive innovations. At last someone that understands Processor Expert and has actually extended it to overcome the liabilities of the base line version. I have not used the components as yet but hope to. First to read and find out as much as possible. Thank you very much.

    Like

  2. I read about the FRDM-KL25Z and was intrigued with this little board and its capability. I decided to get a a few and try them out. I have worked quite a bit with Arduio and have a background as a software engineer. My first task has been to try to get the KL25Z to work with nRF24L01 transceivers. The information that you have provided in your blog has been very valuable. Thank you for taking the time to document projects. In many cases, I cannot find examples or explanations for the many things that you have on your blog. I enjoy reading every posting! I was able to get the KL25Z to communicate with the Arduino and I owe lot of credit to your site. Thanks so much!!!

    Like

  3. Good day Erich,
    Well done on your site and thanks so much for all your efforts with generating and documenting all of the things you have! It is quite rare to find site like this that encapsulates so much in a very digestible manner. Well done once again!
    Cheers,
    Sam

    Like

  4. Hello Erich,

    I’m also “an engineer at the heart” and I’ve been working with MCU for 10 years mostly Microchip’s ones. We have recently decided to move to ARM based MCU. We were examining different products (ST, NXP, Nuvoton) but thank to you we are close to use Freescale’s ones 🙂
    Your blogs and components help us finish test projects almost twice faster then any other.
    I think Freescale owe you more then the New Year’s FREEDOM board gift 🙂
    Thank you for beeing open-minded and we are looking forward to your next blogs !

    Happy Freescaling !

    Like

  5. Erich
    I had an interesting experience with a Kinetis K20 MCU today. One of GPIO output pins, which was periodically being driven, was connected (accidentally) to 5v. Of course, it’s a 3.3v processor. I found out about the problem when I measured the 3.3v power supply, and got 4 volts. Apparently the 5v was somehow coming back through the output pin to the power. Very strange indeed. The amazing thing was that the MCU kept working through this, and when I removed the short to 5v, the output pin was not blown. Talk about rugged. I am impressed. The silicon is good.

    Like

    • Hi Dusty,
      yes, some Kinetis pins are ‘5V tolerant’, so they can used as 5V input pins. I have intentionally not used that feature because it is not easy to determine which pins are tolerant, and which ones are not. It seems that differs from device to device, and from package to package. So you would need to carefully read the data sheet. But in your case it seems it saved your microcontroller, so it is very good from this perspective too. 🙂

      Like

  6. Hi Erich,

    I was remembering about the 24L01+. Have you been playing with them?

    I have a question about the Freedom Board KL25Z. Is it possible to have output in a GLCD 128×64 pixels? Like this ones http://www.adafruit.com/products/188

    I am familiar with arduino but i am having real troubles to understand the work process of CodeWarrior. And Processor Expert generates to much codes in to much files and i am really confused. Maybe you can help me to understand how to port Arduino codes to the FreedomBoard.

    Thanks,
    Alex Vecchio

    Like

    • Hi Alex,
      yes, I have received my nRF24L01+ and making first baby steps with them since yesterday. I plan to write an article about this very soon.
      About the GLCD: you link does not work? Can you check?

      Like

      • Hi Alex,
        ok, now these links work. I do not have such an LCD, and I do not have a driver for it. But it should not be too difficult, maybe a day of work would be needed.

        Like

      • Hi Erich,

        The first time i saw KL25z i think “its arduino compatible. Must have an easy way to use all arduinos lybraries to develop things”. But untill now its not what i found.

        Did you found a tutorial or step by step procedures to use arduino lybraries with the freedom boards? Will be a giant step to make them more popular.

        Like

      • Hi Alex,
        ‘Arduino’ is probably an overused term today. Arduino is many things: an IDE, an open source software community, an open source hardware community, etc. What you refer to is probably the Aruduino ‘Wired’ library. I heard here and there about some porting it to ARM cores, but not seen it. mbed comes the closest to it. Both mbed and Arduino are C++ based which is in many cases problematic too. In a nutshell: Freescale does in my view not claim ‘FRDM-KL25Z is Arduino’ (they could even not do this legally, see http://blog.arduino.cc/2013/07/10/send-in-the-clones/). So it is more an ‘Arduino Derivative with compatible headers’. The pin header compatiblity is a great thing because this makes a lot of Arduino shields applicable for the FRDM boards. See my post of what I’m using. And The FRDM comes with a lot more processing power with a much cheaper price point.
        In a nutshell: I think you cannot use the Arduino libraries 1×1 if nobody ports the underlying wiring library. However, I have sucessfully used Arduino source examples and wrote open source Processor Expert components or normal software drivers with it. There is not much magic behind this: simply looking at the sources and implementing it. But I admit: it is work. And that’s why I share my work so everyone can benefit.

        Like

      • The magic behind is your knowledge sir.

        I am starting with this things. Today i was trying to write a simple Component to a Keypad matrix (3×4 or 4×4), trying to follow your tutorial to that accelerometer. But i think still is very hard to me. Not knowing where to put the codes is very hard. I just dont know how to choose between 3 or 4 Collumns and the component let me choose witch pins i will use. I tried to look the Freescale materials but they look shallow to me. Ok. I am not a programmer and i am like a child that need more support.

        Now i will dig your Git to try to find more things to learn.

        Well, I thank you very much for share your knowledge. Its very helpfull. Can i send you an e-mail asking other questions?

        Like

      • Hi Alex,
        programming normal source code is one level. Programming a component to generated programmers code is at least one level higher. As with everything, it is about learning, and things are not easy the first time. Do you have the driver working in normal C code? I’m affraid that implementing a ‘matrix’ with components is even more advanced stuff in CDE. I have implemented a matrix LED (see LEDmatrix component) which is just the reverse of what you are trying to do.
        It is based on LEDbit and LEDbyte. I think this could give you an idea.
        I hope this helps.

        Like

  7. Hi Erich,

    I’m looking for any tutorial about how to configure and use a GPS module in the freedom board. Everything I’ve done so far was thanks to this blog, which is amazing (congratulations!), but I found nothing neither here nor anywhere about GPS modules (only for arduino).
    Can you help me with a new tutorial or a reference ?
    Please keep up the good job! [2]
    PS.: Sorry if i shouldn’t ask this here, i dont know if there is a right place for this.

    Like

    • Hi Thiago,
      thanks, for sure I try to keep up writing new posts! About GPS modules: I have not used any with the Freedom board so far. I have some limited experience with the ones from u-blox, but nothing else. Do you have any modules in mind?

      Like

      • Hi, sorry for the delay to answer. I was waiting received a e-mail when you answer me and didn’t looked here again. Thanks for answer 🙂

        So, I would like to get the velocity, the position and the time/date, but this things i think i can do with anyone. The only important(diferent) thing is that i would like to use de LCD module together. The one it gives you less work it’s great to me. The modules what i found tutorials for arduino on google were: SKGPS-53 and EM-406A SiRF III.

        I dont know the u-blox products, i looked here and i didn’t find if i can get the velocity for example. If they work for what i said its fine!

        Like

      • Hi Thiago,
        ok, thanks for the names of the modules. I’ll keep my eyes open for these, but I have no immediate projects right now which would need a GPS module for now, but this easily could change in the next months.

        Like

  8. Thanks for the great articles, I love them and have learn a lot.

    I live in Taiwan, Asia. As you might know, English is not our national language, people speak and read Chinese here. I’d like to pick some of your articles, translate them to Chinese, and publish on my own website http://mcuapps.com/blog/ . For this purpose, I might like to use your pictures in these articles directly.

    Would you like to permit me to do the above activities ? I think the translated articles would be great for the local engineers here to know more about the embedded development. Hopefully I could get your reply soon. Again, thank a lot for your efforts.

    Like

    • Hello,
      Thanks for contacting me, and thanks for your offer to translate them to Chinese. Sure you can do this, permission granted. All what I ask for is providing a reference and link to to the original article.
      Best regards,
      Erich

      Like

  9. Congratulations and thank you for your great work.
    Do you have any suggestion/idea on how to start a new barebone project with only CMSIS support + drivers (MCG,…) ? I saw an example from the freescale’s examples package, but it is so confusing and difficult to swith the toolchain/IDE.
    I’m using GCC ARM 4.7q2 + eclipse juno + processor expert + Segger JLink Lite (Open SDA) and is working great.

    Like

    • Hi Rodrigo,
      thanks 🙂
      As for your questions/request: the problem I see is that Freescale has no CMSIS-CORE support provided. Without this, you cannot have a fully CMSIS solution :-(. And creating such a CMSIS-CORE infrastructure myself would be a very big task.

      Like

  10. Pingback: DIY: Changing Processor Expert Components | MCU on Eclipse

  11. Pingback: 1000 Days of Blogging: Numbers and Tips for You | MCU on Eclipse

  12. Hello.
    Many thanks for your article, they pushed me to the top of the study of microcontrollers, and helped to define where to start (the choice fell on FRDM-KL25Z).
    I am from Russia, but in their native language information FRDM, CodeWarrior and the rest, almost none.
    Now the question arose about the use of wi-fi, I have «MID Module W10 RTL8188CUS 150M USB WIFI Wireless Network Card Adaptor Module» but he only USB2.0 interface. Can I use it with FRDM-KL25Z, and if so how?

    Sorry for my English, I use autotranslator.

    Like

    • Hi Igor,
      If you use that WiFi module, that could work, but I have to say you will be problably on your own. And using a USB device for which you do not have drivers will be a lot of work, and you will need a lot of experience, especially as you have to write a USB host stack.
      So not recommended.
      A better approach might be the ESP8266:
      https://mcuoneclipse.com/2014/10/15/cheap-and-simple-wifi-with-esp8266-for-the-frdm-board/
      I have this one working with the FRDM-KL25Z board 🙂

      Erich

      Like

      • Thank you for your response.
        So leave this sensor for Raspberry Pi (unless of course it’ll give myself), I think there are problems with the driver will not be.
        Speaking of the Raspberry Pi, not planning to write about a bunch FRDM-KL25Z and Raspberry Pi? What opportunities it can give, and what constraints are imposed? It would be very interesting to know.

        Like

  13. Hi Erich, and thanks a lot for your very, very useful blog. You have eased a lot my switch from ’08 to Kinetis.

    I would like to signal a problem: using a MKE02Z16VLC2 the timings of my project are wrong… The reason seems an error with PE in KDS 2.0.0 which sets a 32,768kHz internal oscillator (unfortunately not modifiable) while the mpu datasheet specifies a 31,25kHz oscillator.
    Cheers, Michael

    Like

  14. Hi Eric,
    I am using a MK20DN512VLL10 with CW10.6. There is an interaction between the watchdog and the USB device stack. The watchdog (10 sec timeout) runs OK until a USB cable is plugged-in. The USB runs OK without the watchdog. When the cable is plugged in, the watchdog times out. During this time interval, the watchdog is being serviced every 800 ms. There does not appear to be any blocking issues in the USB stack.
    Are you aware of any issues in the K20 clocking that would potentially cause the interaction?

    Regards,

    George

    Like

  15. Hi Erich!!!

    I just wanted to say THANKS!!! and CONGRATULATIONS!!! I am so grateful with this blog because it has been such a useful tool!!! a few days ago I was in a Seminar in Bogota-Colombia with the Distribution Sales Manager Freescale and other Executives of Latinamerica. Part of the seminar was a brief training with the K64F board and they mentioned this blog. They say that this is the top blog of information about the Kinetis family.

    I just wanted you to know it and to thank you! Good job! Thank you very much!

    Greetings from Quito-Ecuador

    Like

  16. Pingback: Thank you for all your comments! | MCU on Eclipse

  17. Hi Eric, really appreciate the blog. I’m looking to bring up a MK26F part.
    I can get part of the way on creating a shell, however then it says AS1 is not supported for selected processor. Is it much work to add it in? Many thanks.

    Like

    • Have you created the project with the Kinetis SDK enabled? If so, then this is the reason for that message: the Kinetis SDK is using a completely different API. I would have to change the component interface to use that API. Not that hard I think, but work.

      Like

  18. Hi Eric, yes I do have the SDK1.2 enabled.
    Not sure where PE sits in the layered design, but on new Kinetis Project in the “Rapid Application Development” windowlet I select a recent processor ( K2xx – MK26 and or MKL2x- KL27Z-MKL27Z128xxx4 ) and set “Kinetis SDK”=none – it disables selection of PE. This happens for the MK26 and MKL27Z256 processors – both new processors
    If I choose an older processor – eg MKL2x-KL26Z – MKL26Z128xxx4 – then when Kinetis SDK is set to none – it does allow Processor Expert.
    Puzzled, but I’ve tried a whole bunch of variations.

    Like

    • Neil,
      it seems to me that Freescale only supports Processor Expert for newer devices if you are using the Kinetis SDK. Or in other words: only Kinetis SDK is supported. It is not possible any more to have a ‘Processor Expert only’ project as before 😦

      Like

  19. Pingback: FreeRTOS ARM Thread Debugging with Eclipse and GDB | MCU on Eclipse

  20. Pingback: Segger SystemView: Realtime Analysis and Visualization for FreeRTOS | MCU on Eclipse

  21. I love this blog ! So much great information and wonderful pictures. We are currently integrating the Segger USB host mode bootloader on a K24. Is there a chance NXP will implement a USB bootloader allowing the use of a mass storage device ?

    Like

What do you think?

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s