Sunday, September 20, 2009

pHduino Firmware v04 released

Again, one more pHduino firmware release. Two main features: pH alarm, to warn when the pH is out of the normal range, and save parameters in the Arduino EEPROM memory, to recover the last configuration after a reset or a power off.

Changelog v04_20090920
  • Changed file name from phduino.h to pHduino.h.
  • Added codename version.
  • Added function to set the pH range for the pH alarm. 
  • Added pH alarm signals: LED, beeps, message by serial port and LCD.
  • Added feature to save parameters in the EEPROM memory of the Arduino board.
  • Added function to reset parameters in the EEPROM.
This is the newest list of commands.

cmd help
cmd phduino start|stop
cmd interval_ms INT
cmd set_temp_sensor on|off
cmd set_temp FLOAT
cmd set_ph_alarm TEMP_INF TEMP_SUP
cmd ph_alarm on/off
cmd reset

The code still fits in an Atmega168.

If you are using the pHduino in some project, send me the link to make a post about your project. I will really appreciate post a list of links about related projects.



Sunday, September 13, 2009

pHduino Firmware v03 released

This is the newest version of the pHduino firmware. Now you can configure it using a serial port communication.
  • Fixed comment about time of one 60Hz cycle in phduino.h file.
  • Added time for 50Hz power line.
  • Added command line feature to configure the pHduino.
  • Added option to work without temperature sensor by setting a temperature value by command line.
  • Added option to configure the time interval between acquisitions.
  • Added option to start/stop data sending by serial.
  • Added a help function.
I decided to use a command line function described in the Arduino forum, because I can write command close to the spoked language. This the output help function.

cmd help
cmd phduino start|stop
cmd interval_ms INT
cmd set_temp_sensor on|off
cmd set_temp FLOAT

For example, to make pHduino stop to send data, send the command "cmd phduino stop" (without quotes, of course). Interval time option configures the time interval between acquisitions in mili seconds (use values greater than 500). INT is an integer value and FLOAT is a decimal point value.

Now you can use it without the LM35 temperature sensor. For this, pass the command "cmd set_temp_sensor off" and set a temperature value. For example, "cmd set_temp 18.4" to set 18.4 celcius degrees up.

There is no problem using the serial terminal of the Arduino software. However, using a serial terminal program you need set to send strings without line end characters [carry return (CR) and linefeed (LN)]. I made tests using the cutecom (very common in Linux distributions) and it worked fine. For Windows users I suggest to use the Realterm. Mac OSX users can use the screen program.

pHduino Project