Arm Education: Internet of Things Course - Review

Table of contents

RoadTest: Arm Education: Internet of Things Course

Author: robogary

Creation date:

Evaluation Type: Development Boards & Tools

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: MKR1000

What were the biggest problems encountered?: Constant issues with software tools and licensing.

Detailed Review:

This course is probably best suited for established embedded system software engineers and senior year computer/computer science engineering students who really want to get an introduction into the guts of developing a product that includes an ARM processor. Most of the course is devoted to being an advertisement vehicle to ARM processor hierarchy.

 

To me, this course seems written by embedded system developers for embedded system developers. The lectures are terribly boring, the lectures lack the use of animation graphics and other structured learning education techniques to emphasize important points and concepts. The quizzes should be reinforcement to the important points of the lecture, I often felt it was a trivia quiz. The course lavished in the use of jargon and acronyms, which kept me confused.

 

My expectations for doing this RoadTest was to learn enough basic cellphone/ bluetooth interface to do very simple , but creative, robotics/IOT projects and use it to inspire 10-18 year olds at community exhibits, schools, and code classes my robotics club teaches at the library.

 

What I learned is the “simplified” bluetooth BLE interface is highly structured and very complex for a beginner, as well as the cornucopia of needed development tools: Nucleo STM and the Keil uvision IDE, mbed, Android, etc.

 

The labs are the best learning tool, and the best part of the course. However, the lab videos were out of date, and each lab had major roadblocks to overcome. It’s a shame because the course does have some good work invested in it, but the roadblocks destroyed my motivation and enthusiasm, and I had to dig deep to reluctantly push thru the course material.

 

Course roadblocks included big problems with licensing, getting them and expiring during the course, the lack of functionality with LITEware versions, fighting to get programs to work.

I spent significant hours every day and weekends mostly installing and setting up tools. I would prefer to use that time learning.

 

I would recommend to create make this course a 12 lesson course just from lessons 9-12 (throw away lesson10 lecture because its worthless), break lectures into smaller modules, where students can enjoy small successes and pick up terminology.

 

The lectures need to reinforce major points, include some humor, cartoons, CGI computer motion graphics (imagine that) , use TECHNOLOGY to teach and make the experience enjoyable.  The labs need to be closely coordinated with the lectures.

 

PROs:

  • The lecture videos were a good length time wise.

 

  • I shy away from using interrupts in my programs, most of my experience is in real time control systems with PLCs. Interrupts are used for fault conditions, scanning IO is scheduled and frequent sampling updates are required especially for voltage and current monitoring. I learned in battery powered apps, efficiency and sleep mode can be important and useful.

 

  • Bluetooth does have built in structured mechanisms as well to reduce power consumption.
    • I have an deep appreciation for embedded system developers….now I share their pain of constantly outdated circuit board components and software tools.
    • IDEs often contain a monitor tool for DEBUG. I learned the UART allows generic tools (like Termite and TerraTerm) can be used for the same purpose. 

 

  • Lesson 4 Lab was a good lab. Lessons 9-12 and their labs were what I expected for this course, and had good information intended.  Lessons 9-12 should have been the whole course.

 

  • The labs were all provided with solutions code. These were extremely helpful in troubleshooting issues and helped me to learn syntax and concepts.  A+ on solutions provided. 

 

CONS:

  • Hidden in the Lesson 3 Lab 1, was the getting started instructions. Whomever thought that was a good idea should be sent to bed after dinner without any pudding.

Please please please – the first lesson should be the “getting started document” with COMPLETE instructions of EVERY software tool needed to complete the course and every frequently used URL. Each new lab introduced new software tools that need installed, which became a huge distraction. Please have any tool license be valid for at least 6 months. We had 8 weeks to do the course, but I may find time to refresh my learning after that 8 weeks. I could use the hardware later in an exhibit that would be great advertisement for ARM and this course.

 

  • Please see the Element 14 course blogs on many of the issues. I will spare listing them again.

 

  • Lessons 1-8 in general were lousy. The lectures were dry and boring; lacking in good teaching techniques.  I learned that 66% of embedded system programmers use only C programming. 3-4% of programmers use assembly code mixed in their C, and the course author felt this 3% was so important that 67% of the course was devoted to the ARM architecture and assembly code instruction set.  Please leverage some graphics to illustrate register shifting for the students. Please add humor, video clips, anything to keep the lectures interesting.

 

  • Lecture Lesson 10 on IOT is mostly worthless, it simply discussed ways and acronyms about various generic options that cloud service providers could offer various service packages.  The labs under Lesson 10 were of good value, but should’ve been located under other lesson numbers. 

 

  • The Table of contents should show the student directly which items are completed, and a flag where the student last was.

 

  • There was no place in this course for blogging for help and recording FAQs by other users taking this course. Element14 Road Test became the default “help me” and “venting needed” collaboration place. I pretty much felt abandoned by the course authors. Other courses I have road tested always had an active proctor monitoring to help Element14 with support of questions.    

 

  • It would be so helpful to incorporate a flowchart “for dummies” in illustrating , teaching and reinforcing bluetooth signal and services setup. The same goes for the processor code, and the Android tool. I keep getting lost in the thought process while trying to keep up with typing in the lab videos.  I made maniacal use of the video pause button.

 

I hope these honest and friendly feedbacks can help improve this course presentation to give justice to the important concepts and teachings it is trying to present.  

Anonymous
  • ... After reading the blogs, I believe that ARM never tried to do the training themselves with the toolset and licenses available to the testers.

  • Thanks for the review - and I'm sorry the course was so disappointing.

     

    I'll take  a look at the blogs.

     

    MK

  • I appreciate your honesty, but it sounds like you are a novice when it comes to embedded system development.

     

    Learning the assembly instruction set of any computer provides you with understanding about how the processor works and enables you to exploit 100% of the power of the device.

    C code isolates a developer from truly exploiting the system by trading off portability of the code.

     

    Interrupts are the key to efficient programming in any language. You really should learn to use them. They are quite enabling for reactive system performance.

     

    The development tools available today are light years ahead of what we had in my day. We had to debug code using oscilloscopes and primitive logic analyzers.

    The advantage to those methods were that we had to learn the detail about the processor and how it worked. Those insights were critical for the demanding applications in which we placed those processors.

     

    Don't be discouraged. The field of embedded system development is much more demanding than any other form of system development. You have a lot of issues to work with, so you can see why only the stout hearted enter into this arena.

     

    Thanks for your review,

     

    DAB