On my continuing mission to take apart HiTechnic sensors and show you guys their guts, I present to you: The Gyro. The little yellow/gold component on the right of the PCB is the actual gyro chip, the rest of the components most likely to deal with power conditioning. There’s not a whole lot to tell about this board since there’s not a lot to it. The other side of this board is completely bare apart from some writing, a couple of vias and the connector, of course.
November 17, 2009
You spin me right round, baby, right round
November 6, 2009
August 18, 2009
Public Service Announcement
Be sure to let your grand parents know about this.
Thanks.
August 4, 2009
Connecting the NXT to an ArduinoMega
I’ve had my ArduinoMega for almost 2 weeks now and until today I had no luck getting it to work as an I2C slave with the NXT. The NXT is a finicky beast when it comes to I2C. It’s really not all that standard and requires very high pull-ups (82K) for the NXT to be able to pull the lines down properly.
After testing the ArduinoMega’s ability to play I2C master to a number of ICs I had lying around, an MCP23008 and a DS1631, I was pretty sure the I2C lines were working properly. I tried in vain to make the ArduinoMega work as a slave with the NXT using the AVRlib I2C library, the one provided by the Atmel AVR311 Appnote (source code) and the Arduino Wire library. Having tested it with 3 libraries, I was pretty sure it was probably not a software issue but some stupid electrical problem. Little did I know how stupid it turned out to be.
Lacking the proper equipment to further diagnose the problem, namely a scope and a logic analyser, I employed the help of my friend Joep. We hooked up the ArduinoMega to his PC based I2C master board and all tests completed successfully. The board responded as it should so that definitely ruled out the software as a source of our problems. So what could it be? We connected the ArduinoMega to the NXT using a small breadboard and two 82K pull-ups. With the scope hooked up to SCL the problem became pretty obvious; the NXT wasn’t pulling down the line enough. That made no sense, since the internal pull-ups of the ATmega1280 were explicitly disabled in our program. Joep re-examined the PDF with the circuit diagram and discovered that the SDA and SCL lines had in fact 10K pull-ups! They were not drawn near the chip itself, but way, way off in the top right corner where you could easily miss them. With the 10K pull-ups in parallel to the 82K ones, the resulting pull-up resistance had been reduced to a mere 8K9. After a little brain surgery, the two evil pull-ups from Hell, were removed and subsequent testing resulted in a successful NXT to ArduinoMega I2C transaction!
If you plan to use your ArduinoMega with an NXT, you will need to remove R2 and R3, which you can find below. Click on the left picture for a larger version.
Be very careful when removing these two resistor, of course. You don’t want to end up damaging your board. Joep is quite experienced in soldering very small components and has a very fine tipped soldering iron. The end result was very nice. Click on the picture on the right to see a bigger version.
So why had no one else bumped into this problem with Arduino’s before? Well, it turns out that the Arduino Duemilanove, for example, does NOT have these pull-ups. The SCL/SDA lines are shared with the ADC channels. You can’t very well put a pull-up on an ADC channel. I am not sure why they would put the pull-ups on the SDA/SCL lines on the ArduinoMega when they weren’t there on the normal Arduino.
Thank you, Joep, you saved the day!
July 31, 2009
Exclusive: New HiTechnic Colour Sensor Bares All!
A new version of the colour sensor has been brought out by HiTechnic. It features a number of new abilities:
- Increased sensitivity; the sensor can determine a large object’s colour from up to 20 cm away.
- No longer needs an RGB LED but uses a bright white LED instead. The RGB values are determined by the very sensitive colour sensor.
- The LED can be switched off to determine the RGB values of ambient light or a light source directed at the sensor. Now you can really tell the difference between a fluorescent light and an incandescent light bulb.
Rather than sending me a fully assembled sensor, HiTechnic sent it to me in discrete parts, namely the PCB (Printed Circuit Board) with all the components, the grey body, the white cover and the black cap with holes. This would allow me to take some pictures of its innards to share with you before closing it all up.
So without further ado, I present to you the new colour sensor in all its naked, exposed glory:
I didn’t take pictures of the underside of the PCB since there really wasn’t much there. The domed component on top of the colour sensor is a very bright LED. The colour sensor is the cylindrical shaped clear doodad at the bottom with the flat front. When viewed from the front you can see there is a rather large square sensing area. I took a macro picture of the colour sensor itself, which you can see here on the left. If you look very closely, you’ll notice that the light is reflected at a 90 degree angle onto the sensor which is actually mounted on the PCB. This is done by the black block which you can see in the above right, notice how it has that surface at a 45 degree angle? I realised this when I saw the small vias (connections between the different PCB layers) next to the sensor area which could only be on the PCB itself.
A ROBOTC driver for this sensor and some of its new functionality will be available very shortly as part of the ROBOTC Driver Suite. Until then you can safely use the sensor with the drivers for the older model, you just won’t have access to some of its advanced features.
July 25, 2009
All aboard the Arduino Bandwagon!
Having read the countless articles, websites and hearing about it from friends, I’ve decided to jump on the Arduino bandwagon. I bought one of the new ArduinoMega boards with a very nice shield and some other things.

The ArduinoMega is an Arduino compatible board with an ATmega1280 controller that has 128KB flash, 8KB SRAM and 4KB EEPROM. It has 54 digital IO pins (of which 14 can provide PWM output), 16 10bit analogue inputs, I2C and a bunch of other ones.
The idea is to use the ArduinoMega as a (very) smart sensor/I2C slave for the NXT. I am not sure what I’ll do with it, yet. I have a Wiznet WIZ810MJ Ethernet module in a drawer somewhere, perhaps I can use that. So far I have managed to upload a “blink” program and it works. The only bad thing about the Arduino programming environment is that it is very, very slow on my Windows 7 64bit laptop. I have it running on a Vista 64bit VM without any issues, though. Perhaps they have fixed this in the upcoming 0017 release. For now I will just use the VM-based solution.
I ordered the stuff from an online shop in Germany called Watterrot. I was really impressed with how quickly my order was processed and shipped. I ordered it on Wednesday lunch time, it shipped out on Thursday afternoon and by Friday afternoon I had all my items. Their packages are traceable, so you can hit F5 (refresh) in your browser until the lettering wears off. They also stock a very wide variety of SparkFun items (117 of them @ 25/07/09), which is great. To top it all off, they have very good prices and only charge €10 euro for shipping and handling for orders within the EU! That’s less than a 1/3 than what some of the shops in the Netherlands charge for a similar order. I will definitely order from them the next time.
July 8, 2009
Moar Powah!
Did you just buy a Wii-mote for a robotics project and you can’t wait to use it? If you have a 15-tonne hydraulic grappling arm at your disposal, you could do what these guys did.
I am sure this beats the crap out of whatever you had in mind of controlling with that Wii-mote. Feeling inadequate yet? [Source: Entity Crisis via Gizmodo]
June 23, 2009
Subsumption, all the cool kids are doing it
“Subsumption?” I hear you say, “What’s that?” Subsumption is a form of behaviour based robotics where multiple behaviours can control a robot using a hierarchical system. However, don’t take my word for it! Check out Thom Roach’s great new blog. He’s written some really ace articles on the subject without reverting to dry stuffy theory like you see in most research papers. Using clear text and simple diagrams he shows us how you could make a simple robot that uses subsumption to get around. Be sure to read them in reverse chronological order!
June 19, 2009
SHOCKING: IR Seeker V2 exposed!!!
Ever wondered what an IR Seeker V2 looks like on the inside but didn’t have a spare $50 you could just throw away? Well wonder no more! I was given a pre-production IR Seeker by HiTechnic to write a RobotC driver for it. The lens cap on it wasn’t as clear as the production version so they sent me a replacement lens cap and sensor cover. That meant I had to do some minor brain surgery on the sensor casing. Armed with a sharp blade I went to work.
After removing the white plastic cover, the lens cap came off smoothly after a bit of prodding and poking. As you can see on the picture to the right, there are 5 IR sensors, each pointing in a different direction. The rounded lens cover ensures that they can all receive an undistorted IR signal. You can click on the picture for a bigger version which shows a bit more detail.
I wasn’t satisfied with just slipping the new lens cover on and closing it all up. No, I wanted to see it all. Slowly I pulled the small printed circuit board (PCB) out of its cover. I was not disappointed when I turned it over. The big chip roughly in the middle is the brains of the whole thing. It’s a very powerful processor that does all the Digital Signal Processing (DSP) of the 5 sensor inputs. It can detect both DC and modulated IR signals at 600 and 1200Hz. The small silver rectangle next to the main processor seems to be an oscillator or crystal running at 10MHz. I have no idea what the smaller IC does. You can click on the picture of the PCB to see a larger version.
So there you have it; the inside scoop. The guts of the IR Seeker spilled all over your monitor in all of their glory. Maybe not as shocking as the title led you to believe, but pretty cool none the less.
June 17, 2009
Mindsensors support forums are live
For all your Mindsensors specific questions and ideas, you can now point your browsers to their own forums here: [LINK]. Right now it’s still a little quiet, but there’s a small but knowledgeable crowd of sensor beta testers and seasoned robotics programmers ready to answer (most of) your questions.
So come over, introduce yourself and ask away.
