Solidoodle First Impressions

I am truly a lucky guy. For Christmas, I put a bunch of expensive stuff on my Christmas list, and Supermodel Wife pooled resources with her family to purchase a Solidoodle 3D printer for me. Even more amazingly, she convinced her parents and brother to split the cost with her, when they really didn't understand what they were buying. (Her dad later mentioned that he couldn't understand why a printer cost so much.)

Does my wife love me, or what! (This is the part where all of you guys post comments of how jealous you are of my amazing wife.)

The order was placed in late November and shipped mid January. It was shipped to her parent's house and they delivered it on Thursday. I documented the unboxing for posterity and thought I'd share it with the world. Continue reading Solidoodle First Impressions

New Solidoodle!

I took the day off work today to run wiring in the new workshop. So, of course, Murphy decided to pay me a visit by delivering my new Solidoodle 3D printer. Supermodel Wife teamed up with her parents and her brother to buy me the printer as a Christmas/birthday/anniversary/father's day/etc. gift. She ordered it in late November but the lead time for manufacturing and shipping meant that I just today got it.

So, of course, that took me out of the workshop and into the house to try it out. I'll have more to post (including lots of pics) later.

The workshop wiring is coming along. I finished wiring outlets and lights. I need to run wiring for the air conditioner, drill some holes in the brick for exterior outlets/lights, and reroute wiring for existing lights. That last one's going to be a pain in the tuckus. Lastly, I have to run feeder cables from the main panel to the subpanel.

I hope to add to my progress this weekend.

Lab Notes 11/2/2012

I got the building permit from the city. Woo hoo! Most of my garage is already boxed up; the plan now is to haul it all out to a self-storage place and invite family over to build a partition wall in exchange for obligatory beer and pizza. Hopefully I can get this all accomplished before the end of the year.

In other news... have you ever accidentally won an online auction? Yeah, me too. I was going to ask Santa to bring me a new Rigol DS1102E oscilloscope this year. (Because I've been a good boy and all.) The 1102 is a 100MHz digital scope. Well, I was browsing through an online surplus auction and found an auction for a lot that included a 275MHz HP 1725A 'scope. The opening bid was only $30. There were no bids. What was there to lose? I might, just might, win this little auction in a hidden corner of the 'net and walk away with a $30 scope!

Yeah, well, you know the rest. I paid a little more than $30 for the lot (but not more than I can afford to lose if the equipment doesn't work). I ended up with a rather eclectic haul.

First up we have the HP 1725A. This is a 1970's-era scope I believe, and the controls are wonderfully analog. That dial on the top right, for instance.. the Time Interval one? The outer ring is the tens digit and the inner ring is the ones digit. The outer ring snaps to the next digit as the inner ring is rotated. How romantic!

I do hope that it works, or that it can be brought to working order relatively inexpensively. I haven't yet plugged it in.

The second item in the lot is a 20MHz digital storage oscilloscope, a BK Precision model 2520. I haven't been able to find out much about this unit from online searches. It's significantly lighter than the HP; as a digital storage scope I'm sure it uses much more modern components.

The next item is a Data Precision Data 6000 Model 620. I have absolutely no idea what this is or what it does.

A quick Google search suggests that this is a waveform acquisition, display, and digital analysis system. I apparently have a Data Precision 6000 with a model 620 plug-in. It apparently does 8-bit A/D conversion at up to 100MSPS and sports a whopping 48K of memory. Without a manual I'm afraid this might be difficult to use. Anyone able to point me to one? My quick searches have turned up nothing.

The last part of this lot is the most fascinating. This is a Grass S88 Stimulator.

I have no clue what this thing is supposed to stimulate. (Muscles, maybe? It is surplus from a teaching hospital.) Look at those wonderful switches and dials! If I ever shoot a low-budget 60's horror flick, this thing is going to have center stage in the mad scientist's laboratory. I love the look of this thing-- those long bat-handled toggle switches, the fat chunky selector switches, those dial indicators, the (presumably) neon lights... very very cool. Check out the back panel:

All those louvers for heat to escape. You don't think there might be tubes in there, do you? Well, there's only one way to find out. The top panel is held on with six screws. I popped that off and, alas, no tubes. But lots of discrete power electronics:

It's rather incredible to think that most of the electronics on those nine plug-in cards on the left could probably be replaced by a two dollar microcontroller today.

Aha! Found a Google reference. From the manufacturer's website:

The S88 is a dual output, general purpose stimulator for nerve and muscle stimulation procedures. Applications extend from single cell to entire muscle stimulation. The two output channels can be operated independently or synchronized to produce complex paradigms. The outputs are non-isolated constant voltage positive pulses. New features include computer compatibility and flexibility of synchronization circuits. The synchronous inputs and outputs are TTL, 5 volt, PC compatible. A rear DB25S connector permits external analog control of the timing circuits. Optional Stimulus Isolation Units are available for applications requiring isolation and/or constant current.

It appears that this company is still selling similar units. I'm sure I have absolutely no use for this, but I'm equally sure that I'll hang on to such a beautiful device (perhaps occasionally practicing an evil "muwahahahaaa!" as I walk by it) in the hopes that I'll eventually find something useful to do with it.

Lab Notes 10/16/2012

I've alluded to this earlier, but the truth is that the Hacker Workshop doesn't really have a workshop. Today I applied for a building permit from the city to partition part of my garage into an air conditioned workshop. I hope to get this done by the end of the year.

The wife took a part-time job recently, so I've been spending a lot of time with the kids which has cut into my hacking time.

Lab Notes 9/29/2012

I'm still playing with the STM32F0DISCOVERY board. I've written some code that uses timers TIM2 and TIM3 to produce PWM outputs suitable for driving radio-controlled servos. The timers can produce the required waveform with no intervention from the CPU. So once the timer is correctly configured and the servos are put in the desired position no further attention from the software is necessary.

I found that doing float or uint32_t arithmetic seems to haul in large parts of the newlib library, which bloats my code quite a bit. Just initializing the servos takes 11K of code space! I need to look into that further and see what can be done to tame this code bloat.

I was going to write a tutorial on using OpenOCD to debug code on the chip. Dr. Al-Hertani has such a tutorial here, although my results weren't as positive as his. I find that I have to use the telnet session to OpenOCD and manually issue a 'reset halt' command before each debug session. I don't know why.

I added the Subclipse package to my installation of Eclipse to put my code under source control. I feel much better about experimenting with my code now.

Since my code is under source control, I may rebuild the VM that I'm using to host my build environment and see if I can fix the issues with OpenOCD.

I turned on the compiler warnings "implicit conversion warnings" in my projects. These code issues have bitten me before so having the warnings on is nice. Unfortunately, many lines in the Standard Peripheral Library cause these warnings to be triggered. I edited some of the library files with the appropriate #pragma to suppress these warnings. For example:

[cce]#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
╥╥╥╥╥╥*(__IO uint16_t*) tmp = Data >> 16;
#pragma GCC diagnostic pop[/cce]

I've been at the computer enough today. I think I'll see if I can find some college football on the television.

Lab Notes 9/19/2012

I spent some time today writing a simple "BlinkyLEDs" program to demonstrate how to use our template project. I spent a few frustrating hours trying to determine why the LEDs wouldn't light up. It turns out that you must enable the clock to the GPIO peripheral before initializing the pins.

I should have a writeup on this project by the end of the week. It probably won't happen tonight.

Lab Notes 9/16/2012

As you can see, I've started publishing my GCC/Eclipse/ARM development tutorial series. I hope folks find it useful. I'm continuing work on future tutorials.

The USB-to-Serial cable and the R/C servos that I ordered from China (on aliexpress.com) arrived. The cable uses a Prolific 2303 chip, although there's questions in my mind about whether it might be counterfeit. It enumerates on my Win7 64-bit machine but the driver won't start. The driver will start in the WinXP 32-bit VM that I'm using for my ARM development. I haven't been able to test it yet.

The servos also arrived. I don't have the ability to test those; I plan on driving them with the STM32F0.

Lab Notes 9/11/12

I'm still working on getting a free, open-source toolchain for ARM development up and running on Windows. I've actually had unprecedented success, given my track record with FOSS software. I've been able to write and build my code, and have used OpenOCD to upload my code to the STM32F0DISCOVERY board, run it, single-step through it, read Flash, RAM and registers, and write RAM and registers. The last little bit I need to get working is that I need to get Eclipse and OpenOCD to talk to each other so I can do integrated debugging in the IDE.

I'll probably end up writing a 4 or 5 part tutorial on this topic.

 

Lab Notes 9/5/12

Today I continued work on a tutorial to get GCC-ARM and Eclipse configured for building projects on the STM32F0Discovery board. I hope to have that posted soon. I built a virtual machine with a blank hard drive and followed my own tutorial to ensure that it works as written. I'm getting close to having this work complete. (I think.)

I also preordered two of the Stellaris M4F Launchpad boards. I'm pretty sure I don't need any new dev boards, but at $5 each (including shipping) it was too good an offer to pass up. It seems that some of the chip manufacturers are in a race to the bottom to get their products into our hands. Not surprisingly, I'm OK with that.

Lab Notes 9/3/12

I enjoyed the three-day Labor Day weekend by spending some time with the family, some time with the computer, and some time in the workshop.

In the garage, I packed up some boxes. I'm going to convert part of the garage into a real honest-to-gosh workshop by building a partition wall and my first order of business is to get everything that's currently littering up the place out of the way. I'm making progress by emptying a flat surface into boxes, then dismantling the workbench/shelf/table/whatever to ensure that I don't just move stuff around and fill it back up. It's still averaging well into the nineties each day here in Dallas, so I'm not too terribly motivated to spend much time out there.

At the computer, I spent more time figuring out how to set up the ARM GCC cross-compiler and Eclipse as a free open-source development environment for working on the STM32F0DISCOVERY board. I'm drafting what's apparently going to be quite a lengthy tutorial, but will hopefully explain each step along the road to getting things working so that visitors can understand the problems encountered and how to solve them.