Welcome to Part 8, before we get starting with making the PCB I thought I’d review my code/hardware plus add some more functionality to our project.
We don’t need a Watchdog f_wdt variable
On review of my code and the example watchdog code I used, I found that the watchdog f_wdt variable wasn’t adding any value to our code. I came to this conclusion because when you run the system_sleep() function and it reaches sleep_mode(); it sleeps there. When the Watchdog timer wakes it up, it heads to the watchdog vector (ISR(WDT_vect)) and now since it’s awake again it continues to run next bit of code.
// This will work because we are initialising the watchdog vector and
// once the watchdog times out, it will wake up, go here,
// do nothing and continue our code
ISR(WDT_vect) {
}
Now I’ve give you an example of where we might need the f_wdt variable.
Welcome back! In this part we’ll explore how we can reduce our power consumption which will allow us to move from 2 AA batteries to a 3V coin cell.
When the whole circuit is operating in logging data mode and at 2.68 volts, it’s taking up 1.06mA. First off this 1mA is much lower than our assumed 2-3mA because we are running at 3V instead of 5V, less voltage means less power consumption. Using the Battery Life Calculator with a 240mAh battery it gives us a estimated battery life of 8 days. Lets see how low we can get our power consumption to!
Welcome to Part 5, in this part we’ll talk about enabling brown out detection to our Standalone Temperature Logger as a safety mechanism. The information below about brown out detection is also available as a video explanation, I recommend viewing the video whilst reading below.
Before we do anything let’s take a look at the ATtiny85’s datasheet, we want to check what voltage range works on.
Welcome back to Part 4, we now get to see some results of our work :). The video below shows the ATtiny85 running at 5 volts with our standalone temperature logger software and retrieving the data from the ATtiny’s EEPROM and printing it on our computer screen.
Why did I mention “ATtiny85 running at 5 volts”? It’s because we aren’t quite done yet with this project, the next step which is Part 5 is to adjust our code and schematic to run the ATtiny85 on 2 AA batteries. Then after that we need to make a PCB of it!
Welcome to Part 2, here we’ll test our implemented code out on the Arduino for a proof of concept. As you’ll recall the Standalone Temperature Logger’s function is to record temperature every x minutes defined by the user and log this to the EEPROM.
The code is fairly simple and will be explained in this post. What hasn’t been coded is my implementation of a simpler 2 Wire protocol as this actually requires an ATtiny85, so I’d like to make sure the code is functional before continuing.
I bet you were expecting to see Part 3 of this build? I’ve recently learned about the important of power dissipation when giving my circuit the real test of 12 volts @ 0.75 Amps and thought I’d share it with you.
In my selection of transistors for the motor controller I went with ones that firstly had a low Vce and then based on price after that; what I didn’t completely take into account is the power dissipation of these components. I know I mentioned it in part 1 however I didn’t completely understand why one of my transistor’s datasheets had 2 values for power dissipation… and now I do, and you will to!
AdvanceVGA – Play your GBA on the big screen! Swap out the LCD for our board, solder some wires, connect 5V USB and VGA and you’re ready to go.
GBxCart RW allows you to backup GB/GBC/GBA ROMs, save or restore game saves and re-write supported flash carts. Mini RW option available for GB/GBC only.
Wireless Gameboy Controller – Use your Gameboy, mGB, GBC, GBA, GBA SP, GB Micro, NDS and NDS Lite as a wireless controller on Windows, Linux, Raspberry Pi, etc, and on your NES, SNES, N64, Gamecube and Wii.