The osPID hardware has the same form factor as industrial PID controller. Unlike an industrial controller however, we wanted to provide flexible hardware that allows people to modify, change and hack to suit their applications. Arduino was chosen as a base platform for the osPID as many makers are familiar with it.
The osPID hardware has 3 core components:
- Main board: An Arduino-compatible main processing board with a user interface. Two edge connectors are used to connect to the input and output cards.
- Input card: An input card that can be swapped depending on desired type of input measurement.
- Output card: An output card that can be swapped depending on desired output type.
Both the input and output card come with a robust 6 pins 6.35 mm pitch barrier terminal block, instead of a smaller screw terminal block. Microcontroller peripherals like I2C, SPI, external analog reference, analog pins, digital IO pins and power are available to both cards.
The entire osPID design is open source hardware and the design files can be downloaded at the download section on the website. You are free to use & modify them to your own needs.
The core of the osPID hardware consists of a compact Arduino compatible board having a simple user interface. An ATMega328P running at 16MHz is used as the main controller. An 8×2 alphanumeric character LCD with blue back light provides an intuitive user interface, with 4 push buttons for navigation.
An efficient buck converter is used for power conversion, this allows the osPID to accept up to 38V input power without overheating. Being able to accept this higher voltage also leaves the door open for voltage output applications such as ±10 V or ±5 V.
An on-board USB to serial converter chip is available for connecting to our PC-based user interface software. This allows for more advanced configuration without overloading the on-board UI. We also added the in-circuit system programming (ICSP) connector in case you wanted to modify the bootloader residing on the ATMega328P or simply wanted to run it bare metal without Arduino.
The main board is connected to the input & output cards through robust edge card connectors. We wanted the cost of the input & output cards to be as low as possible, as this is area most likely to be hacked by the end-user. By using these edge card connectors, no connectors are required on the input & output card side.
- Complete Arduino compatible board with ATMega328P-AU
- 8×2 LCD white character with blue back light & adjustable contrast
- On board USB-serial port
- 1 2×6 2.54mm pitch edge card expansion slot for input card
- 1 2×6 2.54mm pitch edge card expansion slot for output card
- 4 push buttons
- 1 red LED for power indication
- 1 yellow LED for system status and operation
- 1 green LED for USB activity status
- 1 buzzer with transistor for a loud and annoying sound
- 1 reset button
- Analog reference voltage with LC filter
- Auto reset selection through jumper
- 7 – 38 VDC input range
- 6-pin AVR In-circuit serial programming (ICSP) header
- Dimension – 46.99 mm x 46.99 mm
- Can be slotted into 1/16 DIN panel cutouts
- RoHS compliant – Yes
The input cards come in several types, each tailored to a different type (or types) of input. The first input card we designed is capable of measuring temperature through either a thermistor or thermocouple. Work on the next input card (for RTD input) is ongoing. The input card has 2×6 edge card pins to connect to the main board. The pinout of the edge card connector residing on the main board for the input card is as follows:
Basic Temperature Input Card
- 1 thermistor input port:
- An external reference resistor is required to match the nominal value of the thermistor. The accuracy of the reference resistor used should be at least of that of the thermistor’s. (We chose to use an external rather than an internal reference resistor to give greater flexibility to the end user.)
- Can be used as generic voltage input sensor (example: potentiometer, LDR, etc)
- 1 type K thermocouple input port:
- Uses MAX6675ISA+ on v1.10:
- 0 °C to +1024 °C temperature measurement range
- Uses MAX31855KASA+ on v1.20 (current version on sale):
- -200 °C to +1350 °C temperature measurement range
- Temperature Input Card v1.2 BugFix
- Thermocouple open detection
- Uses MAX6675ISA+ on v1.10:
Depending on the application and desired accuracy, the user can select to use either the thermistor or the thermocouple as the input to the system. This can be selected in the PC-based user interface. You can even use them both by hacking the firmware to run two instances of PID module at the same time!
An output card is required to provide a feedback to the system by controlling the output behavior. The first output card we designed is a digital output card having 2 relay outputs and 1 digital output (for connecting to an external SSR.) Work on an analog output card is ongoing. As with the input card, The output card has 2×6 edge card pins to connect to the main board, but with a slight different pinout. The pinout of the edge card connector residing on the main board for the output card is as follows:
Digital Output Card
- 2 SPST NO 10A relay (only 1 mounted)
- 2 Oz copper PCB
- 1 output pin to drive an SSR
- 3 indicator LED (2 for relays, 1 for SSR)
- Wiring Instructions for Digital Output Card
We can’t wait to see what people will do with the osPID. This includes hacking and modifying it to suit their needs. Therefore, we came up with 2 simple boards that can be used to hack & modify the osPID:
This is a simple prototyping board that breaks out all the pins on the edge card with a prototyping area with SOIC footprint (up to 20 pins of 1.27 mm pitch) and TSSOP footprint (up to 20 pins of 0.65 mm pitch) is also available for you to populate your own circuit and design.
This is a tiny board that simply breaks out the pins on the edge card. We knew someone out there might want to use our osPID main board to do something else other than PID control and it might need to go into tight spaces. This tiny board might be just what you need!