Well, I’ve hit the wall on this one. When I moved to my new base of operations deep in the Missouri Ozarks, I had 2 buildings: A small house, and a 30 by 40 foot Pole Barn I paid a crew to erect on the property.
A “Pole Barn” is a simple structure… a basic pole frame (The poles are 6×6 treated wood posts.) clad in a minimalistic steel skin. It has a concrete floor, but no insulation at all. In the summer, it gets HOT inside there, so hot and humid you can’t keep complex tools like a Lathe or Vertical Mill.
So what I keep in there is my Tractor, it’s accessories, and a lot of stored stuff… mostly tools. Tools I can’t use because all the space in the Pole Barn that isn’t Tractor or it’s accessories if full or stored stuff. Like tools. It’s a vicious cycle. I was able to free up enough space in the house for a couple small workbenches (Made in a previous post.) but I can only make electronics in that small space.
I reached the point where I need to be able to make machined metal parts long ago.
This left 3 possible courses of action:
1) Otherwise known as “Plan B”. That’s where I abandon the T1′s design goal of a custom fabricated chassis and drive system and buy a 1/10 scale RC car to use for the robot. There’s certainly no shame in that approach… There’s a whole new world of challenges to meet there, jamming all that stuff into that tiny chassis. But no. That’s not my style. I have to be true to my long term goals… and that means custom fabricated chassis and parts.
2) Pay huge money for a crew to build what I need. Hmm. I have to ask myself… “What would Goku do?” Would Goku pay a guy to fight for him? No! Goku would train until he could do the fight himself. How can I call myself a “Maker” if I turn to hired guns every time I need something made?
This leaves option 3. Just like in the game “Doom”, “The only way out is through.”
3) Build a Machine Shop myself inside the Pole Barn that incorporates sufficient work space and includes a “Mezzanine Level” above for storage. This shop needs to be well lit, insulated, and climate controlled to support machine tools.
Option 3 it is! Only one problem… I’m a 52 year old Computer Nerd who’s spend his entire career sitting on his obese ass at a computer. That’s really not good training for building what I need to build.
But the only way out is through. What would Goku do? Goku would act as if and train as he goes along. In effect, “what does not kill you makes you stronger.”
Here’s where I’m at now:
This picture is from the Pole Barn’s door looking in. The Machine Shop is in the back of the Pole Barn, occupying a space 30 feet wide and 16 feet deep (As viewed in the picture.) Notice all the crap in boxes in the foreground. All that stuff was where the Machine Shop was before I started construction.
This is the left side of the new shop space. the entrance door (That huge hole for a double door in the previous picture.) is to the left, and the rear of the Pole Barn is to the right. See that brown space in the middle of the far wall? That’s one of the poles that comprise the Pole Barn. I integrated them into the structure of the Machine Shop. The wall that separates the Machine Shop from the rest of the Pole Barn is a 2×6 stud wall, the other walls are 2×4.
Looking in the other direction. You can see the huge opening for the entry door to the right. The entry door itself is tied to the stud wall ready to be installed… the door itself is a double door, made of steel, with the main door 36″ wide, and the side door 24″ wide. So it can open to a full 5 feet to allow huge pieces of equipment to get in. The header above the door is a beefy 3 deep 2×12 sandwich. If a tornado comes along, it’s gunna look at this and say “I can’t break this! I better look for a Mobile Home instead!” You know how tornadoes are.
That’s the entry door framing. I doubled up the Trimmers under the Header to better support the load of the storage area above.
This is the area directly over the entry door. You can see the 2×12 header for the door in the middle. The joists above are also 2×12, as they need to support the weight of all the stuff stored above the shop. Normally, a “Rim Joist” is used on the outside of the floor joists, but I used blocking between the joists instead. (That’s why you can see the end grain of the joists themselves.) Notice the double wide joists to the left and right of the door? Those are to transfer the roof load to the floor so I can cut out the center of the engineered rafter components, thus making room so I can get up there to store my stuff.
This is an enormous effort. I’ve completed the framing, and have moved on to roughing in the electrical. There are over 40 electrical boxes, and 1250 feet of wiring. This is huge.
The down side of all of this is that I’ve eliminated the possibility of competing in Sparkfun’s competition in June. The plus side, however… is that in the future I’ll be that much stronger.
The T1 is not cancelled. Just delayed until the 2013 competition.





Bob,
Sorry to hear that you won’t be at the Sparkfun AVC. I’m sure someone on the waiting list thanks you
. At least, it sounds like you will eventually have a great shop.
On a different topic, I tried using you EventManager code — I think that it is a great idea, but I’ve had problems with it (or something) stomping on memory occasionally (removing EventManager seems to fix the symptoms). I kind of suspect that it is the call to memset that is the problem. I haven’t had a chance to really track it down yet, too busy getting ready for the AVC, now that I’m no longer on the waiting list.
Ted
Ted,
I’m sorry you’ve had issues with EventManager! Almost certainly the problem is you’re running out of RAM. This is a common problem with the ATMEL parts, as they have little of this resource.
To reduce EventManager’s RAM footprint, lower the number of maximum events allowed by changing the constant NUM_EVENTS in EventManager.h:
#define NUM_EVENTS 20
Setting it to a lower number will use less RAM. Obviously, you need to set NUM_EVENTS to a number greater than the maximum number of events you actually use.
Also, eliminating unneeded debug messages printed to the monitor, or moving them to FLASH memory with the PROGMEM directive will also reduce your RAM usage.
-Bob
Bob,
Thanks for the tip! I will try changing NUM_EVENTS; the array does use a big chunk of memory by default.
Another super useful tool is to know exactly how much RAM you have left at run time while you’re developing and debugging your system.
If you download the code from http://roboticcore.com/?p=271 you’ll find a routine in the “CommManager.cpp” file called:
int check_mem(void)
It’s a tiny function that returns the currently available RAM. I use it in all the startup routines to report the remaining RAM to the serial monitor.
The function is defined as:
uint8_t * heapptr, * stackptr;
int check_mem(void)
{
stackptr = (uint8_t *)malloc(4); // use stackptr temporarily
heapptr = stackptr; // save value of heap pointer
free(stackptr); // free up the memory again (sets stackptr to 0)
stackptr = (uint8_t *)(SP); // save value of stack pointer
return stackptr – heapptr;
}
I didn’t come up with this myself. I found it on the internet. But it’s massively useful.
Oh wow, that’s a brilliant piece of code. I’ve been trying to manually compute the amount of ram, but as far as I get is an educated guess. As soon as I get a chance I will run some tests and let you know the results. Thanks for the tip!
It is clever, isn’t it? I did not write it… nor do I know who did. I made some readability tweaks to what I found on the internet… and that’s the result here. In my mind, that is the core value of “Open Source”: Useful information is transferred and improved upon without the need for a hard reference to the original author.
I would like to think that I have clever ideas like that too, and that they are buried in the thousands of lines of code I put out in these projects.
If they are there? And someone else republishes them without attribution to me? GREAT! The ideas that work propagates forth into the general use.
In case anyone is wondering, I found this attribution to that piece of code: // Julian Gall 6-Feb-2009
Sorry to hear you’re postponing until 2013 but the machine shop looks great so far, and looking forward to your progress over the next year. T1 will be most awesome! –Michael
Michael,
Thanks! I had hoped to finish the shop a lot faster, but simply couldn’t do it. I have new respect for construction workers now! That is a lot of hard work!
I had run a max power test on the motors I plan to use by connecting a propeller to one and running it at high speed, but can’t design an appropriate speed controller until I can build a hub assembly with a wheel. There’s no way I’m putting a 1 horsepower motor drawing 50 amps into a flimsy mock up wheel. I need machined parts!
Data Bus looks like it’s coming along nicely, I’ll be rooting for you in June!
>> Data Bus looks like it’s coming along nicely, I’ll be rooting for you in June!
I’ve seen Data Bus run, and it was working really well, I expect it will finish the course easily.
Bob, I’m hoping your comment means that you will be able to at least be in attendance at the AVC this year? It would be cool to meet you; I discovered your blog a few months ago (looking for AVC info), and I’m really impressed with what you’ve been working on.
Ted