S.F.T. Inc.

Software Engineering, Software Tools, Electronics Engineering,
and Integrating Hardware and Software as a Solution

Getting things DONE, quickly, on-budget, and on-time

Public and Customer Projects - Examples of Work

Microcontroller and Raspberry Pi - Recent and Ongoing Projects - Hardware and Software

SFT Synth
(codename: 'Piranha') 
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.

Customer Projects

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 **
X11workbench  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):
  • 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
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.
NOTE:  if you like the way I code, please consider hiring me to do contract software development.
sftardcal  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).
IncrVer Project  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)
The Unbricker  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.
XMODEM library  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
FreeBSD® driver
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

Op-Amps  A discussion on Operational Amplifiers, aka 'Op Amps', how they work, and some creative uses
Emulating Hardware
Through Software
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.
FreeBSD Utility
'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.
Network Devices  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.
Older Stuff
Computing Trends  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
Using Interix  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'

M.R.P. III  The definition for M.R.P. III, an evolutionary change in M.R.P.
M.R.P. Simulation  An effective inventory modeling tool for E.C.O.'s and end-of-life products
Bandwidth Management  Information on BANDWIDTH MANAGEMENT
Forecast Accuracy  Information on improving sales forecast accuracy
Mechanical Forecasts  A discussion of computer-generated forecasts based on statistical models

Computing History and Ancient Hardware

DEC's PDP-11  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:

Bob Frazier E-Mail: BobF (at) mrp3 (dot) com

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-2020 by Stewart~Frazier Tools, Inc. - all rights reserved
Last Update: 05/20/2021

HTML pages and graphics at this site have been written/designed by Bob Frazier.
The author is a member of
The HTML Writers Guild

Site Rating Labeled With
ICRA image - labeled with ICRA

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'.
S.F.T. Inc. also does not collect, store, nor sell any personal information obtained from the internet. Web site logs are managed automatically by the hosting company.