While some may know this as I've not really kept it secret, I started my professional career as a electronics/computing hardware engineer. I built and designed access control and magnetic stripe equipment. These devices were based on the 6800/6803 embedded 8-bit micro-controllers. Even while working on Turbo Pascal/Delphi/RAD Studio, I've continued to enjoy firing up the soldering iron, grabbing a handful of components and made stuff.
For a long time, the hardware side of the software business has been somewhat isolated. For the most part, pure software companies only dealt with hardware that was standard off-the-shelf or was derived directly from the same. However, within the last 6+ years, and especially within the last 3, the rising up of the "maker" culture has been one of the most interesting developments in the overall technology sector I've seen since the late 70's and into the mid 80's. In many ways, this movement, which unlike the 70's and 80's, is far more diverse.
Not only is this whole new segment diverse in terms of the kinds of projects, but also diverse in the kinds of participants. No longer are there only classical electronic/electrical engineers working in this space, but all manners of art and science practitioners are also heavily impacting it. For instance, some of the "wearables" technology started out as art students merely wanting a way to light-up their avant-garde fashion design. Others are using technology for "kinetic sculptures". They learned simple programming techniques and enough electronics to wire up a few LEDs and buzzers to a small microcontroller. This world is so much more accessible than when I was spending my summers at the local library or Radio Shack. I can only imaging the trouble I'd have gotten into had the Internet been available back then... On second thought, I'd probably have blown myself up :).
Throughout my software career, I've called on my hardware experience and interests to help inform how I design and build software. Most software developers I've encountered have enough knowledge and understanding of how the hardware operates to be very effective developers. However, I also think that you can never have too much knowledge and understanding of the system for which you're developing code. Knowing how the hardware is put together and built, can sometimes lead to interesting software solutions. In fact, this very thing is another development I've seen in the industry as well... replacing hardware with software. In fact, "software" is used to develop a lot of hardware these days. VHDL is one such example where hardware is described using a form of software. This code is then compiled and then "programmed" onto the physical device. This code can also be used to automate the creation of a custom integrated circuit. In fact, nearly all integrated circuits are designed with some form of VHDL or another.
I've worked on several personal projects over the last few years that I plan to use this blog to describe and document. Look out for information on the following:
- Ballistic Chronograph
- Using the toner-transfer process to create custom PCBs
- Hacking a cheap laminator used for the toner-transfer process
- Building a 2'x4' gantry CNC mill
- Converting CNC mill to a 3D printer
- Building a custom 3D printer extruder/heated bed controller
- Making a variable speed spindle with an RC brushless DC motor
- Tachometer and controller for the spindle
- Using LinuxCNC
- Converting a toaster oven to a reflow oven.
- Atmel Atmega328p, Atmega32u4 in TQFP
- Intel Galileo & Edison
- Raspberry Pi
- Photon by Particle.io
- PCB prototyping services, such as OSHPark.com
Sometimes I may use Delphi in these projects and sometimes other tools and languages. For instance, I used Python on Linux to create a simple GUI application that monitors and controls the 3D printer extruder/heated bed controller.