Invest in your design rather than your prototype with time-saving products from SiliconHacker!

Welcome to SiliconHacker.com!

This site was moved to a new host Jan 18, 2018, a bit ahead of our intended schedule. (The original hosting company was making some changes that would have negatively affected our site. This replacement site had been in development for a few months now but was not quite as ready as we would have hoped for. So, you'll be seeing quite a few changes occuring pretty much daily for a couple weeks.)


What is SiliconHacker?

Simply stated, it is a much better way to do hardware prototyping!

SiliconHacker brings to the hardware engineer the same advantages that C++ classes (objects) bring to the software engineer: small, flexible, well-defined, -controlled and -behaved hardware modules that are very easy to use or combine, into either simple or complex designs.

And—just as importantly—each is supplied as needed with known-good C++ code to show how to interface it in your code.

Take some time to peruse the Hardware main menu. Currently, there are 6 main product families comprising more than 50 separate products:

  • Micrcontrollers
  • Power
  • Displays
  • Simple I/O
  • Breakout Boards
  • Discretes

Each has its own landing page which provides details. To expand any of the families, click the down arrow on the right end of the button. To enter the family landing page, click on the family name link.

SiliconHacker began with, and continues to support, the Atmel (now Microchip) microcontrollers in the ATmega and ATxmega families. Because of this, my code samples assume the use of the very flexible and powerful—and free!—Atmel Studio (latest version). By design, all code samples are C++: I've been very pleased with how well C++ has been implemented in its

  • efficiency in code translation,
  • support for multiple, simulataneous programmers (helpful when developing multi-micro products),
  • support for an understandable stack frame,
  • support for assembly, including inline,
  • support for assembly routines calling C++,
  • support for C++ calling assembly routines,
  • support for C++ interrupt handlers, and
  • support for C++ callback handlers.

The debug support within Atmel Studio is also quite good. And, whenever possible, I support the JTAG port programmers. (Some microcontrollers, like the ubiquitous ATmega328, don't, so I support the parallel programming port instead. Either way, if you accidentally brick your board by turning off ISP programming, you can recover by means of either the JTAG or paralllel programming ports.)

It is very nearly the case that if Atmel Studio can't handle some way to code what you need, it simply could not be done anyway! I've been using Atmel Studio for a few years now and have yet to encounter something that is unreasonably limited.

Another advantage for the use of Atmel Studio is that it is easy to post the entire project for download (which I provide) in the Resources section. This gives you a huge head start, especially when you're trying to come up to speed on a new piece of hardware, or I2C or SPI or LCD display control code minutiae. I really have implemented a great deal of known-good code, which is yours at no charge. (In fact, you can download the code even if you've never purchased anything from SiliconHacker. The code is a resource which I want to share with the AVR community.)

You've probably noticed the master menu on the left column. There are three main selections from the Home landing page: 

  • Home: always brings you back here.
  • Products: the landing page for all hardware products.
  • Resources: the landing page for all software and tutorial resources.

Other main menu items will appear as the eStore portion of our site comes on line.

Again, Welcome!

Owner and Senior Technologist (and doer of anything else that needs to be done!)