Saturday, March 16, 2013

Advanced Azure Mobile Services

Click here for the materials presented in my Advanced Azure Mobile Services Talk

This talk will create a very simple AMS cloud based system that demonstrates the following technologies:

  • Data Storage
  • Authentication
  • Server Side Scripting
  • Push Notifications

The primary component of this demo will be on Windows 8, however the following other platforms will be included in the Demo

  • Windows Phone 8
  • iPhone
  • Android

-twb

Wednesday, February 27, 2013

Next Tampa Bay NETMF Meeting/Rise and Fall of NiVek QC4

For all of you that experienced the violent death of NiVek QC4 at the last NetMF meeting, I’m happy to report that with a fresh set of propellers, all the systems checked out and I’m ready to tempt fate again with all fingers still attached.

Our next meeting is scheduled for Thursday March 28th at the Microsoft Office with social/dinner starting at 6PM and formal talks starting at 6:30. Topic looks really interesting, Joseph Bisaillon, Lloyd Sparkes, Jordi Lucero, and Sean Dunford will be discussing “Zeo Mobile Sleep Manager” and the possibilities of lucid dreaming…I’m NOT going there! Randy will also being doing an intro to using a logic analyzer to build on some of the concepts that Tim started in the last meeting.

http://www.meetup.com/Tampa-Bay-NET-Microframeworks-Developer-Group/events/104804932/

I think starting in the April/May timeframe there has been a considerable amount of interest in Home Automation, we might try to start focusing our efforts on that and get back to the hands on approach we started in the first few meetings so start saving up for some hardware! Once we get a little closer, I’ll start putting together some shopping lists.

I promise no un-controlled flight of my quad…well at least I’ll do my best to get the 1’s and 0’s in the right order and test it a little more beforehand =D

clip_image001

-twb

Tuesday, February 19, 2013

Windows Phone/Windows 8 App Dev Study Group


Join us on March 7, 2013 at the Agile Thought office at 4PM for the kick off meeting for a new Study Group that is forming to build a Windows 8 and Windows Phone 8 application to serve the Florida Windows App developer community.

To signup for this please visit the new Tampa Windows Developer MeetUp group.
 
http://www.meetup.com/Tampa-Windows-App-Developers/

In the past we’ve created a Windows Phone 7 application where users can upload information about their apps to help publicize their what they are working on.  As part of this study group, we are going to start from scratch and build new versions for Windows Phone, Windows 8 using Azure Mobile Services.
 
You don’t need a lot of experience building Windows 8 or Windows Phone apps, but a background in building XAML based applications would be helpful.  You will however need Visual Studio 2012 and the Windows Phone 8 tools.

We probably won’t have enough time to finish the app over the course of the initial event but as part of the discussion we’ll figure out if we will do additional in-person meetings or try to complete this offline.
 
The technologies we will be using in this study group:
- Visual Studio 2012
- Windows Phone 8
- Windows 8
- XAML
- C#
- Cloud Technology
- Azure Mobile Services
- Team Foundation Server
- Push Notifications

-twb

Tuesday, January 29, 2013

Visual Studio 2012 – Phone Deployment Target Missing from Toolbar

I spent too much time on this one today, doing a quick post to potentially save others folks the struggle of figuring this out.

If you’ve used Visual Studio to build Windows Phone Apps you’re familiar with this menu, it basically let’s you pick either an emulator or a device where you want to publish your app.

image

I was searching high-and-low for this in my tool bar and settings and just couldn’t find it.  Then I remembered that I was launching both the Phone app and a service at the same time.  Basically I had my solution configured to launch multiple apps, really nice way to debug your phone and service in the same solution but this modifies your toolbar.

Setting this back to “Single Startup Project” resolved the issue.

 image

Hope this helps!

-twb

Wednesday, January 9, 2013

NiVek GO! QC3 – Status Update

I know it’s been a while since my last status update, but my free time is getting ever so scarce.  I think I can see the light at the end of the tunnel though.  I’ve came a long way since my measly little STM8S103 with a tiny bit of RAM and ROM and I’ve settled on the mighty SMT32F405.  This chip runs at 168Mhz, has tons of RAM and ROM and even has an FPU so I’m no longer scared into using fixed point math everywhere.

This chip is so powerful, my ultimate goal is to lay in a NETMF layer on top of the native C code controlling the Quad Copter.  Also, least we forget the initial early versions that were Netduino GO! modules, this board will also act as a GO! module as well.  One that itself is programmable via NETMF.  So bottom line is my current hardware platform will support the following configurations:

  • Stand-Alone, with either an RC Controller, a Windows Phone 8 or Windows 8 Front End.
  • Stand-Alone, but programmable in C# and controllable with RC/WP8/Windows 8
  • As a C# programmable GO! module with any of the features above.

This platform should provide a very interesting starting point to allow folks that don’t want to get in the mud of low level C and assembler programming the ability to highly customize the software.

In addition as you can see in the picture, I’ve came up with more options for telemetry.  This one uses a 900MHz radio to get get distance of 1KM+.  The other options available are WiFi, Bluetooth and XBee. 

image

Some additional “cool” things I’ve added to this new firmware:

  • Utilization of the FPU, this thing is FAST, and it also is really nice to work in float rather than scaled decimal for all the calculations.  It really cleans up the code
  • All the I2C communications with the sensors can be either sync or async.  In most cases in the past pulling the data from the sensors consisted of about 300-400 uSeconds of I2C communications followed by another 100 - 200 uSeconds seconds of processing. With the async and FPU, this went down to no time at all for the I2C transfer and usually 10-50 uSeconds.  I know a uSecond doesn’t sound like a very long time, but when you do things 200-400 times a second, well it adds up.
  • Using built in sensors FiFo (First-In, First-Out) buffers to really speed up the sample rate for the gyros and accelerometers.  These are now sampled at about 800Hz and the data pulled and processed at 200Hz.  This means each time the data is pulled we pull four samples.  This is why the async process for reading all those bytes via I2C is important.
  • I had another important realization for using the Gyros.  The Gyros read the rate of rotation, not the absolute angle/rotation, therefore the gyros outputs need to be integrated over time to get a good estimate.  In my prior version, I was maintaining the deltaT or time interval used for the integrator, this was even using a scaled decimal approach.  Basically use a timer to find the time between readings and use that as part of the integration.  With this version, I’m just using the sample rate from the gyro, that is to say if that device is internally reading values at 200Hz, my period for integration will always be 5ms, it will always be 5ms.  With an IRQ coming in, I can ensure I always can get a sample.  This is even more important with the FIFO.
  • Implemented the PID controller for all four things I care about, pitch, roll, heading and altitude.
  • Implemented a very clean complementary filter that is 100% configurable via the flight console in Windows 8
  • Implemented a generic filter method that can be configured on via the flight console to filter as either an LPF, Mean, or Moving Average.  This worked out really nice and can be used on any measurement in the sytem.
  • Almost everything in the application is considered a “sensor”.  Each sensor has a set of function pointers for different things like Start, Stop, Process, Init, etc.  Each sensor can also be configured with a sample rate.  This means each “sensor” can be treated as an abstract item that can be configured in a common way.  It’s really do some OO things in low level C.

Anyway, time to stop writing about software and continue to writing the software.  I’ve got everything I need coded, now it’s just time to desk-check everything and see if this thing actually flies.

Stay Tuned!

-twb

Monday, January 7, 2013

Christmas Present from my Dearest Wife

I just had to share this with everyone, my wife commissioned a bobble head for me and gave it to me for Christmas.

If you look closely you’ll see that I’m holding a WinRT Surface…boy she thought of all the details didn’t’ she?

image

-twb

New Years Resolution

I think I heard somewhere that making your new years resolution public can help make you stick to it.

I only have on new years resolution and I hope I can stick to it.

Starting in 2013, when I’m at home, I will only drink beer I brew myself

Since I just received my brew kit for Christmas, my first back is going through the aging process right now, so until then, I’ll have to drink what’s currently in the fridge.

I’ve got a batch of Nut Brown Ale bottled up from the picture below, but need to wait until later in the month to see how well (or bad) I did.

image

Up next is a batch of American IPA, but might be putting it in kegs rather than bottle it, so brew day is on hold until I get that sorted out.

Salute!

-twb