TeensyNet Project Interest?

Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum

Help Support Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
I am testing and debugging using the following architecture:
Code:
Web Server  : Raspberry Pi (Wheezy, lighttpd, php5, mysql) over wifi
              hostname: tusker.local
              TeensyNet site at /var/www/TeensyNet/

Web Browser : Linux (Zorin distro) laptop over wifi
              Google Chrome and/or Firefox

TeensyNet   : Over wifi via TL-WR702n in client mode
              BonjourName: TuskerNet6

Here's the php redirect URL if I submit an action from ActionDataWithMySQL.php (as cloned):
Code:
http://localhost/ActionStatus.php?netID=1&service_port=192.168.1.6&port_address=2652&netName=TuskerNet6

Tonight I found the offending code in that particular script. Perhaps I spoke too soon regarding problems with relative addressing.

I actually got it to work by using the following code, starting at line 189:
Code:
      <meta http-equiv=\"refresh\" content=\"1;url=ActionStatus.php?netID=$netID&service_port=$service_port&port_address=$port_address&netName=$netName\">
      <script type=\"text/javascript\">
          window.location.href = \"ActionStatus.php?netID=$netID&service_port=$service_port&port_address=$port_address&netName=$netName\"
      </script>";

Here is the resulting redirect using the modified script (no errors):
Code:
http://tusker.local/TeensyNet/ActionStatus.php?netID=1&service_port=192.168.1.6&port_address=2652&netName=TuskerNet6
 
What prevents the use of a grounded thermocouple? I looked for documentation to support that on the MAX31850 datasheet as well as the Adafruit pages, but I didn't see anything regarding thermocouple junctions. Noise? Accuracy?

I'd like to use TeensyNet as a smoker controller, and most of the less expensive thermocouple probes suited for the application are only offered with grounded junctions.
 
What prevents the use of a grounded thermocouple? I looked for documentation to support that on the MAX31850 datasheet as well as the Adafruit pages, but I didn't see anything regarding thermocouple junctions. Noise? Accuracy?

I'd like to use TeensyNet as a smoker controller, and most of the less expensive thermocouple probes suited for the application are only offered with grounded junctions.

Take a look at the pin descriptions on page 8 of the datasheet. It states that the T- connection of the thermocouple must not be connected to GND.

Also take a look at the conversion description on page 10.
 
Fair enough. I'll buy the expensive probes for food use and use the cheap exposed junction variety for ambient temp inside the smoker.

I should have a few EEPROM chips and 1-wire switches this week. No more reverse engineering...progress instead!
 
Also, I don't mean to question your work. I feel like I've perhaps done a bit too much of that. You've been pretty patient in responding to my questions, and I sincerely appreciate it. I can't wait to start using TeensyNet as a functional controller instead of a side project sitting on my desk!
 
Also, I don't mean to question your work. I feel like I've perhaps done a bit too much of that. You've been pretty patient in responding to my questions, and I sincerely appreciate it. I can't wait to start using TeensyNet as a functional controller instead of a side project sitting on my desk!

There's always a better way to do something :mug:

I always appreciate input.

Right now I'm trying to learn how to use Inkscape to make templates for a laser cutter, so I can fabricate some enclosures from acrylic sheet.
 
Indeed, but you've so far been able to answer most of my "what ifs" with very sound reasoning. I appreciate the insight. I'll push some php edits your way sometime soon, making the code a little more portable. I'll also endeavor to make a somewhat detailed writeup of my installation, minus the crazy workarounds.

Let me know if you need a hand generating DXF files. I've used Inkscape to do exactly that for some of my CNC projects. I also have some decent 2D CAD software at hand.
 
I'll be more than happy to help with the design of an enclosure. While I don't know Inkscape, I'm pretty good with Illustrator and a buddy of mine works at a plastic shop with a laser cutter. We can fab up some prototype enclosures for you if you'd like.

Since I'm not much help one the software side, I can help in areas that I'm more competent in.
 
I just created a repo for the TeensyNet sketch.

There's a branch called modular-code where I intend to break the code up into smaller, more manageable chunks. I've created a sub-directory for all of the include files. By creating a sym-link to it in the ~/sketchbook/libraries directory, I managed to get the IDE to successfully compile the project.

BTW, the TeensyNet.h file does indeed fix the compile errors.
 
I've updated the TeensyNet main board, and now have two variants.

Version 5.4 has added a set of local hardware MASTER STOP and RESET switches. This is something I've been meaning to add for a while.

Version 9.0 is a Teensy3.1-only board that takes advantage of the Teensy3.1 boards extra I2C bus, adding the ability to support two separate I2C busses (Wire and Wire1) using the upcoming FastWire library. This is a great new library by nox77, and greatly expands the I2C library.

The new boards and supporting code will be posted on my website in the near future.
 
Jimmay-
In an earlier post I stated that I had gtent the RPI, WIZ820io, the teensy 3.1, the teensynet v5.2 board, and the TL-WR70N, combo action board, and the RGB LCDs and boards. I need to get this on my rig and start rockin'. I can't get these boards to work together as l do not know how they connect to each other. Can I get some guidance on how to wire them? I am able to get the web page up, but no chips show up, and the LCD does not work. On another note, I had to use Openwrt on the 703n using relayd and there is enough room for LuCi. DD-WRT was not used. It is much easier to use the tp-link software instead, for those who might want to take that route.
 
Jimmay-
In an earlier post I stated that I had gtent the RPI, WIZ820io, the teensy 3.1, the teensynet v5.2 board, and the TL-WR70N, combo action board, and the RGB LCDs and boards. I need to get this on my rig and start rockin'. I can't get these boards to work together as l do not know how they connect to each other. Can I get some guidance on how to wire them? I am able to get the web page up, but no chips show up, and the LCD does not work. On another note, I had to use Openwrt on the 703n using relayd and there is enough room for LuCi. DD-WRT was not used. It is much easier to use the tp-link software instead, for those who might want to take that route.

The Combo Action Board attaches to the 5v, Data, and GND lines on the Teensynet board. You can connect one or more DS18B20 Temp Probes to those same lines.

The LCD boards connect to the TeensyNet I2C lines (SDA and SCL). If you are connecting more than one LCD board, you need to set each board to a different address via the A0, A1, A2 jumpers.

When I tried using OpenWRT on the 703n, I did not have enough room to add mdns, which I use to detect multiple TeensyNet boards on the network via avahi. If you have a wired network available, you might want to see if you can detect the TeensyNet on it before going wireless.

Give me a rundown of the software versions you're using, how you've got everything wired up, and some screen shots, and I'll try to help.
 
OK, here goes...
I have included a pic of the current setup, and a schematic. I was able to compile only using linux (Debian 7- SolydK to be exact), not with Win 7. Teensynet.ino is compiled on a teensy 3.1. I am using the 16 G image you have provided on a 16 G Class 10 Sandisk Ultra card on the RPI.
I am able to get to the TeensyNet web page only using the image on the card with the RPI but no TeensyNet chips detected; I only get the Debian web page that says that Apache is working when I put the LAMP server "the hard way" on my laptop - no teensyNet web page at the same address that is the RPI.
I checked if the sensor was being found by the following linux commands after ssh'ing into the RPI:
teensynet@teensynet ~$ sudo modprobe w1-gpio
teensynet@teensynet ~$ sudo modprobe w1-therm
teensynet@teensynet ~$ cd /sys/bus/w1/devices/
ls - no sensor serial number, hence no chips found on the teensynet page.
I happened to touch the bottom of the action combo board, touching both contacts of the ds2406 and a LED, and it would llight up, otherwise I did not know if power actually got to the board, which it does. Lastly, there are 80 black squares on my LCD, which I assume that the LCD is working, but is not programmed. So close, yet so far. I hope the pics and description are sufficient.

View attachment Teensy Schematic.pdf

2014-06-21 23.28.17.jpg
 
OK, here goes...
I have included a pic of the current setup, and a schematic. I was able to compile only using linux (Debian 7- SolydK to be exact), not with Win 7. Teensynet.ino is compiled on a teensy 3.1. I am using the 16 G image you have provided on a 16 G Class 10 Sandisk Ultra card on the RPI.
I am able to get to the TeensyNet web page only using the image on the card with the RPI but no TeensyNet chips detected; I only get the Debian web page that says that Apache is working when I put the LAMP server "the hard way" on my laptop - no teensyNet web page at the same address that is the RPI.
I checked if the sensor was being found by the following linux commands after ssh'ing into the RPI:
teensynet@teensynet ~$ sudo modprobe w1-gpio
teensynet@teensynet ~$ sudo modprobe w1-therm
teensynet@teensynet ~$ cd /sys/bus/w1/devices/
ls - no sensor serial number, hence no chips found on the teensynet page.
I happened to touch the bottom of the action combo board, touching both contacts of the ds2406 and a LED, and it would llight up, otherwise I did not know if power actually got to the board, which it does. Lastly, there are 80 black squares on my LCD, which I assume that the LCD is working, but is not programmed. So close, yet so far. I hope the pics and description are sufficient.

OK, for the time being, remove the RPi from the equation, and connect the TeensyNet board to your computer. Start the Teensyduino/Arduino IDE, and open the TeensyNet.ino file. Set the "setDebug" value to allow "chipDebug" and "findChipdebug", re-compile and re-load the software into the Teensy3.1. Enable the Serial monitor and see if the addresses for the ds2406's and DS18b20s show up.

The Maxim devices are interrogated on the TeensyNet board, not the RPi. The RPi simply requests data from the TeensNet via UDP. They are not files or devices on the RPi, so the modprobe will show nothing.

Here's an I2C scanner that will tell you if your LCD is connected:
Code:
// --------------------------------------
// i2c_scanner
//
// Version 1
//    This program (or code that looks like it)
//    can be found in many places.
//    For example on the Arduino.cc forum.
//    The original author is not know.
// Version 2, Juni 2012, Using Arduino 1.0.1
//     Adapted to be as simple as possible by Arduino.cc user Krodal
// Version 3, Feb 26  2013
//    V3 by louarnold
// Version 4, March 3, 2013, Using Arduino 1.0.3
//    by Arduino.cc user Krodal.
//    Changes by louarnold removed.
//    Scanning addresses changed from 0...127 to 1...119,
//    according to the i2c scanner by Nick Gammon
//    http://www.gammon.com.au/forum/?id=10896
// Version 5, March 28, 2013
//    As version 4, but address scans now to 127.
//    A sensor seems to use address 120.
// 
//
// This sketch tests the standard 7-bit addresses
// Devices with higher bit address might not be seen properly.
//

#include <FastWire.h>

uint32_t cnt;

void setup()
{
  Wire.begin();
#if __MK20DX256__
  Wire1.begin();
#endif
  Serial.begin(115200);
  Serial.println("\nI2C Scanner");
  cnt = 0;
}


void loop()
{
  byte error, error1, address;
  int nDevices, n1Devices;

  Serial.print(F("Count #"));
  Serial.print(cnt);
  Serial.println(F(" - Scanning..."));

  nDevices = 0;
  n1Devices = 0;
  for(address = 1; address < 127; address++ ) 
  {
    // The i2c_scanner uses the return value of
    // the Write.endTransmission to see if
    // a device did acknowledge to the address.
    
    //Do Wire Devices
    Wire.beginTransmission(address);
    error = Wire.endTransmission();

    if (error == 0)
    {
      Serial.print("I2C device found at Wire address 0x");
      if (address<16) 
        Serial.print("0");
      Serial.print(address,HEX);
      Serial.println("  !");

      nDevices++;
    }
    else if (error==4) 
    {
      Serial.print("Unknown error on Wire at address 0x");
      if (address<16) 
        Serial.print("0");
      Serial.println(address,HEX);
    }
    
    // Do Wire1 Devices
#if __MK20DX256__
    Wire1.beginTransmission(address);
    error1 = Wire1.endTransmission();

    if (error1 == 0)
    {
      Serial.print("I2C device found at Wire1 address 0x");
      if (address<16) 
        Serial.print("0");
      Serial.print(address,HEX);
      Serial.println("  !");

      n1Devices++;
    }
    else if (error1==4) 
    {
      Serial.print("Unknown error on Wire1 at address 0x");
      if (address<16) 
        Serial.print("0");
      Serial.println(address,HEX);
    }    
#endif

  }

  if (nDevices == 0)
  {
    Serial.println("No Wire I2C devices found\n");
  }
  
#if __MK20DX256__
  if(n1Devices == 0)
  {
    Serial.println("No Wire1 I2C devices found\n");
  }
#endif

  Serial.println("done\n");
  cnt++;
  delay(1000);           // wait 1 second for next scan
}

Let me know the results.
 
I see the teensynet.ino code in the IDE, but I do not know how to change the values you have asked. As for the code for the I2C scanner, I should copy/paste, name the sketch something like I2C.ino and compile, right? I am not familiar with the code language. Please bear with me.
 
Jim, glad to see you posting here. I haven't given up on the project, though I'll likely back down from my previous effort to modular-ize the sketch code - my time got very scarce shortly after I created the git fork. I do think there's a lot of value in at least splitting the thermocouple lookup tables and associated functions into their own library.

I plan on making a combined smoker and sous vide controller out of a fairly robust TeensyNet, and I'd love to create some graphical front ends using HTML 5 canvas elements. That seems like much better use of my time than nitpicking your software design choices. I hope to have some time to dedicate to the project again next month.
 
I see the teensynet.ino code in the IDE, but I do not know how to change the values you have asked. As for the code for the I2C scanner, I should copy/paste, name the sketch something like I2C.ino and compile, right? I am not familiar with the code language. Please bear with me.

The values above the "setDebug" variable are just the bit that enables the debug value. So set "setDebug" to 0x00000018 in order to enable the "chipDebug" and "findChipDebug" values. When you are finished debugging, reset "setDebug" to 0x00000000 and re-compile / upload.

The code is basically C/C++

Yeah just copy. paste, and compile. you can save it as any name you'd like.
 
Jim, glad to see you posting here. I haven't given up on the project, though I'll likely back down from my previous effort to modular-ize the sketch code - my time got very scarce shortly after I created the git fork. I do think there's a lot of value in at least splitting the thermocouple lookup tables and associated functions into their own library.

I plan on making a combined smoker and sous vide controller out of a fairly robust TeensyNet, and I'd love to create some graphical front ends using HTML 5 canvas elements. That seems like much better use of my time than nitpicking your software design choices. I hope to have some time to dedicate to the project again next month.

Same here Yuri. I don't disagree with the concept of modularizing the code, but there also need for a single file to help KISS for noobs.
 
Thanks, Jim,
I did not put he cumulative value on one line, I put in two lines. I will send you the results.
 
purdman, you may find the following code excerpt useful, depending on how you're managing the programming language learning curve. I used it heavily while tinkering with the TeensyNet.ino sketch. Two forward slashes ( // ) indicate a single line comment in C/C++.

Comments are disregarded by the compiler. They allow you to write notes in your code or quickly add and remove lines of code during testing.

It should be somewhat intuitive to copy and paste this excerpt into the appropriate place in the TeensyNet.ino sketch. Then you simply add or remove the forward slashes on each line in the debugAll variable assignment to add or remove debug functionality.

Code:
const uint32_t resetDebug      = 0x00000001; //      1
const uint32_t pidDebug        = 0x00000002; //      2
const uint32_t eepromDebug     = 0x00000004; //      4
const uint32_t chipDebug       = 0x00000008; //      8
const uint32_t findChipDebug   = 0x00000010; //     16
const uint32_t serialDebug     = 0x00000020; //     32
const uint32_t udpDebug        = 0x00000040; //     64
const uint32_t wifiDebug       = 0x00000080; //    128
const uint32_t udpHexBuff      = 0x00000100; //    256
const uint32_t chipNameDebug   = 0x00000200; //    512
const uint32_t actionDebug     = 0x00000400; //   1024
const uint32_t lcdDebug        = 0x00000800; //   2048
const uint32_t crcDebug        = 0x00001000; //   4096
const uint32_t ds2762Debug     = 0x00002000; //   8192
const uint32_t bonjourDebug    = 0x00004000; //  16384
const uint32_t sdDebug         = 0x00010000; //  32768

// uncomment/comment any line to select/remove debug for that feature - yuri
const uint32_t debugAll = 
                          //resetDebug    |
                          //pidDebug      |
                          //eepromDebug   |
                          chipDebug     |
                          findChipDebug |
                          //serialDebug   |
                          //udpDebug      |
                          //wifiDebug     |
                          //udpHexBuff    |
                          //chipNameDebug |
                          //actionDebug   |
                          //lcdDebug      | // problematic with no lcd connected
                          //crcDebug      |
                          //ds2762Debug   | 
                          //bonjourDebug  |
                          //sdDebug       |
                          0x00000000;      // filler to allow commenting of the line above

const uint32_t debugNone = 0x00000000;

uint32_t setDebug = debugAll;
// uint32_t setDebug = debugNone;
 
Thanks to both Jim and Yuri for taking time out for explanations... The last time I did programming was in fortran 77, with stacks of punch cards! Using either method of modding the teensynet.ino file, there is no output to the serial monitor for any chips, either the switches or sensors. I used a similar I2C scanner that used Wire.h rather than Fastwire.h as I tried to import the Fastwire library after the error that Fastwire.h was not found but the compile failed. Anyway, I did get output of the scanning of addresses in the teensy serial monitor, but no I2C addresses were found.
 
Thanks to both Jim and Yuri for taking time out for explanations... The last time I did programming was in fortran 77, with stacks of punch cards! Using either method of modding the teensynet.ino file, there is no output to the serial monitor for any chips, either the switches or sensors. I used a similar I2C scanner that used Wire.h rather than Fastwire.h as I tried to import the Fastwire library after the error that Fastwire.h was not found but the compile failed. Anyway, I did get output of the scanning of addresses in the teensy serial monitor, but no I2C addresses were found.

Do you have a 4k7 (4700 ohm, any wattage, a little higher or lower is not a problem) resistor connected between the +5v and Data Line? That's needed, since the DS18B20 and DS2406 data lines are open collector, and have to be pulled high. You only need one, and ideally it would be connected to the end of the line, although anywhere on a short run should suffice.
 
l meant to ask you about the 4k7 resistor... As I put one in the "optional" 4.7k spot on the teensy board. Also I have the jumper on the 5v side of the LCD board. Do I need to place an additional 4k7 resistor in the circuit? Is the jumper for voltage correct?
 
That's the one.

Next step is to make sure that the level converters are working. When I used "economy brand" (read "cheap") BS170s I had about a 25% failure rate. Switching to a name brand like Fairchild fixed that.

Anyway, use this program:

Code:
void setup(void)
{
  Serial.begin(115200);
  pinMode(2, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(13, OUTPUT);
  pinMode(18, OUTPUT);
  pinMode(19, OUTPUT);
  pinMode(29, OUTPUT);
  pinMode(30, OUTPUT);
}

void loop(void) 
{
  digitalWrite(2, LOW);
  digitalWrite(9, LOW);
  digitalWrite(13, LOW);
  digitalWrite(18, LOW);
  digitalWrite(19, LOW);
  digitalWrite(29, LOW);
  digitalWrite(30, LOW);
  delay(1000);
  digitalWrite(2, HIGH);
  digitalWrite(9, HIGH);
  digitalWrite(13, HIGH);
  digitalWrite(18, HIGH);
  digitalWrite(19, HIGH);
  digitalWrite(29, HIGH);
  digitalWrite(30, HIGH);
  delay(1000);
}

And use an oscilloscope or multimeter to check the Data, SCL,and SDA signals at the terminal blocks. The signals should alternate between 0 and +5 volts. If you're using a 'scope, you can make the delay values smaller to create a square wave. If no signals, check your soldering and devices.
 
If your signals are OK, use this program to check for devices on the 1-wire mini-lan:

Code:
#include <OneWire.h>

// OneWire DS18S20, DS18B20, DS1822 Temperature Example
//
// http://www.pjrc.com/teensy/td_libs_OneWire.html
//
// The DallasTemperature library can do all this work for you!
// http://milesburton.com/Dallas_Temperature_Control_Library

OneWire  ds(2);  // on pin 10 (a 4.7K resistor is necessary)

const uint8_t ds18S20ID      = 0x10;  // Maxim DS18S20 digital Thermometer device
const uint8_t ds2406ID       = 0x12; // Maxim DS2406+ digital switch
const uint8_t ds1822ID       = 0x22;  // Maxim DS1822 digital Thermometer device
const uint8_t ds18b20ID      = 0x28; // Maxim DS18B20 digital Thermometer device
const uint8_t ds2762ID       = 0x30; // Maxim 2762 digital k-type thermocouple
const uint8_t max31850ID     = 0x3B; // MAX31850 K-type Thermocouple chip
const uint8_t max31855ID     = 0xAA; // Teensy 3.0 1-wire slave with MAX31855 K-type Thermocouple chip

void setup(void) {
  Serial.begin(11500);
}

uint8_t x = 0;
const uint8_t chips = 16;
uint8_t addr[chips][8] =
{
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0}
};

void loop(void)
{
  byte i;
  byte present = 0;
  byte data[12];
  float celsius, fahrenheit;
  
  if ( !ds.search(&addr[x][0]))
  {
    Serial.println("No more addresses.");
    Serial.println();
    ds.reset_search();
    delay(250);
    x = 0;
    return;
  }
  
  
  Serial.print(F("ROM "));
  Serial.print(x);
  Serial.print(F(" = "));
  for( i = 0; i < 8; i++) {
    Serial.print(F("0x"));
    if(addr[x][i] < 0x10) Serial.print(F("0"));
    Serial.print(addr[x][i], HEX);
    Serial.print(F(" "));
  }
  
  
  if (OneWire::crc8(addr[x], 7) != addr[x][7]) {
      Serial.print("  !!CRC is not valid!!");
      return;
  }

  // the first ROM byte indicates which chip
  switch (addr[x][0]) {
    case ds18S20ID:
      Serial.println("  DS18S20 Thermoneter");
      break;
    case ds2406ID:
      Serial.println("  DS2406+ Digital Switch");
      break;
    case ds1822ID:
      Serial.println("  DS1822 Thermoneter");
      break;
    case ds18b20ID:
      Serial.println("  DS18B20 Thermoneter");
      break;
    case ds2762ID:
      Serial.println("  DS2762 Thermocouple");
      break;
    case max31850ID:
      Serial.println("  MAX31850 Thermocouple");
      break;
    case max31855ID:
      Serial.println("  MAX31855 Thermocouple");
      break;
    default:
      Serial.println("  Unknown family device.");
      return;
  }
  x++;
  
  delay(100);
}

This will just cycle, checking for up to 16 devices on the mini-lan. If any are found, they will be displayed in the Serial Monitor.

Let me know your progress.
 
OK, Thanks, this is very helpful. The SDA and SDL lines alternate from 0v to +5v after loading the first program. The data line pegs the multimeter. Soldering has no bridging. Can I troubleshoot which bs170's related to the data line that might be defective? I tried to take an unpopulated board and follow the tracings.
 
OK, Thanks, this is very helpful. The SDA and SDL lines alternate from 0v to +5v after loading the first program. The data line pegs the multimeter. Soldering has no bridging. Can I troubleshoot which bs170's related to the data line that might be defective? I tried to take an unpopulated board and follow the tracings.

Here's a PNG of the 5.2 schematic. I use Eagle for the boards. Q1 and Q2 are the BS170s that control the Data line.

TeensyNet5.2.png


http://www.teensynet.com/images/TeensyNet5.2.png
 
I had bought some Fairchild replacement BS170s earlier. Q2 was bad, replaced it. Loaded the first sketch, SDA, SCL, and Data lines all alternate between 0 and +5v on all boards! Loaded the second sketch... serial monitor states "no more addresses". LCD no longer lights up. Progress made, albeight slowly.
 
Looking back at your photo, it appears that you may have one of the action boards that was using 3v3 and 5v connections. I removed the 3v3 on subsequent designs and just used 5v for the mini-lan. Jumper the 3v3 and 5v terminals together, and try again.
 
I jumpered both the action combo and LCD boards. No joy. "No more addresses'. LCD is not working either.
 
I checked with the first script. Every line is pegging the multimeter. I removed the jumper, it is now alternating from 0 to +5v on all lines and boards.
 
I checked with the first script. Every line is pegging the multimeter. I removed the jumper, it is now alternating from 0 to +5v on all lines and boards.

What do you mean by "pegging the multimeter"?? is the voltage above 5v or just sitting at 5v?

Let's take one problem at a time. Remove the LCD from the circuit, and let's just get the Maxim devices working.

Now remove the action board from the circuit, and do the pin test to make sure that the Data line on the TeensyNet is toggling between 0 and 5v.

Now connect just the DS18B20 that you have currently connected in the terminals of the action board directly to the 5v, gnd, and data of the Teensynet board. Make sure that you have the chip connected properly. Run the pintest program again, and make sure that the data pin is toggling. If the pintest still works, now load and run the findchip test. The DS18B20 should show up. If the pintest or findchip test fail, the DS18B20 may be defective.

If all is well so far, it's time to test just the action board. Remove the DS18B20 from the circuit, and wire in the action board, connecting the 3v3 and 5v together on the action board. Run the pin test again. If that works, run the findchips test. If the pin test fails, there is something shorted or defective on the action board. Here's the schematic:

TeensyActionBoard.png
 
I greatly appreciate your time and help. By "pegging" I mean my analog multimeter measures much greater than 5v. I only have two DS18B20s left (I keep breaking the leads). Both show toggling of voltage but do not register any addresses. I guess the fun is over for now until I get a bunch of replacements. Thanks again, and I will be back at this after replacements show up using the trouble shooting steps.
 
That's pretty odd. I've subjected DS18B20s to a lot of stress (plugged in backwards, overheated, etc), and they've all come out unscathed. I even get the cheap pre-made units from china, and have yet to have one fail. If you order from China, make sure that it's a three lead cable, not just two.

I also don't understand where you're getting a reading greater than 5v, as that is the max voltage for the system. Are you using a good quality, 5v regulated supply of at least 1 Amp? Some of the cheaper wall warts are not that well regulated, and the Maxim parts are mostly good up to about 5v, 6v tops.
 
The wall wart is a repurposed 5v, 2amp unit taken off of an old tablet. I measured the output to be 5.2 v. I am soldering together a teensypi board now just to be able to look for an address within Linux just for the heck of it. I was able to find the addresses of the switches and temp sensors (starting with 28 and 12 respectively if I remember right) on these same action combo boards That's what I tried to do earlier, not knowing that with the teensynet board would not put that data out to the webserver
 
I did a dumb novice thing (which l am a novice). The tantium capacitors were not all the same polarity in the board. One is soldered one way, the other is the opposite. I don't know what that does to the circuits, but the markings are so small, I now know I need a magnifying glass to figure out which leg is the positive one. I assume that is the cause of your head scratching.
 
I did a dumb novice thing (which l am a novice). The tantium capacitors were not all the same polarity in the board. One is soldered one way, the other is the opposite. I don't know what that does to the circuits, but the markings are so small, I now know I need a magnifying glass to figure out which leg is the positive one. I assume that is the cause of your head scratching.

Trust me, I know all about that. ;)

I have several Jeweler's Loupes, and two table lights with BIG magnifying lenses. :D
 
Back
Top