Saturday 30 August 2014

Day Two with the ODROID-W

First piece of advice: Never solder without the requisite amount of caffeine in your system.

I haven't powered it up just yet, one of the solder points got scorched, and got crap all over it, even when I hit it with circuit board cleaner... so there in lies my first complaint - Hardkernel, can we make these solder pads just a little bigger? Doesn't have to be much, mind, just a fraction bigger? I'm sorry, I'm not a robot, and usually, with my glasses on and everything, I can solder, but not these.

Form factor is good. Quite good actually. At a third of the size of my RaspberryPi for the main board, with a USB socket and 26 pin header its ten grams, I can think of small places for this to exist. On board LiPo charger and power management IC means it can run off the smell of an oily rag.

With the carrier board, size shoots up to near RaspberryPi, but in the deal, you get four USB ports, plus an SPI 2.2 inch LCD if you so elect, which is capable of displaying the GUI. The LCD is not of the touch variety, however, it would make a great read out for a project. This is the exact reason I got it for - its small, its got pretty much everything built in, and it can be "deeply embedded" in a box and forgotten about, while depended upon to do its job.

As mentioned, the full size 26 pin header is preserved, so is the MIPI-CSI camera interface. The MIPI-DSI display interface is gone, in the consideration of saving space. Storage is microSD or Hardkernel eMMC module. Don't think you'll get a speed boost out of the eMMC, the Broadcom BCM2835 controller is notorious at many things, being slow on its interfaces is one such thing. External display is via micro-HDMi.

We ordered this less than two weeks ago, and while I have two more weeks to run on this contract, I didn't think I would be seeing the hardware before delivery date. Hats off and many thanks to Hardkernel! Postage for the two ORDOID-W boards, the carrier board with LCD and the connector pack to Australia was reasonable also, being $25.

I will be building one for myself for demo purposes at the conclusion of this contract, and I'll be equipping mine with NFC as well as a 1D barcode scanner for varying input schemes. The database scheme will be preserved, but I'll populate the database with dummy data - SQLite serves for most basic database needs, although my admin software can administrate the heavier weight MySQL upon client preference.

At some point, if there is need or want for this project to be demoed at shows, such as the Newcastle Show, or the next Sydney Maker Faire, I can do so with ease. It'd be nice to have a complete project, not just a bunch of boards, or a baulky computer misbehaving (because its bloody Windows...!). Next Maker Faire, my Mum is thinking of running her own stall, and I've been invited along.

There has been some talk about a major manufacturer here going from "paper and pen" to a database system for one of their major products, while preserving interoperation with the rest of the industry, which is slowly being forced into the 21st Century (through no real want of their own). For their control systems, they are using XML and third generation cellular technologies on a nationwide VPN. It would be nice if this manufacturers database could spit out compatible XML to the control network, and not be some shitful Windows half arsed solution, which I can see some fly by the night merchant promising the world about. The State Government has already made a decision in the wake of two major Royal Commissions to invest in a 20 year old technology, citing the safety features, yet expecting 9.6k to carry "multiple streams of HD video..." Uh huh. Ok. Sure. Might be able to do that with specially managed 4G, but certainly not 9.6k.

Of course, I was told, China is probably going to develop the next interoperable standard for this industry, mostly because the Government runs this industry in China, not a bunch of squabbling kids in the HR department of some two bit company citing some legalise from their SOPs to add on some feature that no one else cares about when they clearly have no clue about reality, only the state of their paperwork.

Its certainly food for thought.

Friday 29 August 2014

New Toys

ODORID-W, XMOS StartKit, and ODROID-W in the LCD carrier board. Got all of this yesterday.

Wednesday 13 August 2014

Monday 4 August 2014

Been a couple of days...




As always, please ignore the mess of cables.

In the first photo, my orange SmartRap printer, about 90% complete. The thermistor was short circuiting, and the endstops were wired wrong, but apart from that, it is fully operational. I've tested it for motor response, and all tests out. The 100W power supply also powers the attendant RaspberryPi, which hosts the 3D printer queue, currently using OctoPrint, and waiting for the next development release of Bumblebee.

The second photo shows you the result of the arm I had gotten for my Surface Pro, just with the iPad stuffed in it. The iPad is displaying Emerald Time, an app I'd heard about on the time-nuts mailing list. It takes the time from four NTP servers, and gives you an offset compared to internal time of the device. An interesting thing for me, for sure!

The desk is a little cleaner, I got sick of the mess last night, and tried to route as many cables through the hole in the desk at the back. I haven't been totally successful in eliminating all cables from my workspace just yet.

My future plans for Bumblebee is to get a BananaPi, and place it into a FairyWren motherboard, which then goes into a rackmount Mini-ITX case, with a NinjaBlocks Pi Crust stuffed in there too. It'll run a local, backup print queue using OctoPrint, but mostly take the print jobs from my own BotQueue server when I set that up. The Bumblebee host will be able to control the printers operation to the largest degree, using some magic I have on the drawing board.

In some other news, I have been invited to Maker Faire Sydney to show off my 3D scanning rig. That'll be the weekend after I get the rig, and now that Sculptris is on Mac OS X, it makes my life so much more simpler...

Tuesday 29 July 2014

Halt, and catch fire, you bastard...!


I come home with an obscene amount of loot over the past two days, some of it is in the gratuitous photograph above. In the picture:

* An Asus dual core Atom Fonepad with a smashed screen, but everything else working
* A FitPC3
* A BeagleBoard Black (BBB) in case
* A RaspberryPi Model B, MkII (RPi) in case
* Lots of circuit boards for me to solder up
* A remote for 443MHz WattsClever power points
* A 915MHz Z-Wave USB stick

Please ignore the cable clutter. When you come to know me, you come to understand, as much as I like cables, and know what each one does, cables are the bane of my existence. It has become so much of a nightmare, I have frustrated partners into arguments - "Why the Hell are you playing with all of those damn cables?! Do you even know what each one does?!" Sadly, I do. So don't ever ask stupid questions, or you will get an intelligent answer.

Peeking out in the top left corner is my Parallella. Oddly, the HDMi display has stopped coming on, but SSH, and VNC after activating the server, work fine. Oh well, that display is meant for my NUC anyway, the whole point of having access to the Parallella was to have VNC on it.

The FitPC may have a new home. We'll see...

Enough obscene amounts of computing hardware for now... enjoy!

Thursday 24 July 2014

Signs of life, memory maps, and a headache


"Signs of life" is a song by Pink Floyd, the opening track on their 1987 album "A Momentary Lapse of Reason." It is quite an unusual track, and the different sounds and samples all mean something individual to me. The first picture is also "Signs of life" - this time from inside the silver chip on my Parallella board - I compiled the Hello, world! example.

Now, to those already doing cool things with the Epiphany, yeah, ok, thats no mean feat. And sure, it isn't. Except I am a Doubting Thomas, and I like to see it before I accept it as good to go. Its all good to have this fancy board on my desk, and it looks cool and all that, sure, and people are building supercomputer clusters with it, great, but does it do anything?!

And yes, it does.

The astute will note it is via VNC connection on my MacBook - this is deliberate, as I don't possess a USB hub with a power supply at the moment - got two USB hubs, no power supplies. And the last thing I want is a USB burnout on my shiny new board! Especially when I just got the wretched thing working!

Now all I have to do is make some time to evaluate exactly where I'm going to go next with this project, and jot it down in mind map format. I may make some notes tonight after dinner.

The second picture is also interesting - a rudimentary memory map arrangement for a single Epiphany core! Of course this will be integrated into my mind map.

Now if only I could get rid of this rotten headache...

Nerd care package

Straight from the bowels of Jason HQ:


That is a Z-Wave USB controller on top there under the tape... power management is important to me.

I get bored easy...

Decided to mock up a logo for my supercomputer. No, it will not process infinity. I just like the sigil. Perhaps I should've used a rune of some description, like Bluetooth? Yes, the "German Engineering" is a little bit of trolling on my part (a la 9front) - however, my plan hasn't fallen off!

If anyone has a better idea for a logo, I'm all ears. Or eyes, as the case may have you...

9P gateway

I'm liberally lifting diagrams from Ericvh's repo, and I'm presuming they're open source enough for me to display them on my blog, and explain how my system will look like a couple of hundred million dollars worth of supercomputer. If I can't do this, someone tell me, and I'll take them down and formulate my own diagrams.

Todays discussion will revolve around the 9P gateway. Whats that? Inside the Zynq chip on the Parallella board will run a Linaro Linux distribution. It will talk to a Stratum-1 NTP server (I'd like 1PPS accuracy, if I can swing it). That will in turn talk to a SyncFS server - see https://github.com/geekmug/syncfs - and that clocked SyncFS filesystem will then talk into the Epiphany grid. The Epiphany will simply be told what time it is, I don't want to go monkeying with GPIO to get a 1PPS into the grid itself, as I'm unaware of the propagation models of the e-Link network (although I am aware of e-Link multicasting - hmmm?).

The e-Links on successive boards will (hopefully) be hardlined together, forming a larger grid over many Parallella boards. The Zynq chips could then be given different tasks, such as "management" or "data input," reducing complexity of messages being sent through to the grid, and how they get to where they need to go.

These 9P gateways will form the "private namespaces" for the processes to execute - yes, a sandbox for each process! For example, why does a user of the system, buying CPU time, want to know about our internal 1PPS timekeeping? Surely they do not! But they might want to know about how long it took their code to execute, or how many cores it used (think peer-to-peer process spawning, XCPU^3 style).

I have to work a bit on my kinematics descriptive language, and work out the cheapest way to obtain a 1RU Thunderbolt disk shelf for my supercomputer...

Wednesday 23 July 2014

Updated diagram

Updated diagram, as promised.

Also, a special little treat:
"Sflr" is a simulator, in most parts, but if you could imagine the big grey square being a "grid" of little grey squares, proportional to the amount of compute nodes in your cluster.

Enjoy!

Tuesday 22 July 2014

The Design

I lifted this diagram from the "brasil" directory found at hg.9grid.fr. Now, I'm not going to attest to owning a 3D torus of compute nodes (cause I don't), but I will attest to owning a 2D fabric of nodes. Yes, yes, theres only 16 nodes in there, but still...!

Replace:

* Torus, with fabric
* Tree, with e-Link
* WAN, with WAN/ LAN

The rest should pretty much fall into line.

A terminal is like my MacBook Pro, equipped with Mac9P and of course, FileMaker for the database'y type stuff. Realistically, any system with FileMaker or even self developed software (say, a new, custom, version of QGroundControl) can be a client to this network, as the interface is agnostic XML.

A front end is a node co-ordinator. Its job is to make sense of the jobs coming in, and assign them to free compute nodes. I see it almost like the software BotQueue which will assign a 3D printing job to the next available 3D printer in the fleet. This is integrated into BotQueue, and each printer (by way of an intelligent board, say, a RaspberryPi) is able to communicate job status to the queue controller. This facility of job status communication exists in the /proc filesystem of each of the compute nodes.

An I/O node is a front end processor to connect the grid fabric to the outside world - in our case, the dual core Zynq ARM chip with FPGA. It is able to mediate from gigabit ethernet to e-Links, and back again, and do needed housekeeping in between.

A C (Compute node) is a Epiphany RiSC core in the fabric. It'll take jobs from the front end, process them, and come back with a result. These results will be available over the 9P networked filesystem interface, back at the terminals.

For each CM-5 prototype, there will be eight Parallella boards, and two Intel NUCs. Of course, for the prototype of the prototype, it'll only be one Parallella, and one NUC. They'll be connected over 100Mbps ethernet (final prototypes will use gigabit ethernet). The basic software will be developed on the Parallella and the NUC to work in synchronisation. At some point, a Stratum-1 NTP server may be needed by the network, and I already have plans for a DIY server. The NTP server will also work well with SyncFS.

I will create an updated graphical diagram in Dia later.

Sunday 20 July 2014

I's has static IP!

Please ignore the bad grammar in the title - its an injoke. Unfortunately the person I shared the injoke with is no longer a part of my life, for various reasons.

I just found something quite interesting - my old Exetel prepaid SIM, still in the Huawei modem I got it in. That SIM, as far as I aware, is still registered, and still has a static IP.

Here at the student accommodation, I am behind a firewall that I am not able to configure, so I'm not able to punch holes in it for pertinent ports of interest (17060 anyone?). Additionally, since I do not control this connection, if it goes down for any reason, I'm stuck without internet for the interim.

Of course, the EdgeRouter Lite 3 port model is now shipping in a steel box. This has three routable ports on it, so one becomes connection to DSL, the next to cellular, and the last to my internal network. That'll easily configure for failover in the case of DSL outage. I can also open certain ports on the Exetel connection that interest me, although at 2GB of data at a time, I wouldn't want to be using it excessively, such is the woeful state of cellular data in Australia.

Of course, all I need is an ethernet modem - I fried one before I left Lithgow, which annoyed me. I'll get there though, I'm sure I can splash out another $100 or so, depending.

Now to buy crap...!

Friday 18 July 2014

This isn't paid work... yet...



Just having a little fun with code... Android, iOS and Plan 9 style.

Supercomputers... for the rest of us

Got my hands on a Parallella-16 board a couple of weeks ago - I am taking my time before I power it up, I want to make sure things don't overheat and explode...! Of course, I've been wondering what I could do with such a beast... for instance...

http://www.parallella.org/2014/06/03/my-name-is-brian-and-i-build-supercomputers-in-my-spare-time/

Yes, I want to make one of these. Just cause I believe I can.

By the way, shameless plug - programmer (me!) looking for any kind of programming work. I have some people interested in me doing things for them, but its been quite a battle to even have two coins jingling in my pocket since I moved to Newcastle, and I'm sick of asking adopted family members for loans! I program in eight or so languages:

* Processing/ Arduino
* C/ C++
* PHP
* Python
* SQL
* Erlang
* Google Go
* FileMaker

I've also worked on Cisco gear, Ubitquti gear, and archaic Nokia base station equipment (just for kicks - it was a DX200!). I regularly use Arduinos, 3D printers, 3D scanners, and other embedded platforms for my work. I do 3D design and editing, which can then be printed, or exhibited in a web based format. I've worked for museums, architects, six star resorts, and international audio companies. I administrate Linux, Unix and Mac OS X competently. If you ask me nicely I can do Windows work too.

I like to be punctual, task focused, and dedicated. These are things you won't find in a normal contractor, as I take a personal interest in the work I do. Literally, I have been asked to complete the jobs of a lifetime, only to have more work come up. As I set myself up again, I'm just struggling a bit.

I am undertaking a Bachelors degree at the moment - that is up in the air due to my deferral and transfer, I started doing Electrical Engineering, but have thought quite honestly about doing Computer Science. I will be discussing my options with the University of Newcastle in due time. I'm sure you'll agree, uni is not the cheapest exercise in the world, so being able to work while doing it would be surely very good!

Although a cliched line, I do thoroughly enjoy a challenge, and something that makes me stop and think. Try me out - you might be surprised!

As for the Parallella, that story is just beginning...