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 25 years.

During my time at the ETH Zurich I learned Assembly, Pascal, Modula-2 and Oberon programming. My master thesis was to port the Oberon compiler to HP-UX in the group of Niklaus Wirth. I started as a compiler engineer for the HIWARE AG in Basel/Switzerland, developing Modula and C/C++ compiler, build tools and simulator/debugger for several microcontroller architectures, including Hitachi H8-500, Motorola 64K, HC11, HC08, HC12, PowerPC, STM7, STM19 and others.

You can fine out more about me journey through different companies in my LinkedIn profile.

My passion is the interdisciplinary world, and as such I’m wearing many hats: I am teaching as Professer embedded systems programming at the Lucerne University of Applied Sciences and Arts. Beside of that I’m working part time for NXP with helping out in the community forums or providing customer feedback on their products.

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.

This blog is mainly one about technology (Eclipse, IDE, compilers, electronics and all the other things which fill up my professional life). Against some ‘blogging rules’, I decided to enrich it with articles about my other passions like BBQ/cooking or hiking/nature. I hope you enjoy that mix as much as I do.

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.

I do not write paid articles or accept external paid articles. If I do receive hardware for a review, this is clearly marked in the article. You might see advertising with my articles: this is provided by WordPress and part of the (paid) WordPress plan I have. I cannot (and don’t want) accept advertising. Materials/tools you see in my blog is my personal gear or things and tools from the Lucerne University used in my research projects or courses.

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

Commenting

Because of the huge amount of spam comments every day, WordPress tries to filter them and moves them to the spam bucket.  If you post your first comment, it won’t show up as it is pending in the approval queue. I usually approve comments within 24h so be patient. And if you subscribe by email or as a WordPress user, then it seems you should not be marked as spam by WordPress.

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. If you don’t see your comment after a day or so, ping me on LinkedIn or through the email below.

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. Keep in mind that I’m updating my posts (e.g. adding more information or updating broken links).
  2. For any commercial or profit usage (publications, books, etc), you ask me for permission (see above contact information).
  3. For any other usage, you have to ask for a permission in writing: many portals simply copy my content without attribution which I is not a fair use of this content.

Donations

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

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.

85 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. Howdy – I’ve been enjoying your blog and thought you might know – is the Freedom Board considered Open Source Hardware?

    Like

  6. 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

  7. 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

  8. 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

  9. 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. 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

  10. 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

  11. Hello,
    In your topic Top 5 Eclipse plugins, there might be a wrong path to Eclox. For me the working path is: download.gna.org/eclox/update
    BTW, very helpful blog, thanks

    Like

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

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

  14. 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:

      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

  15. 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

  16. 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

  17. 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

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

  19. 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

  20. 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

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

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

  23. Hi Eric, I’m hoping you can help me with this — arduino.stackexchange.com/questions/18132/setting-baud-rate-of-250k-for-the-hc-05-bluetooth-module
    Basically, Im looking to transfer large file 2MB to 10MB saved on an SD card using Arduino to Android via Bluetooth (HC-05) and need higher baud rates to reduce the time taken for file transfer.

    Thank you.

    Like

  24. 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

  25. Dear Erich Styger,
    Will be helpful if you could shed some light on MEPAS (Message Passing System Kernel) by HIWARE AG.

    Kind Regards,

    Like

  26. Hi,

    Nice to meet you.

    We are the WIZnet Team in India.

    We have been searching some application references in which WIZnet solution is applied and found your project “Arduino Ethernet shield with SD card. “. In the project Wiznet chip W5100 is used (Arduino ethernet shield). Your development looks very cool & smart.

    Recently we have developed WIZnet Museum site. This is an academic-purposed collection of open projects, tutorials, articles and etc from our global customers.
    If you are O.K. we would like to introduce your project and device in here. Hopefully, you will allow this.
    Hopefully, keep contacting us for the friendship.

    Like

    • Hi Roma,
      I really appreciate that you have asked for this. And yes, I have seen that WIZnet Museum page (great idea, btw!), so I would be honored if you could list that project up there.
      Erich

      Like

  27. Hi
    I have issue installing darkest theme into 10,2 MCUExpresso and wondered if you may review and update procedure for oxygen. It already has MPP Marketplace client within 10.2 but uncertain why Darkest Theme has install issue……the link in 2017 article no longer apply to Oxygen,

    Like

      • I actually tried this and it fails to install Darkest Theme. I put this Question in Genuitec forum. I’m not sure what else missing to make this work.

        Like

        • I tried this too, and indeed I receive an error message which I do not undersand:

          Cannot complete the install because one or more required items could not be found.
          Software being installed: DevStyle (includes Darkest Dark Theme) 1.11.0.201805291134 (com.genuitec.eclipse.theming.feature.feature.group 1.11.0.201805291134)
          Missing requirement: Webclipse Common Core Platform Utilities 13.0.2.201805291134 (com.genuitec.eclipse.core.common.platform 13.0.2.201805291134) requires 'package org.apache.commons.httpclient 3.1.0' but it could not be found
          Cannot satisfy dependency:
          From: Genuitec Base 1.11.0.201805291134 (com.genuitec.eclipse.common.core.base.feature.feature.group 1.11.0.201805291134)
          To: com.genuitec.eclipse.core.common.platform [13.0.2.201805291134]
          Cannot satisfy dependency:
          From: DevStyle (includes Darkest Dark Theme) 1.11.0.201805291134 (com.genuitec.eclipse.theming.feature.feature.group 1.11.0.201805291134)
          To: com.genuitec.eclipse.common.core.base.feature.feature.group [1.11.0.201805291134]

          Do you get the same?

          Like

        • Yes, it similar error. Thank for trying this out and confirm. I still waiting for Genuitec, maybe you can visit there and support my issue via DevStyle Forum section.

          Like

  28. Hi Erich, I have recently started looking into adding a temperature sensor and MicroSD slot to my FRDM-KL46Z. I am an FPGA designer but recently started trying to ramp up with embedded C++ after attending training in California. All of this is very new to me so please bear with me.
    I would like to ask if your FRDM-KL25Z tutorials on installing FreeRTOS, DS18B20 and FatFS with Adafruit MicroSD Breakout Board are applicable to my FRDM-KL46Z?

    Like

  29. Note: I’m posting this again, because my first post might have glitched. Sorry if this is a duplicate 🙂

    Wonderful info here, thank you Erich!

    Have an Eclipse project question.

    I’d like to have both C and C++ files in the same Eclipse project.

    I’m using a sample C based project from a board manufacturer, and it’s quite complex, so I want to keep the project and add my C++ file to it.

    When I add a C++ file to the project and do a build, the C++ file is ignored.

    Also, the “Build Selected” files option (when I right click) is grayed out for the C++ file.

    Can you help?

    Thanks very much!

    Like

  30. Hi Erich,
    Many thanks for site mcuoneclipse.com.
    I want to write a comment to your post: “Eclipse Gems, Tips & Tricks: Highlight Usage and Definition”.
    Can I add print screens (jpg files) from my KDS 3.2?
    Bogdan

    Like

    • Hi Bogdan,
      no, you cannot attach images, but you can link to an image on the web.
      If that does not work for you: send it to me by email. You find my address on the About page of this blog.

      Like

  31. Pingback: Full Bathroom Remodeling (with the Help of a 3D Printer) | MCU on Eclipse

What do you think?

This site uses Akismet to reduce spam. Learn how your comment data is processed.