title title title title

News Bus: January to December, 2016 Archive

Return to current Blog Page

Dateline: 12 Dec, 2016:   Liquid Robotics Now Boeing

This is a great story best told here, but this is the gist of it. A dream turned into reality for Joe Rizzi who wanted to record the song of the Humpback Whale. He needed something to ride the waves of the ocean searching for those illusive sounds, and thus the Wave Glider was put together. I like this story, because the team that built the robotics was from here in San Diego. The Wave Glider is amazing for the idea alone. It has a solid sail that's like an airfoil and pulls the unit through the water. When stormy weather is detected, it folds the sail and submerges! What a concept. It has to be light, but that's a disadvantage with battling the ocean, so all these clever modes to avoid trouble is it's forta. After amazing success roaming from Hawaii to San Diego, the technology won favor with Boeing. The exciting news is Boeing has now purchased the rights for the Wave Glider technology and Liquind Robotics in general. This is big. You can read about this here. If you don't think little ideas can't expand to fill the universe, then you just don't believe hard enough.

Dateline: 22 Nov, 2016:   JavaScript Jamboree

A couple of months ago I got hooked on using Node.js and the Johnny-Five framework to play around with NodeBots. This expanded into an IoT project using other JavaScript based software. MQTT brokers and NodeRed provided services from a Raspberry Pi to client devices such as Arduino boards and ESP8266 devices. Now it’s on to writing web apps using Node.js and its many associated frameworks to make building browser based full service applications with log-on and databased support for anything you can think up approachable and not that tuff to learn how to do. What I’m leading up to is JavaScript has oozed into everything I find useful. So, stepping back, how does one wrap your arms around all that’s going on with this JavaScript revival. As users gather in numbers, the main drivers in the development world of JavaScript are joining forces and are embracing an open source approach. This is great, because all the software involved is getting better and more useful, but more importantly, being managed by the best sources. To this end, let me tell you about a joint event that occurred in October both in London and San Francisco. The JS Foundation was formally introduced.

You can read all about it by clicking here. But the gist of this article is to inform you on a new wave of technology that is about to become important to all Nerds and Geeks alike. This merging of the Linus foundation and the JS foundation is big news. The JavaScript ecosystem is viable and sustainable far into the future. It will easily nudge aside the complex, API joined server/client systems of the past into one cohesive environment that is at home on a cellphone as a cooperate mainframe and who would have thought, it will all be done with JavaScript!

Here are more references:

By the way, that last one (PromisesJS) is a doozy. To get around the issue of a ‘fully’ asynchronous, event driven API written in JavaScript, a single thread app, what happens when the event is to log into a distant server, query a database and retrieve a gob of data and return it in zero time so subsequent events don’t clobber? Promises. This extension of the Node.js world is wrapped up in two conventions sworn to solve the problem - ES5 and ES6. So you will hear, “This feature supports ES6.” But what this means is Node.js is in the process of absorbing new features being developed by these ES6 communities into the main Node.js library not unlike Python going from version 2 to version 3. The good news is Promises are now incorporated and what they are is allowing the main program to go about its business of servicing new events without delay by putting the slower event on a separate list and moving on. Then when the slow event is complete, reentering the flow with its results. This also avoids a nasty coding issue of nested callback functions creating a strange cascading sets of curly braces in your code. All this ‘nesting’ is part of what Promises does while servicing an event.

This is just a taste of all the busy activity out there geared to make networked applications work better to include cellphone mobile apps. If you are hearing this for the first time, you better get busy digging into it. It's the wave of the future. Go forth and compute!

Dateline: 16 Oct, 2016:   Two Now One

Great news! The Arduinos are back together again. I don't know if you've heard, but arduino.cc and arguino.org are living together again as Arduino LLC. The idea that Arduino, the best thing to happen to the Maker Movement, would bungy jump without a cord was unspeakable, but that's how it seemed a year ago. Now we can all get back to using this wonderful system without fear of software clashes and hardware incompatibilities. It certainly isn't a perfect world. Who ever thought Samsung Galaxy's could take down a plane? Talk about hot pockets. I can't imagine getting a call and your pocket catching on fire. What's next, Big Blue becoming Big Green to appease environmentalists?

It's time to get down to coming up with more IoT things to ruin your life. Let's all make the Chinese richer by buying more ESP8266's. Can't anyone build a WiFi module in this country? We even are willing to buy five or six to get one that works because they're so cheap. That hasn't happened since Radio Shack was selling the Archer series of castaway parts where half the bag of parts didn't work. We stopped doing that and went with the big boys like Digikey and Newark - well if they let you. In those days, you had to buy a 1,000 parts per line item minimum before they would let you fill out an order. Things really are much better today.

IoT is a sure thing for hobbyist to go to now that drones are officially evil. The new FAA rule 107 is pretty harsh. If you just spent two grand on a quad-copter, good luck finding a place to fly it without a fine or jail time. Making your garage door go up and down from a smart-phone is a fun alternate, unless you have a Galaxy 7. You could burn down your house instead. What is it with these LiPo batteries? Don't people know you have to manage charging them and never over draw current from one. The engineering is there, but I guess stuffing it all in a thin-mint sized phone is difficult. It's worst than building a website that can fit on jumbo screens down to an iPhone screen. But therein lies the challenge to inquiring minds. Welcome to the tabloid life of engineering.

Dateline: 17 Sep, 2016:   What did I do this summer...?

Well, after a nasty bug followed by heart surgery, anything would be welcome, but I have to say discovering the wonders of jazzed up JavaScript takes a blue ribbon. JavaScript and HTML5 are like adding salt to chocolate. JavaScript and CSS develops flavors of jQuery. Now we have JavaScript devouring PHP. This server-side Node.js takes the cake. Where does this leave Apache? Anyway, JavaScript is shining bright. Don't you really want asynchronous, event driven software...? Sure you do. Well, what if your callback function is a late lunch in Manhatten and will take the afternoon. Not to worry. Node.js has Promises. JavaScript is a single thread beast, so what's a programmer to do? With promises, Node.js gives you and IOU and goes back to being asynchronous ready to blast out the next event. When the luncheon on Madison Avenue is done, the code returns for its IOU and life goes on. Of course, this is the first adjustment to clean jQuery looking syntax of Node, but not the end. Web sockets are done best using an import - Express. Like other fine wines, this import is rich in bouquet and goes down more like a shot of Cointreau, burning all the way. One must chase it with Grunt to stay organized and bring into play a whole host of other imports that play well with Express. The list goes on as you put the finishing touches on your web app. What started out as a substitute for PHP code ends up a high calibier Model-View-Controller! Bring in the pros.

Every programming skill ever baked into a souffle is employed by the 'average' use of Node.js. One big reason is the endless running of the bulls to stay ahead of hackers and malware. Damn those bad bits. Node.js is simple in concept and a bear to wrestle with. But it does allow a bookshelf of new books to be added to your den not to mention a thousand YouTube videos you need to watch. But this wasn't the only thing I tried to accomplish this summer.

A miracle happened a week or so ago. I retrieved a once given up domain name. Yes, I know, that never happens. Once you pass on the costs of maintaining and old website and let the domain sink back into the soup of the Internet, it usually costs you thousands of dollars to get it back from the drive-by domain hijackers. I felt like a fool giving up a personal domain a year or so ago. I'm not sure what prompted me to check on it recently, but I'm glad I did. There is was like finding a diamond in the rough. So I grabbed it back and put in my pocket. Trouble was, the old site was non-responsive to 'tiny screens' of tablets, cellphones, and mini- whatever screens. Give me honking bench-top monitors of yesteryear. You can really pack a message into a mega screen. So what to do? I delved into making a responsive remake. God - here we go again. G-12 grid matrixes, multi-layered media decorations, etc., etc. Why do we have to code code and then bury the results in a barrel next to Hoffa. I went through the throws of mega CSS3 files until I realize I didn't have a 30,000 page website with interactive segments on three columns. So...I backed off to the foundation CSS was based on. I built one fat CSS file that contained 90% of what each screen was made up of from large to tiny. Then under that in the head tag added a CSS file for each of four screen sizes from tablets to iPhone 1. Each time the face of a tinier and tinier screen pops up, the appropriate CSS link kicks in. Not much usually changes besides the header, navigation buttons, and picture sizes and they can be easily scaled. Viola, a responsive site. (check it out at: JohnWolfBooks.com)

That's enough for any summer from near death to NodeBots, backend JavaScript scripting, and self-contracting websites. I'm ready for some snow and a hot toddy.

Dateline: 9 Jun, 2016:   Back in the Battle

Wow! I got socked with a nasty bug and was down for over two months. I'm back in the "lab" now and raring to go. So what's on the agenda for the near future? I'm really taken back by the NodeBot concept. Using the event driven qualities of JavaScript for robotics is important to understand. Robots should have a lot of things (events) going on at the same time or very quick succession. It's like a bunch of interrupts coming in for the good old Neumann type programming languages. The problem is, these predicessors take forever to process an interrupt, and like it's namesake, is an interruption to normal flow. All current processes stop, and the location of data, where you are in the program, and where you need to go for the ISR, has to be placed on the stack so you can get back to where you were after handling the interrupt. Bogus, when you think about it. Mechatronics, automation, etc., needs to have realtime response, and robotics is no different. JavaScript is event driven and asynchronous. These events are handled inline as they occur like running a function call. In fact, that's exactly what happens. With a fast processor, these events get serviced very fast and no jumping all over the place storing backup data to make returns. It's not necessary, so it's actually faster than a the complex interrupt schedulers fancy chips have and no waiting for polling entervals. Well, not exactly. Linux does have a polling cycle down inside, but there are versions that don't. In general, asynchronous, event driven code is faster, especially written in C++. But here we will stick to JavaScript, because the code is a lot easier to code.

Yea, but JavaScript is for web developers and website management, right? How do you port the client-server concept over to robotics from HTML pages? In a word, Node.js and a clever module called "node-serialport." This came about in late 2010. Where have we all been? Well, it took awhile before those with the savvy came to realize this module opens the door to remote control of processors or better, microcontroller boards. Now we need a framework to wrap around it.

Remember the Short Circuit movies and the cool bot Johnny-Five? What a perfect name for this required framework. So one Rick Waldron wrote the Johnny-Five framework in 2012, and it has been expanding ever since.

So I am knee deep in learning Node.js and using the Johnny-five framework. Node.js is a Linux based system written in JavaScript, so therein lies the connection to JavaScript to NodeBots. The cool thing is the Raspberry-Pi and the Beaglebone Black run on Linux. The BBB has Node.js already loaded. There are two books out to help you get started. Go to Johnny-Five.io and you'll see them at the bottom of the page.

There are a lot of other things going on, so check out Design News and the other tech ragsheets. Until next time, see you on the Internet.

Dateline: 17 Feb, 2016:   Hydrogen Powered Batteries

Check out this article from Design News on how a company in the UK is starting to produce batteries based on H2 Fuel Cells! Is this the next big thing we've all been weighting for? The weight to power density ratio is excellent and charging only involves loading up more gas. At least if you have an explosion, it's just a blue flash.

Dateline: 12 Jan, 2016:   Small Microcontroller Running Python Native

Arduino-like concept board but ARM Cortex M4 and Python as the OS directly on the board - no Unix/Linux necessary. Boots to Python interpreter onto any Terminal app. Comes up like a USB memory stick to the registry in flash. No IDE necessary (you can use anything your used to), just write scripts in NotePad++, or WordWrangler, etc. and save to main.py. Soft boot and it runs.

The designer has a wrapper Class called pyb to gain access to all the M4's I/O capability, which is vast. Has built in 4 LEDs, switch and 3-axis accelerometer for developers to play with. Has SD slot to up the ante for memory storage. Runs on 5V supplied via the micro-USB port or Vin/Gnd pins on the board.

1 1/2x 1 /3/4 inches - cost $44 right now. It was the result of a KickStarter project. I've been working with the board and it performs flawlessly. If you have experience writing in Python, you already know this is a wonderful improvement over C or C++ for those who experiment, need to test and idea or then write a professional script that has a lot of horsepower. Now you have all that, but in a tiny package you can carry aroudn with you. Plugged into a laptop, you have a Python development center in your lap. You can transfer your apps onto the SD card and run the whole shootingmatch with a battery. It has two daughter boards the developer calls "skins" that can be plugged into headers you add to the board. One is an LCD screen with capacitive touch buttons and the other board is an audio amp for the DAC outputs from the M4. Choosing the ARM Cortex was wise. It's a good stable platform and has a future. Driving the silicon with Python was brilliant.

2015 Archive

2014 Archive

2013 Archive

This website opened in late 2013 in hopes of supporting those interested in electronics and a hobby and a profession.