Project Description

The firmware residing on the osPID consists of several components tied together.

  • Arduino bootloader: We are using Arduino Duemilanove’s bootloader on the osPID main board.
  • Libraries:
    • PID library
    • PID Auto Tune library
    • LCD library
    • Analog button library
    • MAX31855 library
  • Sketches

Every osPID unit is shipped with the latest firmware. To see what version of the firmware is currently installed on the unit, power up the unit (either by the USB connector or the external DC jack) and the firmware version will be shown on the LCD. Current version of the firmware is v1.70.

osPID Firmware Revision on LCD

One of the benefits of the osPID is the ability to update and change the on-board firmware.

Steps to upgrade the firmware on the osPID unit:

  • Download and install the Arduino 1.0 IDE
  • Download the Firmware from GitHub and unzip
  • Connect the osPID to your computer and to a wall outlet
  • Launch the Arduino IDE. Under “Tools,” Ensure that the correct COM port is selected and that the Board is set to “Arduino Duemilanove w/ATmega328″
  • Open “osPID_Firmware.ino” from the downloaded firmware and select “Upload”
  • The upload process has two phases. First the code will compile, then it will be sent to the osPID. If the process seems to be stuck at the uploading phase, it may not be set to auto-reset (see note below.) that’s fine, just press the reset button and the transfer will begin
  • If everything goes correctly the firmware will upload and the IDE will display “Done Uploading.”
As with the Arduino, the default osPID behavior is to restart whenever a new serial connection is made. This makes it very easy to upload a new program to the unit. Unfortunately, this can be a problem during normal operation; If the osPID is running and you want to connect with the Front-End, you DO NOT want the osPID to reset. For this reason, we have included a jumper on the back of the main board.

osPID Auto Reset

If the jumper is present, the unit will auto-restart. If absent, the unit will only reset when the reset button is pressed.