Monday, October 29, 2012


I've been doing some tinkering with Moodle as a way to deliver the course material.  Moodle has some cool features, and it could be quite good for this sort of thing.

Some of the Moodle advantages are:
  • Assignments like "Write a program to ..." can be made
  • Each segment can have an associated quiz
  • There is a forum in which students can have discussions about the course
  • There are mechanisms to provide fedback to users
  • Users can easily see their progress through the course
  • The course developer can see what is working and what isn't

But I also see a couple of significant deltas:
  • Users must be online to follow the course. Most likely a significant fraction of the intended audience has dial up or pays per connected minute.
  • It is significantly more work
  • I haven't found a reasonable way to be able to put up a sample on my LAN and share it outside for comment.  I can have one or the other.  This seems to be a common problem among FOSS packages. In theory, I could put it on, but I'm reluctant to do that.
So yet another decision.

Sunday, October 28, 2012

dsPIC-EL or Explorer 16?

Back in June, I walked through a sequence of exercises with another amateur, W8LSS, on the dsPIC33FJ256GP710 using Microchip's Explorer 16 Development Board.

More recently, my thoughts have been along the line of building a "dsPIC-EL" board for the student.  But in organizing the various repos of code associated with this project, I got to wondering if perhaps the Explorer 16 might not be a better choice.

There are two main disadvantages, and one more minor, to using the Explorer 16 instead of a purpose built board:
  1. Cost - the Explorer-16 would cost the student about $50 more than the estimated price of a dsPIC-EL, perhaps a little more.  Since the dsPIC-EL is estimated to cost more than the PIC-EL and does not include a programmer, the project cost to the student is already fairly high.  Adding to it seems to be a poor plan.
  2. The Explorer 16 uses 3.3 volt parts.  The intent with the dsPIC-EL is to use a 5 volt part which is somewhat more hobbyist-friendly.  Also, although dsPIC33's and PIC24's are available in DIP, students seem reluctant to move past the part they learned on, so that could be an impediment to later experimentation.
  3. The LCD display on the Explorer 16, although it uses more or less standard code, has some features that are lacking in typical LCDs.  This could mislead the student.  Worse, not all Explorer 16s have the same LCD.
But there are advantages, too:
  1. The Explorer 16 is available already.  There is no design work needed, no new circuit board to be developed.   Part of our thinking is that we might talk AA0ZZ into building and marketing a dsPIC-EL.  Although he seems receptive to the idea, we still haven't heard that he is actually willing. (In fairness, we haven't pressed, either, preferring to have more content available before moving ahead).
  2. The Explorer 16 comes with both a dsPIC33 and a PIC24, giving the student the ability to explore both families.
  3. Microchip provides low cost "PICtail Plus" prototyping boards, giving the student the opportunity to haul out the soldering iron and add his own ideas.  In at least one of the experiments I did with W8LSS we did just that.
  4. Because of the large pin count format, the board has more peripherals to play with.
  5. Microchip provides a number of additional PICtail Plus boards for a variety of purposes which might interest the advanced experimenter.
  6. I already have a pretty good series of exercise programs in place and tested with W8LSS.
I think I'm still leaning toward the dsPIC-EL idea, perhaps because it seems like a logical follow on to the original PIC-EL, which was amazingly successful.  But at this point there is still nothing cast in stone.

Saturday, October 27, 2012

Web Presence

For a few weeks now, I've been sending content to N8ERO for comment by placing in it in a directory deep inside another site.  This generates ugly URLs, uncertainty about what is what, and questions about why it is that way.

So, it was time to get an elmer166 domain.  For the time being it is simply a place for "stuff".  There isn't anything terribly polished there, but it should make it a lot better for finding things and sharing with others besides Earl.

Making Progress

With the help of N8ERO, I have been making some progress in sorting out some of the content.  Although I am capturing it in the form of a book, I'm not so sure that  will be the final format.

It might be nice to publish an actual book. I suspect a lot of folks would still like to see actual paper.  But I would also like for people to be able to access it free of charge.  Jared Smith has published books licensed as CC-BY-SA, which is how I would like to do this course.  I need to touch bases with him.

The Elmer 160 course was released as a series of PDFs, one for each chapter.  That might not be such a bad plan for this one too, but it makes things like cross references and indices somewhat problematic.

It might even be preferable to release it as a series of YouTube videos, or perhaps on online course on Moodle.  even if it is released as a document or documents, I think a few videos in support would be a good thing.

At this point, much of what is there is somewhat fragmented.  I have a good set of screenshots and prose around creating a project in MPLAB-X.  I have an initial program.  The plan is to do a simple blink a LED, but in multiple steps:

  • Write  a loop that toggles the LED pin.  Run that program through the MPLAB-X simulator and see the port change.
  • Run the program in the dsPIC-EL.  Observe that the LED stays on.
  • Recognize that the LED is blinking too fast to see.  Insert some delay loops to slow things down.  This is an opportunity to introduce functions and refactoring.
  • Instead of delay loops, use the dsPIC timer.
  • Instead of hovering over the timer, use an interrupt.
I also have the beginnings of a quick intro to C, and a number of tables that required research.  There are lots of details folks might ask like "where are these include files?", "what are all the data types?", and "what are the differences between the different PICs?".  All of these require digging up the associated data.