LEARN HARDWARE FIRMWARE AND SOFTWARE DESIGN - BRIEF DESCRIPTION
Edition 5 of LHFSD [ISBN 978 606 92185
32] has been specifically designed to become an educational/pedagogical
manual for teachers, instructors, though it is also recommended to ordinary citizens. Have no fear,
dear readers: LHFSD5 is still addressed to beginners, since
from a white page, and then things are developed/explained gradually [and
logically], step by step. Note that our Source-Code Package ED5RV07EN_15
works on Windows 95, 98, 2000, ME, XP, VISTA, 7, 8.1, 10.
On this Internet page there is a summary presentation of the main parts in LHFSD 5th
PART 1: HARDWARE DESIGN
During 2005-2009 Corollary Theorems has sold a
good number of LHFSD-HCK kits throughout the World. If one owner of a LHFSD-HCK kit intends to sell it, then write to us,
please, and we are going to
post your offer in this site.
Additionally, any reader who builds the LHFSD-HCK kit (on a prototyping
breadboard, or as a PCB) and wants to sell it could write to us,
and we are going to advertise his/her offer on these pages.
Hardware Design starts from an empty Schematic page, then it builds
up gradually the LHFSD-HCK [Hardware Companion Kit]. The novelty in
edition is that it advises the readers to build (alternatively) the LHFSD-HCK kit on a
breadboard, instead of a PCB. Things are this way.
Some readers may decide to become perfectly groomed hardware designers;
therefore they should build the LHFSD-HCK PCB as it is
explained in minute details in our book. However, other readers may prefer
to train mostly as firmware and/or software developers. For them,
advisable to build
LHFSD-HCK on a breadboard instead [or on any material that stands to solder
LHFSD-HCK has a fair degree of moderate hardware complexity, in order to
help beginners most. Consequently, the hardware design work is divided
into "modules", and each hardware-module is explained in sharp details,
functionally. Fact is, the Hardware Design part is the easiest one to
As a minimum of practical hardware implementation, a readers needs
the following, extremely simple, modules:
1. the power module (a few components);
2. the programming interface (just one connector);
3. one or more leds connected to the output processor ports (leds + resistors).
All Schematics needed to build the
are included into the accompanying Source-Code Package ED5RV07EN_15.
Even more, the chapter dedicated to building LHFSD-HCK PCB
includes the complete list of the Bill of Materials!
PART 2: FIRMWARE
Changes are radical in Firmware Design, in edition 5, compared to all
previous editions. First of all, the structure of one firmware project was
a. source-code file plus other supporting "*.c" files
b. source-code file plus "*.h" supporting files.
In addition, the readers may decide to setup their firmware workbench based
A. XC16® (of
GNU free) type
compiler and MPLAB® X Vx.x
B. C30® and MPLAB® V8.x (both as free download versions).
Naturally, the options above appear to be rather difficult to select, at this moment;
however, inside LHFSD5 there are sufficient details about either choice.
In addition, the users may even switch from one option to another
at code-time, since the source-code files contain
a "compiler version check"
algorithm (as is presented in the picture above).
You can see the structure of supporting files of one firmware project in the picture on left. Note
that each line of firmware code is accompanied by adequate comments!
The 12 complete firmware projects presented in LHFSD5 are priceless firmware source-code examples.
As a note, Firmware Design starts from exactly one empty page, and then it builds up gradually using the
simplest firmware techniques.
PART 3: SOFTWARE DESIGN
in edition 5 of LHFSD is implemented using the Visual Basic 6 compiler working on
Windows 7/8.1--again starting
from a white page. However, this software development environment is presented only as "a similarity".
The readers may use
manner any other compiler (say Visual Basic .Net, Excel VBA, Java, Delphi)
and/or any other OS platform (Linux, Mac).
In order to prove the "similar"
manner of software development
recommended method in LHFSD5, we have inserted for exemplification two *.exe
programs that implement exactly the same thing:
1. first is a
console program written in
2. second is a
written in Visual Basic 6.
Each program is capable of generating the OBDII CRC hex byte from a
variable series of hex bytes, according to the OBDII protocol: X8 + X4
+ X3 + X2 + 1 == b 0001 1101 == 0x1D.
Alternatively, both programs
are able to validate a series of hex bytes that end in the proper CRC byte;
the result is always 0xC4 == b 1100 0100 == X7 + X6 + X2.
download each program above, then play with them to understand the
great concept of "similarity" we strive to explain here. Note that
"the engine" behind each program is in data control at bit level, and
it works exactly the same, although the two compilers are so different.
In Software Design are presented 7 complete software programs (SDx), fairly
complex, and each line of VB6 code is again explained in sharp details.
Note that the software programs are developed in parallel with the
firmware ones, since they need to work together.
Because Software Design is the most complex part in LHFSD5 book, it shall be
detailed on another site-page.
Practically, VB6 is the most important programming language
today, since it is incredibly simple and so exceptionally powerful. Note that the graphic drivers of VB6
are the best ones ever assembled, and the proof is MS Word, MS Excel, MS Power Point, MS Front Page etc.
By the way, in case you do not know, there is a complete VBA compiler
in each MS Office application. Practically, someone could run all LHFSD5 SDx programs (slightly
modified) from MS Excel or from MS Word!
In ED5RV07EN_15 Source Code Package,
each FDx firmware program has been compiled to a FDx.hex
file: this allows the users to run FDx projects without a C30/XC16
In addition, each SDx software applications has been
compiled into an executable program--say, SD5.exe. In this way,
may run each SDx application without a Visual Basic 6 compiler!
Learn Hardware Firmware and Software Design ... the easy way!