Public and Customer Projects - Examples of Work
Microcontroller and Raspberry Pi - Recent and Ongoing Projects - Hardware and Software
|This is an AVR microcontroller-based monophonic MIDI synthesizer project, now at Version 3.
It uses a microcontroller as a combined tone generator, envelope controller, filter controller,
and MIDI client device. Having the microcontroller do ALL THAT WORK saves a lot on overall
component cost, while in many ways simplifying the design. More info on the project's web page.
|XMega For Arduino
Support for ATmel ATXmega processors using the Arduino IDE
|The ATmel ATXmega processors are more advanced than the corresponding ATmega processors currently used by
Arduino and compatibles. With some effort, it may be possible to swap in one of these more advanced processors
into an existing device that uses an ATmega processor, and in some cases, at a significantly lower cost.
The original web page describes my efforts in building equivalent devices, programmed with
a (slightly) modified Arduino IDE, and provides some (older) code and binaries that are necessary to modify
the Arduino IDE to build and flash images onto an ATXmega-based device.
|FreeBSD on Raspberry Pi
and the GPIO 'shutdown' driver
|A general discussion of running FreeBSD on the Raspberry Pi hardware,
particularly for a 'headless' system, as well as building and setting up 'gpioshutdown', a kernel driver
port that properly resets the gpio pins on shutdown. It also has plenty of links and references to help
get a new user started with the Raspberry Pi.
|SFT Power Supply
||A prototype switching 'bench' power supply, providing 4 different voltage outputs,
and controlled using a single microcontroller. An LCD display continuously displays output voltages,
and also indicates the voltage setting when one of the 3 voltage setting knobs is changed. More info
on the project's web page.
|SFT Component Tester
||Another prototype device that uses an AVR microcontroller to perform various tests
on an 'unknown' electronic component, identifying the component and its value, and whether or not
it is 'good', using an LCD display. A recent change to the design (to improve consistency for higher
impedence measurements) will require software updates and extensive testing. This device was primarily
used for testing various proofs of concept, including the development of the 'base' calibration program
and serial port communications functions used by other AVR-based devices.
|Smartfin™ Bed of Nails
A 'bed of nails' test rig for the Smartfin project
|This is a 'bed of nails' production test device for the Smartfin, a project that
originally began with Boardformula Inc., for which I was the primary engineer,
under contract, from August 2013 through December 2017. It is a data collection device that fits inside of a
surfboard fin. It collects motion and environmental data related to the 'surfing experience', and was under
development and testing during that time. The 'bed of nails' device, which I designed and constructed, was
designed to facilitate rapid automated assembly line testing in a production environment, flashing the Smartfin
firmware and testing the Smartfin's basic functionality before final assembly within a surfboard fin.
Public and Open Source (Software) Projects
|** LATEST **|
||A pre-alpha native X11 project featuring a lightweight GUI toolkit. It is intended
to (eventually) become an integrated development environment, similar to Microsoft's Visual Studio (but without the cruft).
More info on the SourceForge project web page (link, left), and at the Github repository.
Main Features (preliminary):
This project is still VERY preliminary. Most features have not been implemented. However, the core code
necessary to IMPLEMENT these features is mostly complete, in particular the event support, dialog boxes, and
basic clipboard support. It is already possible to use the existing toolkit to write an X11 application,
though its features would likely be limited.
- Integrated Development Environment (IDE) for software development
- Lightweight C language toolkit, primarily for X11 (to be ported to native Win32 and other platforms)
- Comprehensive Doxygen-generated documentation from source files
- Minimal dependencies
- Uses standard open source tools (gcc, make, autotools)
- Context-sensitive help system that includes 'man' pages
- GPL or BSD-like license (your choice)
- Complete source tree and support on Github
NOTE: if you like the way I code, please consider hiring me to do contract software development.
||This cross-platform serial communications utility is designed to do a WHOLE LOT of useful things
with respect to devices that communicate using a serial port. It can also do xmodem transfers. It won't flash
firmware onto an Arduino (yet), but it CAN work with Arduino-based devices. Its original intent was as an
automated calibration utility. What it has been used for is a whole LOT more. And of course, it's open source
(BSD or GPLv2, your choice).
|S.F.T. Setup Gizmo
||This is an old project, from around 1998, for a Windows 'Setup' utility. It has a lot of useful capability,
mostly for things I'm interested in, but you may ALSO find it interesting. This project has a LOT of legacy in it, including
the help file (which I recently converted to use 'chm' rather than 'hlp' format). I think it has a lot of value as an OPEN
SOURCE project, particularly for distributing open source project binaries. Licensed via BSD-like or GPLv2, your choice.
Original Product Page HERE (with minor updates).
||This is another old Windows project, from around 1996, released under a 2-clause BSD-like license. It
allows you to automatically increment (or assign) a 'version' resource version number, either by incrementing the last
digit, or by assigning a specific version (as specified or read from an RC or INF file). It operates on RC files
(UNICODE or ASCII) and driver INF files. Useful when writing a device driver or building a complex project, to make
sure all of the components have the same version info.
Microcontroller and Related 'Old' Projects
|ISP/PDI Bed of Nails
Universal 'bed of nails' for ISP/PDI programming
|The ATmel ATMega and ATXmega processors use a 3x2 header for programming via the ISP/PDI
interface. Rather than soldering pins onto each board you program, you can construct a
'universal' bed of nails using readily available parts. A 'bed of nails' is usually for
final assembly and test of circuit boards in manufacturing. Typically they do more than
just program the firmware. But if you want something universal to JUST program firmware,
you can see an example here. It's somewhat low-tech, but very effective. (I built a
couple of much better ones for a customer, one of which is linked under 'Customer Projects', above)
||A simple, yet useful, device for programming ATmel ATMega328p CPUs, based on the 'Arduino ISP' design,
hand-built on a proto board, with a ZIF socket for the CPU to be programmed.
||A generic open source XMODEM library, written with microcontrollers in mind, and suitable for use with POSIX-compatible (Linux, BSD) and Arduino (and compatible) devices
for the Arduino Uno
|A USB to serial driver for the Arduino Uno for FreeBSD, as a kernel module 'uarduno'. This corrects some of the issues regarding USB device identifiers for various Arduino devices under FreeBSD, as well as giving you the capability of adding your own manufacturer/device identifier pairs (if needed)
Articles and Information
|The use of microcontrollers in place of discrete components or custom logic chips, or even specialized devices
that might actually COST MORE than a microcontroller. The software is a fixed cost, so B.O.M. cost can be
much lower, leading to lower prices or higher profit margins.
'Top Level Packages'
|Whenever I update the ports on FreeBSD, which typically must be BUILT FROM SOURCE, I find a
LOT of problems if I attempt to leave things installed and just upgrade the changes. To
facilitate a 'clean re-install' I developed a script that uses a similar technique to
'BOM leveling' typically used by an MRP process.
||A review of a couple of very useful and highly available networking devices
that are both compatible with microcontrollers. It could help you 'Wifi' and/or
'Ethernet' your next microcontroller-based project
|Making Gnome 3 Usable
||There appears to be a current trend by software makers to change the way we use our computers, whether
we like it or not. Gnome version 3 and Microsoft Windows™ 8 both
exhibit this, in my view, as well as Windows 10 [which is even WORSE]. But for gnome desktop users,
I have provided some INSTRUCTIONS on how to get back MOST of the functionality and appearance of your
familiar Gnome 2 desktop, with a bit of tongue-in-cheek.
It's worth pointing out that the MATE desktop retains
all of the old Gnome 2 functionality, with packages and installation instructions for many of
the more popular Linux distributions, and source for everythign else. And several MAJOR OS
distributions have already included the MATE packages within their own repository.
||A set of articles on Computing and Internet Trends, multi-threading and SMP,
and the failure of the '.Net' initiative (more to come)
|Windows to UNIX
||Converting a network with a Windows Server to a UNIX or Linux Server
|Data Encryption Methods
||A discussion of methods used to encrypt data
||Helpful information regarding Microsoft's POSIX subsystem.
|Windows vs UNIX/Linux
||The debate continues! UNIX/Linux vs Microsoft Windows(tm) Operating Systems
Information on 'M.R.P. III'
Computing History and Ancient Hardware
||When I was in High School I first learned how to program on a PDP-11 using 'mark sense' cards. Later at SJSU I became
familiar with more detailed aspects of RT-11 and RSTS/E, writing various programs in BASIC, FORTRAN, and 'MACRO-11'
assembly language. These old computers really were on the bleeding edge in a lot of respects, from the ability
to add custom hardware (and write custom drivers), and 'complex instruction set' CPUs (making assembly language
much less tedious), to being a major platform upon which the 'C' language and UNIX were developed. We owe at least
a little respect for our 'computer roots' with the PDP-11, for helping to get us where we are today.
S.F.T. Inc. is owned and operated by:
Stewart~Frazier Tools, Inc. (S.F.T. Inc.) is a software development, electronics engineering,
and consulting firm. S.F.T. Inc. once specialized in providing 'Software Tools' to improve
productivity, with special emphasis on manufacturing industries, and improving process quality for
Manufacturing Planning through accurate Demand Forecasting.
S.F.T. Inc. provides professional services on a contract basis for software and electronics engineering,
specializing in embedded devices, networking, device control and communication, data collection, and data analysis.
For more information about S.F.T. Inc., press HERE.
©1996-2019 by Stewart~Frazier Tools, Inc. - all rights reserved
Last Update: 01/24/2019
HTML pages and graphics at this site have been written/designed by Bob Frazier.
The author is a member of
Site Rating Labeled With
S.F.T. Inc. has a strict NO spam policy regarding the use
of the 'mrp3.com' domain. Unsolicited bulk or commercial e-mail that claims to originate
from this domain should be reported as 'spam' to ISPs and 'www.ifccfbi.gov'.