Monday, August 8, 2016

Tip for Apple Airport users:

Check your WAN ethernet settings. If you have modern cable modem, you want gigabit Ethernet. Just switched mine, and got a /big/ speed boost.

-JRS

Thursday, July 14, 2016

Junk Box Arduino - updates in my website

I just updated the website to list Junk Box Arduino. The cover price is $34.99, although as usual from Amazon, you never pay full list. Also, I noticed something in the book. If you buy the hardcopy, which quite a nice book, by the way, you can get the ebook for $5.00.  Full details on the last page of the physical book, or on the website it points you at, which is here: http://www.apress.com/companion. Cool. I didn't know about that.

-JRS

Wednesday, July 13, 2016

Remember that technical book I was writing?

So I got an email from my publisher today. My review copies of Junk Box Arduino: Ten Projects in Upcycled Electronics are on the way.  Hokey smokes, I've got a new book in print. :) Apress seems to be spreading the word far and wide too, There are even (allegedly) torrents of it. While that's bread off my table, still, I've never had a project big enough that anyone's stolen it before. I'm back in the saddle, hanging on for the ride.

Of course, this means my part in this project is pretty much done, so I've been tinkering with some new ideas for the next book. Presently leaning toward programmable logic - start with TTLs and work my way up (perhaps) to FPGAs. Here's what I want to be able to do next. I want to build a computer, from scratch. Not from boards sourced in China. I've done that. Not from boards sourced in Oregon, and parts sourced from everywhere and solder. I've done that. I'm still doing that, and it's still fun. But I want to design one myself. I'd like it to have ICs that don't require a microscope to work with, but that's really impossible once we get to the FPGA world. They're creatures of the modern era, and thus, SMD. I don't know how this project is going to look yet, whether it will be a breadboard monstrosity (the current model) or stripboard or perfboard, or even wire-wrap (probably not.).  If I make good on my FPGA threat, it might wind up designed and built inside a single pre-made board, although that smacks of magic again, and I really don't like treating electronics like magic.

Anyway. Book in print good. Review copies coming.  I have a list of people I've promised review copies to, so expect to hear from me soon.

Woohoo!

-JRS

PS: the book link is here: https://www.amazon.com/Junk-Box-Arduino-Projects-Electronics/dp/1484214269




Saturday, June 4, 2016

Replace Chrome App Launcher in Xubuntu Linux

So Google has announced that the Chrome App Launcher isn't cool enough, and it's being discontinued. Since I was one of the eight people who actually used it, I was a little annoyed by this, so I set out to replace it with a plain old launcher.

First, kick off Chrome, right-click on the bookmark bar, and tick "show apps shortcut." You need this.

Next, go ahead and delete the Chrome App Launcher from the usual panel.

Now right-click on your panel where all your other launchers are (yes, I came from the Mac world and my panel #1 at the bottom of my screen looks remarkably dock-like,) click panel, add new items, and select Launcher. Then click on Add.

Right-click your new launcher and select "properties."  Click the plus button to add new items to the launcher. Search for Chrome first, and add it. So long as Chrome remains the first item in the list, the icon will remain Chrome, and that's really what we want.

From your Chrome window, click the apps shortcut at the far left of your bookmarks bar. This will list all your apps.

Right-click on each chrome app and select create shortcut. You can put them in your applications menu if you want to, but the one that's most important is a desktop shortcut. Do all the apps you have.

Select all the google app shortcuts on your desktop and drag them to the Chrome launcher properties window. Then close the properties window. You can delete the shortcuts off your desktop, too.

That's all there is to it.  Now, if you click-and-hold the icon, or click on the little up-arrow beside it, you'll get the menu. Click on one of those, and Chrome will launch with your app running. If you just click on the icon itself, you get Chrome.

Now I just have to figure out how to make this happen in Raspbian, although at the speed Chromium for Raspbian is updated, I should have another decade before Chromium launcher goes away.

-JRS


Monday, April 4, 2016

Looking Glass and Irreconcilable Differences Dead Tree Editions

Looking Glass and Irreconcilable differences are, at last, on Createspace in dead tree editions. Yay! I'm back in the printed book business. :)

-JRS

Wednesday, March 16, 2016

Getting Minipro 866 working with Raspberry Pi

For some time, I've had a Minipro TL866CS eprom programmer that I got on Ebay. While it works very well, its software is windows only. I'd like to move it downstairs permanently where all the eproms and whatnot live. I'd also like to move my logic shrimp (a logic sump compatible open source logic sniffer) down there, as well as have a terminal and a browser and email and all that good stuff in my workshop.

The obvious answer would have been a PC. If I had a spare that worked. Since I don't, I turned to one of my stack of Raspberry Pis, in this case a model 2b, formerly my desktop Pi before the model 3s came out.

The upshot: my basement Pi now has minicom for terminal/rs232 stuff (I still need to test that with a USB rs232 dongle) OLS, the logic-sump compatible software I'm used to (which I also still need to test with the logic shrimp). I figured it would be a simple matter to download the minipro software from here: https://github.com/vdudouyt/minipro, compile, plug in the minipro and go.

Nothing worked. The minipro flashed its red LED continuously. It wasn't getting enough power. I'd stumbled over the solution to this before. Edit the Pi's /boot/config.txt file and add the lines:

# Increase max USB current
max_usb_current=1

to it. Now the Minipro's LED stayed on, but the minipro open source software still wouldn't talk to it.

lsusb showed the 866's USB ID, 04d8:e11c, properly, but listed it as a Microchip Technology device. Which tells us who made the USB chip. This was different from my x86-64 Linux machine's enumeration, which I suspected was why the software wouldn't see it. I'm not sure this step was necessary, but it didn't hurt anything. I coped /usr/share/misc/usb.ids file from my desktop linux machine to /usr/share/misc/usb.ids on the Pi. Now the 866 enumerated identically to how it did on my desktop PC. The software still didn't work.

My next attempt was installing the latest libusb-1.0.yadda. I'm fairly certain this step is unnecessary, but I downloaded libusb-1.0.20 from http://sourceforge.net/projects/libusb/files/libusb-1.0/libusb-1.0.20/ , built, and installed that. It worked fine, but the minipro software /still/ didn't work properly. So I dug into minipro's source.

The problem I was having turned out to be unrelated to USB (Or I'd solved all the USB problems already. It's hard to tell in retrospect.) the minipro software was built on an x86-64 system, where chars are all signed in C. On arm architectures like the Pi, chars are unsigned. In the parsing function of the minipro software, the author uses one variable, a char, to store the output of getopt() whether it's valid or -1, which getopt returns when it runs out of options. If you store -1 in an unsigned char, you get 255. It's not equal to -1, which the line tested for, so it tried to parse it. Finding no valid commands with that character value, the parser loop promptly decided I'd fed it garbage, gave me the instructions, and terminated the program.

Once I understood that, the fix was pretty simple. Edit main.c and change the char c into int8_t c. (Coding on Arduino has made me paranoid about making sure my data types really are what I think they are.) I've sent a pull request to the original author with these changes, or you can download my fixed source here: https://github.com/jrstrick/minipro  (Update: the Minipro  dev accepted my pull request, so the main trunk should now work properly.)

You might be aware there's a Qt GUI for the minipro software out there. You can get it here: https://github.com/wd5gnr/qtl866 , but I have not yet gotten it to work with the Pi. It gives exactly the same error the command line used to, even with the fixed version, so I'm suspicious of how its option string is being built before it calls minipro, but I don't know Qt at all. I may hack at it more later.

-JRS

Wednesday, February 10, 2016

Looking Glass on KU Updated

Noticed a lack of embedded fonts on the new Looking Glass ebook? Yeah, me too. I fixed it.  Give Amazon a few days to approve the update and push it out to their servers.
-JRS

Blog Archive