I often need to send text messages but my only way to send is via email. No worries. All carriers have a email version of your phone number that convert emails to texts. Here is how to figure out your email to text address:
- AT&T – firstname.lastname@example.org
- Verizon – email@example.com
- T-Mobile – firstname.lastname@example.org
- Sprint PCS – email@example.com
- Virgin Mobile – firstname.lastname@example.org
- US Cellular – email@example.com
- Nextel – firstname.lastname@example.org
- Boost – email@example.com
- Alltel – firstname.lastname@example.org
HP for the most part is a pain in the butt when it comes to finding parts for servers. BUT- I found a neat resource that lets you not only find parts but specific ones based on your server serial number. Total win.
It’s called the HP PartSurfer.
Finding a motherboard part number with just a serial number is stupid simple. Love it.
I found time over the holidays to mess with one of my old original projects- the Tri-Temp
It was very interesting to poke around in some of my original hardware/code and add some things to it.
Attached is a gallery of pics from the latest incarnation.
I’ll add the code changes and an updated schematic shortly. Continue reading “Tri-Temp Update”
Wikipedia says that a proportional–integral–derivative controller (PID controller) is a generic control loop feedback mechanism (controller) widely used in industrial control systems – a PID is the most commonly used feedback controller. A PID controller calculates an “error” value as the difference between a measured process variable and a desired setpoint. The controller attempts to minimize the error by adjusting the process control inputs.
Continue reading “PID? What is it?”
I haven’t worked on the Tri-Temp project in a while. I am going to go through and update the code a bit to lower the memory usage based on what I’ve learned for the LCC projects.
The original LCC code will have an update posted soon too. Mostly memory updates and a few control changes. I wasn’t sure if I wanted to bother but since the original LCC is still running my lizard’s climate I figured why not.
So I want to add some kind of visual indication that my main arduino loop is still well, looping. I decided on an LED “spinner”, kind of like on web pages and applications. but how to do it?
After a lot of searching I found something neat. A decade counter.
Seems this nice little IC (4017) has 10 outputs that go high in a sequence when given a pulse. The perfect thing to do when you want LEDs to “chase” or spin.
I hope to add this to the new LCC. Should help indicate that the main loop is still looping!
Detailed info on a similar “chaser” project here.
I’ve been programming for most of my life. Very very rarely have I had issues with memory or lack of memory.
Now that I’m hot an heavy into microcontroller programming I’ve stumbled across an issue that has apparently been causing me issues without me know it it.
Lack of memory!
The ATmega328 series chip that is the brain of the typical Arduino board has 3 memory locations.
- The Flash is typically 32k bytes. This is what the Arduino IDE tells you about when you compile/upload your code.
- The SRAM is something no one told me about…this is the actual operating program memory space (RAM). This is where your app runs and lives. Your variables live here. When this space is used up things get wonky. The Arduino crashes or worse does strange unexplainable things.
- The EEPROM is generally not used by the average programmer so I won’t cover it here.
JeeLabs has a killer write up on the SRAM and…wait for it….how to see how much is used!
I added their little function to output RAM usage and holy cow. I had it all used up!
So I had to learn about memory management. Lesson one- strings use up a lot of space!
JeeLabs also has a killer write up on how to optimize your string usage. READ IT! The Arduino site also has a write up on how to use the Flash memory for storing static variables too.
After all this learning I finally got my code “optimized”. I thought my latest project was a gonner but putting variables in Flash, dumping A LOT of debug code made a huge difference. I went from zero bytes of RAM and crashes to about 646 bytes free. Doesn’t sound like much but when you only have 2048 bytes to start with, that’s pretty good!
Now to figure out how to have my debug code and still keep the memory usage low!