CARE:Open STM32 USB-GPIB with Temp Sensor - Page 1
Forum section: electronics / projects

author: EinErik
author_rank: Contributor
timestamp: June 27, 2024, 03:37:10 pm
content: CareLite-GPIBhttps://github.com/OpenhimerLab/CareLite-GPIB?tab=readme-ov-fileRecently I found this:CareLite is an open-source, tiny, small USB-GPIB adaptor based on STM32 with temperature sensors. It uses VCP (Virtual COM Port) and USB Type-C connector, without the need for external power; also with dedicated PC software (but not limited to), easy GPIB connection can be established and Prologix-like command protocol makes the compatiblity better, and real-time temp logging can be done by DS18B20 or so.****I am NOT the author with no any relationship or benefit conflict with the author. I have no commercial intention to introdue this project and I have no intention to make benefits from this. All responsibility and risk or financial loss should be taken by the DIYers yourselves. The project is introduced and shared "AS IS". Many functions, issues may exisit so use it at your own risk.There are 2 version of MeterCare USB-GPIB converter, while sharing the same PC host Software, the firmware is unclear that both version could be applied. We choose to introduce and share the "Lite" version firstly, as it is a simple, costless design somehow like AR488, but the designer reserves potentials to expand other functionality like temperature, humidity sensing ability (there is an UART+DS18B20 port, with proper firmware, it can be amazing for its various functionality!).By the STM32F401, the CareLite can perform GPIB-USB conversion. In addition, there is a connector called MeterLink that provides the integration of multiple sensors(1 DS18B20 is confirmed to be functional).Till now, at least 1 DS18B20 OneWire Temperature sensor can be used for logging temperature (by using MeterLink).With the software written by "ZDD", you can connect a DMM and do a logging of both volt/ohm and temperature, and it will simutaneously calculate the math like temp.Co, or the deviation of logged data. This makes it very clear to understand the dependency of multiple variables and its statistical property.***********************************************************************Also note that the software by ZDD is Labeview-based, you need to install:NI Labview runtimeLocale emulatorto deal with encoding problems, as it is originally based on GBK simplified chinese, not UTF-8.1.Use this specific LV2017 RThttps://mega.nz/file/FZVkVBpI#PkPHO9DLg__3d7CfNpPhB35mNmTOeibzO6CDrYFlKHIEnglish GUI version of the program, but still needs Locale Emulatorhttps://mega.nz/file/EFt0AQpL#0xCMtsybEHaY8iZi94ebTC8XUvTH0Ho6j7BOYmrhtTELocalehttps://mega.nz/file/IAF0iSzb#Ayks6fMKkgN7zUXs60wvQt7Ria3Ej4-onmwWwSWPhDM2. or use the MKLhttps://mega.nz/file/oJdg2IaD#4JBU0V8VhWzGAFIt_fYid6PXD4Px-egSgqRj__5JVVs3. There is a Config file template for PC-TOOL-by-ZDD, you can edit and make the software compatible to numerous devices.//MultiTemp//A sensor board with BMP180 and DS18B20, SHT2X is also possible for environment data logging, there is UART1 definition in MeterLink; so it might be possible functional. This expansion board is mainly for the "Care" USB-GPIB, not sure if it is functional on CareLite.//The firmware is a bit messy, so try and find the best one for yourself. And explore the function, the Care ecosystem is very potential.//The protocol and communication is very like Prologix, using "++" command system, there are some explaination files, but it's in simplified Chinese, for now I have no time to translate it, so please try by your own self. All in all, this is a tiny, easy to use GPIB adaptor for many devices, somthing like a STM32-based AR488 but with dedicated PC sotware.Code:Some Command string in the FW:"++addr","++auto","++clr","++eoi","++eos","++eot_enable","++eot_char","++ifc","++llo","++loc","++lon",//0x0A"++mode","++read","++read_tmo_ms","++rst","++savecfg","++spoll","++srq","++status","++trg","++ver","++help","++debug","++delay","++stop","++temp","++count","++online","CARE?","CARE_TEMP?","CARE_TEMP1?","CARE_TEMP2?","CARE_TIMEOUT","CARE_TIMEOUT?","CARE_LOC","CARE_ADDR","CARE_NULL","CARE_READ","CARE_ADDR?","CARE_AUTO","++info","CARE_INFO?",

author: coromonadalix
author_rank: Super Contributor
timestamp: June 28, 2024, 07:24:40 am
content: hiWhile i salute the project1st we dont know where you come from, complete your avatar location please2 there was mention in the past of some ZDD software, and a part of it i think was need to be purchased to make it working (some dmm interface software)3 to me seeing an mix of chineese / other / english seems to me like an unfinished product4 downloading Labview Runtime Engine is a @#$ of a mess, you need to freely register to download anything5 trying to start the software with 2024 Runtime Engine seems to crash on my pc, and the software request 2017 version, 2017 sp1 is 350 mb, and does crash with 2017 sp1 engine too ..........For me i would stay away from this, readme text(s) in chineese etc ... un-atractive to me, no way to contact this ZDD ? not sure if there is some purchase to be made ...And the Local emulator thing ............thks for the link .......

author: EinErik
author_rank: Contributor
timestamp: June 29, 2024, 04:06:28 pm
content: Hi,The software problems are annoying, indeed. Because they don't use international standards, causing many troubles.It is NOT my intention to introduce the software mainly, it's the hardware design.The USB-CDC protocol makes this tiny board possible to work as a good USB-GPIB adaptor, and not limited to the ZDD things.And since I am just sharing, forgive me that I have no time to translate files to make all things readible, perhaps you can try some translation software like DeepL or so.Also, if I have some time, I can contribute to do this.//Lastly, there is no "pay-to-work" thing in the software, I guess you are talking about a icon for development donation,but that doesn't means you have to pay to make it work, NO, NO, NO!//If you guys are not happy with messy software/PC UI, please just ignore it or try some other ones.This is the file I found, should be helpful, sorry for not being uploaded at first time.1.Use this specific LV2017 RThttps://mega.nz/file/FZVkVBpI#PkPHO9DLg__3d7CfNpPhB35mNmTOeibzO6CDrYFlKHIEnglish GUI version of the program, but still needs Locale Emulatorhttps://mega.nz/file/EFt0AQpL#0xCMtsybEHaY8iZi94ebTC8XUvTH0Ho6j7BOYmrhtTELocalehttps://mega.nz/file/IAF0iSzb#Ayks6fMKkgN7zUXs60wvQt7Ria3Ej4-onmwWwSWPhDM2. or use theMKLin the attchments.3. There is a Config file template for PC-TOOL-by-ZDD, you can edit and make the software compatible to numerous devices.Hope to make things easier, but:Again, the CareLite is not limited to PC-TOOL-by-ZDD and no need to pay to "unclock" or enable the software to work.//It's my first time for doing this, as I found it seems that some tools are not transparent to the West, and I discovered many good things in Chinese community at the time I was being an "undercover", just kidding.So, maybe not push too many stress or being too strict to me, I am just sharing without any other intention as I claimed in the post.//Try the hardware! The design is just something like AR488, and all the source files are open.Code:;This template could modified for adding new models into PC-TOOL. Rename this config file as device’s type, eg. HP34460A, then “HP34460A” will be recognized by the system.;This template is a universal config with nearly every function that DMM might have; so it is obvious that you have to disable something that the new DMM model does not support or create something specifically that it supports.;The symbol “;” will not be read as a command but might be use in command text as a combination expression, if that case, it is a command.; The symbol “,” is used in command or parameter separator.;DO NOT modify anything on the left of “=” symbol.; The command on the left of “=” areButton name/ Command, Command availability, Get range, Get Auto-Range, Get Auto-Zero, Get NPLC, Get digits, Get Input Z, Set Null, Range(from low to high)。;0: DCV，1; ACV, 2: 2WR, 3: 4WR, 4: DCA, 5:ACA, 6: Freq, 7: Period, 8: Continuity, 9: Diode, 10: Ratio, 11: Temp, 12: Capacitance;Note: Fill in 0 if the function is not supported by DMM or Software (Continuity if currently not supported by software).; Only Scientific notation and decimal are supported, not prefixes like u/m/K/M.; If there is not corresponding command of the function, put in 「-」, and leave blank after that.;==================Main Commands===========================0=DCV,CONF:VOLT,1,VOLT:DC:RANG?,VOLT:DC:RANG:AUTO?,ZERO:AUTO?,VOLT:DC:NPLC?,-,INP:IMP:AUTO?,CALC:FUNC NULL;:CALC:STAT ON,0.1,1,10,100,10001=ACV,CONF:VOLT:AC,1,VOLT:AC:RANG?,VOLT:AC:RANG:AUTO?,-,-,-,-,CALC:FUNC NULL;:CALC:STAT ON,0.1,1,10,100,7502=Ω 2W,CONF:RES,1,RES:RANG?,RES:RANG:AUTO?,ZERO:AUTO?,RES:NPLC?,-,-,CALC:FUNC NULL;:CALC:STAT ON,100,1E+3,1E+4,1E+5,1E+6,1E+7,1E+83=Ω 4W,CONF:FRES,1,FRES:RANG?,FRES:RANG:AUTO?,ZERO:AUTO?,FRES:NPLC?,-,-,CALC:FUNC NULL;:CALC:STAT ON,100,1E+3,1E+4,1E+5,1E+6,1E+7,1E+84=DCI,CONF:CURR,1,CURR:RANG?,CURR:RANG:AUTO?,ZERO:AUTO?,CURR:NPLC?,-,-,CALC:FUNC NULL;:CALC:STAT ON,1E-2,1E-1,1,35=ACI,CONF:CURR:AC,1,CURR:AC:RANG?,CURR:AC:RANG:AUTO?,-,-,-,-,CALC:FUNC NULL;:CALC:STAT ON,1,36=FREQ,CONF:FREQ,1,FREQ:VOLT:RANG?,FREQ:VOLT:RANG:AUTO?,-,-,-,-,CALC:FUNC NULL;:CALC:STAT ON,0.1,1,10,100,7507=PERIOD,CONF:PER,1,PER:VOLT:RANG?,PER:VOLT:RANG:AUTO?,-,-,-,-,CALC:FUNC NULL;:CALC:STAT ON,0.1,1,10,100,7508=DIODE,CONF:DIOD,19=DC:RAT,CONF:RAT,1,VOLT:DC:RANG?,VOLT:DC:RANG:AUTO?,-,VOLT:DC:NPLC?,-,INP:IMP:AUTO?,-,0.1,1,10,100,100010=TEMP,CONF:TEMP,011=CAP,CONF:CAP,0;=================End============================;******General Commands**********; ===Read Measurement (Always ON)Read=READ?; ===Prefix and decimal format (Always ON)Prefix=0,0,0,0,0,0,0,0,0,0,0,0; ===NPLC RangeNPLC=0.02,0.2,1,10,100;===Max Digit(for 8.5 digits fills in 8 while default is 6)maxDIG=6;===Max Digit if not specified;setMaxDIG=7;===If the following commands are not needed or necessary, put「;」 in front====; ===Get command configgetCONF=CONF?; ===Get DMM ID;getID=ID?; ===Get Error info (Default SYST:ERR?);getERR=ERRSTR?; ===Set Trigger sample count (used in Oscilloscope mode, default=1)Sample=SAMP:COUN; ===Set Display ConfigDispOn=DISP ONDispOff=DISP OFF; ===Get Display CommandgetDisp=DISP?; ===Display ReadbackDispText=DISP:TEXT "; ===Clear Display Readback TextClrText=DISP:TEXT:CLE; ===Local or Remote Command (Only serial COM mode, disable with “;”)Remote=SYST:REMLocal=SYST:LOC; ===Initial Commands Off;Init=INIT:CONT OFF;=== Default Header off;:SYST:HEAD OFF;===Set Command after disconnected;End=INIT:CONT ON;===Auto-Self-Cal Command;Acal=*CAL?; ===Auto-Self-Cal Parameter (use “,” as sepetator);AcalPara=; ===Set Temp Sensor Config (FRTD,RTD,FTH,THER,TC/Sensor type use ”,”/ Sensor selectable parameter use “space”);TempSensor=FRTD:85,RTD:85,FTH:2252 5000 10000,THER:2252 5000 10000