Archive for category Coding Outside The Box

Why pay $300 for a programmable Remote Control when you can make one yourself?

Pavel sent this to me a while ago, but I haven’t been keeping up.  You know those super expensive universal all in one programmable remotes?   Well he put together one all on his own, the great part is that he can can keep adding to it or tie it into other systems to work.  On his post below he shows how to take a simple IR LED and a Micro Framework board and create his own multisystem IR remote.  But once you do that, you’ve got the basis for LOTS of other stuff – add an RF transceiver and you’ve got a bridge/extender.  Add an IR photocell and you’ve got a learning remote.  Take advantage of the networking capability, and you’ve got a house controller that doesn’t have to be hard wired in any particular location…

Oh, and did I mention that Servos work off the same concept of pulse modulation?  No, I don’t have to, you’ve already figured that out!

http://bansky.net/blog/2009/04/microframework-device-controlled-via-tv-remote/

Tags: ,

Smart Environments/Green IT

Just uploaded the deck I used today at the Green IT sessions here in Austin – it’s a slightly modified version of my Nerd Night presentation that I had neglected to push up.  I’ll use this post as a placeholder for any comments or discussions as well.

Deck at Smart Environments

More links and posts on the Coding Outside the Box series coming up, but for right now you can follow the sensor tweets at www.twitter.com/philtweetlab.

The Embedded Processor Components (How, Pt 2)

This has been a long post in arriving.  Why?  I keep finding new stuff to throw into the project.  I’ll do some of the major items right now, but there will be more as we go along – there’s a LOT going on in the embedded and low power processor and sensor spaces.

Let’s start with the processors:

This is my SJJ Micro Framework board (I’ve stuck the breadboard on top.)  I’ll be using this for where I need a small, low powered remote processing unit that has access to an Ethernet cable (very handy feature that last one.) 

BlogHardware 056

Next is my GHI USBizi board – again, Micro Framework, but smaller and with more serial ports.  This is useful for even lower power situations, and those with the need for local storage and USB Host capabilities.  Note no Ethernet onboard, but I’ve got some ways around that a bit further down.

BlogHardware 084

And a base Arduino (with prototype shield.)  Useful for quick and cheap, but fewer control lines and memory/storage size.  It is worth a note that the Arduino Mega is out and answers a number of these concerns. 

BlogHardware 081

And (not quite stand alone but even easier to prototype with) my old V1 Phidgets 8/8/8 controller.  Requires at least a USB connection to a PC so it’s not for remote usage, but it’s really easy to put together various configurations, has a LOAD of great sample code, exposes functionality as a web service, and has Robotics Studio support for features.  Oh, and the wiring is keyed for the analog I/O so I don’t fry all my sensors when I get distracted and forget to make SURE that everything’s hooked up right.  (Yes, I tend to multitask far too often.)

 BlogHardware 088

A number of XBee radios – not the processors themselves, but allowing me to do wireless serial over some nice distances.  Handling point to point communications right out of the box, this nice little radio is fairly inexpensive, pretty good with power, and it has a good many tricks up it’s sleeve (including star network and mesh networking configurations.)  Below I show the radio itself and one of the several breakout boards that are used to talk with the radio both from the embedded controllers above and my main controller computer.

BlogHardware 044

The Sparkfun weather board.  This is a prototype from Sparkfun that gathers up environmental data and reports on it in a text format through a serial interface at a rate of 1Hz.  I’m throwing this in on the controller section because it really is stand alone – the processing happens locally and then opens up that data for remote usage.  I could even rewrite the firmware for different local functionality (but I probably won’t.)

BlogHardware 079

 

Next time – OK, so you’ve got a bunch of procs floating around – what are you going to use them for?

Tags:

The Online Component (How, Pt 1)

This is the part most people that read blogs see.  Why?  Well, it’s “The air that we breathe” – if you didn’t already have an interest in this space then you probably wouldn’t be reading this.  (Isn’t circular justification fun?) 

Anyway, the online components that I’m starting with are going to be:

Twitter:

If you don’t know what this is – you’ve probably not been paying attention to the Social Computing Scene (or online at all for that matter.)  Twitter is the current darling of the Hyper Connected crowd and as I write this has just really hit mainstream.

Twitter is a basic messaging system, the behavior of which tracks all the way back to mainframe chat systems written in COBOL and Assembly in the 60’s.  (Status) Messages are limited to 140 characters and can be entered from the twitter web site, SMS messaging, or through the Twitter web API that has been published.  Messages are highly unstructured, though unofficial structures are formed, refined and abandoned in almost real time.  One of the major features of Twitter is that all messages have a permalink and can be referenced by anyone.  It has been noted that a quick twitter app is in danger of supplanting “Hello World” as a demo/quick intro program.

Windows Azure:

This is the foundation of the Azure cloud platform, basically the compute and storage layer, plus the group of development tools to make it simple to work with the capabilities (and develop offline until you’re ready to deploy.)  Azure is basically a way to have control over code that can be executed remotely without worrying about setting up hardware or provisioning systems.  It has been designed to be a platform where code of a wide variety can be executed securely and without the need for system level maintenance and monitoring.  I’ll be using this to provide both web interfaces, always on services, and the ability to store data remotely to handle situations where connectivity with my offline components may be intermittent or bandwidth constrained. 

Microsoft .Net Services:

This is another set of online services that builds upon the Azure capabilities, providing pre-built features that are commonly needed.  .Net Services currently provides capabilities around Access Control, Internet Service Bus, and Workflow Services.  These are resources that can be used either by themselves, with Azure hosted code, or with local code to make development quicker and simplify those nasty code maintenance costs.  I’ll be using all of these component, starting with the Internet Services Bus and then expanding out through the Workflow Services for state management and ending up with a foray into security.

Live Services:

Live Services are a set of services that many people are already using and familiar with through such offerings as Live Messenger, Live Mesh, LiveID and the like.  I’ll be focusing here on some of the Live Mesh features, but spreading out through the rest for capabilities such as geospatial, search, presence and other functionality to take advantage of.

Note this isn’t a comprehensive list.  As this project is a work in progress, I’m sure I’ll tie some other components in, and may change my mind on some of the ones listed above.  There’s a lot going on in the Online space and things change faster than I can keep up, so I’m assuming I’ll get notified somewhere along the way about something really cool that I’ll need to add which will expand or take the place of something I’ve listed above.

Next – The offline component.

Coding Outside the Box Series (What and Why)

So what’s this all about?  You may have heard me talking about this during the spring, but with all of the activity and talks during March, I’m making myself sit down and put some of it together. 

The base concept of this series of posts is that if you want to be be your most effective in architecting and implementing solutions today, you have to take advantage of all the resources available.  Today there’s so much going on and things move so fast that we often either just look at the items that are top on the buzz list, or we reach for the tried and true because we know it works and we just need to Get Stuff Done. 

What I’m hoping to do here is take a number of technologies and tie them together in a way that’s different from the mainstream of just Desktop/Laptop development or Web Browser development.  My goal is to pull in some of the custom hardware that’s available today at very reasonable prices and tie that into some of the web services (lower case on that phrase) and use that to put systems together that can actually help me stay aware, in touch, and connected with the information and people I’m interested in.  Plus doing something like this helps be justify blocking out time to implement some of the things I’ve been talking about for a while.  I’ve had a number of people asking me to come speak on things such as Smart Environments, Ambient Information, Cloud Computing, and Adaptive Architecture – so in doing this I’ll both have some follow on information for them to continue the conversations that get started, and I’ll have the hardware and services put in place for examples.

So that being said – what are you going to get out of it?  Hopefully some ideas and inspiration.  Maybe some techniques.  I’m going to be doing the articles live – I have a rough outline of the first part of the series that I want to cover, but I can definitely tell you that where it ends up will be influenced by comments or observations from the blog here and through other mechanisms.  Let me know what you think.  Let me know what’s interesting.  And let me know when I put my foot in my mouth (because I will sooner or later.) 

So enough about the conceptual.  Next up, the first batch of technologies.

Tags:

I2C to USB Adapter

This one’s as much for me as for the regular post.

One of the coolest thing about embedded development today is that there are so many parallels to the original PC development space.  For instance the I2C bus is actually filling the old S-100 bus space, but unfortunately you really had to dive full scale into it to utilize this capability.  Or you did – there’s a new (to me) adapter to allow you to connect I2C devices to a USB bus for prototyping and testing.  http://www.acroname.com/robotics/parts/R286-USB-I2C.html  Way cool – there’s some really nice devices that come as I2C so Now those are a lot easier to work with!

Tags: ,

USBizi released

I’d mentioned the USBizi was being worked on here and at a couple of events.  Well, for those who have been asking me about it, it’s now shipping.  And not just with the 2.5 Micro Framework, but there is also a beta version of the 3.0 Micro Framework available.  You can get the official info and ordering locations at http://www.ghielectronics.com/details.php?id=113

Tags:

SJJ Micro releases an update for their EDK kits

If you’re like me and have one of their kits, you’ll be happy to know that Sean Liming of SJJ Micro just released a Micro .Net 2.5 update for the EDK and EDK Plus kits.  I’ve already got mine installed and am enjoying the 2.5 features I’ve been itching to try (notably the Web Services on Devices capabilities and the native TCP/IP stack!)

You can find the update at http://www.sjjmicro.com/EDK.html – there’s a very good document on how to update the TinyCLR on your device.  I was very happy to see how easy it was to do the update, and had no trouble whatsoever.  You’ll also find some updated documentation on using the framework with your hardware.

Tags: ,

Interfaces

One of the shows I worked on for 5 Minutes of Innovation was a commentary on the different interfaces we’re all coming in contact with in our day to day lives. This is something that creeps up on us, but that once we notice it – it’s pretty incredible.

Part 1 is at Skydrive  and part 2 is forthcoming (I wanted to integrate any comments from Pt 1 before it goes up.)

Tags: ,

New category of posts

Some of you may have seen the test post that was up last week – I’ve gotten a number of people asking what was going on there. The answer is that I’ve been working on some prototype shows (you may have seen me over on www.5minutesofinnovation.com with Bill Steele) and I’m branching out a bit to put content a bit closer to this blog. Look forward to some observations and commentary on innovation in the industry in general, both social and technical and I hope to hear feedback from you on your own opinions and observations. So speak up, comment away, and hopefully something of value will be distilled out of the discussion.

Tags: