What I’m up to: Python and Web Interfaces

So I’m realizing that I’m way to stuck on long form posts and need to get in to the habbit of just posting anytime I have an update. Otherwise I get caught up in being to busy and just don’t post at all… for months lol. So here goes short form!

I’ve always wanted to have a web based interfaced for many of my projects and lately I’ve finally come around to teaching myself web programming. My platform of choice is the Beaglebone Black. I’m writing the server side in Python with a module called Flask that acts as a web host for the web page portion. On the web front I’ve been learning all the necessary components for that. Namely HTML, CSS, and JavaScript. That’s four languages to learn all in one go! Its a lot but the web languages especially are so ubiquitous that its not bad to pick up. When its all said and done I should good code base for future projects that I can use to create web interfaces! Then just about every device with a web browser suddenly becomes a remote control.

I’m building towards making a nice looking web interface for my laminar fountains but my learning project is to build a simple controller for a Model Railroad. Eventually it will consist of a single motor controller for power and a few relays/triacs for switch control. My father recently pulled his N scale model train layout out from storage after nearly two decades and I thought it would be fun to build him a controls upgrade.

If you want to follow my experimentation you can find my code on Github here: https://github.com/IkeHayes/Railroad_Control

3D Printer Control Concept

ScuttleBot TFT – 3D Printer Interface Concept

ScuttleBot TFT Concept Design

ScuttleBot TFT Concept Design on my EasyPIC Fusion board

Recently I’ve been working on a 3D Printer Interface concept tentatively called ScuttleBot TFT. It started when I was looking for an interface for my upcoming Mini Kossel 3D printer build. I saw several multi-line character displays but not much in the way of color graphic or touch screen interfaces. So I struck out to make a color touch screen interface concept on my MikroE EasyPIC Fusion board to see what I could come up with and how much interest people would have for something like this.

The cool thing is that this can run on MikroE’s mikroMedia for PIC32 board which is compact and at $99 falls under the all important $100 price point (barely, but still makes it). It also includes a MicroSD card slot to read STL files from for computer free printing. It would be pretty easy to mount the board to a printed enclosure and attach it to the frame somewhere. The MikroMedia and my EasyPIC Fusion have the same hardware so the port from one to the other is super easy.

Front and back of the MikroMedia for PIC32 board

Front and back of the MikroMedia for PIC32 board

The concept code is done using MikroElektronika’s VisualTFT and MikroC Pro for PIC32. My initial concept is mostly interface design and screen navigation. I haven’t gotten very far in to the communications interface code with the firmware on my Ramps controller board yet but I have some ideas outlined on how to do it. One of my design goals is to make it user selectable from the touch screen whether to use SPI or I2C. Giving the option to use both would allow for maximum flexibility with other addons user might have.

The other part of this is figuring out exactly what should go on the screen. I am unfortunately still waiting on my last package for my printer that happens to contains the printed frame parts and motors (sitting in US customs, boo!) so I have yet to really experience the process of calibrating and using a 3D printer on a day to day basis. Without that its rather hard to know what should be on the screens, what should be most accessible, and what is mostly frivolous information that would just be in the way. Hopefully I’ll cure that soon but for now I’m trying to get a framework built to make it easier to move things around and communicate information to and from the print controller board.

We’ll see where it goes and how interested people. Even if I find there is already a cheaper color touch screen interface out there I didn’t come across in my initial search I figure the knowledge I gain by building this project will help me substantially in understanding the specifics of 3D printer control and firmware.

MikroMedia for PIC32: http://www.mikroe.com/mikromedia/pic32/
VisualTFT Software: http://www.mikroe.com/visualtft/
MikroC Pro for PIC32: http://www.mikroe.com/mikroc/pic32/
EasyPIC Fusion v7 dev baord: http://www.mikroe.com/easypic-fusion/


New Tools – Windows Tablet and Lightbox!

New Tools! This past weekend I was able to pick up a Windows 8.1 Tablet and Lightbox!

Dell Venue 11 Pro

Dell Venue 11 Pro

Dell Venue 11 Pro

I bought a Dell Venue 11 Pro from the Microsoft Store while I was in Chicago for work related training. It has the Intel Atom Z3770 “Bay Trail” CPU and runs full Windows 8.1! I’m super excited about the Venue 11 due to the fact that I now have a computer I can easily get out on crowded airplanes to do programming and design work on. I love my 17 inch Dell Precision work laptop but at 8 lbs and as wide as it is it just isn’t easy to work on from an airplane seat back tray table with limited elbow room. The Venue 11 Pro should solve that problem for me and also allow me to mess with my designs while hanging out in the living room with the wife. I’m waiting for the keyboard/trackpad dock to arrive in the mail this week which should allow it to function like a standard 11″ laptop when the tablet is docked in it.

After only three days my first impressions are highly positive. Its super zippy for a mobile style processor and has run everything I’ve thrown at it so far. I have Visual Studio 2013 loaded on it along with the IDEs for Arduino and MikroC. All run like a champ. It evens runs Torchlight 2 for some real computer gaming on the go! Next step will be to load Eagle CAD and a 3D modelling package on it for 3D Printing. I’m pretty confident those will run just fine as well. It only has 64Gb of storage space which is a little restricting but should be just enough. I may need to start installing some applications on a USB 3.0 Flash Drive at some point.


Photography Lightbox

Cowboy Studio Lightbox

Cowboy Studio Lightbox

Arduino in the Lightbox

Arduino in the Lightbox

My other pickup was a photography lightbox from a company called Cowboy Studio. Taking pictures on my desk don’t always turn out the best so I’m hoping this should make things a lot easier to see when trying to photograph details. The premise being it makes an “infinite white” background. As you can see I need to do some ironing of the cloth insert but I’m pretty happy with how the picture of my Arduino turned out. I don’t know that I’ll use it for everything since I don’t have a space where I can just leave it up all the time but it’s handy for pictures I just can’t get to turn out otherwise. At only $12 it was hard to turn down.

Light Box at Amazon.com

New Name – Scuttlebots!

So my wife had a brilliant naming idea today. Before my blog and upcoming website were called “Scuttlebutt Engineering”. It was cool but not exceptional. However, thanks to my wife, the new website and blog is now called “Scuttlebots”. How cool is that?! Fun, catchy, and easy to remember. Love it. I need a profile pic/mascot to go with it now. I’m taking ideas if anyone wants to throw some out there!

The start of something great … or different at least

Mwhahaha, the site lives! One thing I have always struggled with is documenting my various projects in a way that others could learn from or understand what it is I am doing. Also, in a way that would better allow myself to go back and remember all the steps I took to get somewhere. The problem with most personal storage methods is that files get over written and old steps are lost over time as updates are made. So here we are, taking the first step to correcting that and hopefully making it easier to share what I’ve made (or trying to make anyway)! Whats the fun of a cool project if you can’t share it with others? So here we go!