V2 Food Computer Kit Build


#29

Hey Team,

I found a supplier of mini compressors similar to that jmak was speaking to. This company also seems to have liquid cooling systems at a relatively low cost and sold as a complete assembly (which appears to fit in the PFC2.0 at first glance - aside from the fact that the fan would no be directed towards the rear EB panel but to the side EB panel). It looks like they also sell the compressors separately(with their control circuitry). I am certainly not an expert on cooling systems and would appreciate some feedback on this as I do not know if this meets the requirements.

I was looking at this model DV1920E-P (24V) https://www.rigidhvac.com/store/products/59248-dv1920e-p-24v which appears to have a heat exchanger to directly tie in with the existing BOM components for the temperature control module.

https://www.rigidhvac.com/online-order
This link will bring you to all their products with pricing.


#30

So I got the EC/PH sensors working (based upon their blinking green/cyan intermittently) I appreciate the help @ferguman & @wsnook

@Jake provided me with a copy of one the Food Computers they have running from two months ago, but I have had a very difficult time utilising an older .img when the documentation is for the current version. I have tried some suggestions from @rbaynes as well, but again I feel as though once I started using an older version I was finding files missing when trying to execute code intended for the current version.

As an update, I went ahead and created another SD card with NOOBS on it and attempted to do an install following the the Docker install guide, all the way to here:

docker logs -f openagbraindockerrpi_brain_1

Then I get this error, which based upon this post perhaps @spaghet knows more about:

I can continue onward and even get the brain to flash, read out topics, I can access my database, etc. The one thing that errors out is shown above, and the fact that there are still no sensors reading on the primary UI. Any suggestions? If I’m interpreting @juhnke’s post correctly I’m not loading my firmware and therefore when I flash the brain it isn’t working correctly? It’s a bit difficult to follow this guide though due to it being intended for updating a V1 to a V2.

I then tried to follow this guide to install globally according to this post I will have to complete a few steps not documented. I ran install_dev which went for about an hour before returning this error:

If anyone has any tips from previous experiences rebuilding the software stack from scratch or getting a V2 actually running, I would really appreciate it: @MrsHesseltine @JohnB @gordonb


#31

Hi Peter,

Here are the instructions for a ‘standard’ (v2) install from source. You should be able to triple click each code block and paste it into your terminal. I would delete your catkin_ws directory in your home directory and start fresh. You’re having some interesting errors that appear to be missing libs. Make sure you do the swap space configure portion.

Installing and running openag_brain on PFC2 Hardware

This guide assumes you’ve already flashed your SD card with Raspbian Jessie Lite and installed the optional touchscreen and wifi configurations and are now able to ssh / terminal into the Pi.
In addition you should’ve used raspi-config to set your YOUR_HOSTNAME to something you like (defaults to raspberrypi)

Clone in brain software

  • sudo apt-get install git
  • git clone https://github.com/OpenAgInitiative/openag_brain.git ~/catkin_ws/src/openag_brain

Increase Swap Space

  • sudo nano /etc/dphys-swapfile
  • Change CONF_SWAPSIZE=100 to CONF_SWAPSIZE=1024
  • Restart your pi - sudo reboot

Install openag service

  • ~/catkin_ws/src/openag_brain/scripts/install_openag_brain_service

Build Catkin and init workspace and DB

  • cd ~/catkin_ws/src/openag_brain
  • ./scripts/install_dev
    ^^^ takes a LOOOOOOONG TIME! Have a meal with a loved one or possibly finish that novel.
  • source ~/catkin_ws/devel_isolated/setup.bash
  • openag db init

Flash Arduino

  • rosrun openag_brain firmware -t upload /home/pi/catkin_ws/src/openag_brain/launch/personal_food_computer_v2.yaml -p ros

Test system

  • rosrun openag_brain main --screen personal_food_computer_v2.launch
  • No errors? ctrl-c to exit

Install Openag_UI

  • curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
  • sudo apt-get install -y nodejs
  • git clone https://github.com/OpenAgInitiative/openag_ui ~/catkin_ws/src/openag_ui
  • cd ~/catkin_ws/src/openag_ui
  • npm install
  • ./node_modules/grunt-cli/bin/grunt couchapp_deploy --app_db_url="http://localhost:5984/app"

Start Openag_brain service

  • sudo service openag_brain start

Congratulations! Go to this link to see your PFC2 running

  • http://YOUR_HOSTNAME.local:5984/app/_design/app/_rewrite

Error with docker-compose up
Error with docker-compose up
#32

@juhnke This is EXACTLY what I was hoping for, I lack the experience and context to know which of these commands translate from V1 to V2, so when utilizing your previous post I was uncertain if I was doing everything correctly. I will definitely let you know how it goes after I try it out this evening.

Curiosity: Have you had any success installing from Docker? Ideally, I would like to use that solution long-term but haven’t had any luck getting a successful build yet.

Thanks,
Peter.


#33

I started my work with the Docker repo and was hopeful but the dev team is really focused on evolving the openag_brain and haven’t been able to spin off docker updates. It holds great promise but hasn’t had a new image pushed for quite some time. I’ve found that I can progress by maintaining a global install for now.


#34

That’s what I figured and the route I’m going with for now.

I had a successful dev install, now I’m getting this error when flashing the Arduino. Are you familiar?

I saw this post from you awhile back, am I missing this step perhaps?

I am worried that I did this step incorrectly:

To do this I just moved the entire directory, and then ran the command you reference in the beginning to clone the brain software. Is there anything else that needs to be in that folder when I begin the process? Or should I just get rid of the entire file completely (what I did).


Error with docker-compose up
#35

Hmmm.

Type this:

cd

That will put you in your home directory. Now type this:

ls -la

Copy and paste the results into this thread.

Here’s mine:

drwxr-xr-x  12 pi   pi    4096 Jun  1 18:39 .
drwxr-xr-x   3 root root  4096 Apr 10 04:17 ..
-rw-------   1 pi   pi   14892 Jun  1 18:29 .bash_history
-rw-r--r--   1 pi   pi     220 Apr 10 04:17 .bash_logout
-rw-r--r--   1 pi   pi    3886 Jun  1 17:55 .bashrc
drwx------   3 pi   pi    4096 May 22 13:26 .cache
drwx------   2 pi   pi    4096 May 17 00:17 .ngrok2
drwxr-xr-x 555 pi   pi   20480 May 23 11:46 .npm
drwxr-xr-x   2 pi   pi    4096 May 16 23:06 .openag
drwxr-xr-x   5 pi   pi    4096 Jun  1 17:55 .platformio
-rw-r--r--   1 pi   pi     703 May 16 21:41 .profile
drwxr-xr-x   5 pi   pi    4096 Jun  1 17:55 .ros
drwxr-xr-x   5 pi   pi    4096 May 16 22:08 catkin_ws
drwxr-xr-x   3 pi   pi    4096 May 16 22:08 openag
drwxr-xr-x   4 pi   pi    4096 May 22 13:32 opencv
drwxr-xr-x   6 pi   pi    4096 May 16 22:55 pio_env
-rwxr-xr-x   1 pi   pi     103 May 17 00:21 run_after_boot.sh

I’ll know more after that.

Cheers,

J


#36

Here you go, let me know what you find!

total 2088
drwxr-xr-x 49 pi   pi      4096 Jun  1 17:17 .
drwxr-xr-x  4 root root    4096 Feb  8 03:28 ..
-rw-r--r--  1 pi   pi     61922 May 18 21:05 2017-05-18-210546_1024x768_scrot.png
-rw-r--r--  1 pi   pi   1112276 May 22 22:42 2017-05-22-224224_1024x768_scrot.png
-rw-r--r--  1 pi   pi    109691 May 24 18:20 2017-05-24-182046_1024x768_scrot.png
-rw-r--r--  1 pi   pi    148851 May 24 18:21 2017-05-24-182106_1024x768_scrot.png
-rw-r--r--  1 pi   pi    120917 May 24 18:22 2017-05-24-182246_1024x768_scrot.png
-rw-r--r--  1 pi   pi    252904 May 30 18:48 2017-05-30-184859_1024x768_scrot.png
-rw-r--r--  1 pi   pi        69 Nov 25  2016 .asoundrc
-rw-------  1 pi   pi     38340 Jun  1 16:01 .bash_history
-rw-r--r--  1 pi   pi       220 Nov 25  2016 .bash_logout
-rw-r--r--  1 pi   pi      3695 Jun  1 17:12 .bashrc
drwxr-xr-x  8 pi   pi      4096 May 24 18:21 .cache
drwxr-xr-x  5 pi   pi      4096 Jun  1 16:18 catkin_ws
drwx------ 17 pi   pi      4096 May 30 18:51 .config
drwx------  3 pi   pi      4096 Nov 25  2016 .dbus
drwxr-xr-x  2 pi   pi      4096 May 22 23:05 Desktop
drwx------  2 pi   pi      4096 Feb 27 19:52 .docker
drwxr-xr-x  6 pi   pi      4096 May 24 18:21 Documents
drwxr-xr-x  2 pi   pi      4096 May 22 22:48 Downloads
drwxr-xr-x 15 pi   pi      4096 May 30 18:58 Filedump
drwxr-xr-x  4 pi   pi      4096 Jun  1 15:59 Filedump2
drwxr-xr-x 12 pi   pi      4096 Jun  1 15:59 Filedump3
-rwxr-xr-x  1 pi   pi       106 Mar  9 15:35 flash.sh
drwx------  2 pi   pi      4096 May 30 18:25 .gconf
-rw-r--r--  1 pi   pi        78 Feb 27 19:00 .gitconfig
-rw-r--r--  1 pi   pi         8 Feb  4 14:31 .gitignore
drwx------  3 pi   pi      4096 May 22 23:05 .gnome
drwxr-xr-x  2 pi   pi      4096 Nov 25  2016 .gstreamer-0.10
drwxr-xr-x  2 pi   pi      4096 May 24 17:24 .idlerc
-rw-------  1 pi   pi        43 Mar  9 14:54 .lesshst
drwxr-xr-x 16 pi   pi      4096 Mar 13 12:16 lib
drwxr-xr-x  3 pi   pi      4096 Nov 25  2016 .local
drwxr-xr-x  2 pi   pi      4096 Nov 25  2016 Music
drwxr-xr-x  3 pi   pi      4096 Feb 24 11:33 openag
drwxr-xr-x  2 pi   pi      4096 Feb 24 12:04 .openag
drwxr-xr-x 12 pi   pi      4096 Jun  1 15:44 openag_brain
drwxr-xr-x  3 pi   pi      4096 Mar 11 10:27 openag_brain_docker_rpi
drwxr-xr-x  3 pi   pi      4096 Feb 24 10:58 openag_brain_install_rpi
drwxr-xr-x  3 pi   pi      4096 Mar 13 20:56 openag_launch
drwxr-xr-x  9 pi   pi      4096 Mar  9 15:32 openag_python
drwxr-xr-x  3 pi   pi      4096 Feb  8 08:54 openag_safe_shutdown
drwxr-xr-x  2 pi   pi      4096 Nov 25  2016 Pictures
drwxr-xr-x  3 pi   pi      4096 Mar  6 20:36 pi_image_server
drwxr-xr-x  6 pi   pi      4096 Feb 24 11:34 pio_env
drwxr-xr-x  3 pi   pi      4096 May 24 17:51 .pioenvs
drwxr-xr-x  2 pi   pi      4096 Feb  4 12:20 .pip
drwx------  3 pi   pi      4096 Feb 24 10:15 .pki
drwxr-xr-x  5 pi   pi      4096 Jun  1 17:24 .platformio
-rw-r--r--  1 pi   pi       247 Mar  2 16:10 platformio.ini
-rw-r--r--  1 pi   pi       675 Nov 25  2016 .profile
drwxr-xr-x  2 pi   pi      4096 Nov 25  2016 Public
drwxr-xr-x  2 pi   pi      4096 Nov 25  2016 python_games
drwxr-xr-x  4 pi   pi      4096 Jun  1 18:07 .ros
drwxr-xr-x  5 pi   pi      4096 Feb 24 11:02 ros_catkin_ws
-rw-r--r--  1 pi   pi        66 Mar  6 20:36 .selected_editor
drwxr-xr-x  2 pi   pi      4096 May 24 17:51 src
drwx------  2 pi   pi      4096 May 18 19:37 .ssh
drwxr-xr-x  2 pi   pi      4096 Nov 25  2016 Templates
drwxr-xr-x  3 pi   pi      4096 Feb 24 10:20 .themes
drwx------  4 pi   pi      4096 Mar 14 12:35 .thumbnails
-rw-r--r--  1 pi   pi      1522 Feb  4 14:31 .travis.yml
drwxr-xr-x  2 pi   pi      4096 Nov 25  2016 Videos
drwxr-xr-x  6 pi   pi      4096 Mar 13 18:41 .vim
-rw-------  1 pi   pi     12576 Mar 13 18:41 .viminfo
lrwxrwxrwx  1 pi   pi        20 Feb 24 10:28 .vimrc -> /home/pi/.vim/.vimrc
drwx------  3 pi   pi      4096 May 13 11:33 .vnc
drwxr-xr-x 10 pi   pi      4096 May 24 18:21 .WolframEngine
drwxr-xr-x  3 pi   pi      4096 May 24 18:21 .Wolfram Research
-rw-------  1 pi   pi       268 Jun  1 17:17 .Xauthority
-rw-------  1 pi   pi       353 Jun  1 17:17 .xsession-errors
-rw-------  1 pi   pi       353 Jun  1 15:52 .xsession-errors.old

#37

Wow. That’s a lot of stuff. haha!

You’ve got a full blown version of Jessie on this SD card. I’m using Jessie Lite. So there are some fundamental differences between our builds.

Make sure you have killed all existing/running services. sudo service openag_brain stop should do it. I don’t think you need to stop CouchDB. I never do.

I’d run sudo apt-get update and sudo apt-get upgrade to get the most recent goodies. I just confirmed that the install_dev script installs platformio so it’s likely that you’ve got older files in there that are fighting with the install. The best option is to start with a new SD card, but if you can’t, consider deleting the following folders completely and starting the build again.

rm -rf .cache .npm .openag .platformio .ros catkin_ws openag pio_env

I can’t try that command but it should straighten your house for a clean install. Once this is done. Start again from the top of the tutorial I posted. You should not get errors during the process.

Keep me posted.

J


#38

I did notice that you suggested Lite, I was trying to still use the SD card I was given that had an image on it with the kit which had full GUI on it. I went ahead and got a clean SD, and got Jessie Lite loaded, and then ran through the install all the way until flashing the Arduino, which succeeded but did have a few issues:

pi@brain:~ $ rosrun openag_brain firmware -t upload /home/pi/catkin_ws/src/openag_brain/launch/personal_food_computer_v2.yaml -p ros
Library Storage: /home/pi/catkin_ws/src/openag_brain/firmware/.piolibdeps
LibraryManager: Installing id=54
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
DallasTemperature @ 3.7.7 has been successfully installed!
Installing dependencies
Looking for OneWire library in registry
Found: http://platformio.org/lib/show/1/OneWire
LibraryManager: Installing id=1
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
OneWire @ 2.3.2 has been successfully installed!
[Fri Jun  2 12:18:04 2017] Processing megaatmega2560 (platform: atmelavr, board: megaatmega2560, framework: arduino)
-----------------------------------------------------------------------------
PackageManager: Installing framework-arduinoavr @ ~1.10618.1
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
PackageManager: Installing tool-avrdude @ ~1.60300.0
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
CorePackageManager: Installing tool-scons @ ~3.20501.2
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
tool-scons @ 3.20501.2 has been successfully installed!
Verbose mode can be enabled via `-v, --verbose` option
Converting src.ino
Collected 51 compatible libraries
Looking for dependencies...
Library Dependency Graph
|-- <openag_am2315>
|   |-- <openag_module>
|   |-- <rosserial_arduino>
|   |-- <Wire> v1.0
|-- <openag_tone_actuator>
|   |-- <rosserial_arduino>
|   |-- <openag_module>
|-- <openag_doser_pump>
|   |-- <rosserial_arduino>
|   |-- <openag_module>
|-- <rosserial_arduino>
|-- <openag_pulse_actuator>
|   |-- <rosserial_arduino>
|   |-- <openag_module>
|-- <openag_air_flush>
|   |-- <rosserial_arduino>
|   |-- <openag_module>
|-- <openag_ds18b20>
|   |-- <DallasTemperature> v3.7.7
|   |   |-- <OneWire> v2.3.2
|   |-- <rosserial_arduino>
|   |-- <OneWire> v2.3.2
|-- <openag_binary_actuator>
|   |-- <rosserial_arduino>
|   |-- <openag_ds18b20>
|   |   |-- <DallasTemperature> v3.7.7
|   |   |   |-- <OneWire> v2.3.2
|   |   |-- <rosserial_arduino>
|   |   |-- <OneWire> v2.3.2
|-- <openag_binary_sensor>
|   |-- <openag_module>
|   |-- <rosserial_arduino>
|   |-- <openag_ds18b20>
|   |   |-- <DallasTemperature> v3.7.7
|   |   |   |-- <OneWire> v2.3.2
|   |   |-- <rosserial_arduino>
|   |   |-- <OneWire> v2.3.2
|-- <openag_atlas_ph>
|   |-- <rosserial_arduino>
|   |-- <openag_ds18b20>
|   |   |-- <DallasTemperature> v3.7.7
|   |   |   |-- <OneWire> v2.3.2
|   |   |-- <rosserial_arduino>
|   |   |-- <OneWire> v2.3.2
|   |-- <Wire> v1.0
|-- <openag_pwm_actuator>
|   |-- <rosserial_arduino>
|   |-- <openag_ds18b20>
|   |   |-- <DallasTemperature> v3.7.7
|   |   |   |-- <OneWire> v2.3.2
|   |   |-- <rosserial_arduino>
|   |   |-- <OneWire> v2.3.2
|-- <openag_atlas_ec>
|   |-- <rosserial_arduino>
|   |-- <Wire> v1.0
|-- <openag_mhz16>
|   |-- <openag_module>
|   |-- <rosserial_arduino>
|   |-- <Wire> v1.0
|   |-- <openag_atlas_ec>
|   |   |-- <rosserial_arduino>
|   |   |-- <Wire> v1.0
Compiling .pioenvs/megaatmega2560/src/src.ino.o
Archiving .pioenvs/megaatmega2560/libFrameworkArduinoVariant.a
Indexing .pioenvs/megaatmega2560/libFrameworkArduinoVariant.a
Compiling .pioenvs/megaatmega2560/FrameworkArduino/CDC.o
Compiling .pioenvs/megaatmega2560/FrameworkArduino/HardwareSerial.o
Compiling .pioenvs/megaatmega2560/FrameworkArduino/HardwareSerial0.o
In file included from lib/rosserial_arduino_libs/ros.h:38:0,
from /home/pi/catkin_ws/src/openag_brain/firmware/src/src.ino:15:
lib/rosserial_arduino_libs/ros/node_handle.h: In instantiation of 'int ros::NodeHandle_<Hardware, MAX_SUBSCRIBERS, MAX_PUBLISHERS, INPUT_SIZE, OUTPUT_SIZE>::publish(int, const ros::Msg*) [with Hardware = ArduinoHardware; int MAX_SUBSCRIBERS = 25; int MAX_PUBLISHERS = 25; int INPUT_SIZE = 512; int OUTPUT_SIZE = 512]':
lib/rosserial_arduino_libs/ros/node_handle.h:297:39:   required from 'void ros::NodeHandle_<Hardware, MAX_SUBSCRIBERS, MAX_PUBLISHERS, INPUT_SIZE, OUTPUT_SIZE>::requestSyncTime() [with Hardware = ArduinoHardware; int MAX_SUBSCRIBERS = 25; int MAX_PUBLISHERS = 25; int INPUT_SIZE = 512; int OUTPUT_SIZE = 512]'
lib/rosserial_arduino_libs/ros/node_handle.h:227:35:   required from 'int ros::NodeHandle_<Hardware, MAX_SUBSCRIBERS, MAX_PUBLISHERS, INPUT_SIZE, OUTPUT_SIZE>::spinOnce() [with Hardware = ArduinoHardware; int MAX_SUBSCRIBERS = 25; int MAX_PUBLISHERS = 25; int INPUT_SIZE = 512; int OUTPUT_SIZE = 512]'
/home/pi/catkin_ws/src/openag_brain/firmware/src/src.ino:192:15:   required from here
lib/rosserial_arduino_libs/ros/node_handle.h:441:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i =5; i<l+7; i++)
^
Compiling .pioenvs/megaatmega2560/FrameworkArduino/HardwareSerial1.o
Compiling .pioenvs/megaatmega2560/FrameworkArduino/HardwareSerial2.o
Compiling .pioenvs/megaatmega2560/FrameworkArduino/HardwareSerial3.o
Compiling .pioenvs/megaatmega2560/FrameworkArduino/IPAddress.o
Compiling .pioenvs/megaatmega2560/FrameworkArduino/PluggableUSB.o
Compiling .pioenvs/megaatmega2560/FrameworkArduino/Print.o
Compiling .pioenvs/megaatmega2560/FrameworkArduino/Stream.o
Compiling .pioenvs/megaatmega2560/FrameworkArduino/Tone.o
Compiling .pioenvs/megaatmega2560/FrameworkArduino/USBCore.o
Compiling .pioenvs/megaatmega2560/FrameworkArduino/WInterrupts.o
Compiling .pioenvs/megaatmega2560/FrameworkArduino/WMath.o
Compiling .pioenvs/megaatmega2560/FrameworkArduino/WString.o
Compiling .pioenvs/megaatmega2560/FrameworkArduino/_wiring_pulse.o
Compiling .pioenvs/megaatmega2560/FrameworkArduino/abi.o
Compiling .pioenvs/megaatmega2560/FrameworkArduino/hooks.o
Compiling .pioenvs/megaatmega2560/FrameworkArduino/main.o
Compiling .pioenvs/megaatmega2560/FrameworkArduino/new.o
Compiling .pioenvs/megaatmega2560/FrameworkArduino/wiring.o
Compiling .pioenvs/megaatmega2560/FrameworkArduino/wiring_analog.o
Compiling .pioenvs/megaatmega2560/FrameworkArduino/wiring_digital.o
Compiling .pioenvs/megaatmega2560/FrameworkArduino/wiring_pulse.o
Compiling .pioenvs/megaatmega2560/FrameworkArduino/wiring_shift.o
Archiving .pioenvs/megaatmega2560/lib/libopenag_firmware_module.a
Compiling .pioenvs/megaatmega2560/lib/rosserial_arduino_libs/duration.o
Indexing .pioenvs/megaatmega2560/lib/libopenag_firmware_module.a
Compiling .pioenvs/megaatmega2560/lib/rosserial_arduino_libs/time.o
Compiling .pioenvs/megaatmega2560/lib/Wire/Wire.o
Archiving .pioenvs/megaatmega2560/libFrameworkArduino.a
Archiving .pioenvs/megaatmega2560/lib/librosserial_arduino_libs.a
Indexing .pioenvs/megaatmega2560/libFrameworkArduino.a
Compiling .pioenvs/megaatmega2560/lib/Wire/utility/twi.o
Indexing .pioenvs/megaatmega2560/lib/librosserial_arduino_libs.a
Compiling .pioenvs/megaatmega2560/lib/openag_am2315/openag_am2315.o
Compiling .pioenvs/megaatmega2560/lib/openag_tone_actuator/openag_tone_actuator.o
Compiling .pioenvs/megaatmega2560/lib/openag_doser_pump/openag_doser_pump.o
lib/openag_tone_actuator/openag_tone_actuator.cpp: In member function 'virtual void ToneActuator::update()':
lib/openag_tone_actuator/openag_tone_actuator.cpp:19:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if ((curr_time - _last_cmd) > _shutoff_ms) {
^
Archiving .pioenvs/megaatmega2560/lib/libWire.a
Indexing .pioenvs/megaatmega2560/lib/libWire.a
Archiving .pioenvs/megaatmega2560/lib/libopenag_tone_actuator.a
Archiving .pioenvs/megaatmega2560/lib/libopenag_am2315.a
Archiving .pioenvs/megaatmega2560/lib/libopenag_doser_pump.a
Compiling .pioenvs/megaatmega2560/lib/openag_pulse_actuator/openag_pulse_actuator.o
Indexing .pioenvs/megaatmega2560/lib/libopenag_tone_actuator.a
Indexing .pioenvs/megaatmega2560/lib/libopenag_doser_pump.a
Indexing .pioenvs/megaatmega2560/lib/libopenag_am2315.a
lib/openag_pulse_actuator/openag_pulse_actuator.cpp: In member function 'void PulseActuator::set_cmd(std_msgs::Bool)':
lib/openag_pulse_actuator/openag_pulse_actuator.cpp:28:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if ((curr_time - _last_cmd) > _update_ms) { // Only pulse once every update_ms
^
Compiling .pioenvs/megaatmega2560/lib/openag_air_flush/openag_air_flush.o
Compiling .pioenvs/megaatmega2560/lib/OneWire_ID1/OneWire.o
Compiling .pioenvs/megaatmega2560/lib/DallasTemperature_ID54/DallasTemperature.o
Archiving .pioenvs/megaatmega2560/lib/libopenag_pulse_actuator.a
Indexing .pioenvs/megaatmega2560/lib/libopenag_pulse_actuator.a
Archiving .pioenvs/megaatmega2560/lib/libOneWire_ID1.a
Archiving .pioenvs/megaatmega2560/lib/libDallasTemperature_ID54.a
Archiving .pioenvs/megaatmega2560/lib/libopenag_air_flush.a
Indexing .pioenvs/megaatmega2560/lib/libOneWire_ID1.a
Indexing .pioenvs/megaatmega2560/lib/libDallasTemperature_ID54.a
Indexing .pioenvs/megaatmega2560/lib/libopenag_air_flush.a
Compiling .pioenvs/megaatmega2560/lib/openag_ds18b20/openag_ds18b20.o
Compiling .pioenvs/megaatmega2560/lib/openag_binary_actuator/openag_binary_actuator.o
Compiling .pioenvs/megaatmega2560/lib/openag_binary_sensor/openag_binary_sensor.o
Compiling .pioenvs/megaatmega2560/lib/openag_atlas_ph/openag_atlas_ph.o
Archiving .pioenvs/megaatmega2560/lib/libopenag_ds18b20.a
lib/openag_binary_actuator/openag_binary_actuator.cpp: In member function 'virtual void BinaryActuator::update()':
lib/openag_binary_actuator/openag_binary_actuator.cpp:25:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if ((curr_time - _last_cmd) > _shutoff_ms) {
^
Indexing .pioenvs/megaatmega2560/lib/libopenag_ds18b20.a
lib/openag_atlas_ph/openag_atlas_ph.cpp: In member function 'void AtlasPh::set_midpoint_calibration(std_msgs::Float32)':
lib/openag_atlas_ph/openag_atlas_ph.cpp:42:40: warning: format '%f' expects argument of type 'double', but argument 3 has type 'float' [-Wformat=]
sprintf(buf, "Cal,mid,%.2f", msg.data);
^
lib/openag_atlas_ph/openag_atlas_ph.cpp: In member function 'void AtlasPh::set_lowpoint_calibration(std_msgs::Float32)':
lib/openag_atlas_ph/openag_atlas_ph.cpp:50:40: warning: format '%f' expects argument of type 'double', but argument 3 has type 'float' [-Wformat=]
sprintf(buf, "Cal,low,%.2f", msg.data);
^
lib/openag_atlas_ph/openag_atlas_ph.cpp: In member function 'void AtlasPh::set_highpoint_calibration(std_msgs::Float32)':
lib/openag_atlas_ph/openag_atlas_ph.cpp:58:41: warning: format '%f' expects argument of type 'double', but argument 3 has type 'float' [-Wformat=]
sprintf(buf, "Cal,high,%.2f", msg.data);
^
Compiling .pioenvs/megaatmega2560/lib/openag_pwm_actuator/openag_pwm_actuator.o
Archiving .pioenvs/megaatmega2560/lib/libopenag_binary_sensor.a
Archiving .pioenvs/megaatmega2560/lib/libopenag_binary_actuator.a
Archiving .pioenvs/megaatmega2560/lib/libopenag_atlas_ph.a
Indexing .pioenvs/megaatmega2560/lib/libopenag_binary_sensor.a
Indexing .pioenvs/megaatmega2560/lib/libopenag_binary_actuator.a
Indexing .pioenvs/megaatmega2560/lib/libopenag_atlas_ph.a
Compiling .pioenvs/megaatmega2560/lib/openag_atlas_ec/openag_atlas_ec.o
Compiling .pioenvs/megaatmega2560/lib/openag_mhz16/NDIR_I2C.o
Compiling .pioenvs/megaatmega2560/lib/openag_mhz16/openag_mhz16.o
lib/openag_atlas_ec/openag_atlas_ec.cpp: In member function 'void AtlasEc::set_single_calibration(std_msgs::Float32)':
lib/openag_atlas_ec/openag_atlas_ec.cpp:52:40: warning: format '%f' expects argument of type 'double', but argument 3 has type 'float' [-Wformat=]
sprintf(buf, "Cal,one,%.2f", msg.data);
^
lib/openag_atlas_ec/openag_atlas_ec.cpp: In member function 'void AtlasEc::set_lowpoint_calibration(std_msgs::Float32)':
lib/openag_atlas_ec/openag_atlas_ec.cpp:60:40: warning: format '%f' expects argument of type 'double', but argument 3 has type 'float' [-Wformat=]
sprintf(buf, "Cal,low,%.2f", msg.data);
^
lib/openag_atlas_ec/openag_atlas_ec.cpp: In member function 'void AtlasEc::set_highpoint_calibration(std_msgs::Float32)':
lib/openag_atlas_ec/openag_atlas_ec.cpp:68:41: warning: format '%f' expects argument of type 'double', but argument 3 has type 'float' [-Wformat=]
sprintf(buf, "Cal,high,%.2f", msg.data);
^
Archiving .pioenvs/megaatmega2560/lib/libopenag_pwm_actuator.a
Archiving .pioenvs/megaatmega2560/lib/libopenag_atlas_ec.a
Indexing .pioenvs/megaatmega2560/lib/libopenag_pwm_actuator.a
Indexing .pioenvs/megaatmega2560/lib/libopenag_atlas_ec.a
Archiving .pioenvs/megaatmega2560/lib/libopenag_mhz16.a
Indexing .pioenvs/megaatmega2560/lib/libopenag_mhz16.a
Linking .pioenvs/megaatmega2560/firmware.elf
Checking program size
text       data     bss     dec     hex filename
32088      2550    2517   37155    9123 .pioenvs/megaatmega2560/firmware.elf
Building .pioenvs/megaatmega2560/firmware.hex
Looking for upload port...

Warning! Please install `99-platformio-udev.rules` and check that your board's PID and VID are listed in the rules.
https://raw.githubusercontent.com/platformio/platformio/develop/scripts/99-platformio-udev.rules
Auto-detected: /dev/ttyACM0
Uploading .pioenvs/megaatmega2560/firmware.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9801 (probably m2560)
avrdude: reading input file ".pioenvs/megaatmega2560/firmware.hex"
avrdude: writing flash (34638 bytes):

Writing | ################################################## | 100% 6.13s

avrdude: 34638 bytes of flash written
avrdude: verifying flash memory against .pioenvs/megaatmega2560/firmware.hex:
avrdude: load data flash data from input file .pioenvs/megaatmega2560/firmware.hex:
avrdude: input file .pioenvs/megaatmega2560/firmware.hex contains 34638 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 4.46s

avrdude: verifying ...
avrdude: 34638 bytes of flash verified

avrdude: safemode: Fuses OK (E:FD, H:D8, L:FF)

avrdude done.  Thank you.

======================= [SUCCESS] Took 146.02 seconds =======================

Then when I run the next command I definitely get an error:

pi@brain:~ $ rosrun openag_brain main --screen personal_food_computer_v2.launch
Initializing the database
Applying CouchDB configuration  [####################################]  100%
Creating databases  [####################################]  100%
Pushing design documents
Spawning software modules
... logging to /home/pi/.ros/log/28d0258c-478e-11e7-8216-b827eb98d052/roslaunch-brain-2890.log

started roslaunch server http://brain:41985/

SUMMARY
========

PARAMETERS
 * /arduino_handler/serial_port: /dev/ttyACM0
 * /categories: ['sensors', 'actu...
 * /environments/environment_1/aerial_image/autofocus: False
 * /environments/environment_1/aerial_image/brightness: 32
 * /environments/environment_1/aerial_image/camera_frame_id: head_camera
 * /environments/environment_1/aerial_image/camera_info_url:
 * /environments/environment_1/aerial_image/camera_name: head_camera
 * /environments/environment_1/aerial_image/contrast: 32
 * /environments/environment_1/aerial_image/focus: 51
 * /environments/environment_1/aerial_image/framerate: 1
 * /environments/environment_1/aerial_image/image_height: 1024
 * /environments/environment_1/aerial_image/image_width: 1280
 * /environments/environment_1/aerial_image/io_method: mmap
 * /environments/environment_1/aerial_image/pixel_format: mjpeg
 * /environments/environment_1/aerial_image/saturation: 32
 * /environments/environment_1/aerial_image/sharpness: 22
 * /environments/environment_1/aerial_image/video_device: /dev/video0
     * /environments/environment_1/aerial_saver/filename_format: /var/www/html/img...
 * /environments/environment_1/air_flush_on_controller_1/variable: air_flush_on
 * /environments/environment_1/air_temperature_controller_1/Kd: 0.0
 * /environments/environment_1/air_temperature_controller_1/Ki: 0.0
 * /environments/environment_1/air_temperature_controller_1/Kp: 1.0
 * /environments/environment_1/air_temperature_controller_1/deadband_width: 0.5
 * /environments/environment_1/air_temperature_controller_1/lower_limit: -1.0
 * /environments/environment_1/air_temperature_controller_1/upper_limit: 1.0
 * /environments/environment_1/air_temperature_controller_1/variable: air_temperature
 * /environments/environment_1/air_temperature_controller_1/windup_limit: 1000.0
 * /environments/environment_1/image_persistence_1/min_update_interval: 3600
 * /environments/environment_1/light_controller_blue_1/variable: light_intensity_blue
 * /environments/environment_1/light_controller_red_1/variable: light_intensity_red
 * /environments/environment_1/light_controller_white_1/variable: light_intensity_w...
 * /environments/environment_1/nutrient_flora_duo_a_controller_1/variable: nutrient_flora_duo_a
 * /environments/environment_1/nutrient_flora_duo_b_controller_1/variable: nutrient_flora_duo_b
 * /environments/environment_1/sensor_persistence_1/max_update_interval: 600
 * /environments/environment_1/sensor_persistence_1/min_update_interval: 5
 * /environments/environment_1/video_writer_1/timelapse_scaling_factor: 86400
 * /environments/environment_1/water_level_high_controller_1/variable: water_level_high
 * /environments/environment_1/water_potential_hydrogen_controller_1/Kd: 0.0
 * /environments/environment_1/water_potential_hydrogen_controller_1/Ki: 0.0
 * /environments/environment_1/water_potential_hydrogen_controller_1/Kp: 1.0
 * /environments/environment_1/water_potential_hydrogen_controller_1/deadband_width: 0.5
 * /environments/environment_1/water_potential_hydrogen_controller_1/lower_limit: -1.0
 * /environments/environment_1/water_potential_hydrogen_controller_1/upper_limit: 1.0
 * /environments/environment_1/water_potential_hydrogen_controller_1/variable: water_potential_h...
 * /environments/environment_1/water_potential_hydrogen_controller_1/windup_limit: 1000.0
 * /firmware_module: [{'environment': ...
 * /firmware_module_type: [{'description': ...
 * /rosdistro: indigo
 * /rosversion: 1.11.21
 * /var_types/camera_variables/aerial_image/description: Image from above ...
 * /var_types/camera_variables/aerial_image/name: aerial_image
 * /var_types/camera_variables/aerial_image/units: png
 * /var_types/camera_variables/frontal_image/description: Image from in fro...
 * /var_types/camera_variables/frontal_image/name: frontal_image
 * /var_types/camera_variables/frontal_image/units: png
 * /var_types/environment_variables/air_carbon_dioxide/description: The amount of Car...
 * /var_types/environment_variables/air_carbon_dioxide/name: air_carbon_dioxide
 * /var_types/environment_variables/air_carbon_dioxide/type: std_msgs/Float64
 * /var_types/environment_variables/air_carbon_dioxide/units: ppm
 * /var_types/environment_variables/air_flush_on/description: Turn on air flush...
 * /var_types/environment_variables/air_flush_on/name: air_flush_on
 * /var_types/environment_variables/air_flush_on/type: std_msgs/Float64
 * /var_types/environment_variables/air_humidity/description: A measure of the ...
 * /var_types/environment_variables/air_humidity/name: air_humidity
 * /var_types/environment_variables/air_humidity/type: std_msgs/Float64
 * /var_types/environment_variables/air_humidity/units: percent relative
 * /var_types/environment_variables/air_temperature/description: Temperature of th...
 * /var_types/environment_variables/air_temperature/name: air_temperature
 * /var_types/environment_variables/air_temperature/type: std_msgs/Float64
 * /var_types/environment_variables/air_temperature/units: degrees C
 * /var_types/environment_variables/light_illuminance/description: The intensity of ...
 * /var_types/environment_variables/light_illuminance/name: light_illuminance
 * /var_types/environment_variables/light_illuminance/type: std_msgs/Float64
 * /var_types/environment_variables/light_illuminance/units: lux
 * /var_types/environment_variables/light_intensity_blue/description: The intensity set...
 * /var_types/environment_variables/light_intensity_blue/name: light_intensity_blue
 * /var_types/environment_variables/light_intensity_blue/type: std_msgs/Float64
 * /var_types/environment_variables/light_intensity_blue/units: percent relative
 * /var_types/environment_variables/light_intensity_red/description: The intensity set...
 * /var_types/environment_variables/light_intensity_red/name: light_intensity_red
 * /var_types/environment_variables/light_intensity_red/type: std_msgs/Float64
 * /var_types/environment_variables/light_intensity_red/units: percent relative
 * /var_types/environment_variables/light_intensity_white/description: The intensity set...
 * /var_types/environment_variables/light_intensity_white/name: light_intensity_w...
 * /var_types/environment_variables/light_intensity_white/type: std_msgs/Float64
 * /var_types/environment_variables/light_intensity_white/units: percent relative
 * /var_types/environment_variables/nutrient_flora_duo_a/description: FloraDuo nutrient A
 * /var_types/environment_variables/nutrient_flora_duo_a/name: nutrient_flora_duo_a
 * /var_types/environment_variables/nutrient_flora_duo_a/type: std_msgs/Float64
 * /var_types/environment_variables/nutrient_flora_duo_b/description: FloraDuo nutrient B
 * /var_types/environment_variables/nutrient_flora_duo_b/name: nutrient_flora_duo_b
 * /var_types/environment_variables/nutrient_flora_duo_b/type: std_msgs/Float64
 * /var_types/environment_variables/water_dissolved_oxygen/description: A measure of the ...
 * /var_types/environment_variables/water_dissolved_oxygen/name: water_dissolved_o...
 * /var_types/environment_variables/water_dissolved_oxygen/type: std_msgs/Float64
 * /var_types/environment_variables/water_dissolved_oxygen/units: mg/L
 * /var_types/environment_variables/water_electrical_conductivity/description: Electrical conduc...
 * /var_types/environment_variables/water_electrical_conductivity/name: water_electrical_...
 * /var_types/environment_variables/water_electrical_conductivity/type: std_msgs/Float64
 * /var_types/environment_variables/water_electrical_conductivity/units: uS/cm
 * /var_types/environment_variables/water_level_high/description: Is water above th...
 * /var_types/environment_variables/water_level_high/name: water_level_high
 * /var_types/environment_variables/water_level_high/type: std_msgs/Bool
 * /var_types/environment_variables/water_oxidation_reduction_potential/description: Oxidation-reducti...
 * /var_types/environment_variables/water_oxidation_reduction_potential/name: water_oxidation_r...
 * /var_types/environment_variables/water_oxidation_reduction_potential/type: std_msgs/Float64
 * /var_types/environment_variables/water_oxidation_reduction_potential/units: mV
 * /var_types/environment_variables/water_potential_hydrogen/description: Potential Hydroge...
 * /var_types/environment_variables/water_potential_hydrogen/name: water_potential_h...
 * /var_types/environment_variables/water_potential_hydrogen/type: std_msgs/Float64
 * /var_types/environment_variables/water_potential_hydrogen/units: pH
 * /var_types/environment_variables/water_temperature/description: Temperature of th...
 * /var_types/environment_variables/water_temperature/name: water_temperature
 * /var_types/environment_variables/water_temperature/type: std_msgs/Float64
 * /var_types/environment_variables/water_temperature/units: degrees C
 * /var_types/recipe_variables/recipe_end/description: Represents the en...
 * /var_types/recipe_variables/recipe_end/name: recipe_end
 * /var_types/recipe_variables/recipe_end/type: std_msgs/String
 * /var_types/recipe_variables/recipe_start/description: Represents the st...
 * /var_types/recipe_variables/recipe_start/name: recipe_start
 * /var_types/recipe_variables/recipe_start/type: std_msgs/String
 * /var_types/user_variables/marker/description: Marks some user-d...
 * /var_types/user_variables/marker/name: marker

NODES
  /
    api (openag_brain/api.py)
    arduino_handler (openag_brain/handle_arduino.py)
    expand_diagnostics (openag_brain/expand_diagnostics.py)
    sensor_info_publisher (openag_brain/sensor_info_publisher.py)
    topic_connector (openag_brain/topic_connector.py)
  /environments/environment_1/
    aerial_image (usb_cam/usb_cam_node)
    aerial_saver (image_view/image_saver)
    air_flush_on_controller_1 (openag_brain/direct_controller.py)
    air_temperature_controller_1 (openag_brain/pid.py)
    image_persistence_1 (openag_brain/image_persistence.py)
    light_controller_blue_1 (openag_brain/direct_controller.py)
    light_controller_red_1 (openag_brain/direct_controller.py)
    light_controller_white_1 (openag_brain/direct_controller.py)
    nutrient_flora_duo_a_controller_1 (openag_brain/direct_controller.py)
    nutrient_flora_duo_b_controller_1 (openag_brain/direct_controller.py)
    recipe_handler_1 (openag_brain/recipe_handler.py)
    sensor_persistence_1 (openag_brain/sensor_persistence.py)
    topic_filter_1 (openag_brain/topic_filter.py)
    video_writer_1 (openag_brain/video_writer.py)
    water_level_high_controller_1 (openag_brain/linear_controller.py)
    water_potential_hydrogen_controller_1 (openag_brain/pid.py)

auto-starting new master
process[master]: started with pid [2901]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 28d0258c-478e-11e7-8216-b827eb98d052
process[rosout-1]: started with pid [2914]
started core service [/rosout]
process[environments/environment_1/water_level_high_controller_1-2]: started with pid [2931]
process[environments/environment_1/water_potential_hydrogen_controller_1-3]: started with pid [2932]
process[environments/environment_1/topic_filter_1-4]: started with pid [2933]
process[environments/environment_1/air_temperature_controller_1-5]: started with pid [2934]
process[environments/environment_1/recipe_handler_1-6]: started with pid [2935]
process[environments/environment_1/video_writer_1-7]: started with pid [2936]
process[environments/environment_1/image_persistence_1-8]: started with pid [2937]
process[environments/environment_1/light_controller_red_1-9]: started with pid [2940]
process[environments/environment_1/light_controller_blue_1-10]: started with pid [2941]
process[environments/environment_1/light_controller_white_1-11]: started with pid [2945]
process[environments/environment_1/nutrient_flora_duo_a_controller_1-12]: started with pid [2947]
process[environments/environment_1/nutrient_flora_duo_b_controller_1-13]: started with pid [2950]
process[environments/environment_1/air_flush_on_controller_1-14]: started with pid [2961]
[INFO] [WallTime: 1496406160.109196] Filtering topic light_intensity_blue/raw to topic light_intensity_blue/measured
process[environments/environment_1/sensor_persistence_1-15]: started with pid [2976]
[INFO] [WallTime: 1496406160.178818] Filtering topic water_oxidation_reduction_potential/raw to topic water_oxidation_reduction_potential/measured
[INFO] [WallTime: 1496406160.299366] Filtering topic air_flush_on/raw to topic air_flush_on/measured
[INFO] [WallTime: 1496406160.403021] Filtering topic water_electrical_conductivity/raw to topic water_electrical_conductivity/measured
process[environments/environment_1/aerial_saver-16]: started with pid [3003]
[INFO] [WallTime: 1496406160.596031] Filtering topic nutrient_flora_duo_b/raw to topic nutrient_flora_duo_b/measured
[INFO] [WallTime: 1496406160.686415] Filtering topic water_potential_hydrogen/raw to topic water_potential_hydrogen/measured
process[environments/environment_1/aerial_image-17]: started with pid [3021]
[INFO] [WallTime: 1496406160.816985] Filtering topic nutrient_flora_duo_a/raw to topic nutrient_flora_duo_a/measured
[INFO] [WallTime: 1496406160.932266] Filtering topic water_dissolved_oxygen/raw to topic water_dissolved_oxygen/measured
[INFO] [WallTime: 1496406161.029205] Filtering topic water_level_high/raw to topic water_level_high/measured
process[expand_diagnostics-18]: started with pid [3036]
[INFO] [WallTime: 1496406161.135044] Filtering topic air_temperature/raw to topic air_temperature/measured
[INFO] [WallTime: 1496406161.296801] Filtering topic light_illuminance/raw to topic light_illuminance/measured
process[arduino_handler-19]: started with pid [3058]
[INFO] [WallTime: 1496406161.420933] Filtering topic air_humidity/raw to topic air_humidity/measured
[INFO] [WallTime: 1496406161.666955] Filtering topic light_intensity_white/raw to topic light_intensity_white/measured
process[api-20]: started with pid [3090]
[INFO] [WallTime: 1496406161.838792] Filtering topic air_carbon_dioxide/raw to topic air_carbon_dioxide/measured
[INFO] [WallTime: 1496406162.068465] Filtering topic light_intensity_red/raw to topic light_intensity_red/measured
process[topic_connector-21]: started with pid [3115]
[INFO] [WallTime: 1496406162.160803] Filtering topic water_temperature/raw to topic water_temperature/measured
process[sensor_info_publisher-22]: started with pid [3127]
[ INFO] [1496406165.441368396]: using default calibration URL
[ INFO] [1496406165.446655898]: camera calibration URL: file:///home/pi/.ros/camera_info/head_camera.yaml
[ INFO] [1496406165.462918820]: Unable to open camera calibration file [/home/pi/.ros/camera_info/head_camera.yaml]
[ WARN] [1496406165.466162644]: Camera calibration file /home/pi/.ros/camera_info/head_camera.yaml not found.
[ INFO] [1496406165.471247753]: Starting 'head_camera' (/dev/video0) at 1280x1024 via mmap (mjpeg) at 1 FPS
[INFO] [WallTime: 1496406166.007448] Starting to read from Arduino
[ WARN] [1496406166.679758175]: sharpness: Input/output error
VIDIOC_S_CTRL: failed: Input/output error

#39

When I run that ls -la command this is the return:

pi@brain:~ $ ls -la
total 48
drwxr-xr-x 8 pi   pi   4096 Jun  2 12:16 .
drwxr-xr-x 3 root root 4096 Apr 10 09:17 ..
-rw------- 1 pi   pi    485 Jun  2 09:21 .bash_history
-rw-r--r-- 1 pi   pi    220 Apr 10 09:17 .bash_logout
-rw-r--r-- 1 pi   pi   3546 Jun  2 11:18 .bashrc
drwxr-xr-x 5 pi   pi   4096 Jun  2 10:09 catkin_ws
drwxr-xr-x 3 pi   pi   4096 Jun  2 10:09 openag
drwxr-xr-x 2 pi   pi   4096 Jun  2 12:17 .openag
drwxr-xr-x 6 pi   pi   4096 Jun  2 11:20 pio_env
drwxr-xr-x 6 pi   pi   4096 Jun  2 12:18 .platformio
-rw-r--r-- 1 pi   pi    675 Apr 10 09:17 .profile
drwxr-xr-x 4 pi   pi   4096 Jun  2 12:22 .ros

#40

I’ll be able to look at this later today. Just a heads up that the current master branch in openag_brain is broken.

See here: NEW! - Recipes not starting/stopping

You have to revert the repo to get the recipe system to work.


#41

Hi @Webb.Peter! You’re up! Congratulations!

The scripts have a ton of warnings which you probably read and shouldn’t worry about. The errors at the end with the video camera can be solved by putting a fake calibration file in your home directory.

Here’s the fake file.

Use these commands to get it into your machine.

mkdir ~/.ros/camera_info/
cd ~/.ros/camera_info/
nano head_camera.yaml

Paste the contents of the file linked above in and save it with ctrl-x.

If you run the test command those “warns” will be gone now. The file is used for computer vision stuff so a fake one will do just fine for now. You’ll need to do the whole calibration thing with OPENCV when you want to do any computer vision work.

When you complete the rest of the steps the system will have a web ui available at http://brain.local:5984/app/_design/app/_rewrite

The camera won’t work ( see here ) and unless you detached head and jumped to an earlier than current version of the repo the recipe handler will be broken. I just learned ( in that other thread ) that they are discontinuing phased recipes. So download the recipe generator python script from github and become familiar with that to build your scripts until the new “phased” recipe becomes available.

Cheers!

J


OpenAg™ PFC v2.1 & openag_brain v1.0.0 Release
#42

@juhnke Thank you SO much for all of your help. I sincerely could not have done this without your continuous help throughout this process.

IT’S ALIVE:

Now to figure out these recipes, it doesn’t seem to want to load anything right yet, I’m reading through your posts now and haven’t really had any experience running them yet. We just sort of set up general greens on V1 and let it fly.

Thanks again for everyone’s help, I couldn’t have done this without the support of the community!

Peter.


#43

@juhnke and @Webb.Peter the simple format recipe still works.

Thanks,
Rob Baynes


#44

I don’t want to seem critical (we are extremely grateful to be early adopters), but at the same time, I do want to be a valuable guinea pig and provide feedback that improves the product. These are very important design decisions that have come up repeatedly while developing the MVP, as well as around the V1 PFC. Having answers to them would really help lead the communitys mod efforts and if the honest answer is “we didn’t have time” then perhaps these are great opportunities for us to help.

1. Why is the PFC not high pressure aeroponic? I see no reason why an aeroponic system couldn’t be used for the Food Computer. The way I see it the point of a PFC is to enable a user to create the best recipe possible. If it has been proven that aeroponics delivers the best results, why is it not a fundamental feature?
2. What is the goal PPFD for the lighting system? I have access to a PAR meter, and based upon my build (I’m fairly certain I have the lights on full power) I am only getting to about 64 μmol m-2 s-1 which is far too low for lettuce. I was only able to reach my goal of 200 μmol m-2 s-1 within 6 inches of the light panel.
3. What happened to Co2 Actuation? While I agree the V1 Co2 system wasn’t very effective I did appreciate the attempt and educational value of it. Co2 is perhaps one of the least manipulated variables in experiments I have seen, yet also has led to extremely promising results. I am planning to add on Co2 dosing to at least one of our V2’s. I’m curious if OpenAg is already experimenting with Co2 actuation so that I can continue in the same direction. I was planning on trying to utilize some sort of small Co2 cartridge (like for paintball or airsoft guns).
4. Why doesn’t the chiller also cool down reservoir temperature? Water temperature is critical especially when you have artificial lighting. According to many academic studies and even Caleb’s post here it is often ideal to lower the water temperature 10 degrees below the climate. It would seem like an additional value of having the entire chiller to not only control ambient air, but water as well.


#45

I’m not on the core team. I haven’t started growing using DWC yet so I’m not certain how easy it is. DWC doesn’t require spray systems which seems like a simpler approach. My suggestion is to contribute a branch that adds aeroponic support. There’s a ton of work to get it done, I’m sure.

The lights that come with PFC1 BoM are pretty impressive. I’m growing a potted tomato under them now and it’s doing well. Performing as well as it’s outside peers. It’s disappointing to hear that the new lights aren’t powerful enough.

I just wrote a note on the openag_brains dev team PR where they are deprecating the arduino to use the connections directly on the raspberry pi. The problem there is I’ll have to redevelop sensor code for the legacy PFC1 system to work on a different hardware configuration. (again)

My issue with the PFC1 system is the lack of cooling (looking to bridge that while we all wait for a unit from the OpenAg team), weak water sensors (the water sensors spec’d in PFC1 are not commercial grade), and the humidifier that was spec’d was significantly underpowered. Interestingly I’m not sure if there is a humidifier on the PFC2.

Do you have access to the fenome kits? I might be interested in jumping to the next generation instead of continuing to keep the PFC1 on life support.

Looking forward to your thoughts

J


#46

Again, my goal here is to not complain but rather to get a better understanding of the barriers faced when trying to make these modifications/improvements to the PFC. I have grown using DWC for quite some time, and agree that is is an easier system than aeroponics. That being said, it requires continuous monitoring of PH/EC, weekly reservoir changes, and wastes significantly more water/nutrient. Aeroponics offers a method of dosing the exact same formula of nutrient/PH balanced water to the nutrients in a very consistent way because it always runs drain to waste. I agree that DWC is easier than HPA, but I also think soil is easier than DWC. I am in the process of developing an aeroponic reservoir that should fit inside of the MVP and the V2.

@ferguman do you remember or can you check the PAR on your V1 PFC?

Very curious about what you’re looking into as solutions, for the MVP we just went with exhaust cooling.

There is no humidifier on the V2. [quote=“juhnke, post:45, topic:1819”]
Do you have access to the fenome kits? I might be interested in jumping to the next generation instead of continuing to keep the PFC1 on life support.
[/quote]

No, I honestly have had no contact with them or information that is more recent than Caleb’s post here awhile back.


#47

:grimacing: I broke it.

We have our second Food Computer Finished! I’m trying to load the code to it again and still unable to complete a Docker install, so I was using the guide you provided @juhnke to install from source.

Everything was fine and dandy, I completed the ./scripts/install_dev command and only got this error, I’d honestly like to try and install the OpenCV, is there a way to do that yet, or at least eliminate this error?:

I got this error before though on the first build, but even though I still don’t have that camera working I was able to complete the install. That is not the case now though, on the very next step after the install when I try and activate the ROS environment I get this error:

 pi@techshopv2:~ $ source ~/catkin_ws/devel_isolated/setup.bash
 -bash: /home/pi/catkin_ws/devel_isolated/setup.bash: No such file or directory

I can’t seem to find a devel_isolated file, or as it’s cited here in the github readme just the devel file, I even ran a search for it and only got this record which I’m fairly certain isn’t right and didn’t run when I tried.

Any help would be appreciated. I’ve tried to read about creating workspaces but from what I understand the devel_isolated file should have created itself, and I noticed there are lots of new updates in the GitHub, so I feel like something may have changed and not be documented.


Error with docker-compose up
#48

It looks like your build failed mid-setup. I’d wipe you catkin_ws folder and start again. It’s new that rosdep requires openCV. @spaghet may have insight into that.

I would recommend rolling back your openag_brain version to the one I know as last stable with these commands:

cd ~/catkin_ws/src/openag_brain/

git checkout 9bd7bd6b870a833c4c0cc52d3b0eff7a551716d6

git branch

You should see after the branch command:

pi@tangerine:~/catkin_ws/src/openag_brain $ git branch
* (detached from 9bd7bd6)
  master
pi@tangerine:~/catkin_ws/src/openag_brain $ 

The master branch has been broken for a while now. The guys are refactoring the recipe handler and some other cool stuff. Again maybe @spaghet may know what’s up there.

Cheers,

J