Post Go back to editing

EasySMU and Firmware for DC2591A

I am a little confused about the firmware for the DC2591A. When I have a board attached to the Linduino, I get the following response from *IDN? through the Arduino console:

CH0:⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮RSTIDN?⸮fF⸮ew⸮7W⸮{⸮⸮⸮⸮};=⸮꘸s⸮⸮⸮j⸮J⸮⸮

It looks like it is overflowing the actual buffer that is supposed to contain the serial number on the board. Also the calibration is not very good, so I reran the calibration by enabling it in the Linduino firmware, and the response is much better. However the query to the board is still off and after recalibration it responds with:

CH0:⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮RSTIDN/⸮⸮aS⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮L⸮v⸮⸮{⸮⸮⸮⸮i⸮⸮

(Note I am cutting out the actual response from the Linduino board, that functions normally). Incidentally, the response after the first series of backwards question marks varies based on what commands have been run. Maybe some of that is the location of the calibration coefficients?

I have a fair number of these boards and they are all behaving the same way. I have had them for some time but they all came from an authorized distributor and/or directly from Analog.

Also to note I had a capacitive screen from Adafruit (V2) and it wasn't until recently (yesterday) that I realized if I cut the SPI bus and jumper the I2C bus on the Adafruit screen will it actually work with a DC2591A or multiples of those.

Is there a way to get a normal firmware and calibration into the board, including programming the board serial number? I have been looking at the code and see a description of what it writes to the EEPROM after calibration, but again the calibration is not fixing the response code (obviously) and clearly not allowing setting of the serial number. Looking at the EasySMU spreadsheet, a typical response looks like the board serial number and date of calibration. That would be a much nicer result for me. I don't mind recalibrating with a good meter.

Parents
  • Hi NoahC,

    Unfortunately the engineers that worked on this project are long gone, so a few of us that were around when it was designed are in sustaining mode on. While the hardware design is considered robust, the firmware relies on libraries provided by the Arduino IDE.

    The backwards question marks are definitely odd - one stab in the dark, if it is a buffer issue, is that something may have changed in the Arduino serial library.

    What version of the Arduino IDE are you using? The screenshots in the EasySMU demo manual show version 1.8.0, so one test might be to install that exact version and rebuild the firmware.

    Also - are you getting the firmware directly from the Github repository? That's preferred, but I believe there is still a zip file on the Linduino landing page somewhere.

    But aside from the existing firmware - what is your long-term use case for these boards? That is, do you intend to standardize on it as a piece of test equipment, or are you using it as a reference design to incorporate into your own product?

    The EasySMU firmware is quite complicated and includes code for the touchscreen and such. If you will be writing your own host-side software to talk to the boards, one option would be to write your own, much simpler firmware that would just read and write integer values from/to the LTC2485 ADCs / LTC2655 DAC.

    There are drivers and example programs for these parts:

    https://github.com/analogdevicesinc/Linduino/blob/master/LTSketchbook/Part%20Number/2000/2600/2655/DC1703A/DC1703A.ino

    https://github.com/analogdevicesinc/Linduino/tree/master/LTSketchbook/Part%20Number/2000/2400/2499/DC1012AA

    (the second is for the LTC2499, which is a multichannel variant of the LTC2485.)

    You'd need to come up with a machine-readable protocol, but there are various that should work.

    -Mark

Reply
  • Hi NoahC,

    Unfortunately the engineers that worked on this project are long gone, so a few of us that were around when it was designed are in sustaining mode on. While the hardware design is considered robust, the firmware relies on libraries provided by the Arduino IDE.

    The backwards question marks are definitely odd - one stab in the dark, if it is a buffer issue, is that something may have changed in the Arduino serial library.

    What version of the Arduino IDE are you using? The screenshots in the EasySMU demo manual show version 1.8.0, so one test might be to install that exact version and rebuild the firmware.

    Also - are you getting the firmware directly from the Github repository? That's preferred, but I believe there is still a zip file on the Linduino landing page somewhere.

    But aside from the existing firmware - what is your long-term use case for these boards? That is, do you intend to standardize on it as a piece of test equipment, or are you using it as a reference design to incorporate into your own product?

    The EasySMU firmware is quite complicated and includes code for the touchscreen and such. If you will be writing your own host-side software to talk to the boards, one option would be to write your own, much simpler firmware that would just read and write integer values from/to the LTC2485 ADCs / LTC2655 DAC.

    There are drivers and example programs for these parts:

    https://github.com/analogdevicesinc/Linduino/blob/master/LTSketchbook/Part%20Number/2000/2600/2655/DC1703A/DC1703A.ino

    https://github.com/analogdevicesinc/Linduino/tree/master/LTSketchbook/Part%20Number/2000/2400/2499/DC1012AA

    (the second is for the LTC2499, which is a multichannel variant of the LTC2485.)

    You'd need to come up with a machine-readable protocol, but there are various that should work.

    -Mark

Children
No Data