If you were logged in and working on this process, you would log your work on this page.
Sensor network prototype
Searching for information, designs, prototypes, doing some background checks, search prior art, ...
You need to save that search in a document and store it in the project folder (or any other location that is shared with all the project affiliates) and link to it when you log.
Evaluating different technologies for dashboard requirements, messaging protocols, visualization solutions and strategies for a hybrid AWS/custom web app solution.
Dug deeper into the Arduino's microcontroller architecture and researched bottlenecks caused by Arduino IDE functions and the efficiency of writing only in C or C++. Discovered some great resources for lower level programming:
Intro to embedded programming:
http://www.scriptoriumdesigns.com/embedded/index.php
New version of that site:
http://www.embeddedrelated.com/showarticle/453.php
Robert Paz's Arduino YouTube channel Warning no library functions! Straight up C and Assembly:
https://www.youtube.com/channel/UC7uJBXcRdGlDlKIyr6ZbjBw
And best of all this site goes into the quirks, tricks and workarounds of common problems as well as efficiency with examples and test:
http://www.gammon.com.au/forum/bbshowpost.php?bbtopic_id=123
- How to read a XBee module part number
Brushed up on handling Arduino Timer and Hardware interrupts as well as implementing parallel state machines essentially turning the microcontroller into a multitasking beast
Funstuff:
https://learn.adafruit.com/multi-tasking-the-arduino-part-1.
https://learn.adafruit.com/multi-tasking-the-arduino-part-2
https://learn.adafruit.com/multi-tasking-the-arduino-part-3
Deepstuff:
http://letsmakerobots.com/content/arduino-101-timers-and-interrupts
https://www.arduino.cc/en/Tutorial/SecretsOfArduinoPWM
http://playground.arduino.cc/Main/TimerPWMCheatsheet
Researched 1-Wire Protocol further to reduce bottleneck discovered in the library.
Discovered that although everyone talks about the problem and explains the solution to the blocking 750ms read time, there is no code available. It seems like anyone with timing critical tasks ditches the digital protocol and turns to analog temp sensors.
Added findings in the working doc on page 38:
https://docs.google.com/document/d/1gK75ddfalNmbqZ4eTqm_uEqROQqE8OUv6Ttc8agjRXE/edit?usp=sharing
- Comparison table between communication technologies
- Comparison table between Raspberry Pi and Arduino YUN
Looking for something to purchase, online or offline. Gathering, comparing and analyzing information about a product to purchase. Might require communication with salesman, even meetings. Might also require traveling. In the end, the agent makes a choice, issues a recommendation and/or purchases the product.This activity doesn't necessary need to result in a purchase.
You need to document the options you found somewhere where people can easily find them, and link to it when you log. The idea is to allow someone else to continue the job, or to provide feedback.
Went to future et energy to get some capacitors for testing
Went to ABRA to purchase the INA141 amplifier chip. I used my car. Only logging time. This chip lead us to understand amplification of the load washer and to understand also the previous amp chip. Was worth it.
https://docs.google.com/document/d/1EVXnkkM1FmmH0BjBJ9bqRI0mOVAZ7I3Ib5ErD4K_jEs/edit#heading=h.wudbkjv15env
Stopped at ABRA electronics to pick up Schmitt trigger and other various components that were needed.
Shopping - built a list of missing parts for the sensor network project, sent it to Lay to order and to other affiliates for double checking through an email. This list was documented here.
https://docs.google.com/document/d/1gK75ddfalNmbqZ4eTqm_uEqROQqE8OUv6Ttc8agjRXE/edit#heading=h.h51yuwt7jccc
Shopping for sensing and computer platform, found and purchased Udoo Quad for testing and experimentation.
Administration activities around projects.
Worked here and there with and without Jim on the Value Equation spreadsheet.
https://docs.google.com/spreadsheets/d/1ezjVX4-tWY8ptOIyjGzpw_0xGqNgCW3aH5q-7nxLHrw/edit
Did outreach for the project, trying to get more tallent into it.
Validation of entries in the NRP and prepared Invoice #5
Doing outreach, seeding individual emails to people you know, setting up and attending meetings with people, all that with the goal of getting more people to work on the project.
You need to present a short description of what you did when you log.
Sent emails to SENSORICA and personal emails to gather more attention to the week-long sprint to wrap up the sensor node integration, as a result of the reorientation meeting we had. We need to deliver until Friday the end of the week.
https://docs.google.com/document/d/1EHFAUYQ128Kfc2ENzAxhLZKqEqPLT-0V70YfAmR23gE/edit#heading=h.m61i75imwcoc
In the past I did some outreach here and there without logging the time, I'll let that pass. This was a more sustained and focused approach, back up by documentation and a more concrete plan.
Acquire new skills. You might want to document something if you discover something new, or update the training manuals or the documentation that the network is using.
In order to integrate the freeboard visualization tool to work with the rest of the codebase, I needed to do some special static file manipulation. I needed a good answer on how to do this.
I found my answers within the following few videos:
https://www.youtube.com/watch?v=8cupCFknL4Q
https://www.youtube.com/watch?v=M-4xmVk6xrg
https://www.youtube.com/watch?v=DZTnTK4DVOU
In order to display the data using freeboard, and later to put this thing into production, we will need to properly configure Django to serve the the Freeboard files (CSS, Javascript, Images, etc.). Doing a little refresher on how to launch these things properly, there is a very good django VBLOG located here:
I did a refresher on precision soldering including the following EEVBlog posts:
https://www.youtube.com/watch?v=J5Sb21qbpEQ
https://www.youtube.com/watch?v=b9FC9fAlfQE
Needed a refresher on machine learning.
Found a really great machine learning for python series:
Part1:
https://www.youtube.com/watch?v=URTZ2jKCgBc&list=PLQVvvaa0QuDd0flgGphKCej-9jp-QdzZ3
Part2:
https://www.youtube.com/watch?v=KTeVOb8gaD4&index=2&list=PLQVvvaa0QuDd0flgGphKCej-9jp-QdzZ3
Part3:
https://www.youtube.com/watch?v=AleGZ9dkfPs&list=PLQVvvaa0QuDd0flgGphKCej-9jp-QdzZ3&index=3
Interesting articles on AWS's internal algorithm:
https://news.ycombinator.com/item?id=9350681
https://en.wikipedia.org/wiki/Machine_learning
http://scikit-learn.org/stable/tutorial/machine_learning_map/index.html
1 hour - finish reading the python / machine learning base and getting up to speed with the flask work that was done
1 hour - It occurred to me that the AWS machine learning requires shema-based csv files, but we are using a schema-less noSQL... I need to do a bit of research on how we are going to store the data, and how we are going to parse it into the Machine Learning Algorithm. Taking a little refresher on MongoDB from TeamTreehouse:
I spend some time reading an understanding the RasberriPi code that had been produced by Jim and Ahmed.
I realized that I needed to further understand how they were using the MQTT protocol. I watched a couple videos that explain the protocol, and a good video from Adafruit that explains how it can be used in an IoT context.
https://www.youtube.com/watch?v=1GbYkCrbChw
https://www.youtube.com/watch?v=VjpONmC2tac
I also read the AWS machine learning doc and added my comments:
https://docs.google.com/document/d/1ASXpTxCDmBoGYFlQnWxpwarfdxv1mljT9IwNfR0NNFE/edit#
I took a look through Amazon's service offerrings within my AWS account to understand how we will use the service to store the data. That includes the machine learning console and some tutorials on how to use it:
https://console.aws.amazon.com/machinelearning/home?region=us-east-1#/new-datasource?finish=pr&targetRequired
http://docs.aws.amazon.com/machine-learning/latest/dg/step-1-download-edit-and-upload-data.html
I went ahead and tried the AWS machine learning tool using the test data that they provided. This includes setting up an S3 bucket, uploading the CVS files, and running the ML algorithm using the test data.
The result of this work is that I have a good understanding of what was previously done, and the methodology that is currently being used. I also gained some experience using the tools that this test bench will rely on.
I worked on the Proto-PCB for the sensor node on Upverter, mostly with Jim.
https://upverter.com/Sensorica/83f943753bf1e9b8/Sensor-node-board-alpha-version/
I am logging this as training self, because I had to learn how to use Upverter, as a took for PCB layout. Upverter is an online collaborative tool, that sensoricans want to use more and more.
At the same time, we are producing something of value for the sponsor.
Did some research / learning on PCB design for mass manufacturing:
https://www.youtube.com/watch?v=AHwU_hVeVGQ
https://www.youtube.com/watch?v=Uemr8xaxcw0
Spent time learning how to user upverter:
http://resources.upverter.com/h/c/210809-getting-started-guide
I joined a google hangouts with Jim and Tibi. I decided not to spend any more time on this since Jim and Tibi are already quite far advanced in the design. The benefit of this exercise is that I am up to date with what was done, and I can go in and modify the design on upverter if needed.
I worked on the Proto-PCB for the sensor node on Upverter.
https://upverter.com/Sensorica/83f943753bf1e9b8/Sensor-node-board-alpha-version/
I am logging this as training self, because I had to learn how to use Upverter, as a took for PCB layout. Upverter is an online collaborative tool, that sensoricans want to use more and more.
8:00pm-9:00pm: Read carefully through the sensor network project files including project governance document, the value equation document, the high level design, etc as part of getting up to speed with the state of the project.
http://www.sensorica.co/home/what-we-do/projects/leaknet-project
https://docs.google.com/document/d/1B1n-lMbpLhKoTHH495Do4Nqt0RJmjzSPDVU5CMjkTx8/edit#
https://docs.google.com/document/d/1ntzY42BNJLqPXSSfWy5W_Z04krXDokLzSkOW_udNxUg/edit
https://drive.google.com/file/d/0B-s1IR1iOMsNSTRjNFJPclJnWlk/view
Spent time with Tibi learning about the project, mainly focusing on load washer and the fluid level sensor, the one with the tank and the valve, but putting everything into context.
Attended AWS webinar for enterprise IoT+Lambda solutions.
How to build The pressure sensor film kit
Investigating the XCTU additional tools to test connectivity between local and remote modules
- Configuring 2 XBee modules to work in API mode
- Used the XBee C++ library to test the communication between the coordinator with an end-device in API mode
Searched the web and learned more about interrupts, Schmitt triggers and debouncing switched. I did that in Jim's company, we consulted along the way, worked in the lab the entire day.
We also had to do some experimentation and testing on Arduino along with the learning.
See the Arduino Interrupt doc
https://docs.google.com/document/d/1iOiMEGzpwFoTHyHFORuB4vICFgBJIbVF0pQEmTOCa7M/edit#
Researched more on Interrupts, clock cycle management and microcontroller architecture to properly prepare for tackling the Arduino firmware.
Commented in hardware doc on page 44
https://docs.google.com/document/d/1gK75ddfalNmbqZ4eTqm_uEqROQqE8OUv6Ttc8agjRXE/edit?usp=sharing
Found some nice discussions:
http://www.engblaze.com/microcontroller-tutorial-avr-and-arduino-timer-interrupts/
Atmel 328P Datasheet:
http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf
http://gammon.com.au/interrupts
Searched about how to stabilize the signal from the drop counter sensor (an optical limit switch) to the interrupt pin of an Arduino. I tried to use a transistor, looking at the signal coming out of it using the Analog in of the Arduino.
I am closer to understand what I don't know to formulate the right questions to someone who can help. I'll call Gregory on it.
Studying the Arduino library dedicated for API communication of the XBee modules
Learned about Arduino and Interrupts, searched different examples, ....
I looked for ways to improve the shaft rotation sensor using an optical proximity sensor, the QRD 1114. Explored the Arduino interrupt option.
https://www.arduino.cc/en/Reference/AttachInterrupt
Something went wrong with two arduino boards while playing with this... probably need to reinstall their bootloader again. Something strange caused both of them to malfunction.
NOTE that this tactic can also be used for the drop counter, moving it from analog in to interrupt. The Arduino Uno has 2 interrupt pins, 2 and 3 that can be uses for the drop counter and for the rotation sensor.
Helping others acquire new skills.
Spent time with Scott on the project, mainly focusing on load washer and the fluid level sensor, the one with the tank and the valve, but putting everything into context.
Participating in a gathering to discuss, plan, analyse, etc. Might require some traveling. Meetings can also be virtual. Might require documentation and further communication.
Scrum meeting led by Lai + discussions about the progress of cloud platform.
Weekly scrum meeting, with Jean, John, Patrice, Lai and Scotto at the sponsor location. I presented the proto-PCB board.
30 minute scrum meeting led by Lai
30 minutes discussions with Patrice about converting space into R&D lab
Weekly meeting at the sponsor site location.
Spoke with Lai a bit and after participated in the formal meeting.
1 h meetings - Meetings with Lai & Tibi followed by scrum meeting with the group led by Lai.
2 h meetings - Sync up meeting with Jim on the cloud work + the new approval mechanisms + discussions about what are the remaining cloud tasks. We came up with a list:
1. Deploying MQTT at the node to mitigate collisions when we have 200+
2. Associate IDs with our nodes
3. Model our metadata for each node
4. Automate the rules engine which is a pain AWS IoT -> dynamoDB
5. Move freeboard.io to our django server
6. Automate pushing dynamoDB -> S3 bucket
7. Automate pushing S3 bucket -> AWS Machine Learning
8. Write an asynchronous script to periodically run the latest data to update our model.
9. Analyse why we are using AWS ML, does it give us the results we want? Is there a way to get a better result?
10. Graphing / Turn our data into actionable useful knowledge
11. Come up with time estimates for these tasks and log in Redmine.
Scrum meeting hosted by Lai. Continued into a brainstorming discussion about what sensors to add moving forward.
Scrum meeting with Lai, Tibi, Scott and more.
Scrum meeting
1:15 - 2:45 - Scrum meeting with the Team + discussions with John
Weekly scrum meeting with John, Scott, Lai and Patrice, at the sponsor's location.
Scrum meeting, on site, with Lai and Patrice.
Scrum meeting with Tibi, Jim, Pat and more.
1. 45 minute scrum meeting
2. 30 minute meeting with Pat to brainstorm. We had the ideas of adding some doping like florescent stuff into the packing, and measuring the water inside the water drain container. This could give us some interesting data about the degradation of the packing.
20 min: I had a discussion with Lai about the progress of the project and the need for requirements from the sales team as soon as we have a functional MVP.
Scrum meeting at Robco with Lai, Pat, Tibi and Jim.
Scrum meeting at Robco with Lai, Pat, Tibi and Scott.
Scrum meeting with Tibi, Jim, Lai, Pat, John and more
Weekly meeting at Robco with Lay, Patrice, Jim, Scott and Yanick.
Scrum meeting. Lai kept a record. We planned the integration day.
Had a weekly SCRUM meeting with Tibi, Jim, and the client. Discussed the progress on the amplifier circuits and our plans to try a new chip.
Had a weekly SCRUM meeting with Tibi, Scott, and the client. Discussed the progress on the amplifier circuits and our plans to try a new chip.
Scrum meeting with Jim, Scott and Tibi. Lay and Patrice on the other side of the line.
Scrum meeting with Jim, Scott and Yanick. Lay and Patrice on the other side of the line.
Scrum meeting withTibi, Lai, Pat, Jean, John
Scrum meeting with Tibi, Jim, Lai, Pat, Jean, John
Scrum meeting at Robco
Yesterday: Tested and ruled out prototype drop sensor, reviewed alternatives and landed on seesaw collector as a candidate for measuring volume,
Built board for load cell inamp, tested for shorts.
Scrum with Lai and Yannick
Yesterday: Further exploration of Machine Learning component of AWS
Today: Working on load sensors with amps, & cloud, coming in on Thursday for integration
Scrum meeting with Jim and Lai
Scrum meeting with Jim and Lai
Scrum meeting with Lai and Yannick.
Fixing drop sensor, testing integration of IR shaft temp sensor
Scrum meeting one on one with Lai.
Scrum meeting with John and Lai
Meeting with Lai and John to establish a better idea of the requirements for the next phase of the project while finalizing the requirement for the test bench.
Meeting at the sponsor's location, roadmap, and brainstorming about load sensor.
http://137.135.46.156/documents/43
With Jim, John, Lai, Patrice and Jean.
Meeting at the sponsor's location, roadmap, and brainstorming about load sensor.
http://137.135.46.156/documents/43
With Tibi, John, Lai, Patrice and Jean.
Scrum meeting with Jim, Lai, Patrice, John, discussed about load sensor, optical drop sensor, new orientation and road map.
Scrum meeting with Tibi, Lai, Patrice, John, discussed about load sensor, optical drop sensor, new orientation and road map.
Scrum meeting
Scrum meeting
Scrum meeting with John, Lai, Abran, Tibi & Patrice. Gave a quick overview of AWS status, architecture and cost analysis.
Scrum meeting, with John, Jim, Abran, Lai and Patrice.
We discussed, among other things, about new sensors to be integrated: load sensor and drop sensor.
Scrum meeting. Mourad presented leaknet and I discussed some problems with AWS
Scrum meeting, did it from home, with Jim, Lai, John, Mourad and team. Mourad presented their cloud solutions.
Scrum meeting with Lai and Tibi at Robco
Meeting with Lai, Jim and John, coordination and facilitation, scrum meeting. Notes were taken by Lai. Got a few things to look at, vibration sensor, another solution for the drop sensor, and to look into load sensors for the gland.
Meeting with Patrice, Jim and Abran, discussed problems and pressing issues.
Meeting with Patrice, Tibi and Abran, discussed problems and pressing issues.
Scrum meeting at Robco
Meeting with the network affiliates, and the paying party on the other side, Lai, John, ...
We discussed progress of the project, problems, and next steps.
Meeting with the network affiliates, and the paying party on the other side, Lai, John, ...
We discussed progress of the project, problems, and next steps.
Facilitation means guiding affiliates, helping them with technical issues, navigation issues, administrative issues, ... helping
Facilitation work to bring Scott up to speed with the AWS cloud component.
+ the new approval mechanisms + discussions about what are the remaining cloud tasks.
Brought Francois Eric King into the project
Wrote email to SENSORICA to call for help, coordinated the starting of the week-long sprint with Abran, Yanick.
This was an outreach effort to gather more participation to the project, while guiding others about how to fit into the process, based on my knowledge of requirements that I collected at the meeting on the 5th of Feb.
coordinated the brainstorming for load sensors, called sensoricans to contribute to this effort, documented. Trained Yanick on the Arduino and force-pressure sensors, to test a flex sensor, a straingage and a film pressure sensor.
Delegated tasks for brainstorming on another type of drop counter sensor from the document, @ those who can do it in there.
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit
I coordinated and facilitated Daniel's 3D modeling and printing of the drop sensor runway. See link above. Called Abran, Mike, Thiago and Enrique to it.
I gave Bruce the speed / RPM sensor from Philips to see how he can integrate it into the Arduino, and called Abran to help him.
I also created a document for the brainstorming around the gland follower tension/pressure sensor and communicated it to the team by email.
All this was work assigned for me during our scrum meeting on Tuesday.
.
Finished proto-PCB board. This required soldering last parts, mostly connectors and the rest an optocoupler. Made video and shared
https://youtu.be/7orfWA_U_vU
Drilled Holes in PCB to prepare it for population and soldering
Worked with Tibi in designing testbench PCB
https://upverter.com/Sensorica/fd7cf1e7989f5335/Sensor-node-board-alpha-version-pre-routed-FORK/
Took noise tests for the load washers and the level sensors.
Documented it here
https://docs.google.com/document/d/1gK75ddfalNmbqZ4eTqm_uEqROQqE8OUv6Ttc8agjRXE/edit
and in the main Hardware doc.
I worked on the Proto-PCB for the sensor node on Upverter with Tibi
https://upverter.com/Sensorica/83f943753bf1e9b8/Sensor-node-board-alpha-version/
Helped Tibi learn to use Upverter and started populating board and routing components.
In support of R&D activities already logged for the same day.
(splitting 4 hours of dev work into 3 R&D and 1 technical)
"Collaborated with Jim and Scott on sensor integration (hardware and software).
Mainly: RTC clock integration, adding new sensors and actuators to the main PCB board, testing, re-calibration of the fluid level sensor and characterization. "
Creating space for the timing module by using a larger breadboard and transferring the integrated circuit over to the new board. Debugging the hardware on the new board. Works well.
Worked on site, on the test bench.
Fixed the electronic board with the amplifiers, replaced on amp IC that was burned on the chip.
Soldered wires for the IR (non-contact) temp sensor for the shaft.
Demonstrated to Jim and Scott the solenoid valve and moved the circuit with Scott on the main breadboard. (I had installed it separately)
Assisted Jim and Scott while they were doing integration of hardware and software respectively: debugged an Arduino, gave some instructions for timing of sensor reads in the main firmware, exchanged with Patrice on the water tank for the leak measurement, retested the fluid level sensor with Jim, on his new Arduino with re-scaled ADC for higher resolution readings.
Technical work between R&D on testbench
Further tested drop sensor and documented here:
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit?usp=sharing
I am logging technical work, this is all the manipulation required to complete the Optical drop counter sensor.
Optical drop sensor
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit#
I am logging technical work, this is all the manipulation required to complete the Optical drop counter sensor and to finish the testing of the IR non-contact temperature sensor SKU:SEN0093. I am separating R&D, which is more intellectual, from technical work, which is more like mechanical assembly of parts, electronics assembly and soldering, testing, etc.
It was a really full day of work, over 10 hours, very diverse, with R&D in electronics, optics, documentation and communication.
Find more in the other logs for today, and find traces in these docs
Roadmap,
https://docs.google.com/document/d/1EHFAUYQ128Kfc2ENzAxhLZKqEqPLT-0V70YfAmR23gE/edit#heading=h.m61i75imwcoc
Optical drop sensor
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit#
3D printing new drop counter prototype
Completely redesigned and assembled a new electronic board for the Optical Drop Sensor multiple detectors. I had to etch a board this time, to make it better to debug, instead of just wiring it.
Tested, it works this time.
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit#
Worked on the Optical drop sensor, the "multiple detectors solution". The first electronics board did not work. I measured the output from the detectors using a LabJack, understood the electronic problem (discussed during the meeting on the 5th Feb.), realized that the voltage given by the detectors was lower than the threshold of the Schmitt trigger Found an opamp (LM324) to boost the voltage above the Schmitt trigger threshold level and integrated it into the circuit. Did the first preliminary tests successfully.
I split all this work in 1h of R&D and 3h Technical work (because I thought that the guess work was not worth pro rewards)
Documentation here
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit#heading=h.jhrcginulru
technical assistance for the assembly of the "The multiple detectors solution"
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit#heading=h.jhrcginulru
Assembly of the electronics for the "The multiple detectors solution" of the optical drop sensor.
Worked with Yanick on soldering the electronics board, we had to cut a board, plan for the positioning of the parts (OR gate, Schmitt trigger, pins), soldering everything.
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit#heading=h.jhrcginulru
- Sending API commands from Realterm SW to the Python XBee library
- Sending API commands from Python XBee library to Putty serial terminal
- Installing the WingWare Python IDE for debugging the XBee Library and configuring the environment
- Testing the PC XBee library without connecting the XBee module
- Installing XBee Python library
Assembled and soldered MAX31850 and RTC board
Configuring and Installing the XBee at Robco
Recover 3 Arduinos from failures by changing their bootloaders.
Tibi run into problems when working on the Rotation sensor and compromised 2 Arduino boards. See his logs here, searching for "bootloader".
This problem occurred a few days before, while working on the drop counter sensor. some other sensors, and I had to do it for that board too, and time was not logged on that.
I connected and tested 1 other sensor, the IR temperature, non contact, MLX90614.
I also looked into proximity sensors and after evaluation I recommend the QRD 1114 optical detector that was used in another SENSORICA project.
https://docs.google.com/document/d/1gK75ddfalNmbqZ4eTqm_uEqROQqE8OUv6Ttc8agjRXE/edit#heading=h.9i5mf1nxej8o
Worked with Bruce on installing sensors on Arduino and documenting the work in the Hardware working doc.
I spent most of my time on the thermocouples.
https://docs.google.com/document/d/1gK75ddfalNmbqZ4eTqm_uEqROQqE8OUv6Ttc8agjRXE/edit#
Mounting different sensors on Arduino, loading code on the Arduino and testing them. Documented everything while doing it in the working doc. Worked with Tibi in the evening. Jim was also in the lab working on the cloud.
https://docs.google.com/document/d/1gK75ddfalNmbqZ4eTqm_uEqROQqE8OUv6Ttc8agjRXE/edit#
Installed an optical limit switch with an Arduino board and tested it
https://docs.google.com/document/d/1gK75ddfalNmbqZ4eTqm_uEqROQqE8OUv6Ttc8agjRXE/edit#heading=h.j23wa412shl4
I think this is the best short-term solution to get the test bench going. We can think about better ones.
Went to Abra electronics to buy last parts required for the proto-PBC for the first node.
Used my car. We were missing some wire terminals and on optocoupler.
45 min Removing the sensors from the pump, dissembling the prototyping board, packing up our gear, transporting to Sensorica lab.
45 min Getting setup to work from Sensorica lab. Needed to find a new monitor and some cables were missing. Was able to borrow an HDMI - DVI cable and a VGA cable from Yannick so that I could setup my laptop and test some things on a RasberriPi.
Gathered materials from the SENSORICA lab and transported them on the test bench site, to work on installing sensors with Patrice.
Stigmergy is part of our functioning, meaning leaving as many traces of your work as possible, including instructions for those who might want to build on our work.
You must document in a place that everyone agrees and can find. The documentation must be open to All affiliates to edit.
I spent the day documenting our accomplishments for milestone 1 and collecting everything into one nicely formatted document.
I also added all of my ideas for the next steps and coordinated with the team to get their input as well. We now have a list of discussion items to work on pending approvals from our sponsor.
https://docs.google.com/document/d/1pe5oEVV8VHSByEgW0xRXq4MQuhTMDL2wx28V01lBcTM/edit#
Spent an hour documenting the cloud material that I was able to dig up and to describe the limitations of the AWS algorithm
https://docs.google.com/document/d/1ASXpTxCDmBoGYFlQnWxpwarfdxv1mljT9IwNfR0NNFE/edit
I documented my process for developing a CSV conversion tool for handling DynamoDB using python.
https://docs.google.com/document/d/1ASXpTxCDmBoGYFlQnWxpwarfdxv1mljT9IwNfR0NNFE/edit#
Documenting the tests that we have done, adding pictures and playing with the sheets to get the averaging values and % errors.
Arrived at 11:30 - 12:30 Going through documentation / coordinating with Team /
checking the datasheet for the IR temperature sensor
12:30 - 1:15 - Preparing the demo for John
Documenting work, updated the main hardware doc and other adjacent docs, taking into consideration the new development, and created a doc specifically for the packaging of the first prototype. This was required in order to reflect the latest decisions we took, discarding some sensors and adding new ones. Work has been accelerated in the last 2 weeks.
I spent an hour documenting the _firmware, cleaning up the code. All updates were pushed to our github repository.
Documented with drawings how our load washer amplification works and how to improve resolution:
https://docs.google.com/document/d/1EVXnkkM1FmmH0BjBJ9bqRI0mOVAZ7I3Ib5ErD4K_jEs/edit?usp=sharing
9:00pm - 10:30pm Read carefully through the Hardware working doc and added my comments, thoughts and any links to research that I did. This was mostly on the architecture / network design.
https://docs.google.com/document/d/1gK75ddfalNmbqZ4eTqm_uEqROQqE8OUv6Ttc8agjRXE/edit#
Documented some of the work we did yesterday, the calibration of the load washer, calibration of the fluid level, and communicated that.
Take picture for sensor network project, drop counter, temperature sensor, etc.
see
https://drive.google.com/drive/folders/0BzrQyEif2HItZktVVXhCQ1k0aTg
Add link to the new code for SEN0093 temperature sensor
https://docs.google.com/document/d/1gK75ddfalNmbqZ4eTqm_uEqROQqE8OUv6Ttc8agjRXE/edit#
Major redmine update
Created 2 videos about the Optical drop sensor, the multi detector solution, to be shared with the team. One about the electronics connection and the other one about the adjustment of the LED threshold. This has been communicated to the team.
https://youtu.be/47HxJE4ZgEI
https://youtu.be/I0y2-kp2RCk
This was important because I am going in vacation and they need to be independent.
I also improved the documentation in 3 docs
The optical drop sensor
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit#
the Roadmap doc
https://docs.google.com/document/d/1EHFAUYQ128Kfc2ENzAxhLZKqEqPLT-0V70YfAmR23gE/edit#
The main hardware doc.
https://docs.google.com/document/d/1gK75ddfalNmbqZ4eTqm_uEqROQqE8OUv6Ttc8agjRXE/edit#
I communicated this to the team.
Continued the documentation a bit on the optical drop sensor, adding pictures with explanations, extracted from the videos I made last night, suggested further improvements of the prototype, reformatted the doc
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit#.
3D modelling to explore different LED / Sensor configurations to find shadow projection of the drop and determine blind spots or light overlaps on sensors.
Documented along the way while working on the Optical Drop Sensor, multiple detectors
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit#
Updated parts list
https://docs.google.com/spreadsheets/d/1R5ld0w9aLhNUQL-zMrS9Wpo7-WhRpjzEib7I87G-bFI/edit#gid=0
Gathered all temp sensors in one place with their characteristics.
https://docs.google.com/document/d/1EHFAUYQ128Kfc2ENzAxhLZKqEqPLT-0V70YfAmR23gE/edit#heading=h.m61i75imwcoc
Documented work done on Optical drop sensor.
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit
Updates on Redmine
http://137.135.46.156/documents/43
Updated the main Hardware working doc.
https://docs.google.com/document/d/1gK75ddfalNmbqZ4eTqm_uEqROQqE8OUv6Ttc8agjRXE/edit#heading=h.gmjdtzx5ir4k
- What are the python library compatibility issues, and how they were solved
- How to write a send command
I did some cleanup on documentation, started with the main Hardware doc, and this generated other updates, to the load sensor brainstorming doc, ...
https://docs.google.com/document/d/1gK75ddfalNmbqZ4eTqm_uEqROQqE8OUv6Ttc8agjRXE/edit#
I also updated the Parts list.
https://docs.google.com/spreadsheets/d/1R5ld0w9aLhNUQL-zMrS9Wpo7-WhRpjzEib7I87G-bFI/edit#gid=0
-Présentation du travail fait sur The pressure sensor film kit
- Documenting frame types of each library
- Documenting How to test the PC XBee library using serial emulator without connecting the XBee module
Added new code to github and cleaned up repositories.
- Documenting how to use the XCTU tools
Worked with Jim on sensor integration, drop, temperature and RPM, all into the same firmware, documented a bit in a few documents related to all the sensors what we did. We sent email to the entire group for the milestone achieved.
Did R&D onsite alone, coordinated with Jim online and with Abran. See R&D electronics log, I documented stuff in the (lolgged as documentation elsewhere)
Arduino external interrupts
https://docs.google.com/document/d/1iOiMEGzpwFoTHyHFORuB4vICFgBJIbVF0pQEmTOCa7M/edit
Drop counter doc
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit
Wrote Arduino code for the drop counter sensor.
Documenting how to
- add the XBEE header files to the Arduino libraries
- How to check that 2 modules are correctly configured
and can communicate in API modes
Documented our experiments, worked on different documents at the same time.
The Arduino interrupt
https://docs.google.com/document/d/1iOiMEGzpwFoTHyHFORuB4vICFgBJIbVF0pQEmTOCa7M/edit#
The Drop counter
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit#
The Hardware working doc.
https://docs.google.com/document/d/1gK75ddfalNmbqZ4eTqm_uEqROQqE8OUv6Ttc8agjRXE/edit#
Put all the Arduino code on Github. We need to centralize the repository of code, otherwise we run into coordination problems, because it's getting complex. I errased the Arduino code from the Working doc and replaced it with a link to Github, so everyone feeds from the same source.
Ahmed was in the lab next to me.
https://github.com/Sensorica/Sensor-Network/tree/master/Sensor%20Tests
Wrote and sent report for the first test bench work day
https://docs.google.com/document/d/1P2NJJ1Mx2hQqvwwUj2FGKQTQls4K68Jy--O3nVe9TKg/edit#heading=h.cuxwutn3r5xv
Worked on the working doc, created a section about the first bench test sensor system, answered to the comments on the side and arranged a bit the info in the doc.
https://docs.google.com/document/d/1gK75ddfalNmbqZ4eTqm_uEqROQqE8OUv6Ttc8agjRXE/edit#
Documentation with Abran, structured the doc, inputs from Abran and Bruce.
- Documenting answers for the requirements questions based on last meeting 19/11/2015
Worked with Tibi on the optical layout of the drop counter sensor.
We found and tested a nice solution, using the LEDs and the detectors on the same side, and reflecting the light from a diffusing reflector. This has been documented in the main doc for the Drop counter, in the section Multiple detectors solution.
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit#
Worked with Yanick on the optical layout of the drop counter sensor. We found and tested a nice solution, using the LEDs and the detectors on the same side, and reflecting the light from a diffusing reflector. This has been documented in the main doc for the Drop counter, in the section Multiple detectors solution.
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit#
I did some electronics work and documentation also, that I logged somewhere else.
3D modelling the last drop counter prototype
Helped Daniel with the mechanical design (3D model) of the "The multiple detectors solution" for the optical drop counter. This is essentially the support for the sensors, that was 3D printed.
https://3dwarehouse.sketchup.com/model.html?id=u70d6073c-e327-4912-91d4-c7774f0e22a2
See more here
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit#heading=h.jhrcginulru
Designed and redesigned Drop Counter sensor casings.
3D printed LED and Sensors casing 2 times and the Cover 1 time.
I 3D modelled and 3D printed the Load Cell 1st prototype (compressible washer) with Tibi, using a linear potentiometer and a compression spring we had handy.
Next one will be way more compact.
Testing of the drop counter tray, designed by Daniel and 3D printed by him (with my assistance, time logged elsewhere).
I was onsite with Patrice, installed it and tested it.
It turned out that the chemical composition of the water in the tank was corrosive for the coating on the tray I applied in order to make it hydrophobic.
With Patrice we tried a few products we could get our hands on, to re-coat the surface. Some of these products were hydrophobic, but sticky, i.e. they slowed down the water going down the surface. This had the effect of accumulating single drops into larger streams on the surface. The entire thing failed... Lessons learned.
3D modelled drop collecting/counting prototype part with Tibi.
Used 3D model of existing Pump part to custom design attachment and have a visual of dimensions as to where the drops would fall, slope angle, etc.
Modelled the optical switch to design socket for it on the part.
Then 3D printed the part.
Assisted Daniel to 3D model the drop counter tray
https://3dwarehouse.sketchup.com/model.html?id=uc35f61fc-7c19-49f5-b545-76cb356213dc
This is a mechanical solution to concentrate drope into a small area, to be counted.
Testing this device was logged elsewhere as R&D mechanics.
Worked with Patrice on sensor fixtures. We created a solid metal fixture for the RPM sensor, first draft. I also created a prototype for the temperature sensors, proof of concept. We got some ideas about the fixtures for the optical drop sensor, which will be 3D designed and printed by Daniel, with the help of Patrice.
Also, coordinated with Daniel and Patrice to design and print the part.
Freeboard is now working within the context of the codebase and all changes were pushed to the sponsor's AWS account.
Fixed some hardware bugs on the node and worked with Scott to integrate the Node, RasPi and AWS cloud. For the hardware bugs that were fixed, I added the extension connectors, which made room for the Zigbee module. Also, it turned out that there were two loose connections, one on the temperature sensor that needed to be re-soldered, and another on the load washer which needed to be re-fixed to the mounts. These were sometimes causing values which were far off from normal. For the RasPi, working with Scott we fixed the python code on the RasPi to work with the latest sensor data, we successfully published to the IoT component, and ran some tests.
Fixed some hardware bugs on the node and worked with Jim to integrate the Node, RasPi and AWS cloud.
For the hardware bugs that were fixed, I added the extension connectors, which made room for the Zigbee module. Also, it turned out that there were two loose connections, one on the temperature sensor that needed to be re-soldered, and another on the load washer which needed to be re-fixed to the mounts. These were sometimes causing values which were far off from normal.
For the RasPi, working with Jim we fixed the python code on the RasPi to work with the latest sensor data, we successfully published to the IoT component, and ran some tests.
Finished integrating the sensors with the PCB and finished setting up the test server:
Test the load washers - CHECK
Test the IR temperature sensor - CHECK
Attach the flow meter - CHECK
Test that I can login to AWS with the sponsor's account - CHECK
Launch the EC2 instance on the sponsor's AWS server - CHECK
Deploy the Django server on EC2 instance
I added the metadata fields for a node to the admin panel based on the sponsor's field recommendations.
Set up the proto-PCB board with sensors on the test bench, and tested it with Scott.
We had to fix a few bugs found in the board, went over all the connections again to make sure that nothing will go wrong after plugging in the power.
At the end of the day we tested the thermocouples and the fluid system and it worked. Other sensors will be tested tomorrow. We had a little worry about the fluid system, related to the fact that we feed 12 V into the optocoupler, but it turns out to work without problems.
Worked on installing the new PCB with Tibi. Went through PCB schematic, checking all the PCB traces, making corrections where applicable. We re-installed the PCB with all the sensors, loaded the latest _firmware sketch and ran some basic tests to verify that everything is working properly.
The result of this work is that the sensor network is working with the new PCB.
- Setup a django server with a metadata app
- Configured the admin panel to contain Nodeowners, Nodes, and TestDatapoints
- Launched an AWS EC2 instance containing all this data
I bought leaknet.info which was a 5$ available domain name
(also note that leaknet.ca was available for 10$ if we decide to go with that branding)
- Tested server was working at http://leaknet.info:8000/admin/login/?next=/admin/
- Note that the server is running non-persistent so I must be logged into the server's terminal for it to be live.
- Integrated freeboard.io into the django server
- I loaded some test data for freeboard by using forcast.io's API
https://developer.forecast.io/
- I ran into a problem where freeboard wasn't being found by django, but I fixed it after reading:
http://grasshopperpebbles.com/django-python/how-to-set-up-a-home-page-with-django/
- Still having some trouble with the static files, looking at previous examples for how to fix it... to be continued
R&D AWS automation starting with the boto3 interface for S3 buckets. Code was uploaded to git repository.
- Updated the arduino code to include a device ID header to identify the individual device when it logs data
- Security: Getting passwords and API keys moved a separate config file
- Security: testing a .gitignore file that blocks config files with sensitive API keys from being uploaded to git where they would be publicly accessible.
- I got locked into a weird bug where my folders were locked in read-only mode, making it impossible for me to create new files that were required... according to a few blogs it was probably a Windows flag getting set improperly that needed to be manually cleared. Using the instructions at the following link seemed to have solved the problem.
http://stackoverflow.com/questions/25108496/pycharm-community-edition-problems-with-read-only-status-on-project-files
http://superuser.com/questions/653951/how-to-remove-read-only-attribute-recursively-on-windows-7/653955#653955
I went through the PCB designs, collected the required components, tested the individual components, and finished soldering all the components onto the board. The only components that are now missing are the parts that need to be bought from ABRA on Tuesday.
Additionally I did some functional tests of the traces using a voltmeter. After the modifications that were made, they appear to have been done correctly.
Using the PCB designs provided by Tibi and Jim, I soldered components to the board, inspected the board and made some recommendations for its improvement. The result of this work was that the board was about half assembled.
Began soldering components to the board, and worked around discovered problems in the design. Worked on this with Scott and the result of the work was about a half assembled PCB
I was able to complete a procedure for getting data from our Database into the CSV format required by the AWS machine learning algorithm.
The process / coding required can be found here:
https://docs.google.com/document/d/1ASXpTxCDmBoGYFlQnWxpwarfdxv1mljT9IwNfR0NNFE/edit#
1 hour r&d Django exploration R&D. We determined that django is preferrable to flask. It is almost as quick and easy to setup, it also uses python so we can re-use existing work, but it also auto-generates templates which we can use for inputting data.
1 hour r&d Virtualenvs and Virtualenvwrappers with Scott. This is needed to maintain software integrity when using two platforms simultaneously with dependency conflicts (in this case django and flask). We had a bit of trouble setting this up, but eventually got it to work.
Developing PCB:
-Prepared and cut copper for toner transfer
-Transfer toner to copper board
-Developed with Ferric Chloride
1 hour r&d Django exploration R&D. We determined that django is preferrable to flask. It is almost as quick and easy to setup, it also uses python so we can re-use existing work, but it also auto-generates templates which we can use for inputting data.
1 hour r&d Virtualenvs and Virtualenvwrappers with Jim. This is needed to maintain software integrity when using two platforms simultaneously with dependency conflicts (in this case django and flask). We had a bit of trouble setting this up, but eventually got it to work.
I wrote some boto code that will automate the process of uploading a cvs file to an S3 bucket. This will come in handy when we run our machine learning algorithms.
FYI: I'll need to separate my AWS security keys from the source code before I push this code to github so that random hackers don't get access to my AWS account... We should also start using the sponsor's AWS account in General. To be discussed.
Printed and developed second PCB. Two are required in case we make a mistake drilling and to use the better one of a batch, as DIY PCB manufacture is not flawless.
-Cleaned up final design of PCB on Upverter
-Exporter Gerber files and converted top copper to PDF using Gerbv
-Loaded in photoshop and enlarged pads and added logos
-Printed
Finished the PCB board design and sent instructions to the group to print it.
https://upverter.com/Sensorica/83f943753bf1e9b8/Sensor-node-board-alpha-version/
Board was printed by Jim
https://docs.google.com/document/d/1pe5oEVV8VHSByEgW0xRXq4MQuhTMDL2wx28V01lBcTM/edit#heading=h.qc05t46up6w3
-Integrated sample Arduino sketch for flow rate sensor with Scott and identified the non working issues
-Debugging the code with Scott. Decided that the approach in the sample code was not suitable for our sketch. We used a pin based interrupt similar to what we used for the RPM sensor, and adapted our code to work that way. The result is that the flow rate sensor was SUCCESSFULLY INSTALLED! :)
30 minutes - Read the datasheet for the flow rate sensor hardware and located the sample arduino code
30 minutes - Installed the flow rate sensor hardware into the integrated prototype board
30 minutes - Integrated the sample arduino code into the intgrated _firmware sketch. Identified some issues in the interrupts in the code.
3 hours - Debugging the code with Jim. We decided that the approach in the sample code was not suitable for our sketch. We used a pin based interrupt similar to what we used for the RPM sensor, and adapted our code to work that way. The result is that the flow rate sensor was SUCCESSFULLY INSTALLED! :)
2:00 - 3:00 1 hour
Cloud R&D - Did a dive on the Kaa platform, how it fits into the market, etc. E-mail correspondence with John, giving my thoughts on the Kaa platform and available alternatives. Will add this to our R&D doc when needed.
4:30 - 5:30 1 hour - Electronics R&D - Reducing the noise
Testing the effects of adding capacitors on the amplifier circuit.
Adding a cap between FB and Vss throws the circuit off.
Other recommended caps don't seem to have much effect, in face a small increase in noise was detected. Puzzling...
Helped Jim and Scott with their R&D effort, whenever they needed my assistance. I was working beside them on the Proto-PBC layout on Upverter, see my other log for the day. I helped them with the RPM sensor, feeding a signal from the signal generator to simulate the motor running, which was needed to test the Firmware code. I also intervened into other debugging issues.
- Worked with Scott to figure out the problem with IR sensor integration.
halts all interrupts and then resumes them at the end of the common section.
- ALL THE SENSORS ARE NOW INTEGRATED. THE PROOF OF CONCEPT IS COMPLETE.
2:45 - 8:30
- Integrated Jim's IR temperature sensor code updates from the weekend
- Worked with Jim to figured out the problem with IR sensor integration.
The problem was delays in the code during the main loop. The solution was to re-work the code,
by separating any code snippets that had a delay in them into a common section. This common section
halts all interrupts and then resumes them at the end of the common section.
- Fixed some issues with the level sensor. Debugged the integration code had some bugs, and debugged the flow calculation.
- ALL THE SENSORS ARE NOW INTEGRATED. THE PROOF OF CONCEPT IS COMPLETE.
- Some optimizations are needed to reduce the noise + add new features.
1. I debugged the code as part of the integration of the level sensor and solenoid valve
2. I Integrated the load washer code, adding some averaging and tweaked the calibrations in the code.
3. I integrated the IR temperature sensor code into the main _firmware.ino file
4. Troubleshooting of the IR temperature sensor / load washer calibration bug.
1. Finished physical integration of the level sensor with the solenoid valve.
3. Integrated the load washers
4. Integrated the IR temperature sensor
Collaborated with Jim and Scott on sensor integration (hardware and software).
Mainly: RTC clock integration, adding new sensors and actuators to the main PCB board, testing, re-calibration of the fluid level sensor and characterization.
30 min: Clone the latest arduino firmware code and start working with the _firmware codebase
1 hour: Integrate the load washer code into the consolidated firmware
3.5 hours: Firmware consolidation of the solenoid valve and the level sensor. Additional logic was needed to control the output of the valve based on the level of the water in the vesicle. A hysterisis was needed to avoid erroneous calculations when the tank is draining.
1 hour: Moving the electronics for the level sensor and the solenoid valve from the old circuit and reproducing it in the integrted circuit.+ assisting the re-soldering of the amp chip (with Tibi).
Increased Resolution of load washer circuit once more to 40lbs per unit, This time using the MAX4209's.
Experimented with voltage reading on the Arduino to establish consistency with the built in ADC when using different power sources.
https://github.com/Sensorica/Sensor-Network/blob/master/Sensor_Tests/Secret_Sensors/secret_arduino_Vcc.ino
Discovered and tested "secret" Arduino ambient (microcontroller) temperature:
https://github.com/Sensorica/Sensor-Network/blob/master/Sensor_Tests/Secret_Sensors/secret_arduino_temperature.ino
Tested fluid level sensor with new reference voltage.
Today we received the solenoid valve from Adafruit, used in the fluid level sensor. I connected all the parts together and tested it successfully. Documented everything and communicated the results from the doc, in context.
https://docs.google.com/document/d/1gK75ddfalNmbqZ4eTqm_uEqROQqE8OUv6Ttc8agjRXE/edit#heading=h.evjiciavf6eh
Built a wheatstone bridge to mimic the load washer and experimented with increasing the resolution of the output on the Arduino. Documented here:
https://docs.google.com/document/d/1EVXnkkM1FmmH0BjBJ9bqRI0mOVAZ7I3Ib5ErD4K_jEs/edit?usp=sharing
Worked with Tibi on solenoid valve and relay for leakage volume.
Worked with Jim on calibration the load washers at Robco
Worked on sight, on the test bench on sensor integration.
Installed and calibrated the fluid level sensor.
https://docs.google.com/document/d/1gK75ddfalNmbqZ4eTqm_uEqROQqE8OUv6Ttc8agjRXE/edit#heading=h.evjiciavf6eh
Calibration file here
https://docs.google.com/spreadsheets/d/12agJRM9MB6E8DKb_2ufMOShGEzwSx4zDwGFQRXMRsBc/edit#gid=1473882633
Used a SENSORICA fluid system to simulate the valve to empty the fluid tank, with Scott, learned some lessons, Scott documented the work.
Assisted in testing the Load Washer, applying larger forces to it using a large Vice, Larry helped us too. I also assisted Jim and Scott in the calibration of the Load Washer. we used the help of a local engineer to use a large press.
https://docs.google.com/document/d/1EVXnkkM1FmmH0BjBJ9bqRI0mOVAZ7I3Ib5ErD4K_jEs/edit#heading=h.kpx5ey96j008
Calibration file here
https://docs.google.com/spreadsheets/d/12agJRM9MB6E8DKb_2ufMOShGEzwSx4zDwGFQRXMRsBc/edit#gid=0
Jim and Scott finished the job.
Load washer calibration with scott using digital shop press at robco.
Great success! Great linearity from both the washer and the inamp circuit:
https://docs.google.com/spreadsheets/d/12agJRM9MB6E8DKb_2ufMOShGEzwSx4zDwGFQRXMRsBc/edit#gid=0
Programmed firmware and settings for new (old?) XBee modules.
Saved on github: https://github.com/Sensorica/Sensor-Network/tree/master/XBee
R&D for the Load Washer circuit / amplifier with Jim and some inputs from Tibi
https://docs.google.com/document/d/1EVXnkkM1FmmH0BjBJ9bqRI0mOVAZ7I3Ib5ErD4K_jEs/edit
Worked a bit with Jim and Scott on the load washer.
https://docs.google.com/document/d/1EVXnkkM1FmmH0BjBJ9bqRI0mOVAZ7I3Ib5ErD4K_jEs/edit#
We tested a new amplifier, the INA141 that I purchased from ABRA, proposed by Jim. This gave us some signal, which helped us understand the problems with the previous chip, MAX4209. At the end, we understood what went wrong. All documented in the main load washer doc
R&D for the Load Washer circuit / amplifier with Scott and some inputs from Tibi
https://docs.google.com/document/d/1EVXnkkM1FmmH0BjBJ9bqRI0mOVAZ7I3Ib5ErD4K_jEs/edit
Debugging of load washer amplifier with Scott
Development for the Load Washer electronic amplifier with Jim.
Debugging the load washer with Scott. We left traces of work on the doc.
https://docs.google.com/document/d/1EVXnkkM1FmmH0BjBJ9bqRI0mOVAZ7I3Ib5ErD4K_jEs/edit#
We redid the circuit, using the datasheet of the amplifier, were not able to measure a signal, we discovered that we still don't understand the instrumentation amp, OR there's a problem with it, actually, 2 of them that were mounted on the same board by Jim.
Consulted on the fluid level sensor, the new design with the tank, level sensor and valve. This consultation was specifically about the solenoid valve and other parts to make it work. Worked with Scott.
We produced a Redmine recommendation
http://137.135.46.156/issues/315
Consulted on the fluid level sensor, the new design with the tank, level sensor and valve. This consultation was specifically about the solenoid valve and other parts to make it work. Worked with Tibi.
We produced a Redmine recommendation
http://137.135.46.156/issues/315
Debugging the load washer with Tibi. We left traces of work on the doc.
https://docs.google.com/document/d/1EVXnkkM1FmmH0BjBJ9bqRI0mOVAZ7I3Ib5ErD4K_jEs/edit#
We redid the circuit, using the datasheet of the amplifier, were not able to measure a signal, we discovered that we still don't understand the instrumentation amp, OR there's a problem with it, actually, 2 of them that were mounted on the same board by Jim.
Designed and developed second load washer amplifier prototype
Designed, developed and assembled PCB for load washer amplifier:
https://upverter.com/snowy13/7b3640a88e0b9380/MAX4029-breakout-v01/
Tested shaft temperature sensor SEN0093, trying to find a hack for speeding up its communication protocol to no avail:
https://github.com/Sensorica/Sensor-Network/blob/master/Sensor_Tests/Individual_Sensor_Sketches/Thermometers/SEN0093_infrared/SEN0093_no_pin_state_change.ino/SEN0093_no_pin_state_change.ino.ino
Tested shaft temperature sensor SEN0093 with Jim, trying to find a hack for speeding up its communication protocol to no avail:
https://github.com/Sensorica/Sensor-Network/blob/master/Sensor_Tests/Individual_Sensor_Sketches/Thermometers/SEN0093_infrared/SEN0093_no_pin_state_change.ino/SEN0093_no_pin_state_change.ino.ino
Integrated new load sensors into Arduino firmware. Pushed to remote branch load_sensor for testing.
https://github.com/Sensorica/Sensor-Network/blob/load_sensor/Arduino/_firmware/_firmware.ino
Tested the IR temp sensor SKU:SEN0093 on Arduino, modified the Arduino program slightly to time the digital read function, obtained from 400 to 440ms per read. This was important in order to understand how to connect this sensor to the rest of the node, and how ti integrate it in the firmware. The communication time requires some adjustments to how data is acquired.
I communicated this to the team, with emphasis on Jim, who will execute the integration.
Also left traces of this in the docs and gave the others signes on what to explore next.
https://docs.google.com/document/d/1EHFAUYQ128Kfc2ENzAxhLZKqEqPLT-0V70YfAmR23gE/edit#heading=h.m61i75imwcoc
Designed and implemented an add on to the electronic board of the optical drop counter - sensor, integrated a potentiometer into the circuit in order to vary the power of the LED, to adjust it to the threshold of the Schmitt trigger.
This has been documented in the main doc for the Drop counter, in the section Multiple detectors solution.
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit#
I also did some documentation and some R&D in optics that I logged somewhere else.
Helped Tibi with the electronic parts for the Optical Drop Sensor multiple detector solution, understand logical gates, internal pull up resistors...
Designed new electronic board for the Optical Drop Sensor multiple detectors.
Jim helped and his input was quite helpful, perhaps avoided another mistake and loose of time.
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit#
Worked on the Optical drop sensor, the "multiple detectors solution". The first electronics board did not work. I measured the output from the detectors using a LabJack, understood the electronic problem (discussed during the meeting on the 5th Feb.), realized that the voltage given by the detectors was lower than the threshold of the Schmitt trigger Found an opamp (LM324) to boost the voltage above the Schmitt trigger threshold level and integrated it into the circuit. Did the first preliminary tests successfully.
I split all this work in 1h of R&D and 3h Technical work (because I thought that the guess work was not worth pro rewards)
Documentation here
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit#heading=h.jhrcginulru
Searched for and supplied manufacturers of ultrasonic flow sensors in bare sensor format rather than in a package. Also supplied with ways to create our own sensors.
https://docs.google.com/document/d/1EHFAUYQ128Kfc2ENzAxhLZKqEqPLT-0V70YfAmR23gE/edit
Analyzed solutions available for flow sensors. Summarized viable technologies along with the pros and cons for a flow sensor. Searched for bare sensor version of ultrasonic Doppler flow sensor and Ultrasonic acoustic flow sensor.
https://docs.google.com/document/d/1EHFAUYQ128Kfc2ENzAxhLZKqEqPLT-0V70YfAmR23gE/edit#
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit
Design of the multiple detectors solution for the drop sensor
Design of the electronics for the "The multiple detectors solution" of drop counter sensor. We used a Schmitt trigger and an OR gate to tie together 4 IR optical switches. This allows detection of a drop falling through a surface. In essence, implemented John's idea. See more in the R&D doc.
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit#heading=h.jhrcginulru
Worked with Yanick.
Solving compatibility issues in the Python XBee library. some command are designed to work with python 2 not 3
Looked at the old bolt stain sensor at the location, evaluated its potential in the project, gathered sensors for further exploration on the load sensor, the flex, strain gage and the film pressure sensor, to bring to SENSORICA.
Cut layer to build the Sensor Film
https://docs.google.com/document/d/1-KF3Te1Sv9laQ6kzWoZQqoJiif0y2-EEoNDcFXbiQc0/edit
- Python library (PI side) is now receiving packets from the end nodes using API mode
Worked on test bench with Tibi:
Installation of the Arduino on the test bench pump.
Refined firmware serial command:
https://github.com/Sensorica/Sensor-Network/blob/serial/Arduino/_firmware/_firmware.ino
Updated drop count code to count drops per minute:
https://github.com/Sensorica/Sensor-Network/blob/drops/Arduino/_firmware/_firmware.ino
Discovered problem with XBee and Arduino serial when set to 115200 baudrate and switched to 9600 for now:
http://www.digi.com/support/forum/4787/using-the-xbee-at-115-200-baud-updated-16-march-2010
Assisted Jim in refining the drop sensor and its integration into the Firmware. We placed sensors on the pump and powered the pump to test the entire system. with 2 temp sensors, drop and RPM.
Worked with Jim on sensor integration. We finished the drop counter / sensor, hardware and software, tested it with the Schmitt trigger, and integrated all the sensors into the main firmware. We run some tests.
Worked on site with Tibi:
Adapted previously tested non blocking code for the MAX3185 onewire thermocouple:
https://github.com/Sensorica/Sensor-Network/blob/master/Arduino/MAX31850/non_blocking.ino
Tested multiple connected sensors on onewire with blocking code:
https://github.com/Sensorica/Sensor-Network/blob/master/Arduino/MAX31850/blocking_multiple.ino
Wrote sketch for non blocking code that supports multiple devices:
https://github.com/Sensorica/Sensor-Network/blob/master/Arduino/MAX31850/non_blocking_multiple.ino
Created new circuit for the drop counter using a schmitt trigger.
Wrote and tested sketch based on Tibi's work to adopt the new circuit:
https://github.com/Sensorica/Sensor-Network/blob/master/Arduino/Drop_sensor_test/Drop_counter_ISR_schmitt_trigger/drop_sensor_ISR_schmitt_trigger/drop_sensor_ISR_schmitt_trigger.ino
Worked on the drop sensor mostly, tested the Schmitt trigger, characterized more the Arduino interrupt with the signal generator. I documented stuff in the (lolgged as documentation elsewhere)
Arduino external interrupts
https://docs.google.com/document/d/1iOiMEGzpwFoTHyHFORuB4vICFgBJIbVF0pQEmTOCa7M/edit
Drop counter doc
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit
Wrote Arduino code for the drop counter sensor.
Wrote, tested and debugged non-blocking one wire protocol arduino sketch that works with the Maxim DS18B20. This is important as it frees up the Arduino for other tasks instead of waiting to read the scratchpad after requesting a temperature conversion.
https://github.com/Sensorica/Sensor-Network/blob/master/Sensor_Tests/Individual_Sensor_Sketches/Thermometers/DS18B20_waterproof_digital_temperature_sensor/DS18B20_one_wire_non_blocking/DS18B20_no_wait_for_conversion.ino
Worked with Abran and Jim on sensor integration, mainly did Arduino programming and debugged OneWire temperature sensor, to make it read at a faster rate.
The Github repo was updated.
I also updated the Sketch for the drop counter, not just to count drops, but to provide a drop rate, based on a moving average of durations between on a few drops.
Worked with Tibi and Abran on sensor integration.
Researched further on non-invasive ways to measure shaft speed. Contacted Philips for more information regarding their PLN2037 chip sensor in particular and Laser velocimetry in general.
Made initial research in to using air pressure differentials around rotating bodies to measure speed.
Evaluated different solutions for remote sensing stress on objects.
-Programmed two new XBee modules.
-Tested AT mode communications between Arduino and XBee
-Wrote sketch for Arduino
https://github.com/Sensorica/Sensor-Network/tree/master/Arduino/XBee_AT_test
-Wrote script for Raspberry Pi
https://github.com/Sensorica/Sensor-Network/blob/master/Raspberry_Pi/XBee_AT_test.py
Worked with Tibi, see his log
Worked with Jim the entire day in the lab. Along with training myself on Interrupts (see log today about this), and documenting, we did a lot of testing and coding. The essence can be found in the Drop counter document.
https://docs.google.com/document/d/1iGTb_4TpWxTK5r2nscdpwjIQ1q5b3oYIB1b5ykjs8HQ/edit#
In essence, we found a software solution to the drop counter using interrupts. This has been a stubborn problem that a lot of people complain about on the Internet.
We also found a hardware solution, using Schmitt triggers (see Drop counter doc), and identified the parts at DIGIKEY.
This same hardware solution can be used for the RPM counter that used the proximity sensor.
In order to figure it out we had to do some high rate data acquisition to characterize the output of the Optical limit switch sensor. We could not know if the false trigger of the interrupt was die to transients, noise or slow-varying signal. This required installation of an experimental setup using the LabJack, modifications of some LabView programs for data acquisition, ... Long but fun day of work!!! Thanks Jim for your help, and good time!
- Showing the importance of adding Arduino to XBee module
- Steps on how to use AT commands to communicate with XBee
Setup a simple XBee network between a Raspberry Pi and Arduino. Found a python script to remotely program Xbees. re-wrote the script for python3 and tested communications and remotely programming the various settings on the Xbees.
Original source can be found here: https://jeffskinnerbox.wordpress.com/2013/01/30/configuration-utilities-for-xbee-radios/
Jim and I did some work today on the project. I found and tested an elegant solution for the drop sensor, using hardware interrupt, to be implemented next.
Worked with Patrice on the test bench. See report here.
https://docs.google.com/document/d/1P2NJJ1Mx2hQqvwwUj2FGKQTQls4K68Jy--O3nVe9TKg/edit#heading=h.cuxwutn3r5xv
Redid the Rotation sensor circuit and tested the voltage out of the transmister. I figured that it only gives 3V, which is not enough to trigger the Arduino Interrupt pin2 that requires 5V. I described the problem and called Gregory to propose a simple solution.
For testing the Arduino code we should use our function generator to trigger the Interrupt pin2.
https://docs.google.com/document/d/1cU-Q1YAXNuakYPTdYbrLNRDndf-OAxwED3ou3WXyczE/edit
Tested a first version of the optical tachometer, using the QRD 114 proximity sensor. I documented everything here for the first prototype. It doesn't work very well, but I identified another way to do it, using the Interrupt pin 2 of the Arduino. Everything is documented in a separate R&D doc, because the optical Tachometer can become a separate SENSORICA resource. I made a short video showing how it works and what the problems are. This was tested on a bench with a DC motor and a aluminum tube as shaft.
NOTE that this tactic can also be used for the drop counter, moving it from analog in to interrupt. The Arduino Uno has 2 interrupt pins, 2 and 3 that can be uses for the drop counter and for the rotation sensor.
https://docs.google.com/document/d/1cU-Q1YAXNuakYPTdYbrLNRDndf-OAxwED3ou3WXyczE/edit#
Worked with T!B! on implementing my core Arduino code for the end nodes with the code already tested with the sensors for the first bench test. Tested , debugged and optimized first implementation.
Worked with Jim on implementing my core Arduino code for the end nodes with the code already tested with the sensors for the first bench test. Tested , debugged and optimized first implementation. Joined him a bit later...
Started to write software classes for analog and digital sensors and wrote a main loop to test three temp sensors and a drip sensor. See page 43
https://docs.google.com/document/d/1gK75ddfalNmbqZ4eTqm_uEqROQqE8OUv6Ttc8agjRXE/edit#
Started coding a fix to the 1-Wire protocol's 750ms read time in the available libraries and implementing it into the core end node firmware. This is for the DS18B20 sensor and will allow many of them to share a pin on the Arduino. The goal is to get the read time down to 1ms !!!
- Writing steps on configuring the XBee module (i.e. General configuration)
- Finding a solution for the XBee reset error that appears when updating the module’s firmware that controls its behaviour (i.e. coordinator or end-device)
Helped Tibi solve problem with a particular sensor + code
Researched and described different force transducers and their basic pro and cons for measuring loads placed on bolts.
- Completing the comparison tables
- Presenting the Zigbee network topology
- Connecting Xbee Explorer to an Ubuntu Machine
- Connecting a Zigbee module to the explorer board and configuring it using XCTU
- Defining installation steps of arduino IDE on a linux machine
- Presenting the advantages of using XBEE modules
- Defining installation steps of XCTU software (for XBEE modules)
- Identifying WSN structure
- Identifying sensing nodes and communication technologies
Pattern:
Generic R&D
Context: Sensor network
Order:
Work order 186 due: 2015-12-15
Design and prototype a sensor network for industrial application
https://docs.google.com/document/d/1SByRIZgX5AnEwkG-6_yKULUIuoLa-3btmjHkqNLbLm8/edit