22 September 2016

Open Source Silicon?

A random thought:

I think it would be interesting if there was an open-source chip, perhaps based upon RISC-V, maybe based upon cores from SiFive, which are as easy to wire together into a mesh network with little-to-no external glue logic, to make massively parallel computing a commodity. Think of it like an open source Transputer. The Transputer processors had 4 I/O buses which could each directly interface with other processors, peripherals or there was a switch.
Today, we should be able to do better. Imagine a processor module which has perhaps 64 interconnected cores per package and 8 I/O channels and perhaps a couple of gigs of DRAM.

Hobbyists will then be able to experiment with different computing topologies:
or even

What makes this interesting is that this has been a largely dormant area of computer science for more than 20 years and I think with the possibility of open silicon, there's a lot of exciting areas for research and hobby tinkering.

07 September 2016

Java Rock Stars

The rock stars of the Java world never stay on a project long enough, departing immediately when it starts to need cleanup. That way, they're getting the accolades for their achievements and of the people left behind, managers think "these guys are so much less productive than the rock star; we were lucky to have the rock star to get the project started."

14 August 2016

Java 8 Streams

This code is certainly more terse from using Java 8 streams but is it more readable than it would be otherwise?
public synchronized void unregister(AsciiString uri, ChannelHandler handler) {
      .flatMap(l -> Optional.ofNullable(
          l.stream().filter(p -> p.second == handler)
           .filter(l::remove).findAny().isPresent() ? l : null))
      .ifPresent(l -> _handlerMap.remove(uri, l));}

28 March 2016

Upgrading a Rapide Lite 200 with a Smoothieboard 5x

The Rapide Lite 200 originally came with a RUMBA based controller board which is based upon an Atmel ATMEGA based microcontroller. However, I had encountered issues where the board's USB interface would reset during a print and thus ruining a print. The controller board uses a smaller Atmel microcontroller to provide the serial to USB interface and it's possible that there is some instability there.

Original Rapide controller

I had a Smoothieboard from a Kickstarter which I had intended to use for a CNC router project but I decided to repurpose it for upgrading the Rapide printer. The Smoothieware web site does have extensive information on making use of the Smoothieboard.

Smoothieboard 5x

The printer has 5 stepper motors, of which two are used to drive the y-axis. I could have chosen to drive both from the same driver chip but I decided to drive each of the stepper motors from their own driver. To make the two stepper motors step together, a few links had to be soldered onto the Smoothieboard. In order to keep things as simple as possible, I decided to keep the order in which the stepper motors plug onto the controller board the same. I also soldered the same connectors to the Smoothieboard to avoid needing to recrimp new connectors onto the cables.

Three jumpers centered
The were changes in the order of the power connectors. the power for the main board which was connected to the terminal labelled MAIN-PWR was then connected to the main board power input on the right of this image shown as 12-24v:
Be mindful to make sure that the polarity is correct.

The HB-PWR cables was then connected to the PWR IN connector at the bottom centre of the board and JP28 was jumpered for the fan power. The heater bed HB-OUT was then connected to P2_7 connector and the head heater HE0 connected to P2_5.

The thermistor and endstops were plugged in as one would expect.
Thermistor and endstop connections on original controller board

Initial install of smoothieboard
When I had initially set up the smoothieboard, I did not have the recommended 5V regulator installed so I had used a separate regulator board for the 5V power. I later installed the recommended 5V regulator (marked as VBB). I also ended up securing the board using adhesive PCB standoffs.

Cables tidied a bit and heatsinks added
The firmware install and upgrade is simply a case of putting the firmware.bin file in the root directory of a DOS formatted SDCARD. Instructions are available at: http://smoothieware.org/flashing-smoothie-firmware

A copy of my current config.txt is available here: config.txt

I do have my Smoothieboard plugged into my network so I have the ethernet enabled in my config.