Jump to content

JStat60

Members
  • Content Count

    17
  • Joined

  • Last visited


Reputation Activity

  1. Like
    JStat60 got a reaction from bluehash in Amplifying DataLogger with GUI   
    Hi Folks,
    I recently designed a Booster Pack that I intended to use as a recording pH meter.  The idea was that it would have a couple of British telecom analog (BTA) connectors that you could use to plug in a pH probe from Vernier instruments.  The problem is that I assumed that the pH probe was comprised of a pair of passive electrodes, when in fact it has an amplifier built in and requires power and ground connections in addition to an output.  This means that it cant be used as a pH meter (at least not with the Vernier probe), but you can use it for data logging.  Of course there are limitations on the voltages you can measure (zero to vcc) and time scale resolution (limited to > 5 ms or so by serial communications over the USB), but I suspect there are applications where this would still be useful. 
    The project is described on a couple of web pages and the source code has been posted to GitHub.  This write-up describes what I have done and has links to the Eagle files, Energia code, and Processing code for the GUI.  It also has a screenshot of the GUI so you can kind of see what is going on.  The board design has been shared on the OSH Park web site, so you can just order a set of boards from them if you so desire.
    Jack
  2. Like
    JStat60 got a reaction from Automate in Amplifying DataLogger with GUI   
    Hi Folks,
    I recently designed a Booster Pack that I intended to use as a recording pH meter.  The idea was that it would have a couple of British telecom analog (BTA) connectors that you could use to plug in a pH probe from Vernier instruments.  The problem is that I assumed that the pH probe was comprised of a pair of passive electrodes, when in fact it has an amplifier built in and requires power and ground connections in addition to an output.  This means that it cant be used as a pH meter (at least not with the Vernier probe), but you can use it for data logging.  Of course there are limitations on the voltages you can measure (zero to vcc) and time scale resolution (limited to > 5 ms or so by serial communications over the USB), but I suspect there are applications where this would still be useful. 
    The project is described on a couple of web pages and the source code has been posted to GitHub.  This write-up describes what I have done and has links to the Eagle files, Energia code, and Processing code for the GUI.  It also has a screenshot of the GUI so you can kind of see what is going on.  The board design has been shared on the OSH Park web site, so you can just order a set of boards from them if you so desire.
    Jack
  3. Like
    JStat60 got a reaction from dubnet in Electrochemistry-Potentiostat   
    We have been working to develop a low cost, three-electrode potentiostat for use in science education and environmental monitoring.  This is a computer driven instrument that is appropriate for teaching at the university (undergraduate) or perhaps high school or home school level.  It can be used to teach physical chemistry concepts and can be used to quantify things like metals in water.  At this page, we describe using the instrument to measure lead in water at concentrations as low as 44 ppb. 
    The instrument (called the WheeStat) is comprised of a Stellaris / Tiva LaunchPad, a booster pack, Energia software, a user interface (written in Processing), and a set of electrodes.  All hardware and software is open source.  Descriptions can be found as research notes at PublicLab.org.  We are in the process of getting a kit put together that will have all the hardware and software needed (including the LaunchPad and a set of cheap electrodes) that will retail for $100.  The kit is described here.  Of course, you could build your own using our descriptions, but buying retail will allow us to continue developing other science ed hardware / software (see our web page).
    You should soon be able to purchase a kit from here.  A user's manual is available here (the online users manual includes a couple of videos that demonstrate the user interface).  The Energia and GUI software are available from here.  A description of setting up the instrument is here.

    Let me know if you have any questions.
    Best regards,
    Jack
  4. Like
    JStat60 got a reaction from spirilis in Electrochemistry-Potentiostat   
    We have been working to develop a low cost, three-electrode potentiostat for use in science education and environmental monitoring.  This is a computer driven instrument that is appropriate for teaching at the university (undergraduate) or perhaps high school or home school level.  It can be used to teach physical chemistry concepts and can be used to quantify things like metals in water.  At this page, we describe using the instrument to measure lead in water at concentrations as low as 44 ppb. 
    The instrument (called the WheeStat) is comprised of a Stellaris / Tiva LaunchPad, a booster pack, Energia software, a user interface (written in Processing), and a set of electrodes.  All hardware and software is open source.  Descriptions can be found as research notes at PublicLab.org.  We are in the process of getting a kit put together that will have all the hardware and software needed (including the LaunchPad and a set of cheap electrodes) that will retail for $100.  The kit is described here.  Of course, you could build your own using our descriptions, but buying retail will allow us to continue developing other science ed hardware / software (see our web page).
    You should soon be able to purchase a kit from here.  A user's manual is available here (the online users manual includes a couple of videos that demonstrate the user interface).  The Energia and GUI software are available from here.  A description of setting up the instrument is here.

    Let me know if you have any questions.
    Best regards,
    Jack
  5. Like
    JStat60 got a reaction from Automate in Electrochemistry-Potentiostat   
    We have been working to develop a low cost, three-electrode potentiostat for use in science education and environmental monitoring.  This is a computer driven instrument that is appropriate for teaching at the university (undergraduate) or perhaps high school or home school level.  It can be used to teach physical chemistry concepts and can be used to quantify things like metals in water.  At this page, we describe using the instrument to measure lead in water at concentrations as low as 44 ppb. 
    The instrument (called the WheeStat) is comprised of a Stellaris / Tiva LaunchPad, a booster pack, Energia software, a user interface (written in Processing), and a set of electrodes.  All hardware and software is open source.  Descriptions can be found as research notes at PublicLab.org.  We are in the process of getting a kit put together that will have all the hardware and software needed (including the LaunchPad and a set of cheap electrodes) that will retail for $100.  The kit is described here.  Of course, you could build your own using our descriptions, but buying retail will allow us to continue developing other science ed hardware / software (see our web page).
    You should soon be able to purchase a kit from here.  A user's manual is available here (the online users manual includes a couple of videos that demonstrate the user interface).  The Energia and GUI software are available from here.  A description of setting up the instrument is here.

    Let me know if you have any questions.
    Best regards,
    Jack
  6. Like
    JStat60 got a reaction from energia in Can not analogWrite on RED_LED, GREEN_LED, BLUE_LED   
    @@energia, I have been using the Stellaris LauchPads (EK-LM4F120XL Rev and a PC running Windows 7.  I do have some of the Tiva boards but I did not try this out with them.
    I have had this problem with multiple programs.  In addition to the modified blink sketch reproduced in my 13 Feb post, I was unable to run a rather involved program that can be found at https://github.com/SmokyMountainScientific/WheeStat5_0/tree/master/WheeStat5_0.  A third test program (presented below) Incorporates a pwm output into the setup of AnalogReadSerialOut.   When the pwm output is on one of the "non-functioning" pins, no output is written to the serial port (when using the most recent Energia revision). The code compiles and loads without any error message coming up, but nothing comes up on the serial monitor.  If the analogWrite command is executed on a "working" pin, like RED_LED, the LED lights up and the expected string of numbers comes spooling out of the monitor.  I first saw this problem with a sketch written to run a pH meter (which I could post f someone wants to read, but seems like overkill). 
    Please let me know if anyone else sees this kind of issue with the new Energia revision.
    Jack
     
    //////////// modified ARSO sketch ///////////////// 
      void setup() {    Serial.begin(9600);    analogWrite(PB_0, 50); }   void loop() {   int sensorValue = analogRead(A3);   Serial.println(sensorValue);   delay(1);  }
  7. Like
    JStat60 got a reaction from reaper7 in SPI with 16 bit data   
    Problem solved.  This was a hardware issue.  I guess I cooked the digital pot while trying to solder it to the board.  Replacing the pot resulted in behavior predicted for my test circuit.   In case anyone is interested, I have pasted the energia code I tested the pot with below.  The circuit is described as well.  The sketch uses the trans2byte commands described above and the SPI library from Reaper7 and Rei Vilo. 
    Sorry for the confusion.
    Jack
     
    /*
      Sketch for testing MCP 4231 digital potentiostat with volatile memory.
      modified from the Digital Pot Control example that comes with Energia
        Originally by Tom Igoe, Rick Kimball, Heather Dewey-Hagborg, 2005 to 12
        Spi module 0 requires SPI library from Reaper7.
        
      The circuit:
     CS, SCK, and SDI attached to respective module zero pins (CS(0), SCK(0), MISO(0)}
      Pin P0A connected to VCC,
      Pins P0W, P0B, P1W and P1A all connected,
      Pin P1B connected to A11 with a 10 Kohm resister between A11 and GND.
      This gives:
        VCC-R1-(R2, analogRead)-R3 (10Kohm)-GND
        by cycling values to the two pots, values of R1 and R2 can be changed.
        Values of R1 and R2 can be determined from serial output of analog signal.
       * MOSI - to J1 pin 8
      * CLK - to J2 pin 11 (SCK pin) P1.5
     
    */
    #include<Energia.h>  // required to get spi to work.
    #include <SPI.h>  // include the SPI library from Stellarisiti
    #include "wiring_analog.c"


       int gain0;
       int gain1;
       unsigned int address1 = 16;
       unsigned int address0 = 0;
    #define Iread_pin  A11              //J1 pin 2, Analog read current, was A3  

    unsigned int iRead = 0;                 // hight pulse current read
     
    void setup() {

      SPI.setModule(0);
      SPI.begin();
      SPI.setClockDivider(SPI_CLOCK_DIV64);
      SPI.setBitOrder(MSBFIRST);
      SPI.setDataMode(SPI_MODE0);
     
      pinMode (Iread_pin,INPUT);


      Serial.begin(9600);             // begin serial comm. at 9600 baud
    ///////// header //////
    Serial.print("gain 0");    
    Serial.print('\t');
    Serial.print("gain 1");
    Serial.print('\t');
    Serial.println("Iread");
       }

    void loop() {
     ///////// ramp up R0 holding R1 constant ////////
      for (int m=0; m<128; ++m) {
       gain1 = m;
       gain0=64;
          digitalPotWrite(16,gain1);  //write to channel 1
          digitalPotWrite(0,gain0);    // write to channel 0
       
        Serial.print(gain0);    
        Serial.print('\t');
        Serial.print(gain1);
        Serial.print('\t');
     
        delay(20);   
        readVolts();
      }
      for (int n=0; n<128; ++n) {
        gain0 = n;
        gain1 = 64;
           digitalPotWrite(address1,gain1);  //write to channel 1
          digitalPotWrite(address0,gain0);    // write to channel 0
       
        Serial.print(gain0);    
        Serial.print('\t');
        Serial.print(gain1);
        Serial.print('\t');
        
        readVolts();
      }
    }

    int digitalPotWrite(int address, int value) {

      SPI.trans2ByteA(address);   
      SPI.trans2ByteB(value);  
     
    }

    void readVolts() {
       unsigned int iRead = 0;               
               for (int i =0; i<=15; ++i){  
             iRead += analogRead(Iread_pin);}
             int mVi = (iRead)/16;
             mVi = mVi*3558/4098;          // digital reading converted to mV
             Serial.println(mVi);  

               
             }
×
×
  • Create New...