Created a list of AVR fuses with a easy explanation of what each does. Found myself in a situation where my project didn’t work and eventually found out that the fuses were the issue. I thought I would dig deeper into understanding them and share it with those who happen to be scratching their head at what microcontroller fuses do. I hope it’s helpful, enjoy. You’ll find the tutorial HERE.
Just a quick update. I added the schematic for the ISPduino project. I do plan on updating the board here soon with a better layout and additional features, like diode protection. I’m open to other idea’s as well.
Currently ran into an issue with these boards where they will program, but will not run the program. I am using the Blink example from Arduino. The programmer (both USBasp and AVRISP mkII) are not reporting any issues. Tried checking to see if the oscillator was the issue by changing the fuses so the Atmega328P would run on the internal clock, but no dice.
Solution Found: The solution to my problem with the ISPduino was in fact the fuse configuration. I was tempting to emulate the fuse configuration of the Arduino, not fully understanding what each fuse does. The reason why I was able to program the chip without an issue and the program would not execute in return was because my brown out detection was set to 2.7V. Not being a normal Arduino the device can be run on voltages lower than 5V and I was using two AA batteries (producing approximately 2.7-3.0V) to power the device. After disabling the brown out detection everything works perfectly now. In addition I have a better understanding of the fuses. I will be throwing together a page further describing the function of each fuse setting.
American Semiconductors’ FleX™ Silicon-on-Polymer™ is a revolutionary substrate conversion process that provides flexible ICs and fully flexible wafers. FleX enables the next generation of flexible electronics and Flexible Hybrid Systems.
The FleX-MCU is an 8-bit RISC microcontroller with 8KB embedded RAM operating at up to 20MHz with a 1.2V core and 2.5V I/O. It includes multiple serial interface peripherals, including UART, I2C, and SPI.
There’s a video towards the bottom of the FleX page.
Eric Evenchick at Hackaday.com is developing templates to make firmware development easier for the open source community. It’s definately something worth looking into. You can find the original story at Hackaday here. The project files are on Github here.
Most microcontroller manufacturers give you some kind of free development toolchain or IDE with their silicon products. Often it’s crippled, closed source, and a large download. This is pretty inconvenient when you want to have firmware that’s easy to build and distribute. I’ve found many of these toolchains to be annoying to use, and requiring closed source software to build open source firmware seems less than desirable.
It’s possible to build code for most microcontrollers using command line tools. You’ll need a compiler, the device manufacturer’s libraries and header files, and some method of flashing the device. A lot of these tools are open source, which lets you have an open source toolchain that builds your project.
Setting up these tools can be a bit tricky, so I’m building a set of templates to make it easier. Each template has instructions on setting up the toolchain, a Makefile to build the firmware, and sample code to get up and running quickly. It’s all public domain, so you can use it for whatever you’d like.
Currently there’s support for AVR, MSP430, Stellaris ARM, and STM32L1. More devices are in the works, and suggestions are welcome. Hopefully this helps people get started building firmware that’s easy to build and distribute with projects.