Showing posts from April, 2014

IOIO Bluetooth and Windows 8 / 8.1

Notes on using the IOIO with Windows 8 over Bluetooth This post describes the results of controlling various versions of the IOIO Firmware from Windows 8 over Bluetooth.  Initial content was extracted from  and expanded with additional content. I used the HelloIOIOConsole.jar  sample program to test connectivity between Windows 8 and an IOIO V1 running different Application firmware.  I also tested Mac OS/X Mavericks. HelloIOIOConsole.jar results 4/2014 Java Application V1 3.03/3.23 V1 3.26/4.0 V1 ?.00/5.00 Windows 8.1 3.30 No Communication Constant reconnects Works Not Tested Windows 8.1 4.00 No Communication Constant reconnects Fails handshake without patch Works with patch described below Not Tested Windows 8.1 5.03 No Communication Constant reconnects Fails with Version Mismatch (as expected) Not Tested OS/X Mavericks 3.30 Works Works Not Tested

"What do you do for a living?" Pre-Sales Engineer

My family told me that they don't know what I do for work.  This was kind of surprising since everyone tells me that I never shut up about what I'm working on. This post is an attempt to explain what I do/did as a "Pre-Sales Engineer".  I've played this part while working for software or hardware companies that sold "technical" products.  These ranged from Logic Analyzers and Embedded development tools to development and application platforms to Internet support products like web and mail servers. Note:  I'll probably use "Field Engineer", "Sales Engineer" and "Pre-sales Engineer" interchangeably throughout this document. You Got Mad Skills A Pre-Sales Engineer has the rare skill of being comfortable with technology and with people.   Pre-sales technical resources explain technology to techies, implement a solution, map the benefits of technology to business problems and interact with business users and manager

IOIO V1 Dealing with Firmware Versions and Android, PC and Mac

Last updated 4/18/2013 IOIO programs run on Android devices, PCs or other types of computers. They communicate over USB or Bluetooth to firmware programmed  into the IOIO Pic chip.   Control programs are built using an IOIOlib library that knows the communication protocol between the program machine and the IOIO board.  Both sides of this communication must agree on the protocol and payload of this communication. Each version of the IOIO firmware comes with its own library that was built for that firmware. Host programs must  be linked to an IOIO library whose major version number is less than or equal to the major version of the your device's firmware. This works because Ytai tries to make sure that firmware is backwards compatible with previous versions. Programs compiled against any version 3.yy IOIOlib should be able to communicate with any 3.xx Firmware devices. EX: Programs built against 3.23 can talk with IOIO devices running Firmware 3.26.  I was able to run dem

Upgrading the HP Chromebook 14 (Falco) SSD

Walmart sells an HP Chromebook 14 with T-Mobile 3G for $350.  The unit comes with 4GB of RAM and a 16GB SSD.  The SSD is way more than you need as an average Chromebook user.  Microcenter currently has the same Chromebook without the T-Mobile 3G for $250 with a 16GB SSD and $270 with a 32GB SSD.  Linux heads and other nerds, like me, always want to upgrade their devices. I recommend that you just a unit with the size SSD you think you can live with.  Upgrading a Chromebook 14 NGFF SSD is not for the faint of heart .  There are a bunch of small cables and at least  13 screws on the back and 3-5 inside that have to be removed. The keyboard is clipped into the base of the unit.  Those clips must all be worked loose.  The motherboard with the SSD on it is held in via 3-4 screws, the heat pipe linkage  to the CPU behind the fan and the USB port openings on the left hand side Of course I didn't listen to my own advice and bought the Chromebook because it is pretty much a laptop

Intel Galileo - "What were they thinking?"

The Intel Galileo is one of the more frustrating embedded / small system boards I've worked with.  I'm really not sure what Intel was thinking.  It feels like one of those "we need to get into this market" types of projects that is an off target response to ARMs penetration in the home hobbyist / small systems market. Intel has some work to do if they are serious about this board.  I suspect they will abandon it and try again with some other product. We've seen other projects from companies that have attempted to do the same thing.  The Microsoft .Net Micro Framework with the associated 2-3 board makers come to mind.  It was too small a market for Microsoft to commit any resources too. They open-sourced .NET MF and let it go fallow for at least two years. Pros Intel did a great job hacking the Arduino IDE to make it easy to build and run Arduino style sketches without any real knowledge of how the board works. There is 8MB of flash memory. It uses a powe

GitHub "Clone to Desktop" with Windows GitHub.

You download GitHub code by "cloning" the repository to a local repository.  They call this a desktop clone. Each  GitHub repository home page has a neat "Clone to Desktop" button in the web interface that you would think clones the repository to your desktop.   That button actually takes you to the GitHub Windows application download page even if you have the GitHub app already installed. This is where I usually get stuck and head off to some search engine for help. The Windows GitHub application tries to tell you what to do at the bottom of the "local repository" screen.  It says to "Drag a repository here to add". That phrase always confused me. I can never figure out where to drag the repository from. It turns out you are supposed to drag the URL for the repository from your browser onto the desktop application.   Resize your browser window so you can drag the repository onto the GitHub windows application.