Repetier-Server on a Raspberry Pi controlling my 3D printer

A few weeks ago, I mentioned using Cura from my Raspberry Pi to 3D print.

Yesterday, I had some time on my hands so I thought I’d try a different 3D printer controller for the Raspberry Pi – Repetier-Server. It either comes with OS build for your Pi’s SD or you can build it yourself on an existing Raspian installation.

I also loaded some WebCam software for my Raspberry Pi, so that I could see the printer while it is printing in the garage. There are a number of open source projects to stream a USB camera from your Raspberry Pi

The setup has been working great. I connect to the Repetier-Server on the Pi from the Repetier-Host software running on my PC. The PC does all the slicing… and sends the models to the Server and also shows the real-time status of the job in progress. I get the added benefit that I can also stop jobs and monitor progress from my phone (as long as I am connected to the same LAN). I have not done the port forwarding so I could monitor jobs in progress from the Internet, but that’s possible.

Ever lose a drive partition in Windows?

Drive gone badEver have encounter a drive gone bad? That is exactly what happened to me over the weekend. I had a perfectly viable drive that fell off a shelf. It looked OK, but when I went to plug it in, Windows didn’t see it. It didn’t have anything critical on it, but it wasn’t totally backed up to another file. Lesson one – always have multiple backups on everything that means something to you.

I started the Windows Administrative Tools -> Computer Management (needs to be launched as administrator) and then opened Disk Management. The drive was visible to this tool and a partition was showing, but Windows didn’t mount it. The partition was healthy but in a protected state (I don’t remember exactly what that state was).

I then did something stupid — which we’re all prone to do at 5AM. I looked for information about that partition state on the Internet and what to do about it. The recommendation was to clean the drive – sound benign right?  I used to Windows Diskpart command to ‘clean’ the drive. Now, I was left with a drive with no partitions!!! The only hope was a real drive analysis to find the files off the partition.

I went digging on the web for a tool that would analyze the drive and pull the files off. There are many them out there for a price, but I was looking for something open source. I stumbled across TestDisk (an open source partition recovery tool from CGSecurity). This looked like exactly what I wanted, and it had a detailed wiki with step-by-step instructions. Using this tool is not for the faint of heart, some technical background is required, but did the job.

I started the analysis, found the partition, told it where I wanted the files copied on another drive and recovered the files – success. It only took the better part of a day.

The purpose of this post is more to archive what I did, so I (and others) can find it later. I hope I never have to go through this again.

Voice recognition project completed at UTD

Every semester I try and work with some students at UTD by facilitating a ‘capstone’ project. It’s another dimension of my support for STEM education.education2 Yesterday, they gave their presentation to their professor and class.

This semester the project was creating an Android based speech recognition solution to facilitate a Voice-based Inspection and Evaluation Framework. We shied away from using Google’s speech recognition, since we wanted off-line capabilities, as well as enhanced security/privacy. Addressing this expectation was one of the first issues the team had to conquer.

They were able to identify and implement an open source library providing the speech recognition (PocketSphinx). They also used Android.Speech.tts for text-to-speech interaction with the user.

The team created a visual programming environment to graphically define a flowchart and export that to an XML file that the mobile device was able to use to facilitate the inspection process. The mobile application could have a number of these stored for later use.

The end product was able to handle a range of speech recognition needs:

  • Yes/no
  • Answer from a list of valid responses (e.g., States)
  • Answer with a number (range checked)
  • Free form sound capture

Overall, I was very impressed with what these students were able to accomplish during the semester and the quality of the Software Life Cycle work products they were able to produce. Naturally, since we didn’t know exactly what they were going to be able to accomplish they used a modified agile approach – since they still had to produce the work products require for the class based on a predefined time table.  We incorporated the concept of designing specific sprints around producing those work products as well as the typical need to define, document and validate requirements.

I started the project while working at HP and Dave Gibson and Cliff Wilke helped facilitate it to the end (they are still with HP).