too much fun

My two packages arrived today at the post office so I just hauled in all the loot from this earlier post in which I’ve purchased some new toys.

Raspberry Pi Zero W

The photos from their website don’t really describe how truly small this computer is now. They’ve somehow managed to stack the RAM on top of the microprocessor to save space. As I’ve apparently ordered the wrong video adapter cable, I’ve got a trip over to Best Buy Frye’s Electronics this evening so that I can sort that one out. I need a female HDMI to DVI, in other words. Otherwise, I’m still pretty stoked. Since there’s only one micro-USB I think I’ll temporarily need a small USB hub while I’m at it.

PiZero

NeoPixel Ring

This arrived as well, all four of the segments but it was lost on me that I’ll need to solder each of them together. Fortunately, I have a soldering iron here somewhere. :looks around: I’m certain of it.

COZIR CO2 Sensor with RH/Temp

And in the other relatively BIG package is the relatively small sensor package. No wonder they charged me $21.88 to ship this to me. Seriously, it weighs about an ounce.

And it looks like I’ll need a 2×5 jumper to attach this over to the Raspi, with a solder-able header for that, too.

Update 1

Alright, I’m back from Frye’s with a handful of stuff and I’m back in business. The video adapter allows me to see what’s coming out of the Raspberry Pi Zero W and the micro-USB hub allows me to hook up a keyboard and mouse to talk to it locally. A first install with the Raspbian Jessie Lite image resulted in a terminal-only configuration (I must have been in a hurry and didn’t read the differences on their page) so a second install of Raspbian Jessie with Pixel was just what it wanted: a full desktop experience.  If I get some time this weekend I’ll try to have it talk to either the sensor or the light ring.

Update 2

I just managed to solder together the NeoPixel ring. Due to the size of the electrical pads on the ends of these, I’d suggest that this falls into the catagory of advanced soldering and not to be taken on by the average person.

NeoPixel
These are not my lovely hands.

Additionally, I’d say that this feels a bit fragile in the area of the soldering joints between each quarter-circle. I’m going to suggest that anyone who incorporates one of these into their project needs to seriously think about ways of making this more stable/reliable since the soldering joints between them are tenuously-small.  (Imagine three distinct electrical connections across the tiny width of this thing.)

What I also found is that there isn’t anywhere to clamp a hemostat for soldering these jumpers since the LEDs run all the way to the end where the connections should go.

I did add an inline resistor as Adafruit suggested to lower the input voltage or perhaps to lower start-up voltage spikes.

I managed to re-purpose a nice external 5V switching power supply that should drive all the LEDs nicely. It was left over from the supercomputer project when I swapped in a USB-based charger instead for that. Amazingly, Adafruit suggests that those 60 LEDs need a whopping 3.6A of power to drive them. I’m guessing that reality is more like 1A but I’ll play this safe. Per Adafruit’s suggestion I included a 1000 µF electrolytic capacitor across the output voltage to protect the NeoPixels.

VGD-60

So I’m prepped to do a final test of the NeoPixel ring for power and functionality on a standard Raspberry Pi 3 rig (since it sports an actual header). Once I’ve coded a test and verified that it works then I’ll take the soldering iron to the Raspberry Pi Zero W and wire it in with a quick-connect.

headerwire

I’ve now got the Raspberry Pi Zero W booting with just the power adapter. Note that you can rename its hostname, toggle on the VNC Server, adjust the default screen resolution to your liking and then—in the Finder program in OS X—open up a remote session to its Desktop with vnc://pi@hostname.local, for example. Or, toggle on the SSH Server and connect from a Terminal session with ssh pi@hostname.local.

Have I mentioned how awesome it is to have a fully-functioning computer for $10 (plus $6 for the micro SD)?

And now the power supply is completed and wired to the NeoPixel ring. Everything’s set for 5V DC in at the moment but I may try to adjust the input voltage down to 3.3V later for technical reasons. (The NeoPixels are designed for the Arduino and its output data voltage is 5V whereas the Raspberry Pi is only 3.3V. By adjusting the input voltage down then it makes a 3.3V data line look bigger than it is. There are other tricks like adding a 3V-to-5V data inverter chip but I’d like to avoid that one if possible.)

PowerSupply

Update 3

I’ve smoke-tested the power supply/ring combination and it’s looking good. To make things easier for this step, I’ve now setup a surrogate Raspberry Pi 3 for testing things but since I only had a leftover 4GB microSD, I was forced to use the no-desktop “Lite” Jessie version of Raspbian. But that’s now ready and I’ll likely have some time this weekend to do a basic blink test.

Advertisements

the fun never ends

Pretty stoked about my recent orders from the glorious interweb-of-stuff yesterday. Because, obviously, five Raspi’s are never enough for one coder.

Raspberry Pi Zero W

w00t. It’s a single-core version of, say, the Raspberry Pi 3 as if it were stolen, driven to a chop-shop in east Los Angeles and then people ripped off things like the RJ-45 port, the four full-sized USB ports, the header, half the RAM, etc. So it’s definitely stripped-down by comparison.  Looks like the HDMI connector and the two USBs are now their tinier counterparts. I don’t see an audio jack. It still has Bluetooth.

The ‘W’ model (up from the Zero) now includes embedded wi-fi so this ought to be killer. Best of all, it only costs $10 compared to $35 for the Raspi3. Too bad it’s twice the price of the Zero, however. And at 2.6″ x 1.2″ it’s smaller than the ones I’ve had to-date.

Raspberry Pi Zero W

zero-wireless

What will I do with this? It may very well go into the aquarium project I’m working on.

NeoPixel Quarter-Ring 60 LEDs

I also ordered four quarter rings of NeoPixel(s) to build a lighting rig for the ecosystem-pi project.

NeoPixel

The intention is to apply realistic lighting to a closed-system aquarium project throughout the day, adjusting the total lighting to compensate for the measured CO2 levels inside. Basically, the more light, the more plant growth, the more O2 produced and the more CO2 consumed in the process. There becomes a point where too much CO2 is bad for the shrimp so you don’t want to stress them out. And then too little CO2 stresses out the plants.

Digital CO2 Sensor

I was able to find a CO2 sensor for the Arduino which could be tweaked for use in a Raspberry PI project. This particular model also includes relative humidity and temperature for better logging.

COZIR Ambient carbon dioxide sensor with RH and temp

CO2_RHT-ambient_sensor_large

The Project

So far—since I don’t have any sensors, LED lights and such yet—I’m stuck with the GUI design for the interface at this point and making sure that the shrimp are happy.

ecosystem-pi.png

Everything in the interface is mocked-up right now but it ought to be fun to get the Raspberry talking to the sensors and adjusting the lighting from programmatic control. A fair bit of research has been done so far in the areas of aquarium and plant health.

But the two shrimp seem happy and have cleaned completely the two plants of their week’s worth of algae in three day’s time.

raspberry pi 3 with node.js

First day with the Raspberry Pi 3 and I’m already having way too much fun with this! Today, I decided to see how fast I could get a Node.js—based webserver running on it and was not disappointed.

Out-of-the-box it comes with the NOOBS installation manager at bootup which politely asks you to install an operating system from the selection. I chose the default Raspian operating system because it’s basically a Debian project and well-trusted.

My task was made simpler because I’d purchased one of the Raspberry Pi 3 kits which included a microSD card pre-loaded with NOOBS. I’d suggest doing the same since the markup over a standard 16GB microSD wasn’t much, to be honest. The empty Raspberry Pi 3 board costs about $35 these days but the kit at $60 includes the NOOBS-preloaded microSD and a 5V power adapter. My kit also included a basic/clear case but I opted for a $9 red case which seems to be more standard.

Setup

For the initial setup, you need spare Ethernet and HDMI-to-DVI cables, USB mouse, USB keyboard and a monitor. Everything gets plugged in before adding the power adapter to boot it.

One thing to note if you’ve just purchased one and are confused, you’ll need to remove the microSD adapter from the included SD adapter before inserting the former into the Pi. They include the larger SD adapter because some people might need that, in theory, to insert it into their workstation if the need arrives. Store the adapter for future use.

microsd

I found that the latest release of Raspian somewhat hides the wi-fi configuration compared to earlier versions. You’ll find what you need by left-mouse clicking the network symbol in the upper taskbar. I also found it necessary to manually edit the /etc/network/interfaces file in a terminal session to change the wi-fi from manual to dhcp. I would imagine that subsequent versions of Raspian will fix this however, you might not be able to easily update the operating system until you’ve achieved a working network connection in the first place.

Headless Boot

Confirming that the networking was happy, I shutdown the Pi, removed everything but the power adapter and booted it again, doing everything next remotely via ssh or RDP.  First I updated the software via a terminal session and then installed tightvncserver, xrdp and samba. I configured a shared drive for use later in /etc/samba/smb.conf file and created a Samba network user for the default pi operating system user. Next, I tested remote connectivity from both a Mac and a Windows-based computer and all looked good for the share.

Next, I installed Node.js globally from a Nodesource.com—based distribution as well as the express-generator. I created a ~/share/sites subfolder and then used Express to generate a new hello application below this. I then started up the newly-created website.  Fortunately, the Samba client recently installed publishes its own hostname to the DHCP server so that I could then surf the website from Windows without knowing its IP address as seen here. The default port for an Express website is 3000, btw.

raspberrypi_webserver

Since I’d created a network share earlier I simply edited the default Express-generated files using Wordpad on my Windows—based computer remotely.

What Next?

From here, I’ll likely be investigating earlier projects like the magnetic card swipe visitor station to convert it to using a Raspberry Pi 3 instead of a larger workstation. By adding a USB-based drive you could likely repeat the earlier Kloudspeaker project with a much smaller footprint.

I intend to create a squad of four Raspberry Pi 3’s in a housing which includes an Ethernet switch, a common power supply and a fan all in a self-contained housing which promotes good airflow and optional stacking. In this case, I’d need to change over to an Ubuntu operating system, I think, since some of the provisioning tools there might make something like this easier. I’ll ultimately have a supercomputer for a fraction of the cost of what you might expect to pay.

In a follow-up post, I’ll be discussing my attempts to install and evaluate the Ubuntu Core for the Raspberry Pi 3 operating system using a second microSD which I purchased for this purpose.