The Buck Stops in Software
So now there's a green board with a bunch of components. That might be what it is, but software makes it do what it does, and that is what we're really really good at.

Sometimes the algorithms come easily, as 90% of a job are usually variations of projects past.

Many times, it's that 10% that makes or breaks a design. In some cases, that slice represents the competitve edge and rightfully falls under the rules of intellectual property.

But sometimes... Sometimes even the most basic information is so generic and yet so hard won, it should be shared.

Below are some projects and observations that we share with permission. To the right person, these might just hold the keys to successful development.




Slope/Offset Calculator-- The simplest analog sensors convert some measurable input to an output voltage. The trick to using these is to determine the accurate relationship between inputs and outputs, most commonly expressed in the familiar formula: Y=MX+B click here


Battery Life Calculator -- To extend battery life, it is important for software to properly manage the sleep/wake intervals in a given situation. To estimate battery life for a particular project, use this appliet. click here



PRNEXP -- A simple printer project in MSVC that illustrates text placement and paper tray selection using regular Win32 APIs and standard GDI calls. We've recently extended this program to access not just local printers but also those printers connected across a LAN. To make this work required the study of the now venerable Petzold books, the Win32 Programming book by Rector & Newcomer, the 1998 MSDN, and the fully modern MSDN online. Printing might be easy in Word, but you just try to do it on a Windows platform with your own application in C... (project)


BAG -- Windows has the Registry, but an 8-bit controller sure doesn't. Here is a storage object written in C that allows you to easily save a retrieve data of arbitrary lengths.  A bag allows you to associate data with a key or "magic cookie."  Simply call BAG_PutTag to save your data, and BAG_GetTag to retrieve your data.  This software module is particularly useful with configurable embedded devices. 

                 Public Member Functions:

                           BOOL BAG_ClearAll(void);
                           BOOL BAG_DelTag(BYTE Tag);
                           BOOL BAG_PutTag(BYTE Tag,void* Buf,BYTE Len);
                           BOOL BAG_GetTag(BYTE Tag,void* Buf,BYTE BufLen);
                           BOOL BAG_Save(void);
                           BOOL BAG_Init(void);

            Click HERE to view the source code of the bag.
            Click HERE to download the bag project, which includes a sample program, header files, and sources.


EPRINTF.C -- The complete source code for an embeddable version of printf.  You will 
                          no longer need bulky libraries in your applications if you simply want printf
                          functionality.  Also, you can modifiy eprintf's behavior according to your needs. 
                         
(Source)


ENUM.EXE -- A command line utility for Win32 platforms is used to sequentially
                          rename a folder's contents.  This is used for file collections such
                          as graphics libraries, form letters, etc...
(Source)

   SYNTAX: ENUM type [preamble]

      EXAMPLE: enum jpg
      (This would enumerate all the jpeg files in a
       given directory as 1.jpg to n.jpg)

      EXAMPLE: enum jpg HIST
      (This would enumerate all the jpeg files in a
       given directory as HIST1.jpg to HISTn.jpg)


Click here for ASCII chart.



Oregon Embedded Development
Eugene, Oregon
Tel: 541-517-1210
Email Us

(C) 2006 Oregon Embedded Development