Sunday, July 10, 2016

UDOO Neo Weather Station

I have been running my UDOO Neo solar powered in my shed for a while. I have been meaning to attach some bitcoin miners to it, just to support the network, since I am too far behind the curve with hardware to make any money off it. From what I read, the mining farms have taken over a whole hydroelectric dam somewhere in China.
Solar powered UDOO Neo
Anyway I finally got around to attaching the I2C bricks sensors that came with my UDOO Neo kit. There is an LM75 based temperature sensor and an MPL3115 based pressure/temperature sensor which can used an altimeter/barometer. These 2 sensors can be used to get some basic parameters for upload to Weather Underground or simply Thingspeak.

UDOO Neo with Sensor Bricks
The first set is grabbing the data from the sensors. The UDOO comes with modules to map the i2c devices to the linux device tree and fetch data from them by simple file reads, no I2C knowledge needed. I also found Tentacle Pi which is essentially an I2C multiple device driver library for Python. In my solution I ended up using a hybrid approach of direct i2c reads using Tentacle Pi and some /sys/ reads.
Results of i2c scan on channel 1
 The MPL3115 is read using the /sys/ method as shown in the gist below:
The LM75 is read using direct i2c and Tentacle Pi:
There is a few degrees of discrepancy between the 2 temperature readings, however I trust the temperature from the dedicated temperature sensor more. A simple test to show the data on console works fine.
Testing sensor bricks
From there it is a matter of pushing it out to Thingspeak to get a graph. I am looking at adding other sensors from the future bricks line or designing some myself using my I2C knowledge, particularly a wind speed sensor and a light sensor. The wind speed will help me determine if I can install a mini windmill generator and I can use the light data to correlate my solar panel output to solar intensity.

Wednesday, June 8, 2016

Kenya Trip 2016 - Magical Lamu

Arrving in Lamu on Flight 540
After about a week in Nairobi, Gichini and I decided to take a trip to Lamu to do get some R&R. Fly540 goes to Lamu almost every day and tickets are only about $100, the accommodation is cheap as well since the decline in the tourist trade due to the al shabab terrorist threat and abduction of westerners.As the article says Lamu is indeed a slice of paradise. Beautiful beaches, relaxed people and great food. I will try to keep this post low on words and let the pictures tell a story.

The Rasta men of Lamu
A lot of the people are ocean people. Fishing or transporting people in fibre glass boats with outboard motors or old school sailing dhows, a lot of which are made in Mozambique. One particular dhow was decked out with flags from multiple countries and had rastamen crewing it.
The beached dhow (made in Mozambique), prepping for a trip to Zanzibar
One of the downsides of the low tourist business is that we got approached by everybody who had something to sell. It made things affordable, but sometimes we overdid things a bit. On our walk from the airport ferry to the accommodation in Shela beach we met a guy who offered us fresh oysters. So we ended up with 4 dozen oysters for breakfast. The food overall was great, especially the fruits and seafood.
Oysters for breakfast

I took a day for a guided tour around Lamu old town. It has distinct Arab, Indian, Portuguese, Swahili sections. There are of course some modern areas as well. Building on an island is hard work, getting materials in and putting it together. A lot of the buildings are very old with marvellous hand crafted doors.
Old Wells

The Central Square
Some new buildings have replicated the old glamour and look like a set from a Medieval show (I am looking at you Game of Thrones).
New doors of old Lamu
The ocean seems to have crawled up and taken residence in the walls. Coral reefs have left their stamp.
Details in the coral lined walls
I took a day trip to a settlement from the 1500's with old walls and a secluded beach. Passed people from the Luo village quarrying limestone and coral by hand on the way.
Making charcoal the old school way
Quarrying for limestone
On the last day we took the boat back to the airport with friends we made on Shela beach. A glorious few days in an island paradise.I think I will go back as soon as I can.
On the boat back to the airport with Shay and Gichini
Beautiful isolated beaches on the Indian Ocean

Wednesday, May 18, 2016

More Energy monitoring - ATM90E26 Breakout

After designing and testing the ADE7763 based Energy Monitor Breakout Board, I started looking around for cheaper and more modern alternatives.I came across the Atmel ATM90E26 Smart Metering IC with dual communication options - UART/SPI and multiple metering modes (tamper proofing with current sensing on live and neutral). However the Evaluation Module (EVM) from Atmel is over-engineered and targeted at an enterprise audience. It is around $800 from Mouser Australia. I guess it needs to be so to comply with creepage/clearance requirements for handling 240V AC signals. This however puts it beyond the reach of a dabbler such as me.
Assembled ATM90E26 Reference design with low-voltage components

So I set about extracting the low-voltage only components from the Atmel Reference Design and placing them on a PCB. Atmel generously provided me with 3 sample IC's to go with my PCB's from OSHPark, thereby saving me around $750 in testing their IC.

Checking SPI mode - Mode 3 works
Then I went on the usual hunt for prior art in interfacing this code with a microcontroller and came across this post in /r/diyelectronics which interfaced the ATM90E26 to a Raspberry Pi. Ryzee sent me the code and assisted me in choosing the right SPI mode (mode 3 in this case) which lets a Teensy talk to the ATM90E26. The code is now available as an Arduino sketch.
ATM90E26 RMS Voltage mesurement test harness
I built a low-voltage test rig to see if the voltage ADC works okay and all seems to check out. Full blown Energy Measurement tests next. Meanwhile I have placed the couple of boards I have on Tindie to gauge interest for a larger batch. Let me know if you would like to test this modern Energy Monitor IC on the cheap.

Tuesday, April 5, 2016

Nikon Hotshoe IMU with Xadow Modules

Hotshoe GPS-IMU in enclosure
We take lots of oblique images from a helicopter for our high-resolution 3D modelling service - Aero3Dpro. While photogrammetry and aerotriangulation lets us establish the position and orientation of these photographs afterwards from a relatively poor initial GPS and no IMU, just after capture there is no indication how well an area is covered from different angles. This can be a pretty difficult proposition anyway, especially in the presence of narrow allies and tall buildings. However with a good initial GPS-IMU one could build a low resolution model of the city literally on the fly.

All the components that get packed into the GPS-IMU

So I set about building a system that fills this niche, a camera hotshoe mounted system with a reasonably accurate GPS and IMU. There are already a lot of existing Xadow modules which satisfy the requirements of the system. I just had to cook up a few more as described in a previous post to cater for the unique requirements for interfacing with the camera and logging the data.

  1. Xadow Barometer
  2. Xadow 9-DoF IMU (can be combined with 1 above in the new 10-DoF IMU)
  3. Xadow GPS  (the NMEA from the stock one does not agree with the Nikon so looking at a UBlox based version)
  4. Xadow OLED
  5. Xadow-M0 with MBed support
  6. SPI to Dual-UART with SC16IS752, this is necessary because the only available UART on the Xadow-M0 is consumed by the GPS. We need 2 more UART's to send data to BLE module and camera at 4800 Baud.
  7. Xadow BLE Module  
  8. Xadow SD for logging locally in case BLE connection is patchy or a non-Nikon camera is being used which does not allow geotagging over UART.
A lot can be done when all these modules come together to party, the mBed code is available here. The android app for receiving the GPS-IMU data over BLE and predicting the camera foot print is still in the works. If anyone wants to take the app development up as an excercise I can provide the source. In conclusion I must thank Kris Winer for excellent IMU test beds and sample codes which helped me get started down this path.
GPS-IMU on hotshoe mount
After all the electronics came the enclosure and hotshoe attachment system. I designed something rough in blender using a trace of the stacked PCB's and got it locally 3D printed by 3D Hubs and Andrew Karas. This mounts nicely on the hotshoe, but the openings for reset, USB and cable to camera are not neat, a more aligned box is in the works.

Tuesday, March 29, 2016

Kenya Trip 2016 - Bustling Nairobi

This year I decided to visit Nairobi and Kenya in general after a long hiatus. I was there last in 2009, just before my family moved back. Otherwise most of my formative years have been spent there and I have many fond memories. So this year I decided to bite the bullet and visit the long lost high school and family friends. Arriving in Nairobi and staying in Kilimani was an eye opener. So much has changed in half-a-dozen years. Kilimani used to be farmlands and forests, now it is crowded with high rise apartment buildings.
Had to work hard to get past the Askaris at M-Kopa
Several successful start-up are located here as well. I managed to visit M-Kopa (which manages to turn a profit while selling/loaning solar panels to the poorest people), BRCK which has built one of the worlds first completely sealed and mostly waterproof educational tablets thanks to Qi chargers.
Apartments are being built everywhere in Nairboi
The top floor of the same building houses iHub, a co-working space allowing freelancers and start-ups looking for contract workers to meet-up and work together. The view from iHub is amazing as well.
The view of Nairobi from iHub, with a little bit of the human element
Gearbox is downstairs from iHub, it is geared towards hardware start-ups with soldering microscopes, lathes, CNC mills and of course a mandatory 3D printer. It is run by former theater props maker, skilled in wood and other materials as well.

My former high school friends have got their university educations in country or overseas and are itching to move forward with business plans. There is an IBM research lab and a Bitcoin start-up called BitPesa working in the remittances arena. I took UberX everywhere and stayed at an AirBnB with fibre access (albeit intermittent power). It felt like being in a hybrid world.
Three men on a pole - standard overhead cable fixing practice
Overall it was a great eye opener in the way Nairobi has changed in the last decade. A place to keep on the radar for future movers and shakers.

Saturday, January 30, 2016

Getting started with CC3200 + Energia

Another month another Seeedstudio recipe contest. This time the star ingredient is the Texas Instruments CC3200. The rewards initially were quite lucrative as well, a chance to showcase my project at the TI booth in CES2016. However reality got in the way and I did not receive the boards from China and get my project together till CES madness was long over.
I had proposed a GPS-AHRS like solution I have developed using the Xadow M0 module. However this did not survive meeting the real hardware. Even though the Cortex-M4 on the CC3200 is more than capable of handling the sensor fusion I could not get my Arduino code ported to Energia. I ended up building a war driving tool with wifi scanner, gps and microsd logging. You can read about it in all the gory detail here on the Seeedstudio recipe page.

Overall coming to the CC3200 from the ESP8266 platform was quite pleasant. There will be a price shock for those actually buying the dev board, but I got mine for free as part of my entry so that removed one hurdle. The Cortex-M4 processor and multi-threading are quite powerful. However Energia could use a merge back into the main Arduino project using the platforms mechanism. It makes it easier on tinkerers like me who constantly switch between NodeMCU, Arduino, Teensy, Navspark, Udoo Neo and now the CC3200.

Wednesday, January 20, 2016

Extending Energy monitoring - ADS1115 Grove module and ADS1115 Featherwing

After selling a few kits and populated boards of the NodeMCU Energy Monitor on Tindie, I started receiving feedback from people in the real world using my design. One of the main requests was the ability to support more channels, the other was miniaturisation suitable for fitting in 1 or 2 unit DIN Rail enclosures.

I addressed the request for channels by developing my own energy monitoring specific ADS1115 breakout. In addition to the core IC it includes 3.5mm stereo sockets for connecting the popular YHDC CT sensor and a couple of Grove connectors for chaining multiple boards together. Using this mechanism and the core NodeMCU energy monitor, one can monitor upto 7 current channels.

The issue of miniaturization is adressed by choosing a smaller form factor and feature rich ESP8266 breakout, namely the Adafruit feather. As a side effect we gain access to all the other boards using the feather form factor and all the other stackable featherwings.

During the design of the Energy Monitor Featherwing I integrated the ADS1115 onto the same board instead of using a breakout  (switched to 0603 parts to make it more compact) and used an SMD version of the Recom 5V Buck converter.

The featherwing can be mounted with stackable connectors under the Adafruit feather. Leaving the top free for display OLED for realtime power display or just weather or bitcoin prices vs energy usage.