Another bit of programmable hardware: the WRTnode

January 2, 2015 | Computer Science, Hardware, Internet of Things, My Projects, Operating Systems, Raspberry Pi | By: Mark VandeWettering

I’ve got a weak spot for cheap, programmable hardware. In my junk drawer I’ve got a collection of Arduinos, Parallax Propellor boards, a couple of STM32 based ARM boards, and several Beagle Bone Blacks and Raspberry Pis. Today, another entry arrived: the WRTnode.

I’ve only had it out of the box for a few hours, and a little bit of tinkering, but here are my initial impressions.

WRTnodeA few basics first: it’s a small, cheap Linux computer. Nominally, the list price is supposed to be $25, but I ordered mine via the Amazon store and paid a bit of a premium: it cost $35, but shipped in two days via Amazon Prime. It comes in a small plastic box the size of an Altoids tin, and includes a little USB cable that allows you to chain an extra USB device to it, as well as provide power. I plugged mine into a little D-Link USB hub I had lying around. Seems to work fine.

In terms of capability, it falls somewhere between the Arduino and a Raspberry Pi. The processor is actually not ARM based, it’s an MTK MT7620N MIPS processor that runs at 580Mhz. It has a 512Mbit DDR2 RAM and 128Mbit of SPI flash ROM. This is quite a bit less than the Raspberry Pi, but it does have one cool added feature: it’s got a 300Mbit wireless networking chip on board which can do 802.11n. It also can handle USB host mode. Basically, you can think of this as the brains to a fairly reasonable wireless router. It’s a very small board, only 45mm x 50mm, and includes 23 GPIO pins, as well as JTAG and SPI.

Because of it’s rather limited memory, it can’t run full Debian. Instead, it runs the OpenWRT distribution, a small distribution which is often used on tiny embedded boxes that serve as routers. It runs BusyBox, has the tiny shell “ash”, as well as the LuCI web based configuration interface, which is based upon the uhttpd webserver.

Setting it up was pretty darned easy: I plugged the supplied USB cable into it, and the other end into my powered hub. A small blue LED comes on, and about 20 seconds later, a new wireless access point was visible called WRTnode9DDB. If you attach to that network, you are asked for a network password, which defaults to 12345678, and then you can telnet to the device, which defaults to IP address You can login as root with no password. If you run passwd you can enter a new password, and then you can use ssh to connect to it.

Screen Shot 2015-01-02 at 9.14.47 PM

Nifty! If you cat /proc/cpuinfo you can get information about the processor:

system type		: Ralink MT7620N ver:2 eco:6
machine			: WRTNODE
processor		: 0
cpu model		: MIPS 24KEc V5.0
BogoMIPS		: 398.13
wait instruction	: yes
microsecond timers	: yes
tlb_entries		: 32
extra interrupt vector	: yes
hardware watchpoint	: yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa			: mips1 mips2 mips32r1 mips32r2
ASEs implemented	: mips16 dsp
shadow register sets	: 1
kscratch registers	: 0
core			: 0
VCED exceptions		: not available
VCEI exceptions		: not available

and ditto for cat /proc/meminfo:

MemTotal:          61852 kB
MemFree:           22516 kB
Buffers:            4828 kB
Cached:            17928 kB
SwapCached:            0 kB
Active:            14292 kB
Inactive:          10744 kB
Active(anon):       3772 kB
Inactive(anon):       76 kB
Active(file):      10520 kB
Inactive(file):    10668 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:          2296 kB
Mapped:             1960 kB
Shmem:              1568 kB
Slab:               6028 kB
SReclaimable:       1784 kB
SUnreclaim:         4244 kB
KernelStack:         296 kB
PageTables:          292 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:       30924 kB
Committed_AS:       6948 kB
VmallocTotal:    1048372 kB
VmallocUsed:        2204 kB
VmallocChunk:    1032516 kB

OpenWRT isn’t as full featured as some Linux distributions, but it’s not bad. It includes ssh, Python and Lua. It’s got vi. It runs its own small package manager called opkg, which has a pretty good selection of precompiled packages available for install (although its good to be careful, you don’t have an infinite amount of space). Scanning the list, it’s got installation packages for lighttpd, Asterix, and a bunch of other goodies.

I haven’t had a lot of time to mess with it, but I’m fairly impressed so far. I have a feeling I’m going to miss having a C compiler/make setup on the board, but it looks to be pretty simple to cross compile to it from my main Linux box. I have already rebuilt the distribution, and will probably try flashing it sometime soon.

If you are in the market for a little machine with features like this (esp. with WiFi), it might be worth it.

Share Button

Ship in a Bottle: Traditional vs. “Modern” method…

December 22, 2014 | Ship In a Bottle | By: Mark VandeWettering

Every since I was a young lad, I’ve been fascinated by miniatures and model building. Like many of my obsessions, I did more reading than actual constructing. In particular, I remember reading several books about building “ships in a bottle”, and for some reason, this particular interest has cycled around and is again at the top of my brain. Since I have some vacation coming up over the holiday, I thought that maybe I’d give it a whirl, and see how well I can do.

But of course, all I’ve done so far is just reading and research.

Oddly enough, there doesn’t seem to be a huge amount of information on the web. Sure, you can find some pictures, and even a video or two, and some instructables, but compared to many other endeavors, the information and instruction seem a bit thin. Part of this is no doubt that this is due to the subject matter itself: many traditional crafts aren’t as well represented on the Internet as other, more modern activities. Still, it carries over into other media as well: the number of books dedicated to building ships in a bottle are quite limited as well. And, while there are several national organizations for ship building, they seem rather cagey about what it is they do.

One is no doubt some carry over from the “secret knowledge” that so-called Impossible Bottles are shrouded in. While it isn’t too hard to get some basic description about how ships in a bottle are made, in general it is considered rude to reveal the secrets of putting stuff in bottles. It just doesn’t seem to be a community that revels in sharing techniques.

But anyway…

The traditional scheme of putting sailing ships in bottles consists of the following elements:

  • the model is constructed outside the bottle, with the masts hinged to fold back along the bottle
  • square sails are generally mounted on the spars, and twisted to lie parallel to the masts so they can fold around the body
  • spankers and jibs are mounted loosely on strings that can be pulled to be drawn into their final position
  • the model is folded flat, and is inserted tailfirst into the bottle
  • once inside the bottle, the various strings are drawn tight to pull up the masts on their hinges, and others draw the spankers and jibs into place.
  • once everything looks nice, small drops of glue are used to fix the threads in place, and the excess can be cut off with tiny bits of razor blade on a long wire

Some visuals will help. Here’s the traditional method demonstrated, which gives some hint as to the complexity.

Seems straightforward enough, if not exactly easy. But I was wondering: are all ships in a bottle done this way? The existance of other “impossible” bottles shows that many things can be disassembled and reassembled in bottles using techniques that are rather different than this scheme. Are other techniques used?

The answer is “yes”. For instance, many ships have hulls which are too large to fit through the bottle’s spout. These are sometimes created in layers, which are inserted one by one into the bottle and glued into place, with a rather thin “deck” which holds all that traditional masting. But, I wondered, couldn’t all the rest be assembled outside in pieces and inserted through the neck? Are these kind of techniques being used?

The answer is “yes”, while the traditional method is far and away the most popular, there are model makers who use other, “modern” methods to build ships in a bottle, but descriptions of the techniques they use are rather sparse. The first I encountered was this page by Ralph W. Preston on the “Modern Method”. He writes:

Towards the end of the Great Depression, a new approach to building ships in bottles appeared. This new approach is one that I call the “modern” method. By this method the ship is disassembled outside, then reassembled within. Long tweezers and similar tools are used. I am a member of the modern school. It would be tempting to say that my method is better, but much traditional work of superb quality is around.

He doesn’t seem to enumerate the principles he uses, but he does have some intriguing information as part of the documentation of various works he created. His Viking ship shows some of his “non-traditional” techniques at work.

Cool stuff, but it didn’t tell me the information that I wanted.

Artem Potem has this webpage, somewhat clumsily translated from Russian to English that talks about other techniques that could be used. For instance, his Method 3 eliminates the need for a mast hinge, which could be interesting.

The only other bit of innovation I found was this Youtube video (sadly, in Portuguese, I think) which shows assembly of a ship using something like what I expect Potem was describing. The ship is actually inserted bow first, and the masts are loose,,, Very nice ship model, and some great photography.

I’m prepping a more lengthy set of links and resources, which should show up in the next week or so.


Here’s another “bowfirst” construction video, this one of the HMS Beagle…

Share Button

The opposite of Pinterest Fail: The Alinea Project

December 19, 2014 | Books I Read, Cooking and Recipes, Food | By: Mark VandeWettering

One of the more interesting online communities that has sprung up in recent years is Pinterest. It serves as a kind of Internet inspiration board: people clip pictures of projects that interest or inspire them, and post them as a sort of pin board that can be shared. I recently found several boards on ships in a bottle which are serving to inspire me to my first such project. One of the most popular topics is food: people pin recipes and pictures to serve as ideas for their creative cooking endeavors.

As might be imagined, not everyone who is inspired succeeds in duplicating the source of their inspirations. Some people lack the experience or expertise to turn out the creations they imagine. These are somewhat comically chronicled on a number of blogs, such as the Pinterest Fail blog, and the Epic Pinterest Fail blog. For instance, this isn’t one of mine, but it easily could be: I’m a miserable baker.

Cupcake Fail

But today, I received a Kickstarter prize in my mail which is illustration of the diametric opposite of the Pinterest Fail: Allen Hembergers Alinea Project. I’d describe the project, but Allen is much better at describing the project himself:

I work with a lot of talented people, but Allen is off the chain amazing. I only became aware of his project a couple of years ago, and didn’t really even know who he was at work (our circles/projects don’t overlap) but I became amazed at his passion, his writing and his glorious photography. The problem with food is that at its best, it is a very transitory art form. But through his photography and writing, Allen could allow you to experience at least a part of what cooking at this level was like, not only as a consumer, but as a creator. I found that incredibly appealing. His photography immortalizes dishes, and are done with such amazing technique, such amazing lighting…

One of Allen's many amazing photographs

It was with great pleasure that I backed Allen’s Kickstarter Project to turn all of his photographs and writings into a book. Along with 510 other backers, I ponied up my $75 to get a copy, and it arrived in my mailbox today.

It… is… amazing.

It is without a doubt one of the most beautiful books on food that I have ever seen. I’ve only had a few minutes to briefly skim it, but I’m sure that over the Christmas holiday, I’ll be reading it from start to finish. The quality of the binding and the color reproduction is incredible, a level of quality nobody has any right to expect, but which is entirely keeping with Allen’s obsessive compulsion to do everything at the highest level.

I’m in awe.

It almost seems unfair that one individual could be as good at as many things as Allen is. And yet, he’s obviously also very humble, very self-critical and is struggling every step of the way. Even if you do not aspire to become a great chef, I think there are lessons to be had and inspiration to be taken from his creative march.

If you weren’t in on the KickStarter, I don’t know how you’d get a copy, but you are missing out if you don’t have one. Incredible.

Addendum: It looks like you can order a copy of his book from his website.

Share Button

A pair of geeky Advent calendars…

December 9, 2014 | Amateur Science, Computer Science | By: Mark VandeWettering

Advent is the season observed in many Christian traditions that is a time of expectant waiting and preparation for Christmas. When I was young, we’d have an Advent calendar, which counted down the days to Christmas, and would gift us with a little chocolate or candy each day.

While I am no longer religious, the idea is kind of cool: to take a little time out of each day and enjoy a tasty treat of some sort, and think of the upcoming holiday. A couple of cool examples have crossed my desk…

I like to experiment with embedded controllers, machine emulation and operating systems, so I am of course familiar with QEMU, but in case you are not: QEMU is a generic and open source machine emulator and virtualizer. It allows you simulate machines and run code written for one machine (say, an ARM board) on your PC using virtual hardware peripherals. It also serve as a “virtualizer”, which basically means that if you have an x86 Linux box, you can run a different x86 operating system on the same hardware, at very nearly native performance. In short, it’s pretty awesome.

If you like this kind of thing, you should check o ut The QEMU Advent Calendar 2014. It presents a new QEMU disk image each day until Christmas, enabling you to play with new operating systems, programming languages and graphical goodies. For instance, Day 6 is a tiny image that generates Julia sets.


Other days allow you to boot ancient versions of Slackware Linux, run an Atari ST emulator inside QEMU, and even play Zork. Awesome.

But even greater than that is the offering by Alan, VK2ZA7. Back in 2011, he did a series of 24 Youtube videos that each described a small electronic circuit that he tinkered together during the Christmas season. Many of them had to do with generating small bits of test equipment or illustrate some cool little circuits. Ones that I liked were his LED based transmitter/receiver:

and this nice little crystal radio, very traditional, with a cobweb style coil wound with Litz wire, but with a polyvaricon variable capacitor instead of the traditional 365pf variable cap.

What’s awesome is that after a hiatus of a couple years, Alan is back in 2014 with new projects. Very, very cool.

I particularly liked this one on building variable capacitors (a laser cutter would be helpful). I hadn’t seen this kind of geometry in one before, and Alan’s patter is very interesting.

A particularly useful little bit of tech for us radio tinkerers:

I’ll be checking back each day until Christmas. Thanks Alan!

Share Button

Orion Launch!

December 5, 2014 | Space | By: Mark VandeWettering

I didn’t get up early enough. But here’s the video of the launch. Is it just me, or is this rocket tossing off a lot of debris? Anyone else notice this?

Share Button

The Big Sunspot, with a sense of perspective…

October 29, 2014 | Astronomy | By: Mark VandeWettering

Earlier this week, I snapped a couple of iPhone photos of the partial solar eclipse with my iPhone, through coworker Eric’s mighty spiffy little Questar, equipped with a filter. Despite the glare, I was shocked at how much detail was actually available, especially for sunspot group 2192, which has been busy kicking off solar flares all week (six major events at last count). I decided to crop the image, convert it to grayscale and work on enhancing the contrast. I also thought it would be nice to get some idea of how truly huge this spot was. Using eye protection, I could see the spot clearly without any magnification at all. But I thought it might be cool to see how big it was compared to the earth. I measured the diameter (roughly) of the solar disk on the image, and then divided it by 109 (the sun’s diameter is about 109x the diameter of the earth). Convert that to pixels, and you get the following picture:


At scale, the earth is only 14 pixels wide.

Does the universe make you feel small?

Share Button


October 24, 2014 | Arduino | By: Mark VandeWettering

My hardware hacking friends have been all a-twitter (and all a-pick-your-favorite-social-platform) about recent actions by FTDI. In case one of my three or so regulars haven’t heard about this dust-up, here’s a brief synopsis.

  • FTDI makes a series of chips which translate between USB and either RS232 serial or TTL level serial signals. These chips are used in (among many other devices) many types of Arduino boards and many USB dongles that are used to program them.
  • Because of their popularity, clones of these chips have been created. These chips are not simple copies, but functionally equivalent replicas, designed to operate the same as FTDI’s chips. There are benefits to this: since they operate the same as FTDI chips, they do not require separate drivers. They are also drop-in replacements for existing designs.
  • Because they are drop-in replacements, unscrupulous parts distributors have “rebadged” this clone chips as the genuine article. These chips are genuine counterfeits. But in many cases, the buyers of these chips have idea that counterfeits have been substituted for the genuine article.
  • Microsoft Windows has a mechanism that automatically updates operating system components (including device drivers) automatically. These updates, annoying as they are, are necessary to patch security vulnerabilities. FTDI releases driver updates as part of these regular updates.
  • FTDI decided to crack down on counterfeits. They released a new driver which attempts to detect non-FTDI chips. When it find ones, it disables the chip by overwriting the USB PID (the coded indentifier used by the USB system to find the proper driver for the device) to zero. This effectively keeps the USB system from using the device: it’s dead. Moving the device to any other machine (Mac OS X, Linux) doesn’t help either. The device is essentially bricked.
  • Note: while it is illegal to rebadge a chip and make it seem to be a genuine FTDI chip, clone chips are not illegal. The FTDI update does not attack counterfeits: it attacks clone chips. This puts all the pain not on the people guilty of fraud, but directly on end users, who have no way of even knowing if an FTDI chip or counterfeit is even in the product that for some reason, mysteriously stops working.
  • Because this update occurred as part of the silent windows update process, it now causes end-users to question whether they should accept updates. This is very, very bad for security.

FTDI: you screwed up. Big time. I know a number of people who manufacture goods using your chips, and they are scrambling to find alternatives because you have destroyed the trust relationship that they have with their customers.

Their reaction via Twitter has been equally without clue. To whit:

ZDNet’s article on FTDI debacle.

I was actually considering using an FTDI serial chip in my revision of my Minima project. Now, I’m looking for alternatives. Way to shoot yourself in the foot, FTDI.


From my twitter feed:

Share Button

Partial Solar eclipse underway….

October 23, 2014 | Amateur Radio | By: Mark VandeWettering


Snapped with my iPhone, held to the eyepiece of a Questar equipped with a solar filter…

Share Button

I got my boarding pass!

October 22, 2014 | Science, Space | By: Mark VandeWettering

Okay, it’s mostly just a lark: sending your name aboard the first test flight of the Orion space vehicle (scheduled for Dec 4.) but it’s kind of fun.

Share Button

You reeky, motley-minded mammet!

October 14, 2014 | Python | By: Mark VandeWettering

Without further explanation:


from random import choice
#                      ,,   ,  
#  '                   ||  ||       A Shakespearean insult generator
# \\ \\/\\  _-_, \\ \\ || =||= 
# || || || ||_.  || || ||  ||  
# || || ||  ~ || || || ||  ||  
# \\ \\ \\ ,-_-  \\/\\ \\  \\, 

c1 = [ "mewling", "paunchy", "pribbling", "puking", "puny", "qualling", "rank",
       "reeky", "roguish", "ruttish", "saucy", "spleeny", "spongy", "surly"]
c2 = [ "idle-headed", "ill-breeding", "ill-nurtured", "knotty-pated", 
       "milk-livered", "motley-minded", "onion-eyed", "plume-plucked",
       "pottle-deep", "pox-marked", "reeling-ripe", "rough-hewn", 
       "rude-growing", "rump-fed"]
c3 = [ "lewdster", "lout", "maggot-pie", "malt-worm", "mammet", "measle", 
       "minnow", "miscreant", "moldwarp", "mumble-news", "nut-hook", 
       "pidgeon-egg", "pignut", "puttock" ]

print "You %s, %s %s!" % (choice(c1), choice(c2), choice(c3))

Inspired by an image that was posted to Facebook.

Share Button

The Si570 and the Si5351

October 14, 2014 | Amateur Radio | By: Mark VandeWettering

Thomas’ talk about the Minima at Pacificon has got me thinking about building one of my own. I actually have quite a few of the necessary parts in my junk box, but lacked a few things, so I made a quick list and sent a quick order off to Tayda. Tayda has really good prices on many of the discretes, connectors, sockets, etc… and even carries the ATMega 328 and LCD panels. Oh, and I got 25 20 Mhz crystals at $.10 each.

But they don’t carry the Si570 (not surprising). I found I could order those from Digikey, but they have an unusual footprint, and didn’t seem the most easy thing to breadboard. Most of the homebrewers seem to build the Minima on perfboard, but they seem to sketch over the details as to how they mount/solder this part down. I’ve been considering making my own version of the digital board and getting a pcb manufactured from OSHpark, and still might do that: I am reasonably capable at surface mount soldering. It might also allow me to make a couple of other changes to the digital circuitry:

  • I think relying on the disabling of pull ups in the ATMega to keep from frying the Si570 is just a bit sloppy. Two resistors and a 2N7000 will implement a simple level converter, and cost about $.50 for both lines.
  • I’ve actually thought it might be good to make the entire digital board run on 3.3v.
  • Considering a change in the LCD as well. Might be good to have a graphical LCD, or one that runs on lower power.
  • I like the idea of using rotary encoders instead of a pot.
  • A basic keypad might also prove useful.

Anyway, I’m getting a bit astray. To experiment, I thought it might be good to see if I could get an Si570 on a tiny breakout board so I could breadboard this up before building it for real. While surfing around and also reading today’s mail from the Minima mailing list, I learned about the Si5351. There is some speculation on the mailing list as to whether it is a reasonable chip to use in place of the Si570. In particular, people are concerned about its noise performance. But it does at least have some intriguing features:

  • It’s cheaper.
  • It is a more conventional package (10-MSOP, still surface mount, but more conventional)
  • It can generate 3 different clocks simultaneously (it could potentially replace both the BFO and LO)
  • NT7S has already written the code to interface to it.
  • Adafruit already has a nice little breakout board for it that only costs 8 bucks. It’s also already got pads to add some SMA connectors, which could make it a nice little bit of test equipment.

I’m not sure how to evaluate its performance, but it is at least possible to use it as the building block for an SSB transciever, as demonstrated by Jason NT7S using it in this reciever based upon the SA602:

And another early test in a QSO with AA7EE:

Jason has clearly been on top of this chip for a while, surfing his blog for the si5351 tag gives a ton of cool information. He even has his own board, quite similar to the Adafruit board, but it includes isolation transformers for each channel. Very nifty, and probably better suited for RF work than Adafruit’s board. Jason says he might e kitting a batch of the boards for sale: I’m gonna stay tuned.

Nifty stuff.

Share Button

A day at Pacificon…

October 13, 2014 | Amateur Radio | By: Mark VandeWettering

Pacificon is the local yearly hamfest, which took place at the Santa Clara Marriot this weekend. I couldn’t go for the entire weekend, but I decided that spending at least part of my Saturday amongst my fellow hams would be good fun, so I set my alarm to an annoyingly early time (for the weekend) so that I would be able to drive down ahead of the first Saturday session (which began at 8:15) and went to sleep.

The drive south was uneventful, I arrived at about 8:00. By then, the swap meet had been underway for about 2 hours or more (I never understood the desire of people to either sell or buy things so early in the morning) but I did a quick scan. I did see a few things that seemed pretty nice: I’ve been meaning to pick a Variac, and saw a couple of fairly nice ones for $80, but for whatever reason, I didn’t bite. I also saw an old TRS-80 Color Computer, which I thought was cool, but also decided against it (I’m sure to the great pleasure of my wife). I got myself registered, and headed off to my first session.

The first session I attended was the session on FreeDV given by Mel Whitten, K0PFX. FreeDV is a digital voice program that uses David Rowe’s Codec2 low-bitrate voice codec. Like many presentations which concentrate on software, it was fairly mundane, but I did come away with something I didn’t know: The FreeDV QSO finder. I had tried to play with FreeDV before, but had some difficulty locating people using it. The QSO finder might help. I also heard some progress on the SM1000 Smart Mic which is basically a computer that manages the digital codec stuff transparently, essentially turning any SSB transceiver into a digital voice transceiver. It’s still a work-in-progress, but sounds really cool. I also learned that FlexRadio has started shipping software that automatically integrates FreeDV, courtesy of a new architecture change that allows third-party code to be loaded into their proprietary SDR software. A nifty merger of open and closed software.

The next session I attended was given by Patrick Bunsold, WA6MHZ, entitled “Restoring Antique Radios”. You can check out his website here. He has an amazing, even a maniacal, collection of radios of all sorts. His presentation consisted of a huge number of slides of an incredible number of radios that he had acquired and restored. His presentation didn’t go into restoring the electronics, instead it was mostly centered on cosmetic restoration. While I found that a tiny bit less informative, ti was nevertheless a nice presentation. I ended up texting my wife that she should appreciate that my own enjoyment of the hobby didn’t involve acquiring dozens of each type of radio (he had 27 Heathkit Two-ers, for instance).

The third session was for me the most enjoyable. Thomas Sarlandie, KK6AHT, gave a talk entitled Building Minima, an HF Transceiver. The Minima is an all-band SSB transceiver, designed by Ashar Farhan, VU2ESE, who is also the designer of the popular BitX transciever. The Minima is a particularly interesting design. It is simple, inexpensive, modular, and frequency agile. It uses an ATMega328 (the same processor used in the Arduino) and an Si570 programmable oscillator chip from Silicon Labs. The Si570 can be instructed over the I2C bus to generate a wide variety of frequencies, which the Minima uses as the local oscillator signal. Very nice. Thomas’ presentation was really good. Luckily, you don’t need to take my word for it, you can look at his materials, as well as an audio recording on his web page. It’s inspiring: I’ve ordered some parts to start my own. More on that some other time.

During the lunch break, I bumped into Bruce Perens, K6BP. I first met Bruce over two decades ago when he was working at Pixar, and bump into him from time to time. He was giving a pair of presentations on on Alogram, his “HT of the Future” concept. I’ll try to dig out some online references to it, but the Bruce’s vision is basically to make an HT which is an open platform, and will allow you to create a more app-like environment where new modes can be quickly implemented. Nifty…

I also attended Joel Wilhite, KD6W’s talk on Building Your Own Microwave Rig. I’ve been interested in microwave operation for quite some time, but haven’t done much. I mostly filed it under “for future consumption”.

I bumped into a few other people, had some lunch, and then realized that I was getting tired. I stopped by the ARRL booth to renew my membership, and then headed home, thinking about crystal filters and the like all the way home.

A nice Saturday.

Share Button

You can’t learn some things from the Internet…

September 29, 2014 | Rants and Raves | By: Mark VandeWettering

The Internet is awesome. For instance, this morning I found a link to this amazing Nixie Tube clock, which uses neon bulbs (no transistors or ICs) as the logical elements (clocks are really just fancy counters). I think I might have seen that neon bulbs could be used as logical elements (Alan Yates? Did you tell me about this) but it had slipped my mind.

Very, very cool. Seems to me this kind of logic could have been implemented in the Victorian era. If you need some bonus links, you can try this link, which includes circuit diagrams or Ronald’s page on ring counters, or even a link to Dance’s Electronic Counting Circuits. Clearly, the internet can be very useful.

But it can be really, really annoying too.

In the week, Apple released a couple of new iPhones (the iPhone 6 and the iPhone 6 Plus). The early reports were that they were astoundingly good sellers: Apple sold 10 million units over the launch weekend.

There were two things that marred this performance. The first was the 8.0.1 update. It turns out that the first update that Apple pushed out to consumers was terrible, and disabled access to the cell network on phones. This update was only available for a few hours before Apple pulled it, but it made people grumpy. The 8.0.2 update followed shortly, which seems better, but there is a lot of general grumbling (some of it from my missus) about stability, particularly with Facebook. As irritating as this can be, there seems to be little doubt that some future updates will get things sorted out, and all will be well.

The bigger issue was bendgate. Some people reported that they had put an iPhone 6 in their back pocket, and later discovered it was bent. As a consumer, I’m pretty shocked. One thing that I like about Apple is make fairly robust phones. My 2 year old iPhone 5 hasn’t got a scratch on it. I’ve had numerous iPhones, and never had any complaints about physical robustness. But hey, the videos don’t lie…

Or do they?

The problem is that it’s actually impossible for us to figure out how significant the problem is by reading stuff on the Internet. Take for instance this “informative” video:

That looks pretty bad, right? Lots of people apparently claimed it was rigged, so he followed up with this:


But here’s the thing. On release, you’ll find people doing all sorts of things to iPhones, like hurl them at the ground and put them in blenders. The reason they do so is that they can make money by doing this kind of thing. If you can get 45 million hits (as Unbox Therapy did for their first video) you can easily buy all the phones you want and torture them in different ways. And, because the “bend” issue was already the wind, with large communities of individuals irrationally supporting Apple or its opposition, YouTubers are strongly incentivized to toss more fuel on the flame. After all, if youo had a video called “Apple iPhone seems sturdy, hard to bend.” I doubt it will get a lot of clicks.

Of course Apple has responded to say that only 9 bent phones have been returned, and had a bunch of the press tour their “we torture test our iPhone” labs. This too, actually doesn’t help. Apple is notorious for carefully crafting relationships with the press, and it seems unlikely that they would have invited the truly cynical to view the process and ask questions. Indeed, the press in this case seemed to be lobbing softballs at Apple, and didn’t actually ask any interesting questions.

The best information released to day is probably from Consumer Reports. They seemed do a pretty good scientific test. But I must admit: I’m not super happy with this testing either. Their three point testing was centered on the back of the iPhone, when it seems pretty clear from most of the other images of “bent” iPhones that there seems to be some weakness up near the buttons toward the top. It seems to me that changing where force is applied might change the results you get.

In the end, it seems virtually impossible to figure out much useful about the bendability of iPhones. I went and handled one at the Apple Store. It seemed reasonably sturdy. I’m not going to make money by mangling a phone, so I didn’t try. By the time my upgrade cycle comes around next year, there will likely be some additional data when the furor has died down (and IOS 8 will probably be stable). But it seems unfortunate to me that with all the ability to exchange information, I’ve only increased my anxiety over this purchase, not decreased it.

It would seem the Internet is only good at finding information that nobody cares about.

Share Button

Schrödinger’s Cat

September 10, 2014 | Raspberry Pi | By: Mark VandeWettering

I’ve long suspected that my cat Scrappy had teleportation powers:

Okay, okay, I know he doesn’t really. But it was kind of funny.

Share Button

Why are tiny systems so big?

August 31, 2014 | Emulation, My Projects | By: Mark VandeWettering

The last five or so years has been a remarkable period in computing. About five years ago, I began to fear that computing would be increasingly pre-packaged: that laptops and tablets would totally take over the market and the ability to find computers which were well suited for programming and experimentation would more and more difficult.

But something remarkable happened that I didn’t see coming: the opposite occurred. The market for small development boards and computers exploded. At many different performance levels, and very inexpensive price points, computers for experimentation flourished and people began programming in a way that they didn’t before. We see the rise of platforms like the Arduino, the Raspberry Pi, and the Beaglebone Black at super-inexpensive price points. It is truly an awesome time for computer experimentation.

But aesthetically there is something that jars me a bit: that these small, simple systems aren’t really that small or simple. Consider the Arduino Uno: it is a small 8 bit computer with only 32K of flash memory. But the development environment for the Arduino isn’t self-hosted: you need a separate cross compiling host, and the software is dozens of megabytes in size. In the 1980s, we had systems of comparable overall power (based upon processors like the 6502 or Z80) but these machines typically self-hosted interpreters (most commonly for BASIC) that allowed development to proceed without an additional cross-compiling development system. While these systems lacked some of the power of modern development environments, they also were simpler and easier to master.

Systems like the Raspberry Pi are at least self-hosted. I really like that feature: you load up an SD card with a system like Raspbian or Ubuntu, and you have a complete Unix system. But I can’t help but wonder if this is a bit too daunting for the hobbyist without three decades of Unix experience.

I guess what I think is interesting is providing a smaller, closer to the “bare-metal” environment for embedded programming that can be self-hosted: that can run on the target hardware, with only the thinnest layers of operating system.

Okay, so that’s the idea. What options are there?

One of the most interesting things I’ve begun looking at is Fabrice Bellard’s TCC compiler. Having a C compiler built into your embedded machine may seem a bit odd, but Bellard’s compiler is relatively tiny and can generate code for either Intel or ARM. Experimenting with a few of my own programs shows it to be remarkably capable: it compiled both my toy raytracer and the dump1090 software defined radio program. The resulting code is obviously not super efficient: my raytracer runs about 1/2 speed relative to the code compiled with gcc. But it does work, and the compiler is fast and small enough to self host. Pretty interesting.

What kind of target hardware should we target? It seems like we can get a lot of leverage by targeting ARM based boards, and adopting popular, easily available platforms would make it easier for people to get started. In most respects, it’s hard not to pick the Raspberry Pi: it’s popular, it’s available, and a fair amount of information about “bare metal” programming it seems to be available. It also seems that we can use emulators like QEMU to help bootstrap and debug.

Do we need an operating system? If so, how much of one? It’s kind of an open question. I’d like to see something whose size is maybe a few thousand lines of code. Minix? Xinu? A simple real time OS/executive maybe?

Share Button