3D Printing with iBox Nano

Thanks to a combination of poor time management on my part and digging up an absolutely crucial road at rush our on the part of Hull Council I wasn't able to get to the MeetUp at C4DI tonight. But when I did get home I thought I'd fire up the iBox nano printer that arrived last week. 

The printer was a Kickstarter project. I've had pretty good success with Kickstarter. I've only had one Kickstarter project come seriously unstuck - I'm looking at you Agent watch. The iBox project promised a light powered high resolution printer for less than 300 dollars and was too tempting to pass up. So I backed it a while ago (I think it was November) and then waited.

The device was a bit late arriving, but I don't mind too much about that. Lots of people get very upset when these projects have delays, but I'm happy to give them time to get it right. As long as something turns up at the end. I'm still looking at you Agent watch....

The iBox is powered by a Raspberry Pi and uses a WiFi adapter to connect to your network. You set up prints on your PC via a web interface that works really well. There are a few buttons on the machine and some lights to tell you what it is doing. 

So I carefully filled the vat with resin, rubbed the build plate with some sandpaper to make it nice and rough so that the print would adhere to it, lowered the plate into the resin and set it off. 

My first print failed. All I got was a little lump of goo on the bottom of the vat. Oh well. I've got quite good at consistent printing with Una my Ultimaker, but I remember how much fiddling it took to get to where I am now. 

It turns out that, just as with Una, the key to successful printing is the print height. When Una squirts molten filament at the build plate it is crucial that the very first layer is just the right height for the filament to stick to the plate and provide the starting point for the print. With my iBox printer, which doesn't have a name yet by the way, the crucial thing is the distance of the build plate from the bottom of the glass dish, or vat, which holds the liquid resin.

The idea is that the build plate is a tiny distance from a sheet of teflon tape stuck on the bottom of the vat. The UV light makes some of the liquid resin in this gap turn solid. Then the printer pulls the build plate upwards, taking this layer of solid resin with it. Only on my first print the solid bit stuck to the bottom of the vat instead, hence the mis-shapen lump that was produced. So I re-adjusted the build plate and tried again. 

The printer does look great while it prints, like some kind of illuminated mini-tower block. It is completely silent and runs off a standard Raspberry Pi power supply. I'd be quite happy to leave it printing to itself, although you do need to come back and top up the vat with resin if you are printing something tall. 

This time it worked fine, and I got a tiny iBox logo stuck to the build plate. The output is pleasingly solid, although they say you should leave it in the sun or under a UV light to completely cure the resin. 

So I thought I'd go for broke and tried to print a tiny bunny. This was a disaster I'm afraid, with another lump of goo forming in the wrong place. However, I'm pleased to have made something. 

I'm not sure if I'm going to be OK with this liquid resin stuff. Everywhere you see dire warnings about the danger of the liquid touching your skin. I've got some disposable gloves on order but I spent big chunks of the evening fretting about the resin escaping and simultaneously burning a path to the centre of the earth (it's supposed to be corrosive) and poisoning me. 

I guess I might get used to it. It's totally different technology from printing with Una providing a new set of problems to deal with. I feel like a heart surgeon who is not very good at it and has switched to brain surgery in the hope that might be easier. I'm impressed with the iBox machine though. It really does work as advertised. I can now think about producing tiny components.  If I can get over the fear of the resin. 

If you are after a good, cheap 3D printer I think I'd still advise you to go for a conventional, filament powered, one like Una. There are some quite nice devices out there in kit form. Take a look at the nFire device on Kickstarter too. But if you fancy pushing the frontiers a bit and you want small, higher quality, prints then iBox is worth a look. 

WiFi on Windows 10 Raspberry Pi

I've been playing with Windows 10 on Raspberry Pi for a while. It works really well. It is now my weapon of choice for proper embedded applications.

The Arduino is lovely for tiny apps, but if you find yourself adding SD card interfaces and network adapters and displays you might as well move up to the Pi and get the benefit of C#, Visual Studio and a properating system like Windows 10. 

Up until now I've been tied to a network cable as the previous versions of the Windows 10 Raspberry Pi platform didn't support WiFi. But the latest one does. You have to use the "official" Raspberry Pi WiFi interface, but as this is one of the cheapest (at six pounds) I don't see this as a problem. 

I've added one to my Pi and it works fine. The only problem I've found is that at the moment it doesn't support WiFi connections using the "organisation" authentication that we have at work on the campus network. However, it works fine at home my my domestic network. If you are writing Windows 10 applications for Raspberry Pi you should get one of these for each of your systems. They also raise the lovely prospect of properly powerful connected applications. 

3D Scanning with the HP Sprout

So some time back I got an HP Sprout. I'd seen one at the Gadget Show and after that it was just a matter of time... The Sprout is a properly innovative machine. It uses a video projector and a system of mirrors to project a workspace onto a touch sensitive mat in front of the computer. The overhead assembly that holds the projector mirror also holds a couple of lights, a reasonably high resolution camera and an Intel RealSense 3D camera. 

The idea is that it provides a great space to work with 2D images which can be scanned and manipulated on the touch mat, but I was also intrigued with the promise of quality 3D scanning using the RealSense camera. 

The machine arrived beautifully packaged in a huge box and why not, it is quite a huge assembly. It has a nice big 23 inch touch display with a fairly beefy processor and big hard drive lurking behind it. Once I got it going I was impressed by the machine itself but the 3D scanning didn't really live up to the demos that I'd seen, which was rather sad. You could scan in 3D but only from one point of view and the scans had little ridges on them which pointed to illumination issues. 

But that was then, and this is now. An upgrade of the system was released last month. The whole HP Sprout workspace has been replace with a much more spiffy one and you can create proper 3D results from a scanning process that involves multiple rescans in different positions. And the ridges have vanished. 

It took me around half an hour to take the little wooden pig you can see above and derive a really nice 3D model from it. I made a little stand out of a piece of perspex and some Blu Tac so that I could present the pig in different orientations and I made four passes of the model, each of which comprised 8 individual scans. The results are really good. The scanning has even detected the grain in the wood and some quite subtle markings. 

You can buy a little turntable which can be used to automate the scanning a bit. I'm tempted by this, but bearing in mind that you'd have to reposition the subject on the turntable for each rotation, I think I'll stick with the manual process for now. The process works best with objects with a fairly matt finish. Nothing shiny or furry.  I'm currently prowling the house looking for objects that I can scan. 

I've put Windows 10 on it and it works great (although I've had one or two stability issues with the Sprout Workspace it seems to be settling down now). I'm going to have a go at scanning some more objects and printing them out. I'm also keen to use the scanner to produce textures that can be overlaid on objects that I print, I reckon it will be really good at that. There's also an SDK that you can use to create your own applications, but at the moment I don't think it provides access to the 3D camera, which is a bit of a shame. There's also a Sprout Marketplace for apps that use the unique features of the machine, but these are a bit underwhelming at the moment to be honest.

The Sprout might be the future of computing. I'm not sure about the fancy scanning bits just yet. I end up using it as a powerful PC quite a bit of the time. But it does come into its own when you are scanning objects or documents. I found it very useful when I had fifty assessment sheets from some lab demos that needed to be converted into PDF. Using the Sprout workspace made this really easy. If I had young children I think they'd love using the scrap-book and collage features. And it has a connected aspect that I've not really explored because I don't now anybody else with the device....

You've got to give HP respect for trying to move us on from he mouse and keyboard interface. The projected workspace works really well and it very easy to manipulate 2D and 3D objects using it. If you are going to buy a fairly expensive computer anyway (say you are in the market for a Mac PC) then I'd take a proper look at Sprout, particularly if you have kids and a 3D printer....

Going Bananas for the 2015 C# Yellow Book

Every year I make a new version of the C# Yellow Book. And recently I've been putting something yellow on the cover. This year I thought I'd go for banana, what with it being custard last year. I took some pictures of a single banana, but these didn't end up looking to good to be honest. So I've gone for a bunch.

The text has been tidied up a bit and I've added links to the code examples that you can now get to go with the text. It will be going to print for our new First Year in a couple of days, and then I'll update the PDF on csharpcourse.com.

Toads at Hull

If you do visit the campus you should take a look in the new Art Gallery attached to the library. As well as some lovely paintings they also have displays of all the Larkin Toads that were displayed around the city a few years ago and recently brought back together for a reunion. You can also meet up with one of the original toads that you can just see peeking out of the right hand side of this picture.

Saturday Open Day

We're holding a couple of special open days this weekend for admissions candidates. We used the lobby of the spiffy new library to set up and show off our new 3D stuff, which includes a chance to walk round our new student accommodation that hasn't been built yet.

I went fully suited up, and was even complemented on my sharp attire. Mike was doing tours and I was manning the fort with some summer interns who did a great job of showing off the tech.

Throw Away Pictures

I'm rubbish at throwing things away. We are in the middle of some domestic renovation that has forced us to confront the huge amount of stuff that we've accumulated over the years. I've found things I haven't touched for years, and I'm still loth to chuck them out.

However, I have found a way to ease the pain of passing in this situation.. I'm taking pictures of the stuff before it goes in the bin. Then I make them into collages, like the one above. The perfect end to this would be to print the collage out and throw it away I suppose....

Could you be a c4Di Intern?

The C4DI (Centre for Digital innovation) in Hull is looking for an intern to join their team and help business make the most of technology.

This would really suit a Computer Science person who want to branch out and maybe even start their own company along the way. It can happen.

You can find out more about the position here.


I've been racking my brains to try to work out why the new C4DI headquarters looks familiar. I've finally found the answer.

These are the living quarters for Stingray personnel from the iconic sixties TV series. This team of fearless aquanauts used a super submarine to fight evil underwater. Suddenly it all makes sense. The new C4DI HQ is right next to the docks......

NFire 1 3D Printer on Kickstarter

Alex from C4DI has recently launched his NFire 3D printer on Kickstarter. It's a good looking beast, as you can see. The ideas is that you can easily swap out components and print larger pieces or add a second extruder. The price is very competitive (particularly if you managed to snag one of the early bird offers) and it uses a very nice hot end (the bit that actually extrudes the filament.

Worth a look if you are in the market for a low cost and extensible device.

VS 2015 Intallation Tip

I spent a big chunk of today trying to get Visual Studio 2015 Community Edition onto my machine. It put up a bit of a fight, I kept getting an error saying I needed up upgrade my installation when I'd built a project. I've no idea what the problem was.

But I do know how to fix it.

I installed Visual Studio from the ISO image that I downloaded from here. For previous, failed, installations I'd used the web installer. I'm wondering if there were some network shenanigans causing problems during the install.

The wonderful news is that I took my entire Snaps framework (a bunch of programming aids you are going to hear a *lot" about soon) and ported it from Windows 8.1 universal app to Windows 10 in about six minutes. All I had to do was copy the source files into an empty Windows 10 project and it built first time. This is completely awesome.

iBox Printer has Arrived

Last year I backed the iBox printer project on Kickstarter. It is a tiny 3D printer that uses UV light to solidify resin. It's a more precise way of printing than my Ultimaker, which is why I fancied having a go with it. Normally light powered printers like this are powered by video projectors and have highly expensive optics in them.

The iBox printer uses a bunch of ultra-violet leds and a small high resolution LCD panel to control which bits get printed. It can only print small objects (around the size of a chess piece) but since the resin is kind of expensive I don't really fancy printing anything large. And anyway, I've got Una to print the large stuff.

The iBox prints "upside down" in that the build plate (which is not shown in the picture) is dipped in and out of the resin, with a new layer being deposited underneath the previous one. Each layer needs around 20 seconds to harden, but the great thing is that every layer takes the same time to print, which is better than the Ultimaker, where larger things take the print head ages to fill in.

The device is well put together. It uses a Raspberry Pi to control it and tiny stepper motor to drive the printing plate up and down. The Pi has a WiFi interface and you control the printer via an in-built web server where you can upload objects for printing and start print jobs.  

I've not got around to firing it up just yet, but I'm looking forward to having a go.

Reading Raspberry Pi inputs using C# in Windows 10

The LogoBlaster and its buttons

The LogoBlaster and its buttons

I had a lot of fun making my Windows 10 LogoBlaster. At the heart of the program is code that responds to the buttons that are pressed to select the required command. These are wired to inputs on the Raspberry Pi. It turns out that some of the inputs have pull up or pull down resistors, which helps keep the wiring simple.

I used the pins that have Pull Down resistors on them. These resistors do what the name implies. They pull the voltage on the input pin down to the ground level. The diagram above shows how this works. The Pull Down resistor connects the input port to the ground level, which means that if the switch is open the signal at the port is 0. But when the switch is closed it pulls the input port up to the power supply voltage, causing the signal at the input port to rise to 1.

If you don't have the pull down resistor (i.e. you let the input port pin wave about in the air with nothing connected to it until the button is pressed) you run the risk of induced voltages leading to spurious input signals. Sometimes you have to actually add your own resistors to the circuit, but in the case of the Raspberry Pi they are built into the hardware so all I had to do was connect the input port in to the switch. There is a table here which tells which pins have pull ups and which have pull downs.

        const int B1Pin = 12;  // wired to pin 32
        const int B2Pin = 13;  // wired to pin 33
        const int B3Pin = 16;  // wired to pin 36
        const int B4Pin = 26;  // wired to pin 37

These are GPIO pin numbers I used for each of my buttons.  Note that the GPIO numbers used by the software don't correspond to the pin numbers on the header on the Raspberry Pi, but I've put these in as comments.

var gpio = GpioController.GetDefault();
GpioPin nextColorPin = gpio.OpenPin(B1Pin);
nextColorPin.DebounceTimeout = new TimeSpan(0, 0, 0, 0, 20);
nextColorPin.ValueChanged += nextColorPin_ValueChanged;


private void nextColorPin_ValueChanged(GpioPin sender,
                    GpioPinValueChangedEventArgs args)
    if (nextColorPin.Read() == GpioPinValue.High)
        command = DisplayCommands.NextColour;

This is the code that sets up and uses the pin. Note that I set a debounce timeout of 20 milliseconds. This is there because the switches that I used were a electrically noisy and sent quite a few extra ones and offs when they were pressed.

The handler for the pin works very like a normal XAML button, in that it generates events when the input pin changes state. The  code in the event handler checks to see if the pin has changed to the high state (which means that the button has been pressed) and if it has it sets a command value to change the display colour. The code is repeated for the other buttons which select the different commands

Irrelevant Picture

We've been away for a couple of days and today we drove back. The picture above has nothing to do with any of this. But I do rather like it.

I took the shot last week in London. When she gave me the key the girl at the check-in said "I've given you one of our nice rooms, with a great view". At the time I wondered if this was the best possible pitch she could have used as it might call into question other rooms in the place, but she wasn't wrong about the view. It will be even more interesting when they finish building whatever it is they're building.

Clifton and Balloons

Today we spent some time wandering around Clifton, which is a lovely place to be. I've always had fond memories of the place, what with it being where we had our wedding reception a remarkably long time ago.  This is the view of the Clifton Suspension Bridge from the Clifton Hotel terrace, which always brings back memories.

Just around the corner is Royal York Crescent, where number one wife used to live. Great place.

It just so happened that today was the start of the Bristol Balloon festival. We've tried to go and take a look before, but this time we satisfied ourselves with some long distance views over the city.

Mission Impossible: You get what you pay for

I really enjoyed the latest Mission Impossible film. It has all the things that you want from the folks at the IMF. Diabolical baddies, shiny gadgets, mysterious femme fatale agents, Tom Cruise jumping on and off things etc etc. There are some lovely set pieces which are just crackers, but you don't mind because things are rattling along at such a pace.

The cast is all well up to the job and everyone turns in a good performance. Even Alec Baldwin, who does a fantastic job of appearing just like Alec Baldwin. If you like this kind of film, then go see.

A Big Hello to Windows 10

I've been running the preview releases of Windows 10 on one of my computers and I've been quite impressed. And now I've got Windows 10 on my "proper" machine, my Surface Pro 3. It's very impressive. Boots fast and the user interface improvements make a huge difference. My advice for would-be migrators.

  • Do it. I don't think you'll regret it. And if you do, it is very easy to revert back to your previous system. I've actually done the revert after I did something stupid during an upgrade and it took me right back to my original system in around five minutes.
  • Give the machine time to settle down after Windows 10 has installed. Once the Windows 10 upgrade has worked its magic you get a whole slew of processes wanting to come in and tidy up. The Search Indexer, the Antimalware process and OneDrive will all want to do considerable amounts of twiddling on your new system. This can ruin user interface performance for a while as the hard disk gets hammered. But give it an hour or on its own so with a decent network connection and you'll see performance go back to previous levels.
  • The Edge browser is awesome. Very, very snappy. In fact unfeasibly fast. And it seems to be compatible with lots of websites sites too. It works a lot better that Internet Explorer with the page editor for my Squarespace website, which is nice. Try it even if your weapon of choice is Chrome or Firefox.
  • If your machine hasn't got much disk space you can recover quite a lot by using System Cleanup to get rid of your old Windows installations (see above). Of course, if you clear away this backup there is no way to return to the previous version but on very constrained machine you probably won't have a choice about doing this. I've upgraded my ultra-cheap Linx machine (very successfully) and got back three or so precious GBytes by doing this.

It will be very interesting to see where Windows 10 ends up. And I reckon that you really should go along for the ride.

Quick on the Drawer

I made nine drawers tonight. By the end I had a little production line where I worked on the same part of each drawer before moving on to the next one.

I've got one of the drawers slightly wrong, in that the drawer bottom (the thing you can see being slid into the drawer in the diagram) is the wrong way up. But at the moment I don't care that much. Because I've finished making drawers.

Coping with a Skewed Universe


Today I was fitting handles to doors. As you can see. Note that the handles line up exactly. Turns out that there are two ways you can make the door handles of your wardrobes line up.

  1. Fit the handles in the centre of the door and then make the doors line up. (difficult to impossible outside of laboratory conditions)
  2. Fit the doors and then put the handles in the place where they line up. (easy if you stick some tape across the gap and then use this to line the holes up).

I much prefer the second method. Experience has taught me that when you put big things into houses the concepts of "level" and "right angle" kind of go out of the window. This frequently means that you can't get furniture to line up with the floor and ceiling because they are already wrong at the start.

So you have to go for the solution that looks right. If you look very closely at the very top of our wardrobes you'll notice that the doors are very slightly out of alignment. But the handles are perfect, and those are the bits you focus on.