About

This blog is run and maintained by me, Tim Anderson of the Transistor with the help of Aaron who is also of the Transistor. It is a way to share my experiences in the transition from the Arduino line of microcontroller products to programming directly to other MCUs. While I love the Arduino development environment, the ease of use and many thousands of example projects around the internet, it is sometimes not fast or powerful enough for my projects, or alternatively, is too powerful and can be replaced by smaller and cheaper solutions. I hope that by sharing my experiences in transitioning from the Arduino to generic MCU programming, I can allow others to avoid the same problems and mistakes I have been making as I kludge through learning about other MCU programming.

My blog posts currently focus on my experiences with the PIC32 environment and the differences and similarities to normal Arduino development. I come from a long line of Arduino Projects and I know their IDE quite well, but the transition from the Arduino IDE to direct MCU code has a few challenges and points of confusion. I wish to clarify for those who also seek to transition from the Arduino into the much larger and wider world of MCUs what these differences are and how to get your projects working easily. My blog posts are written to document my solutions to practical development issues I have encountered while working on projects and as such should be useful for people looking to implement these solutions in their own projects. The first several entries will focus on getting basic functionality available on any Arduino board working and explained on the PIC32. This will include control of digital inputs and outputs, analog inputs, PWM-equivalent functionality, Serial communication over USB or UART devices, and more topics as I work on them. I will provide all code used in my projects and schematics for my circuits to make the process as clear and easy to understand as possible.

My primary development board in these endeavors is the USB Bit Whacker 32-Bit Version (or UBW32 for short). It consists of a PIC32MX795F512L microcontroller and breakout board. Specs for the board are available on the UBW32 website linked above. The board has 78 digital I/O pins, built-in USB broken out to a mini-USB connector, 4 user-controllable LEDs, 2 user-controllable switches, and a breadboard-friendly pin layout, plus all the features of the PIC32MX795F512L accessible on its pins. It can be purchased at Sparkfun for a mere $40, which is an excellent value for the features this board has. While the specific blog posts are about this particular MCU breakout board, the concepts should apply to most embedded development, especially for PICs.

Aaron will be focusing his blog posts on working directly with AVR Studio in an attempt to learn about the underlying hardware that drives the Arduino. He’ll be working to understand how the Arduino Bootloader and IDE work with the chip and to use and write code for the features of the ATMega chips that the Arduino IDE is not currently capable of. It is my hope that by uncovering the inner workings of the Arduino via Aaron’s posts while simultaneously explaining the workings of other architectures (Primarily PIC32 at first, and others later), I will be able to help others to move beyond the Arduino development platform.