Just wanted to let you know that I made some minor updates to the site. There were just some things lacking such as project info, etc. So I added a Project link on the top menu bar with some info on the FreakZ and FreakUSB projects. The info is pretty minimal right now, but at least it can instruct users where to download the source code and to browse the documentation. You'd be surprised how many emails I get asking for links for that kind of stuff.

I've also added two new forums, one for each project. Questions related to any project should go in those forums. 

Hope these updates are useful. I really need to do more work on the site...

Hi all.
Sorry about the radio silence recently. I'm trying to catch up with some of my work projects that kind of got left behind recently. Looks like I have at least another week's worth of work left before I can resume the Zigbee development. Gonna try and bust some ass to power through everything. Talk to you later.
Yay Obama!

Obama won!!! I don't want to get too political on my blog, but I was rooting for him big time. It's like the first time since I was able to vote that someone I wanted made it into the White House.

Two posts in one day. Haven't been this active since I started the blog.

Last weekend was a busy one for me. It was supposed to be a three day weekend, but I felt like it wasn't relaxing at all. It all started on Saturday evening when I got an email from Chris at AccurateCNC that my machine arrived at Narita. One thing I didn't realize about freight is that they only ship to the airport. After that you need to do the receiving yourself.

So off on my adventure I went. Sunday morning, I called the freight company in the US. They told me to call their Japan branch. The Japan branch told me to call the airline (ANA). The airline told me to call the airline cargo department. The airline cargo department told me that I needed to personally go to Narita airport to clear the package through customs...now. I left immediately.

Once at Narita, I had to go off the beaten path to the cargo area. Its the part of the airport that everyone passes by on the freeway on their way to the passenger side of the airport. 

Narita Cargo Area

The airport was about an hour and a half away and I arrived still wearing the clothes I slept in. The cargo area was huge and after a good amount of asking around, I made my way to the ANA cargo area. The lady helping me was really nice, considering it was a Sunday and everyone in cargo seemed to be in a constant state of panic. She gave me the air waybill for the package and told me to go to customs.

Customs was a nightmare. It was two hours of grilling me on the contents of the package. Its not easy to explain what a CNC PCB milling machine does to someone who doesn't know what a PCB is. The conversation went something like this:

Him: Whats a "desktop PCB CNC milling machine"?

Me: Its cuts out a PCB pattern on a piece of copper board.

Him: Whats a PCB?

Me: Its a printed circuit board.

Him: So this machine is a PCB?

Me: No, its used to make PCBs.

Him: Is that like a computer chip?

Me: No, it connects computer chips.

Him: So this is a computer?

Me: Yes *sigh*

It went on like that for about two hours and finally got the classification of computer/robot/machine. At customs, you need to pay a 5% tax on anything coming in that is declared. Unfortunately the invoice was attached to the waybill and it showed the final price of the mill, the acoustic enclosure, and the shipping. All together it was approximately $11,000 so the final tax was about $600. OUCH! 

After being bled dry, they finally approved my waybill so I had to go to another building to pick up the crate. This was my first experience with a palleted item so I went up to the counter and waited in line. When it was my turn, I showed the lady my waybill. The conversation looked like this:

Her: How do you want the item shipped?

Me: Via Yamato or Sagawa (they're like UPS and FedEx in Japan)

Her: *chuckling* Your item is too heavy for them. You'll need a car to pick it up.

Me: I don't have a car. I walked here. (She then looked at me with the disgust that can only be reserved for people that were wasting her time)

Her: You'll have to charter a truck. 

Me: What does that mean? (Another mean glare from her)

Her: That means you hire a truck to specifically bring that item to its destination.

Me: How much does that cost?

Her: A couple of hundred dollars. (Now its my turn to give her a mean glare)

Me: Shit.

She finally took pity on me and called a truck charter company. Fortunately, my apartment was in Tokyo which is close to the airport so it only cost $150 to get the item to my apartment. However that was the cheapest of the cheapest prices. When the item arrived the next day, it was loaded on the truck with no way to get it down. The truck driver was like a 70-year old man, and the truck was an old junker with no lift. We had to ask strangers passing by on the sidewalk to help lift the crate out of the truck and on to a shopping cart from the local grocery. Once it was on the shopping cart, we finally were able to get it to my apartment. 

Whew...what an ordeal. I gave the man $30 for a tip since I must have taken a few years off of his life by having him help lift that box. After I got it in front of my apartment, I knew there was no way to get it in the door. I had to take it apart and get it in piece by piece, since I was alone. So I uncrated it and tried to break it down. Unfortunately, the machine and enclosure was bolted to the bottom of the crate so I had to figure out a way to get underneath the crate to unbolt it. I need to thank Chris at Accurate CNC next time for making my life a living hell through his meticulous shipping methods. They are effective, though.

To make a long story short, I finally got it unbolted and got the unit inside piece by piece. It was the most stressful 2 days I've had in a long time.

Here are some pictures of the unit. I also took pics of some of my other equipment. Its mostly just pics of stuff I had to move to make room for the machine.

{gallery}2008-10 AccurateCNC{/gallery}

Hmmm…it feels like its been a long time since my last post. Actually, in the blog-world, one week is an eternity.
Anyways, I've been taking a small breather from the Zigbee stack after the release last week so I could catch up on some of the work projects that I needed to finish. It was like my life was put on hold for about three weeks so there was a lot of things that needed to be done.

I mentioned before that I took on a second part-time job. Its pretty nice because now, my take-home pay is approximately the same as it was when I was working full time for one company. However I still have the freedom to work on the stack and can still control my own schedule. Ahhh…life is good…

The second company that I'm helping out is a semiconductor distributor. Originally, they needed me to help answer technical questions for their product lines and also communicate with their suppliers in English (it’s a Japanese company). However since that job description is pretty boring, I've expanded the scope to something more interesting.

Having been on the semiconductor supplier side for so long, I've had the chance to see what its like from the vendor side and how they view distributors. I've also had the chance to meet many distributors and see their strengths and weaknesses. In my opinion, the biggest problem with distributors is that they're ill-equipped to handle the semiconductor environment of today.

The semiconductor world right now is much different than it was just a few years ago. Before, it was fine to just hawk chips. Most of the issues that came up were hardware related, and software issues were the customer's problem. The hardware issues could easily be handled by the semiconductor vendors.

Unfortunately today, it is completely different. Sometime within the past ten years or so, the focus went from hardware to software. MCU-based SOCs permeated the industry and software availability started to outweigh hardware performance as the main priority. Also, chip prices dropped like crazy as everyone and their grandma started making ARM-based SOCs. Hell, even the 8-bit microcontrollers started getting everything and the kitchen sink thrown into them; ie: an AVR AT90USB1287 8-bit micro has 128 kB flash, ADC, multiplier, multiple UARTs, I2C, SPI, USB host, USB device, multiple timers, comparators, etc. Can you imagine the amount of software needed just to fully utilize the chip?

SoCs (including 8-bit microcontrollers with a shitload of peripherals) are basically an MCU IP core surrounded by a bunch of peripheral IP cores. From an IC design point of view, as long as you have the IP available to you, you can crank out SoCs like pancakes…and that is what most of the companies are doing. That’s also why you see the chip prices dropping like crazy. As an example, one of the companies I worked for previously sold an ARM7 microcontoller with a high speed USB device interface and a 3Gbps SATA interface for less than $1. And that was over two years ago.

So the point is that with margins dropping and software requirements going through the roof, semiconductor suppliers are unable to handle the amount of software support required for their products. You can easily see this by emailing support at Atmel/Microchip/Freescale/(name your supplier) and seeing the response time if in fact you do get a response. Support is rationed so that Tier-1 customers get the highest priority (the volume customers, ie: 50-100k/month+), Tier-2 customers get whatever is left over (ie: 10-50k/month+), and then finally, Tier-3 (low volume) customers are left to fight over the scraps.  

It's hard to blame the semiconductor vendors (even though I always enjoy doing it), since their margins are dropping like rocks and it's expensive to hire a bunch of software engineers. So increasingly, semiconductor suppliers are relying on distributors to provide technical expertise and support to their customers. However most distributors aren't set up to handle technical issues. I rarely see a distributor that even has a lab, and if they do, its usually some old-ass analog scope and a soldering iron.

So when the disti started talking to me about helping out with some of their technical issues (ie: support), I started to think that it might be interesting to see if its possible to turn a sales-oriented disti into an engineer's dream distributor. Most distis are happy just to find a guy that's heard of programming since a disti is usually the last choice for any decent software or hardware engineer to work for. The stigma attached to doing customer support is like a slap in the face for most engineers that are serious about their work. So this one is getting a little more than they expected.

I've decided to call this project "Extreme Disti Makeover". There are three parts to the plan:

  • Create a reference hardware platform. The platform needs to be modular so the center of the platform is an MCU board. The MCU board will have standardized connectors with a fixed pinout for peripheral boards. That way, the peripheral boards that are made can be interchangeable with different MCU boards. Whenever possible, the chips will be based on the disti's line card.
  • Create a software library that’s ported to the reference platform. The software library will consist of open source software for things like I2C, SPI, timers, UARTs, PWM as well as communication stacks such as a USB device, TCP/IP, and of course Zigbee stacks. Almost all of the software is already available as open source (except for the Zigbee stack which is still being developed :) ).
  • Training the sales people. I'm going to do a weekly 2-hour training for the sales guys that consists of 1 hour of basic design principles for hardware and software, followed by 1 hour of actual implementation on the reference platform. Of course, it will be a pretty basic level, but the main point is to get the guys to actually use the products they are selling. This is unheard of since most people at distis have never even touched the products they are selling. I'm not sure how this will go, but it will be interesting to see if its possible to turn the sales guys into techies.

Basically, this is kind of an experiment, and will probably end up being a lot of work, but its kind of a refreshing break from Zigbee once in a while. It will also be interesting to see if I can pull something like this off. Here's a couple of pics of the first boards for the reference platform. I'll probably be adding a few boards a month to this platform as well as some software (in between stack development of course Laughing)

{gallery}2008-10-10 Disti_Makeover{/gallery}

Well, well, well...I guess I forgot to mention that the stork visited me yesterday and brought me a new addition to my family...of test equipment.


Yep...you guessed it. Bought me a used network analyzer. It's an HP 8753D 3kHz-3GHz vector network analyzer with a 2-port S-parameter test set.

I decided to buy it three weeks ago on eBay because the price was really good ($6k). Normally, 8753C's and 8753D's go for about $8-10k and I figured I would need one since I'm going to be designing a bunch of RF hardware soon. I didn't really mention it though because it was kind of a risk. Spending $6k on eBay and wiring money to a guy in the countryside of France isn't exactly a run-of-the-mill transaction for me. If I got burned on this deal, it would have been pretty embarrassing. Lucky for me, the guy was really cool and walked me through the transaction. The packing was good, and the analyzer is up and running and passed all the self tests. 

Did I mention I also bought a 50 ohm calibration kit? *cackle*

I also got word from Chris at Accurate CNC that my PCB mill will be shipped this week. There was a delay because its custom built and one of the parts got delayed. 

Yep, looks like I won't be getting a car anytime soon...but along with my scope, logic analyzer, and other equipment, I'm starting to feel like my home lab is kicking some serious ass!

Contiki OS made it on to the main page of Slashdot . For those that don't know about it, getting on to the front page will usually bring your site down due to the volume of traffic that flows into it. Looks like Contiki hit the big time. Congrats to Adam Dunkels, Fred Osterlind, and the rest of the Contiki team.

Yes, that title is correct. I'm finally going to take my rightful place among the extreme electronics geeks of the world. No, it's not because I'm writing an open source stack based on a bloated spec. It's because I finally got up the balls to purchase a CNC PCB Milling machine. Sure I told myself that the cost will justify itself by the time saved in spinning boards, or that it'll be useful for consulting, or helping out the companies I'm doing part time work for, but the reality is that I just wanted one really, really, really bad. 

It basically means that I'm one step closer to my dream of coming up with an idea and having a working board within a day. Sure I tried the UV PCB kits, the iron-on toner transfer PCBs, but they just weren't repeatable enough. They also lacked the resolution that you need for real electronics these days. That means about 6 mil traces with 6 mil spacing at a minimum. Otherwise, you won't even be able to touch the QFN radios out there. 

I purchased the PCB mill from Accurate CNC which got good reviews on the web and is less than half the cost of the similar machine from LPKF . It sports a resolution of 0.1 mils, low runout, and did I mention less than half the cost of the LPKF (BTW, the LPKF  is close to $20,000). It should be able to handle 6 mil/6 mil layouts with ease and also handles drilling the board and matching up the 2 sides of the board so that they align correctly. In other words, I can finally get repeatable prototype PCBs in a single day (or make that about 10 minutes). That kind of capability is almost unheard of at most electronics companies I've been to (and I've been to quite a few), much less for open source projects. Chris at Accurate CNC was also extremely generous and held my hand through the whole process, answering all of my n00b questions with alot of patience. He's even helping me purchase the tools to ship with my order since the shipping to Tokyo from the tooling shop is over $100. I actually felt bad because I thought I was making him work too much. Now that's service...

Well, one of the main reasons I decided to purchase the machine now (other than lusting over it), is that I  just figured that if you're going to make RF PCBs, you gotta be able to spin them fast because you end up throwing a lot of them away. And since the PCB-making time is approaching on this project, might as well be able to crank out a couple of quick protos to see how the layout will perform. Also, I'm hoping this machine will take away that PCB mental barrier where I have a good idea, but its such a pain to spin a PCB that I never implement it. Now I have no excuses not to act on any bizarre electronics whim that catches my fancy.

Anyhow, I'll post videos and let everyone know how things go with it. But for now, I'm going to sit back and bask in my growing geek manliness...

BTW, here are some stock pix of the machine....beautiful...


I'm slowly getting off that mental block and have been writing code again. I'm not letting something like that hold me down. I kind of anticipated something like this happening which is one of the reasons why I shifted to working part time at my regular job. Its similar to burning the boat behind you (although I guess I still have a life preserver), where the only option is to actually finish the project. With a lot more riding on this project, there's more motivation to get past the problems I encounter and get this thing out. I didn't anticipate that it would be such a mental game, though.

Anyways, I'm starting to employ some project management techniques to clarify the remaining items that need to be done, and I'm also keeping track of my time so that I give myself adequate breaks. After listing out the things that need to be done and breaking them down into manageable steps, it's easier for me to see where the end of the road is (for the first release) and how I'm going to get there. That was one of my main issues where the task started to feel overwhelming. Now it's just a bunch of small tasks that I know I can pull off. As Joel Spolsky said (Joel on Software ), software (and life) is a game of inches .

I ran across this from one of the Dell ads that is periodically emailed to me and thought it was hilarious...

One of the questions that I'm asked most often by people is: "How are you going to make money if you write open source software?"

The questions is actually not that hard to answer, but it takes a bit of time to explain. Most people just want a simple answer like "I'm just doing it as a hobby and will be returning to work soon" or "I'm doing it to get exposure to get a better job". In fact, as the software progresses and I show it to people, many people have told me to rescind the open source license and sell the software. Ha ha ha…no way.

I've been working almost full time on the software and living off of working part time for about four months now. In fact, it's been like paradise for me. The fact that I'm working part time relieves a lot of the work-related stress I had previously because the expectations people have of me at the job decreased along with my hours. I'm amazed how much distraction work-related stress caused me. Since I've been part-time, my thinking has become clearer, my goals are sharper, and my software skill has improved immensely (I'm not trying to be humble right now).

I started noticing the differences about two months into fully devoting myself to the project. That would be about June since my conversion to part-time occurred on April 1st (April Fool's Day…what a coincidence). It took about that amount of time to start shedding the emotional baggage of working for companies for the past 10+ years. As I became more independent, I realized that the success or failure of the project rests solely on me, and that motivated me to work harder on it. It's not like working at the companies I've been at where it requires meetings and management approval to get something done. The fact that I can do something that I enjoy and also believe in is unprecedented for me. The freedom I started to feel from being able to make my own decisions was very addictive.