Atlas Scientific is on a mission to make high-quality sensors for environmental monitoring available to everyday hackers and makers. All of their kits are easy to calibrate and connect to your microcontroller-based project.
You know what's exciting? Oh yes, data-logging. No, seriously, by logging data in the field for later analysis, you can generate some really informative results! There are a lot of ways to go about logging your data, but Atlas Scientific has put together a really simple and compact solution for those times when you just need to get a probe logging and deployed.
The ENV-32X data logger is specifically designed to record strings of data up to 128 characters long. Each string, terminated with a carriage return, is saved to one of 32,760 separate and individual pages in memory. And after you've logged all your data and you're ready to retrieve it, the ENV-32X supports two different organized read-back methods.
Boasting low power-consumption, 32Mb of memory and blazing fast read-write operation, the ENV-32X is a packaged solution for logging metrics in the field.
Note: The Arduino example code shows the logger hooked up to 5V. This is incorrect, it needs to be connected to 3.3V.
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Rookie - You will need a better fundamental understand of what code is, and how it works. You will be using beginner-level software and development tools like Arduino. You will be dealing directly with code, but numerous examples and libraries are available. Sensors or shields will communicate with serial or TTL.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Competent - You will be required to reference a datasheet or schematic to know how to use a component. Your knowledge of a datasheet will only require basic features like power requirements, pinouts, or communications type. Also, you may need a power supply that?s greater than 12V or more than 1A worth of current.
See all skill levels
We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.
No reviews yet.
FYI, you can also check my Open Source Voltage logger and Pressure & Temperature Logger projects that run on on my Scorpion Board. It uses log_fs a simple, but robust record-based file system for AT45D DataFlash that I'm quite proud of.
I was experiencing the same problems as "I Dream of JNE" when using both the UNO and Duemilanove Arduino boards. To fix the problem, I used the AltSoftSerial library in place of the SoftwareSerial library. The ENV-32X now receives commands reliably and returns the correct data. AltSoftSerial library and details are available here:
http://www.pjrc.com/teensy/td_libs_AltSoftSerial.html
For anyone having problems similar to “I Dream of JNE”: I found using the Arduino Uno was the problem. Switched to the Mega2560 and used serial3 for communications and the following code: (Ps use carriage return on serial monitor and if the led on the ENV-32X is not green send it a line ie. "M" and use 3.3V)
//Test Code for ENV-32X by MDW (30-12-2013) using Atlas Scientific code as ref.
boolean WriteBufferCheck = false;
boolean ReadBufferCheck = false;
String WriteBuffer;
String ReadBuffer;
void setup()
{
Serial.begin(38400);
Serial3.begin(38400);
}
void loop()
{
while ((WriteBufferCheck == false) && (ReadBufferCheck == false)){
}
if (ReadBufferCheck == true){
}
if (WriteBufferCheck == true){
}
}
Hi, I have been working for days to write a simple bit of code to make a pushbutton send the D command to this data logger using software serial (altSoftSerial) and I have gotten nowhere, I took your code and modified it and within minutes I made great progress. I am still a bit stuck which is why I come here beaten by this machine begging you for help. All i need is for when a pushbutton is HIGH, the arduino sends the "D" command once. So for example, i could press it twice and clear the logger. Once i have that code I can change it up and add other functions but i need somewhere to start. Please Help me out! Thanks!
I am completely new to Arduino, and I am having a hard time following the example on the AtlasScientific website. I have everything setup as they have in the example with the voltage correction (3.3V), and I using the code provided. I am trying to write data to the data logger using the serial monitor of the Arduino software. Nevertheless, I don't get the Y or N you are suppose to get, nor I can verify whether it has actually save some data since whenever I send a command I don't receive anything back. I have tried all the possible combinations for the correct string command but still nothing. Any suggestions, or examples on how to pass commands to the data logger?
Thanks!!
It seems like my Env-32x is not storing data. I've checked the connections and the power is 3.3V on an Arduino Mega. The input to and output from the Env-32x appears below. Is the memory bad? Are there other causes? Thanks....Tim
sent to env M //Sent M to Env
32765,4128384,65531 //Received this string from Env
sent to env D
sent to env D
X //This indicates that it should have deleted all data, but it didn't
sent to env M
32765,4128384,65531
sent to env *12345678 //Send some data to the env
Y
sent to env *12345678
Y
sent to env R1 //See what's stored in the memory (looks like garbage)
0:ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢ 1:ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢ 2:ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢ 3:ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢ 4:ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢ 5:ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢ 6:ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢ 7:ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢ 8:ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢ 9:ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
The one I have garbles the data. It only occasionally responds to a command, as if the bit rate isn't correct, but although that would explain the garbled text I haven't been able to find a baud rate (other than 38400) that works. I only get garbled data back out, and I have to send every command several times before it "sticks".
I should add that it is still storing the data and trying to read it back out, but it messes it up. For example: Store "This is a sentence. 12345" and it will return something like: "}♦is is %^&ence. 1ss45" so I can see that the data is sort of in there. Upon repeated readouts it eventually has every character in the right place, but never all at once, so there's clearly something wrong with readout, not with read-in (except for the problem receiving commands) or storage.
is there a better guide or a troubleshooting resource? I've done everything correctly as far as I can tell. What would be really helpful is a diagnosis for common problems (such as using the wrong voltage levels) so i can tell if my issue, and Member #78736 below, is due to static discharge frying the chip or something defective about it.
Member #78736 had a defective unit. His ENV-32X was replaced. For real help with your ENV-32X just send an email to: Support@Atlas-Scientific.com
It states in the specs 3.6v Max for VCC, but in the sample code pages provided for the Arduino and Mega they have it hooked up to the 5V pin on the Arduino. Am I missing something?
Ah, it looks like they just link to the EZ-COM (which uses 5v) sample code instead of one for the ENV-32X (which uses 3.3v).
Anyone know the power draw on this device?
Guys, 0 – VCC is not a valid RS-232 serial level. If you connected this to a proper RS-232 port, it would not work. Please correct this in the spec as it is misleading and some people would take it to mean you can connect it to a PC or something similar directly.
RS-232 specifies that the voltage must swing between a negative voltage and a positive voltage to represent logical 0’s and 1’s. The minimum swing normally accepted for this is from -5V to +5v with anything in between being ignored (i.e. 0V).
It is RS232 TTL
My vote is for "TTL RS232" or "RS232 TTL" because it's an unambiguous oxymoron.
Anyway, there also doesn't appear to be a crystal on the board, which means the comms are using the PIC intosc clock, so at the rated temperature extremes the comms rate can be far enough out of spec that it will fail. It'll probably work Ok in the 0-60C range.
Sorry, but no it's not.
TTL == Transistor to Transistor Logic
RS-232 == A standard defined by the Electronic Industries Association for the signalling and voltage levels of serial communications.
All serial communications are not RS-232.
You are correct of course but we do need a good name for the really common "async serial using TTL voltage levels" interface. I see people use "RS-TTL" for it sometimes. "TTL-level serial" is maybe less slang-y and still gets the point across.
I've seen it called "UART", or sometimes "TTL-level UART". But, RS-232 certainly does imply higher voltages (+/-15 volts).
I believe the memory chip can be purchased here: http://www.digikey.com/product-detail/en/AT45DB321D-SU/AT45DB321D-SU-ND/1886162