Welcome to the github repository that contains the firmware source code to the bluetooth reflow oven project blog. You'll need to read the blog to understand this project before making use of this firmware.
You might not need to. I've built a .hex
file for the ATMega8L that is suitable for users on a 220-240V 50Hz mains supply. I've also built the Android .apk
app ready to side-load on to your Android device. The app is compatible with all mains supplies.
You can find this files in the bin/
directory.
OK, no worries. Let's deal with the app first.
This one should be easy. Simply download and install Android Studio from Google. When it's installed you can open up the project file from the android/
directory and build it yourself.
I built this firmware with avr-gcc version 4.9.2 so you'll need that version or anything more recent. Linux users can use their package installer to get the compiler.
Windows users can use the pre-built package that I created. That's the package that I used to create this firmware. Windows users must also have installed a Unix-like environment such as Cygwin.
I use the scons
build system to build my projects. cd
into the atmega8l
directory and run the following command to build the firmware:
$ scons mains=50
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
avr-objdump -S awreflow2.elf > awreflow2.lst
avr-size awreflow2.elf | tee awreflow2.siz
text data bss dec hex filename
7724 16 7 7747 1e43 awreflow2.elf
I've trimmed the compiler output from the above command. The mains=50
option refers to the frequency of your mains supply in Hertz and at the time of writing I've only implemented timings for 50Hz supplies because I don't have the ability to test against the other common frequency: 60Hz. I'll gratefully accept pull requests from anyone who can supply tested timings for 60Hz.
Now the firmware's built you need to upload it. See the main blog article for USBASP setup instructions. Here's the command to upload the built file to the controller:
$ scons mains=50 upload
We also need to set the fuses on the ATMega8L so that it will use our 8MHz external crystal. Here's how:
$ scons mains=50 fuse
You might need to manually power-cycle (reset) the device after fusing. For some reason that doesn't happen automatically for me.