Community Software Development for Embedded Devices


HP-41CX mobile computer/calculator with community developed PPC ROM software applications and synthetic code library
Photo by Ron Fredericks using Canon EOS-10D 34mm fluorite lens, circular polarizer, 1.5s & f/22 @ ISO 100, on tripod, from Embedded Components’ HP lab collection.

Ron Fredericks writes: I envision the day when community software engineering projects are commonplace for embedded devices. Like the PPC ROM demonstrated back in 1981.

What follows is a review of the PPC ROM community development project – a first for smart mobile devices, then an offer to help others in moving this great body of open source professional tools to modern devices: comment on this post if you are interested in this project or in community development of software for embedded devices in general.

Wouldn’t it be nice to have powerful new applications built on top of our routers, digital recorders, HDTV’s; or even industrial process monitor and control systems, or lab instruments; hey how about our cars and public transport vehicles? No I don’t mean that you buy a new device or car with new applications pre-loaded by the device manufacturer and shipped with the soon to be obsolete device – I mean groups of experts organizing into communities with other experts to design, develop, test, document, package, and deliver new software solutions onto devices for their own members’ sales channels. Does this sound far fetched?

Community development around open-source software such as Java, the Linux operating system, or Mozilla’s Firefox web browser have emerged as reusable project management solutions to complex software engineering issues – See Asa Dotzler’s Job Morph: Herding Cats to see how Mozilla motivates workers who aren’t actually on the payroll.. So I know the engineering community is ready for a new challenge – one that has already been solved back in 1981 – one that affects the speed of technology reuse around the globe today.

Development for today's embedded/mobile devices has many similarities to the HP-41 personal programmable calculator
Photo by Ron Fredericks using the same settings as the previous photo, of his favorite mobile smart device.

So let me share with you a project I recently discovered. It’s embodied in a user’s manual published in 1981 by a community of engineers – no, not your typical product manual ticked out on a company payroll. The forward describes a first-of-its-kind effort behind this user manual, and the embedded software it documents. The author expresses his excitement in being part of the “first community developer” project for a smart mobile computing device and it is so similar to the smart devices we use today! Did I mention that Linux, or even community networks like web and email didn’t exist back then? How did they do it? Can we learn from their effort and apply this community project, or its method, for today’s embedded devices? I think the answer is yes – with a little help from the embedded operating system suppliers’ communities and some innovative hardware device manufacturers. The embedded operating system, software community project management, and smart device platforms have come to a wonderful cross-road that truly supports community software development as a ripe low-hanging opportunity for us today.

The forward to this 500 page user manual describes the struggle and accomplishment of 100 developers who formed their own community project to develop a “ROM” or read-only memory module they called a “PPC ROM” that plugs into an HP personal computer that is now 25 years obsolete called an HP-41. The “PPC” reference is to the names – Personal Programmable Calculator, or Personal Programmer’s Club, or Prolific and Productive Computing – as well as the PPC Calculator Journal that was the herald for the HP calculator’s developer community back in the day. Similar to the commonplace e’zines we read, or get spammed with today. But different because the taxonomy created by today’s almost endless stream of eBlasts, tagged content, blogs, forums, and RSS feeds by themselves don’t create an engineers’ sense of community. The spontaneous motivation to organize into a sense of community requires a mood that has only been created by a real person – a person that shifts a group of developers’ paradigm .

Perhaps many of you remember Philippe Kahn, who created a cozy engineering mood with his Turbo Pascal and Turbo C compilers – these cheap little things that were killer apps that grew the base of available programmers for several years. Prior compilers for the early PC’s cost 10 times more. Within the HP-41 community there was William Wickes – a community engineering leader that helped to grow the base of programmable calculator developers that in-turn grew the base of engineering, scientific, financial, and many other professionals and students so commonly outsourced by the global community today. Mr. Wickes lead the discovery of a new programming technique for the HP-41 called synthetic programming. Like Philippe’s community contribution to the PC developer community, Bill was able to drive significant developer excitement into an otherwise limited calculator programming community.

The PPC ROM’s core management team wrote in the forward to PPC ROM user’s manual…

“This project is unique in the history of software projects. IBM and other large corporations have assigned multi-tens of programmers to a software project, but never before have over 100 programmers worked so long and so hard on a project — without compensation of any kind. The PPC ROM PROJECT is a community project in the true sense of the word….It took two years and two months to complete…

The forward then goes on to discuss the challenges of working with a personal computer that had so little memory and other constrained hardware issues – very similar to developing the content and applications in demand on mobile smart devices today! Their solution, why they did it, how they managed to stay together to finish it, and how they partnered with HP to build, and package the ROM Module itself is also described.

To be clear, the PPC ROM wasn’t a one-off, there were other community projects that replicated this first success with the creation of the ZENROM, HEPAX, and other plug-in modules for the HP-41 too. I get the impression that today’s embedded community could succeed in the creation and deployment of software onto aftermarket embedded devices by following the same process pioneered by the developers of the PPC ROM:

  • Select a product mix with applications, tools, middleware, entertainment, and educational content that is attractive to end users but also encourages component reuse by more developers who in turn then create even more attractive reusable solutions.
  • Select a project management model similar to other recent and very successful “cat herding” open-source web community efforts. The new social network communities frequented by developers make the PPC ROM story much easier to duplicate.
  • Select a hardware platform vendor willing to facilitate software packaging, delivery, execution, and reuse methods such as over-the-air, network download, or even a group-published flash chip.
  • Harness the power of a community manager. The likes of PPC ROM’s synthetic programming allure created by William Wickes, Linux’s Linus Torvald, and Mozilla’s Asa Dotzler are some of the more famous examples of community managers for engineering development.

Now that is just what I am proposing. Let’s revisit this community development effort by moving the freely available HP-41 applications to an emulator that can run on common mobile devices easily available in today’s community. First step might be to see how the existing HP-41 emulators works on your favorite device with the hope that all the engineering, scientific, financial and other professional applications can be downloaded and used too. More on this effort and community software development will follow…

References to the excellent HP-41 emulator work and open-source site by Warren Furlow and others…

You can download a Windows PC/Linux/Windows Mobile/PalmOS emulator of the HP-41 personal computer, add your own programs to it, and load the actual PPC-ROM module’s binary image [as well as 50 or more other professional solution packs and ROMs] and use this great little personal computer along with these PPC ROM applications as a perfect replacement for that dumb little Windows calculator:
www.hp41.org/Emulation.cfm

Oops, where’s the Java version?

You can get your own copy of the historically significant PPC ROM user’s manual from here:
www.hp41.org/LibView.cfm?Command=Image&FileID=23037

Add the PPC ROM code to your new HP emulated calculator from here:
www.hp41.org/LibView.cfm?Command=View&ItemID=20

Here are some other ROM code modules that work with your new emulator!

  • Aviation
  • Circuit Analysis
  • Clinical Lab and Nuclear Medicine
  • Financial Decisions
  • Games
  • Home Management
  • Machine Design
  • Math
  • Navigation
  • Petroleum Fluids
  • Real Estate
  • Securities
  • Standard Applications
  • Statistics
  • Stress Analysis
  • Structural Analysis
  • Surveying
  • Thermal & Transport Science

Technorati Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

11 Responses to “Community Software Development for Embedded Devices”

  1. Richard J. Nelson Says:

    The need for the project you suggest is obvious. Managing such a project, however, is the vital aspect that requires a dedicated individual or team of individuals who are able to physically do the work.

    Since the PPC ROM Project was one of several projects PPC members worked on, and I managed PPC, I have some experience in this area. Outlining the details and requirements of the project you suggest is beyond this space and I will only offer what I learned was the critical element for success.

    The project and its objective was clearly and simply defined with the “details” and “values” continuously provided by the PPC Newsletter to its members. Because of this the project essentially managed itself because the basis for every decision was, “Does this idea, routine, or process, best meet the objective?” The five people who “managed” the project – Richard Nelson, John Kennedy, Jake Schwartz, Keith Jarett, and Roger Hill – had little or no conflict over the hundreds of decisions that had to be made. Over $300,000 was collected for the costs of the project and no salary’s were paid. The time in human effort was over one century. That is a lot of work hours. The PPC ROM Manual fully documents the project and the people who worked on it.

    The Internet provides a great tool to manage such a project and we did not have such a luxury. We also did not have the many “distractions” that today’s technical environment provides and computers were “new.” The group was an organized technical group of people dedicated to a very specific class of machine from a single manufacturer.

    One last comment. Many of these seriously interested individuals are still active in this area to this day. The PPC ROM project was unique. The effort put forward by its contributors is astounding. I am not sure that such a project could be repeated. The technological timing, HP as a manufacturer, and the power of the first affordable handheld personal computer all came together to inspire the effort.

    X Y,

    Richard J. Nelson
    P.S. We continue to develop ideas with an annual HP Handheld Conference held in September. HHC 2007 is the last weekend of September this year in San Diego.

  2. Low Country Software Ramblings » Embed This #4 Says:

    […] Posted by benoit on 12 Apr 2007 at 08:10 pm | Tagged as: Embed this! I am glad to discover another blog dealing with embedded systems. Go see Ron Fredericks Embedded Components blog. He has an interesting entry on Community Development for Embedded Devices.  I wonder if the community is simply too fragmented with today’s plethora of embedded devices. Loosing a bit of high-tech history in Silicon Valley…Brian Fuller writes about loosing the former Shockley Labs headquarters to a Grocery Store. Yes, the transistor Shockley… […]

  3. sachin Says:

    hello

    This is not place where i am asking, but still if you know

    In embedded development with GSM modem

    how do we get cell nfo, means location name of cell or place where mobile is?

    by which command we get above response, or what nework send to get cell info

    i tried in india with HUTCH and AIRTEL SIMcard but didnt got response.

    regards,
    sachin

  4. Ron Fredericks Says:

    Interesting question sachin!

    To work with a cell phone as an embedded device, such as GSM handset, I suggest that you seek out developer programs supported by the major cell phone manufactures. You can get Java ME software developer kits, for example, to touch some of the phone’s internal peripherals. Here is one place to start your search:
    http://whitepapers.techrepublic.com.com/whitepaper.aspx?&docid=107903

  5. Embedded Components and Tools Blog Center » Blog Archive » Introduction to HHP-16K EPROM Emulator Says:

    […] Ron Fredericks writes: The HHP-16K EPROM emulator allows application code to be read by an HP-41 calculator. Instead of inserting a small pre-built module into one of the four module bays of the calculator, such as the Math module or the PPC ROM module, this unit allows a person to use custom built programs previously stored into EPROMS using an EPROM burner. […]

  6. limewire Says:

    Great boys6098a4

  7. Ron Fredericks Says:

    A Note To My Manufacturing Executive Readers

    When I re-read my blog post above, I wonder if consumer device executives get put off by my claim that an open-source community might extend the life of an older device rather than create more demand for a new device soon to launch. Yet this is the paradigm shift I am advocating.

    For example, HP captured a market lead position with its open development approach for its HP-41 consumer device. This expensive programmable calculator may have captured more than 50 percent of the scientific / professional user base for a 10 year period. Much of the sales was driven by open-source and professional groups that purchased this device to develop new code offerings together for each other’s use. The open-source application and development tools became available for use by the professional user community too. Thus driving even more demand without much marketing cost.

    The current market tradition held by most device manufactures seem hell bent on releasing new devices every 6 months or less along with a splashy / expensive marketing push that in turn commands only a relatively small market share in the very competitive consumer device sector. Can compelling software ever be well crafted on new hardware platforms released this fast as well – I wonder?

    Not sure, then maybe this will help: can legions of Microsoft engineers, on and off their payroll, develop a compelling/stable operating system with office productivity suite in the next six months – considering that the Intel IA32 hardware platform has been stable for the last 20 years? No slight on Microsoft, Apple and others are still working hard to fix their software too. It’s the nature of the beast.

    I hope this explanation helps bridge the paradigm shift I spoke of in this post, without being too offensive in today’s traditional consumer device development and marketing approach!

    Best regards,

    Ron

  8. http://accutane-photos-before-and-after.thecatalogfree.info Says:

    Hello, nice site! 🙂

  9. Best Folding Chair Says:

    Sweet post.
    I hope you’ll like my page..
    Regards

  10. Max Says:

    Hey!! Found your blog on yahoo – thanks for the article but i still don\’t get it!

  11. Carma Says:

    I read this post completely about the comparison of newest and earlier technologies, it’s awesome article.|

Leave a Reply