Eden of Things – Day 5


Job Done

Having had a worrying night hoping that the sensor we’d left in the Biome wasn’t going to catch fire due to water or ants, I arrived at the Eden Project with a sense of relief after seeing that all the Biomes were in tacked.

The final day was fully of frantic activity as each team worked their hardest ready for the critical customer demo, could we convince our audience that the prototype was good and we were worth investing in to complete the project?

The sensor team were the first with a problem, having added a digital thermometer the previous evening it became apparent that it wasn’t working just before the sensor station was placed in the Biome.  As I drove home I realised that the circuit board was missing a pull-up resistor, in our rush to get the board ready to go back out it had been forgotten.  So the first task was to recover the sensor station from the Biome and also fix the sensor station we didn’t deploy. The sensor station that had been in the Biome came back soaked in water and with ants in the moisture sensor, and it was dead. A worried team opened it up and removed the battery, it had discharged, we hadn’t got around to the power calculations yet.  A new battery and it was back to life. Resistors

Resistors added, it was back to the rain forest to get some live data for the UI team to work with. Then the real problems began.  Michael, from Eden, took a sensor station to the staff platform at the very top of the Biome – no small feat, a 150 step climb around the outside, climbing in through an access hatch and then climbing the steps.  As he made his way back down, Emo from the sensor team had a worried look, “I’m not seeing anything”.  Same with the sensor we had in our hands.  This was not looking good.  We tried to reset the stations and whilst it looked like they were working, the server wasn’t being passed any data.


Back in our base room, we started to work out what had happened, all that had changed was a new resistor, but first we reloaded code on to the processor, modified the code, changed the batteries, before eventually cutting the resistor out. Suddenly, the device sprung back into live, I’m still not sure what caused the problem, but there was something wrong with the resistor.  Both stations modified and we had run out of time to put them back into the Biome.  We needed on to display, the team also needed to start to prepare for the demo.

The core server team had a similar busy morning.  They still needed to get the data from the sensor team saving and then being passed to the ui-team.  Up until now the ui team had been being provided with dummy data. The team worked right upto and through the customer demo, eventually getting the data passing through just as the ui demo showed off the data visualisation.

The Big Demo

Eventually, the teams stopped and gathered round our group of VIP customers.  Each team presented what they had been doing throughout the week and demonstrated what they had developed.  All the teams did a great job.  Nobody enjoys the presentations, but having the opportunity to practice presenting to non-peers is really important.  Once the attendees are in work, the more confident they can appear to customers and colleagues the better, confidence only comes with experience and practice, so when we have an opportunity we have to make the most of it.  All of the team members tackled the presentation in the same way that they approached all the challenges of the week, with energy and enthusiasm, well-done everyone, you really were brilliant.

A BIG thank you to our VIPs, the Software Cornwall Committee, Paul (Bluefruit), Belinda and Olly (IBM), plus Bran from the Eden Education Team, Michael – Edens’ Horticultural Technologist, Cornwall Colleges IT team leader – Richard and finally, Steve, maker of Bert and Ernie and also the really annoying Change Driver system!


We finished with a retrospective covering the week using Allan Kellys Retrospective Dialogue Sheet.  This provided a great format for enabling the teams to reflect on the whole week and talk through the highs, the lows, the lessons they had learnt and how they could apply them in the future.

There is one team that have been truely amazing this week and deserve a special mention – the mentors. Ben, Paul, Andy, Byran and Pete, without you none of this would have been possible. Thank you for all hours of work that you have put in, your patience, your advice and your enthusiasm.

My Reflection

What started as an idea from a discussion with Edens Horticultural Technologist, Michael, the week had come into being after 6 months of planning and preparation. At the beginning of the week I had real concerns that none of it might work, but actually, as with life, it wasn’t really about the outcome, it was about the journey.

We tried to take the teams through a journey of discovery in understanding what it’s like to work as a software developer. I hoped to demonstrate:

  • Software development is hugely varied, from working soldering components, reading data sheets and trying to interact with physical devices to managing and processing data or designing attractive attention grabbing interfaces.
  • Software development is collaborative.  You have to work as a team; not just single team, but a team within teams.  Not only do you have to work in a team you have to be promiscuous and be prepared to move between and form new teams to solve the problem at hand.
  • Nobody is an expert.  The field of software development is so vast, you can’t expect to know everything. A career in software development is about constantly learning. This is a skill, that like any other skill, needs to be practised. One minute you are the expert and have deep knowledge, the next your are having to learn from a “junior”.  This requires an approach to live and work that isn’t predicated on hierarchy, superiority or a knowledge is power perspective, but instead, a shared learning environment where collaboration and shared learning dominate.
  • Software development is exciting. Enough said!

I think we achieved all of those and more. The retrospective sheets had the following brilliant learning points:

  • Split into 2 teams. The sensor team identified that sharing the workload into pairs worked for them.
  • System testing. The sensor team identified that they did this too late, they needed more intra-team communication and more testing with other teams.
  • WebServer.  The sensor team were pushed towards making the sensor webservers, this was different but a convenient way of performing diagnostics (well done me!)
  • Planning with other teams.  The core team identified they needed more communication intra-team.
  • Setup day. The core team felt a day of setup would have been beneficial.
  • Students to have course brief beforehand.
  • Use EMACS.  The core team were shown EMACS, how to customise and use it, to the point that they used it for their presentation!  Some of them intend to carry using it – well done Ben!
  • Learn Javascript.  The UI team identified that having a better knowledge of javascript and JQuery would be useful for a future career.
  • More Resources. The UI team were inspired to work at home and think additional resources would have helped them get further, but they also would have like to be in a position to be less reliant on the mentors.

What an amazing amount of learning, which really only just scratches the surface of what was discovered this week.  Did I mention the classroom?  The classroom was amazing, just a room, but a room with space, with art and stuff, it was bright and interesting and gave us a really creative space.  All classrooms should be like this – thank you Eden.

The project and two main aims, create a work-like experience for students, inspiring them to keep learning, and helping the Eden Project with (my interpretation of) their mission, to educate people about the importance of our planet, it’s ecosystems and the fragility of life. I think we managed both – well done everyone.

What’s next……

Well we have our monthly tech jams –

  • our monthly tech jams – here
  • Summer Huddle – here

And the links

I promised the links to the server.  Only the core team created a production server, you can see the output from the sensors here (the sensors aren’t live anymore):

The site will be live for another week or so.

The source code that the teams created can be found on GitHub: https://github.com/TheEdenOfThings

And our EdenOfThings website is here:






Eden of Things – Day 4



Two of our mentors were away today leaving me with the Senors team instead of Byran – what could possibly go wrong – with Andy and Pete working with the UI team.

So most of my notes today are from the sensor team.  The keen started eagerly, getting a Kanban board produced for the days efforts was tricky as Byran had left them with a plan, they had had a night to think about it and were desperate to get on and get some sensors in operation. They weren’t the only team, everybody was fired up, wanting to get on and make more progress as soon as possible.

The UI team now had data in the right shape from the server team and the server team had a data model which allowed them to start working on a data schema for persisting the data.

The sensors team had a busy day ahead of making and coding.  So far they had two sensors, light and temperature via a PCF8591 module but hadn’t managed to send data to the server team yet due to api end points not being ready. It didn’t take long and the had confirmed that data was being sent.

Meanwhile, the other half of the sensor team continued work on making up a sensor station with a prototyping board. After lots of checking, double checking, bending a few header pins due to clearance and a spot of resoldering after it became clear that two male connectors won’t connect.


Finally, the team had a sensor station with no need for any wires, powered by a small LIPO battery, the first version only had two sensors, but was ready to deploy!  A jubilant team was joined by Emo from the server team to ensure that when placed the sensor station was sending data back to the server. We had hoped to get to the top platform in the tropical biome, but with so many visitors, the staff were being kept busy and we could get up there, so had to settle for leaving the station on the highest point of the footpath.


A spot of lunch and it was all hands on deck trying to add more sensors and making additional stations.  By mid-afternoon the team had attached a further 3 sensors and smoked our first components!


Chris’s carefully hand work had one small flaw, once it had been spotted and the voltage regulator and power cables replaced we were close to having completed a second station.  The afternoon disappear with further board modifications to accept additional sensors and a spot of coding refactoring to make the code look beautiful – well acceptable when Byran looks tomorrow to see what I’ve been letting the team get away with.

We ended the date – late – by attempting to deploy to sensor stations into the tropical biome, as we walked across we realised that the code on one of the stations wasn’t working, in fact it wasn’t there, the ESP was acting as an Access Point, it’s default behavior rather that the teams code.  So by the end of the day, we were able to deploy one station over night.

The server team had a similarly busy day, providing diagnostic tools for the sensor team, working on an admin UI and getting very close to persisting the data.

The UI team have improved the look of their first screen and began work on a second screen to indicate where the sensors were deployed and consider how to show trend data.

It’s been another amazing day, can’t believe that we have to draw it to a close tomorrow.

Eden of Things – Day 3


Hot Stuff

It’s really starting to take shape today, code has been deployed to production servers, site surveys completed and sensor boards soldered.

Networking started to present an issue at the end of yesterday and this morning.  Whilst we could connect to the free wifi using the ESP8266 in the biomes and similarly connect the server in the project room, but there was no guarantee that the devices would be able to see each other, plus we didn’t have a static IP for the servers, we could see a whole morning being lost. Rather than waste time trying it investigating it, fault finding, confirming the problem and trying to find and work with the network team, we choose to get a hosted server on the internet.  This solution would mean it didn’t matter which network a device was on, as long as it could get to the internet it could report data.  10 mins later and we had two servers costing a whole $10 from DigitalOcean.  The added bonus was the teams got to practice building a server again and got to experience using a cloud hosted server, something they hadn’t done before. We’re not quite ready to share our great work yet, we’ll share the IP addresses of the servers later this week.

Meanwhile, the UI team finished converting static html to be dynamically generated in Javascript based upon data being ajax called in from the Core server.  More protocols to learn about, the default action of modern browsers is not to permit cross domain/server ajax calls, so a quick lesson on Cross Origin Resource Sharing(CORS) and a tweak of an .htaccess file and the team were pulling data from the server.  We debated whether we should be calling the data from the UI server as a proxy which loads it from the data server, this would overcome the CORS issue.  We decided for speed (not having to write more code on the UI server) we would go for the CORS route, it also meant that longer term, our API server could be used by others directly in the browser.


By the end of the day we had live data being updated on the webpage and setup a second TV outside of our base room with a Rapberry PI displaying the teams work to visitors – the teams work is on display to the paying public!

The team started with a quick retrospective, a short lesson on Kanban and they created a plan for the day. Once the server team had setup a new server in the cloud, they were able to get back to coding up the APIs, UI and Data logging.


Just in the nick of time at the end of the data the data logging endpoint was created ready for the sensors team to send data across the network to them.

Having provide that the team could read the input from a light sensor, the sensors team had a fun day of site surveys, coding and building. The first challenge was making the ESP8266 mobile by adding a voltage regulator and connecting it up to a LIPO battery.  A trip around the biomes and a hot and sweaty team came back confirming we could get connection! With Risk Assessments logged, Hot Works Forms submitted and smoke sensors deactivated, the soldering started. The team designed a generic board that could accept different combinations of sensors.


All was going well until it came to sloting in the ESP8266 and the sensors, only then did it become apparent the the ESP8266 format meant it covered the pins for the sensors – doh!  We’ll work around for the first sensor, but version 2 of the board will be slightly modified!


It’s been another great day, watching the teams interact with eachother, setup ad-hoc meetings and work out solutions to interaction problems. Feedback from the teams has been great, with one member even staying up all night learning watching arduino videos!

We’re hoping for sensors deployed into the Biome by tomorrow lunch……. (although we’re losing our key embedded software specialist and the team have got me and Pete to help get them live, eek!)


Eden of Things – Day 2


Making good progress

First task of the day was swapping out the Raspberry Pis from the sensors team and replacing them with x86 based machines. The compiler for the ESP8266 is x86 based and there is no Arm-based version that we could find, we could have rebuilt it, but it was more effort than pulling apart my office and bringing in my home computer and a spare that was being built as a Pi-Net server.

So we didn’t quite fit everything we wanted to into day 1.  It was really important that the teams had a chance to play with the technology and try a bit of coding, that meant we dropped on session on understanding source control using Git.  What better way to start a Tuesday than with a deep dive into source control, commits, merges, branches and detached heads. That is once we got started, we were slightly late today, as day 2 on the job and some of the teams rocked up late.

Once everybody was completely lost with git terminology, me included, the teams got into their respective tasks under the guidance of their mentors, Byran on Sensors, Ben on Core Systems and Paul on User Interface.  The teams had a steep learning curve, with most members having never experienced C, arduino, ESP8266, php, javascript, jquery, REST, etc, etc.  The mentors have been amazing, patiently leading and training the teams in everything from configuring a linux webserver, to building breadboard circuits and initialising SMART TVs. One problem I’ve experienced with teams is our culture doesn’t encourage enough celebration or recognition of achievement.  The teams here were no different.

One problem I’ve experienced with teams is our culture doesn’t encourage enough celebration or recognition of achievement.  The teams here were no different. As the teams started on their quests to master their allocate sub-system, little victories were silently occurring all the time, but you couldn’t tell.  The UI team had a little shout when then got the Smart TV to connect to their web server and display a page, but the sensor team managed to get an LED to flash on and off via the ESP8266 and there was nothing, not a whisper. This little victories are so important to celebrate, they enable the whole team to realise that we are making progress, they add an element of fun to proceedings and they make us feel good and bond as teams.  So with a little encouragement and praise we are making progress, there are more cheers happening all the time, we are starting to generate a buzz.

After a intense day of work we had our first show and tell at 3pm.  The UI team kicked off the presentations with a great looking screen with imagery they had created earlier in the day from around the biomes and some dummy data.  Finally, a round of applause and laughter, we’re making real progress, technically and socially.


The Core systems team followed up with a visual less impressive but fantastic technical achievement demonstrating a working php based REST server and an agreement API architecture – no small feat.  More applause.


Finally, the sensor team keep up the run of success, having moved on from the impressive display of a flashing LED, they showed how they had deployed a websever onto the ESP8266, connected to our sometimes flakey wifi and were able to get a reading from a light sensor on demand with a simple REST call. More applause and cheering!


All teams have proven the fundamentals of the system architecture, now to pull it together.

A review meeting decide the next steps, now we know that all the basic concept could work, was to look into the realities of the physical environment we want to deploy into.  Is there a wifi signal, how strong is it, where should we place the sensors.  We don’t want to continue developing new features until we can prove that we have a working architecture from end-to-end – a walking skeleton.

And that was pretty much it for day 2, everybody disappeared into the biomes, smart phones out measuring wifi signals and seeing how high up into the biomes that could get. The good news is they found wifi, whether it’s strong enough for the ESP8266 we’re not sure, we’ll find out tomorrow……..

Oh, and git, we’ve had some commits! https://github.com/TheEdenOfThings

Great work everybody!!!!

Eden of Things – Day 1


After 6 months of planning (honest there has been some planning), the first day of the Eden Of Things has arrived!

The Eden Project’s horticultural technologist, Michael Cutler, provided an idea based on measuring various aspects of the Eden Biomes with the aim of providing visitors with a different perspective on the Biomes lifecycle.

The Big Plan

Software Cornwall and Cornwall College are colloborating to provide a pilot solution for the Eden Project and work experience for students studying a computing degree.  We’ve setup a base room on site and will be here for 1 week creating a solution.

The solution comprises of three components:

  • a number of sensor stations that are free standing (no wires) based around an ESP8266.
  • a data collection and cataloguing server
  • a data presentation system able to consume the data from the data collection server and display it in interesting ways on a smart TV.

Day 1

The first day is all about induction, admin, team building and understanding the customers goals and context for the tasks. Not to mention getting all the base tech in place to enable the week to happen.

It takes a surprising amount of equipment to run the week, about an S-MAX full.  Luckily, although the Core building at the Eden Project is at the bottom of the site, we could get right to the door.

With a few last minute withdraws we ended up with 13 ready to start at 9.30am.  The day starts with the obligatory introductions and health and safety, then we get into the fun stuff.  Scrum tennis gets everybody talking and interacting.  It’s a great game, everytime I run it different things happen. What happened this time:

  • Individuals became a team.  They talked, interacted, focused on a problem.
  • We learnt that failure is OK.  The team tried different approaches don’t always work, but don’t discount ideas, give it a go, but be sure to limit it, control the risk by monitoring and discussing after a defined trial period – a sprint!
  • When we try something new, it should be expected that we will fail first time.  Round zero, the number of points produced was zero. Acting as a team, not allocating blame, but inspecting and adapting the process is key.
  • Look for the bottlenecks, externally motivation doesn’t make the machine work faster.  No amount of encouragement or pressure can make the team work faster.  We need to look at what is slowing us up and work out how to remove or reduce it’s effect.  In scrum tennis we moved closer together, formed a circle, etc.
  • Don’t be bullied into accepting unrealistic targets.  Calling them aspirational or anything else doesn’t make them achievable.  The team need to agree and set it’s targets based upon experience and knowledge of the task.  When pushed, don’t just accept a bigger target to please the customer, be realistic and set expectations at the beginning.

What a great list, learnt through experience, no amount of lecturing could have got these messages home with the effectiveness of this simple game.

Next up, after team allocations and setting up workstations, was a session on how to code.  The key messages were focus on testing, strive to do TTD and work as a team, use mob and pair programming.  The session was based upon the excellent http://cyber-dojo.org, testing Bluefruit’s Head of Development, Byran, by using php rather than his preference of c++.

With all the induction training done, the team earned the much coveted Software Cornwall polo shirt!  A spot of lunch and then a customer brief from Edens Horticultural Technologist, Michael Cutler.


The facts about what we – humans – are doing to our planet are stark, we’re all in this together and need to work together to look after our fragile planet and ensure it remains hospitable for our species.  This project’s real aim is to help with education, demonstrate the fragility and effect of variations upon the eco-system in the Biomes; ultimately to contribute to helping change visitors behaviour and make them more aware of they’re actions and choices and the effect this has upon our planet.  It’s a grand aim, but the team is looking forward to the challenge of using technology for good and seeing what insights can be gleaned and how we can help with the Eden Projects mission.

And they’re off!  The thinking and coding begins. Most of the day has already based, so there is only an hour or two left for getting the ground work done, links to GitHub established and user stories reviewed and plans produced.

Just enough time and the end of the day for our first retrospective.  The 4 L’s approach was taken to complete a 10 min retrospective.  Key findings:

  • We liked getting to code
  • We liked creating the team
  • We learnt about linux
  • We learnt about Raspberry Pis, Smart TVs and breadboard
  • We lacked tea and coffee
  • We lacked knowledge of PHP, linux
  • We longed for Raspberry Pis to be able to deploy code to the ESP-01
  • We longed for a tour of Eden

Some bits to fix for day two for the mentor and support team! Tea and coffee being number 1.

It was a great first day, many challenges cropped up, nearly all technical, but with a great mentoring team we managed to get everybody going.