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!!!!