text:
Finding certain positions in a room?
I have LEGO NXT and a square room of 100x100cm. I would like to use the center of the room always as my starting point(the black box). The green box is going to be my park area. Circles can be the randomly placed obstacles on my way. Red is the walls of the room. Objectives:

When starting no matter where the robot is, it should return to the center, afterwards it should be able to park into the green box when requested.
In its returning center/home progress there can be obstacles on the way, I should try to overcome these obstacles and park successfully. The obstacles don't have to be circular, they can be square as well.
If there is an obstacle in the park/center area I should give an error not possible to park or abort the parking...

Worst-case scenarios: Robot starting from the corner and obstacles on the way to park.
I'm using for the time being the color sensor and ultrasonic sensor, I can also add a gyro sensor but haven't made yet deep search about it. I also have an RFID sensor but I think only with 2 transponders it won't help much.
My first challenge is without any obstacles for starters would be identifying the center to the robot, and it knows where it has to come from a random position. Any tips?

There are a few different but related problems here.

Position Your robot should be able to know where it is in the room. This can be achieved in a few ways:

Using the ultrasonic sensor as a sonar, rotating it around and storing the readouts, then calculating based on the known map of the room (if the layout is fixed and known in advance).
Tracking the movements and calculating from the last known position. This method depends on how accurate are the starting data and the measurement of the movement. This also loses accuracy over time.
Placing unique markers along the floor or the wall that the robot can read. I don't know how could this be accomplished using LEGO pieces, but I wouldn't say it's impossible to do. However, you could mark the two important locations (the green box and the center) to have an easy way to tell if you're at them.

Orientation Your robot should also know which direction is it facing. Most of the above methods offer a way to calculate this, but you could also use a compass sensor.
Knowledge of the environment Your robot should know if there is an obstacle in its way. The random obstacles are by definition impossible to know in advance, so you'll need to detect them somehow.

You could use the aforementioned ultrasonic sonar if the obstacles provide a good enough acho.
If the obstacles are made of a suitable material, you could try to use a color sensor to see if there is one in front of the robot
In theory, you could try to measure the resistance of the motors when you try to drive into an obstacle but this might prove impossible, depending on the capabilities of the hardware and software you are using. This method also makes it impossible to use the incremental location method.

Given these problems in my opinion your best bet would be a simpler, more brute force approach. Outlined in highly abstract pseudocode below:
going to the green target box:
while not in target area
  while not at wall
    if obstacle is in front of me: get around
    else: move forward
  end while // now you're at the wall
  move forward along the wall
end while // now you're at the target

going to the center: // assuming you're at the green box
turn towards the center
while not at center:
  if obstacle is in front of me: get around
  else: move forward
  if moved more than the journey should have taken: announce that you're stuck
end while // now you're at the center or lost

I would like to simplify my question. Im in the center, I made some movements, I just want to return to my starting position. I dont have a compass sensor. I read this could be possible with motor decoding but Im lost in this area...

I can't seem to find the related documentation on retrieving the measurements of the encoders on the motors. But you could always approach the problem by keeping track of every movement the robot has made from the known starting position. Then when you have to turn around, you can simply replay the stored movements with the rotations inversed. So for example if you stored F10, R90, F25, L60, F20, you'd have to turn around (L180) and then follow your way back: F20, R60, F25, L90, F10.


text:
Installing Linux on my NXT
I have an old NXT laying around and I want to set it up with my printer so I can connect it to the cloud. In order to do this I need to install Linux on the NXT and connect the NXT's USB port to the OS. How can I do this?

There is no Linux firmware for the NXT. The NXT has very limited resources, so running Linux is probably not a possibility.

And the USB port is a slave type one, not a host, so you can't connect a device (printer) to NXT.

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

sort: votes


text:
Going to Legoland Denmark with my family, what should I do/get?
Hello fellow LEGO lovers! I know this question is not entirely what this site is for but I figured I'd ask because I want to hear what you have to say.
I have been wanting to go to the original Denmark Legoland for 40 years and I finally have my chance. This August I will be going to Copenhagen for a few weeks with my family (kids 7 & 4) and will be spending several days at Legoland.
My questions for you are:

What activities and exhibits are unique to this Legoland that I should be sure of seeing? Obviously every Legoland's features are different but since this will likely be the only time I ever go there, I want to focus on what I know I can get nowhere else.
I will likely be bringing an extra bag just to fill with LEGO. Are there sets, parts, or other LEGO related items for sale there and nowhere else? I'd consider buying things in areas I don't normally focus on if its the only place I can get them. What about pricing, is it better there because its closer to their Denmark factory?

Thanks everyone!

Just a head's up: We've had some discussions in the past about whether questions about the parks are On or Off Topic, so I'm leaving this one for now ;)

Sorry to disappoint you sir.
But first of all LEGOLAND in Denmark is about 3 hour drive from Copenhagen, I am from Denmark and I would say that the Danish LEGOLAND is not that great, they do not have any really special stuff that you cannot get anywhere else, in fact when I was in Florida LEGOLAND I found that they had a lot more unique stuff then the Danish one.
They do have a website for the danish LEGOLAND http://www.legoland.dk/en/Explore/
The best things I like about the Danish LEGOLAND and the thing I would advise one to look at in there are:

Their models, they have made some beautiful models of different stuff in there only made out of LEGO.
Their workshop, they have a nice workshop where they show young children what you are able to do with LEGO Mindstorms and help them make some small programs.
See if you can be there while they have one of their events.

Good luck and have a nice vacation :)

Thanks for the information! Yeah I knew it would be a long train ride so we're likely going to stay overnight locally (probably will spring for the Legoland hotel). A surprise that there aren't many unique items to get, that's a disappointment. I'll probably still buy a T-shirt! Thanks again.

Another important point to note about all of the Parks shops:
Whilst the on site are not actually LEGO Store shops - they are (albeit usually well stocked) franchise shops - as such they typically only carry general availability and "Hard to find" LEGO Sets and merchandise - LEGO Store and Shop@Home "Exclusive" items are not available through these stores.
Also your LEGO VIP Card (if you have one) will not be usable in them.

Ah good to know. I went to the Westchester, NY mini-legoland and was shocked at how expensive the LEGO was there, was hoping the Danish Legoland was different. So perhaps I'll buy some LEGO at the large Copenhagen LEGO store instead. Thanks!

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Best online community for Lego Builders?
It seems like different people use different online communities to share Lego-related things, but is there one that's just the best? I suppose I am asking a subjective question, but what I'm looking for is:

Ability to easily share photos
Ability for others to easily comment about the photo (ideally on the photo)
Ability to form sub-groups within community (eg, "My Family," "SoCal Builders," etc)
Easy to find and follow fellow builders

I know Flickr used to allow commenting on photos, but it's such a generic photo-sharing place that unless you know who to follow, it's hard to find new/expert builders...

I would still recommend Flickr as the number one place. It allows everything you mentioned, and the most important thing is that's where most LEGO fans and all the best LEGO builders hang out. It is by far the best community. Just join some of the main LEGO related groups and you will quickly find people to follow.
Also, follow the Brothers Brick blog. Pretty much everything they feature is from Flickr, and they focus on the best MOCs. This is another way to find great builders to follow.
There is also MOCPages, and there are some great gems there, but the site is mainly full of little kids. AFOLs and serious builders hang out on Flickr. It may not be all LEGO related, however once you become part of the LEGO related groups, you will have some much to do, so much to see, and so many people to interact with, you won't even notice that Flickr is not all about LEGO...(c:

Thanks, BrickBlogger. QQ: do you think the new Flickr enhances or takes away from the experience (compared to the previous version)? I heard some people were not happy that they removed the commenting-on-photo feature...

You can still comment right on the photos just fine. Just put your mouse over the picture and a little box will open up, drag it wherever you want it, and you can add your note. It works the same way as before. ;)

Have you used the new Flickr interface? There's no way to allow you to add comments directly into the photo itself. From what I've heard, many lego builders were pretty peeved by this feature removal...

I use the new Flicker and personally, I like it. I don't think people need to be able to comment on the photo themselves. I remember that on the old Flicker, someone would always put a giant comment over the entire photo and cover up all of the other comments. Sure, the comments directly on the photo are good for pointing out cool parts, but I don't think it was a very good feature.

@Gabe - That's funny. I guess they rolled out (or more accurately; taken away) that feature greadually, because I was still able to use commenting just fine when I first responded to your question. But I just checked again and now I can't...)c:

Okay, I just checked again and this is really weird; there are pictures where I can directly comment on the photo, and there are some where I can't. So I think this is controlled by the person who uploads the photo. I haven't uploaded anything for a while, so I'm not sure, but the point is there are definitely photos I can comment on. And not just old ones, but newly uploaded ones as well.


text:
Robot that builds a copy of itself
I'd like to try building a robot that can build a copy of itself. Basically, I guess that involves:

having some means of navigating around (i.e. wheels, tracks, something to move on)
having some manipulator, capable of taking parts and arranging them together

What would be the standard set of problems I'll encounter if I'll try to do it?
For example, I already understand that CPU and array of sensors provided with NXT or EV3 is, well, very-very basic by todays standards to say at the very least, so probably it can't be helped to replace it with some more advanced controlling unit, for example, Arduino-based and a full-blown camera + Kinect. What else? For example, I'm a bit hesitating about:

Is it possible to navigate a robot on wheels/tracks with decent precision, enough to be able to do such building work?
Is it possible to construct a manipulator (i.e. an arm with some degrees of freedom) that would be able to put together basic Lego/Technics joints? Would it be precise enough?
Should I use motors / pneumatics for the arm? Pros/cons of both of these types?
If I'll use standard Mindstorms motors for the arm, what's the typical maximum weight it can handle?
If standard Technics/Mindstorms parts won't be good enough, maybe some 3rd party parts (such as Matrix Robotics) parts will do?
What are the good examples of minimalistic Technic/Mindstorms robots / arms, easy to assemble?

And, the main question of them all — why hasn't anyone done that yet? I've found people building CNC 3D mills, guys who assemble lego models by hand instead of 3D printing, a very simple lego "assembly" factory model and a very basic lego 3D scanner & "printer".

This seems pretty much bordering on the impossible, given the current state of (LEGO) engineering capabilities. What you are describing is a Von Neumann Machine and as far as I know nobody succeeded in creating one, not just in LEGO but in general.
The problems you'd have to overcome:

The robot must be capable to exert sufficient force to overcome the clutch power of the LEGO bricks. This could be done with a suitable set of gears. However the gears themselves eat up a lot of the motor's force due to friction. Pneumatics is absolutely out of the question for these parts.
The robot must be capable of positioning the LEGO pieces with sufficient accuracy. I have no hard data available on the precision of the various LEGO actuators (motors, pneumatics, linear actuators, what else?) but in my previous LEGO experience electric motors can be tricky to program to operate with enough precision, but it can be done with enough testing and refining iterations for a given physical design. Again, gearing down would in theory help a lot, but all gears have some inaccuracy. LEGO gears are not among the most precise ones. You could easily test this by linking about a dozen cogwheels together in a chain, holding one end tight and testing how much can the other end of the chain rotate. Pneumatics are also out here, you can't get them to stop reliably anywhere but the end positions.
The robot must be capable of picking up, holding and placing every type of LEGO piece it is constructed from. This means either an universal actuator that itself can handle every element or more than one actuator, each specialized for a subset of all elements. The actuator(s) should also be capable of orienting the pieces in 3D space, this requires at least 6 degrees of freedom
The robot must be capable of finding and distinguishing between different pieces. The hardest version would have the robot sift through a bin full of pieces, but you could "cheat" by letting it use pre-sorted, pre-positioned stacks or queues of individual piece types. Even that would bring many problems, the robot must know which element is where, how high/far is the current part in each stack/queue, etc.
In the strict sense the robot should transmit it's program to the newly built robot. I'm not familiar with the current lineup of programmable bricks to state confidently whether it is possible at all for a LEGO brick to program another, but even if it's possible it would require some serious programming.

In your examples you can see how complicated, huge and slow can these creations can become. But you can also see how highly does the LEGO community think of these creations, each of which does only a small fraction of your proposed project. I'm not saying that it's impossible, but I don't think it would be an understatement to say that this would be the single biggest achievement in the world of LEGO and in general engineering too.

Looks like you're right. Thanks for the detailed analysis and pointers to Von Neumann's machine.


text:
What do factory markings on the inside of DUPLO pieces mean?
In addition to LEGO and DUPLO names embossed inside the pieces of early DUPLO figures, there are a variety of number formats (one to three digits, some hyphenated) and in the case of 1977, the year.
Is there an explanation for what these numbers mean - and can they then be associated with a particular set and/or year?

Similar question: http://bricks.stackexchange.com/questions/1399/what-does-imprinted-information-inside-bricks-mean?rq=1

The markings are the Batch number and element id.

You should add more details to your answer like describing the format and your references

Woo, War Kings! (I blame and thank autocorrect)

I think they are Mould Ids rather than "batch" numbers specifically...


text:
Virtual LEGO / Technics / Mindstorms simulation environments
I know that there are quite a few LEGO CADs floating around, but are there any physically correct simulation environments for models built with LEGO / Technic / Mindstorms parts, that would, for example, allow me to:

simulate how far would a particular moving part would move / rotate / etc, until it collides with other part
simulate gear links (ideally, with tolerances / precision / friction of plastic gears)
get estimates of speeds / torques exerted by specific motors
get estimates of battery power drain

So far I've found Robot Virtual Worlds, but it doesn't seem to allow construction of arbitrary environments and, what's more important, seem to simulate only a few preset robots. Also it seems to be pretty crude in terms of physics simulated. Anything else exists?

Robotic Virtual Worlds does support the building of your own environments through the "Level Builder" tool, but I don't believe it supports importing your own robots yet - although the RobotC team were talking about it in 2013.

Recently I met with TeamSim. Its possibilities are impressing:

you can make own robot via LDD and export it to the program
you cam make own mat (FLL, WRO, sumo mats are already available)
you can program a robot via NXT-G

I have no chance to investigate this program in detail, but I think it's what you want.

Not sure how much control you would have over this, but just wanted to mention that the link given is dead

fixed the link.


text:
Is it possible to add block to the on-brick "NXT Program" menu?
I have an NXT 2.0 (8547) set.
Is it possible to add some custom blocks to the NXT progranm submenu on the brick itself (like the existing "forward 5", "turn left", ...) so that I can add and use some simple steps there without the use of a PC?
Rationale: I'm playing around with the block with my small daughter (3), and adding in the PC to do something isn't very small-children friendly :-)

There is a piece of software called ICON (archived copy) which runs on the NXT and allows you to create programs on the NXT with many more commands than the built-in NXT programmer.

Thanks. This seems useful. So there is really no way with the stock software?

No, as far as I know that is hardcoded into the firmware, and none of the firmware replacements do anything to improve it


text:
Return a robot to its start position?
I have a LEGO NXT robot, and after some movements I would like it to return back where it started. After some research, it looks like my best option is to revert the motors. To decode their movements but I couldn't find any examples for it, could someone give me a hand? I'm using leJOS for programming.

This is fundamentally a variant of How to remember initial position of a robot and return to it albeit with the NXT.

You can read the tacho count and rotate a negative amount of degrees. Or you may want to use the Navigation class and create a path while you move, then you just need to follow the path back.
But unless the robot is perfectly calibrated it will fail miserably. I explain it all here http://thetechnicgear.com/2014/06/howto-calibrate-differential-drive-robot/

The robot is way too far from perfect calibration :) because it has lots of sensors and cables on it unfortunately it isn't well calibrated. Im thinking of other ways like calculating the distance to walls and finding the center, when the distances are equal I assume I will be in the middle, but an assumption...

It isn't a bad idea... in fact Montecarlo localization works with a similar idea... just rememeber EV3/NXT Ultrasonic sensors only reach 2m at most.

The room is a square 90 x 90 cm, another mate on the project is trying to implement the Montecarlo but till now no success...

Are you programming your robot to move? If so, then you could just keep a running log in your code of how far did each of the motors turn. Based on this log you could replay the whole log backwards to return to the starting point (with the approppriate precision of course). If your robot is moving due to external forces (e.g. someone is pushing it) then you can only rely on the decoding that you mentioned above.
For code references see these resources:

http://social.msdn.microsoft.com/Forums/en-US/100f8d4a-df1c-49b8-9dea-b01948b06def/lego-nxt-motor-encoder-updates?forum=roboticstroubleshooting
http://www.lejos.org/nxt/nxj/tutorial/AdvancedTopics/Advanced_Hardware.htm


text:
Name of trunk-like objects
What's the name of the black curved elements in the header/banner of https://www.flickr.com/groups/lego_arboretum/?
The full picture along with some others of the same diorama can be seen here:
https://www.flickr.com/photos/mark-of-falworth/sets/72157638713690815
In addition, does anyone know whether there is an instruction guide for these trees?

Ah, found the source of the header/banner: https://www.flickr.com/photos/mark-of-falworth/sets/72157638713690815

I think the piece you're referring to is Dinosaur Tail / Neck Middle Section with Pin.

Thanks. Did they use the same pieces for these trees http://www.flickr.com/photos/tiberium_blue/8621407311/in/photostream/? In that case I can't see how it is connected to the 1x1 Round Brick.

I think they are the same tail pieces, and bits are connected using Bar 4L (Lightsaber Blade / Wand)...

Great! In addition to the Bar 4L elements, I see some Reddish Brown tubes/hoses in the link from my previous comment (they seem to be cut in different lengths). Would you happen to know the name/description of this element as well?

The hoses are probably: Hose, Rigid 3mm D..


text:
How quickly do new molds reach PAB on the Lego website?
A few months ago, I asked Lego customer service if the 1x2 jumper plates on the Lego PAB site would be the new mould (with stud holders) or the old mould (with pegs).  I received no reply, not even to say that they didn't know.
If anyone has ordered 1x2 jumpers or 2x2 round tiles recently, did you receive the new moulds or the old ones?
How long does it take for the new moulds to hit the Pick a Brick bins?

I suspect that is unanswerable except in very vague terms like "some time after the new molds get put into production" and "it will be a LONG time before the old ones go away completely".

Unfortunately, I would have to agree, I might just have to order three of each colour periodically and see what I get.


text:
What is included in set #7155?
I found an open box LEGO #7155 at a local Goodwill.
The funny thing is that there are 3 unopened bags in the box, 3 booklets (instructions, and 2 other small booklets along with 4 large pieces that are not in bags.
The set looks to be complete, but my question is this.  Is this how this set came in the box?  Are the 4 pieces (2 large beige oval for front of ship and 2 - 2x16 brown pieces) supposed to be loose in the box.
Everything looks pretty much untouched and brand new other than the fact that the box is open and Goodwill can't help themselves with writing on boxes.

It is very common for Lego to pack larger parts like Plate 2 x 16 not in a seperate bag, for sets this size.
If I look at the inventory of set 7155, and compare this with sets I built over the years, I think 3 bags for the parts could be correct:

bag with minifig parts and small parts like 1x1's and 1x2's;
bag with large size parts like the 4x8 plates;
bag with remaining parts.


text:
Simple optical switch?
I have built a conveyor belt for my son out of Lego Technic. Now, I would like to add a simple optical switch, so that the belt stops when an object arrives at the end of the belt... However, I am not sure about which part I should use for that.

I'm assuming from your question that you are currently using Power Functions parts to control your conveyor. In order to achieve the sort of electrical automation that you are talking about, you'll need something like LEGO Mindstorms. The current line is called EV3. You'll need at minimum the Intelligent Brick, a light sensor, a motor, and a few cables. You can also buy the complete EV3 kit.
If that seems too pricey for you, you could try searching for used NXT (previous version), or even RCX (first version) Mindstorms kits.
Once you have the Mindstorms parts that you need, you'll just need to program the brick to do what you want using software on your computer.

Thanks a lot for your reply. Yes, currently using PowerFunctions.

I'm not aware of an official LEGO Power Functions optical switch but considering that PF is based on simple electric components it could probably be hacked together at the cost of sacrificing an official PF power cable for the connectors. I have no reliable information about the exact voltages, currents and possible signals used in the PF system but I'm pretty sure these can be acquired easily from the net. After finding out these you'll only need an off-the-shelf optical gate sensor, some wires, the necessary resistors, a cut PF cable and some soldering to produce a component that you described above.
It could also teach your son about basic principles of electronics and DIY, meanwhile awakening his curiosity to stepping out of the predetermined boundaries and hacking things (in the positive meaning) to achieve what he needs.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

authors: Игорь Петренко


text:
Can I re-use my LEGO Store Pick a Brick cup?
I was wondering if anyone went into a LEGO store with their old Pick a Brick cup and got a discount for re-using it, or do you have to buy a new cup?

Yes, you can. Or at least I've been able to reuse mine in the past. I believe it was $0.50 off for the big cup and $0.25 for the small cup.

Indeed. They used to slap a sticker on the cup reminding you of that fact, but they quit doing that a few month ago.

I think it's 75p in UK stores for a large cup.

In 2017, the discount is 75 cent for a large cup and 50 cent for a small one. Initial prices are 17,99 Euro and 9,99 Euro, respectively.

Still 0,75€ for a large cup in 2022.


text:
What are the bricks in this picture/video?
Can someone please identify the pieces in this picture?
I'd like to acquire these, but I'm not a LEGO enthusiast, so I don't really have an idea where to start.

For reference, the picture was taken from this video.

Obviously, they'll have been glued to remain in that configuration - as the cheese slopes won't have anything to hold them otherwise.

These are all fairly common parts that shouldn't be hard to find. It looks like they are a cheese slope (50746), a 1x1 tile (3070), and a 1x1 round plate (4073).

These parts are common enough that they are available in many sets, or you can purchase them separately from LEGO Pick-a-brick. If you're looking for a more affordable secondary market, you could also check out Bricklink.


text:
How can the "Bar Holder with Clip" part be used?
I'm wondering whether the "bar holder" end of this element (http://www.bricklink.com/catalogItem.asp?P=11090) can be used as a stud. In other words, would it have enough clutch power to hold e.g. a 1x1 plate? And what about a 1x1 brick?
The reason for asking this question is that I'm looking for an element with a clip on one side and a stud on the other side. Sort of like this element (http://www.bricklink.com/catalogItem.asp?P=2555) but with a stud at the bottom. Any suggestions?

One possible solution might be to use one of the new 1x1 round plates with open studs and a Bar with Clip

Thanks, that 1x1 plate element crossed my mind but I didn't see what part to connect it to. However, does this mean that the end of the Bar Holder with Clip can't be used as stud?

@Ailurus - Indeed - I think think the "Bar Holder" part of the description implies you can only insert a Bar into it :(

I tried connecting the Bar Holder with Clip to a brick and a plate, and it is too large to be used as a stud. Obviously, you can stick a bar into it (like Zhaph said).


text:
How can you remove a minifig from its key chain?
My sister has a LEGO minifigure attached to a key chain, but she wants to remove it from the key chain, how can she do this?

Linked question that would probably be marked as a duplicate: How to do this without hurting the gold paint on my special gold painted minifigure?

There is also a third method, using a cheap and readily available soldering-iron. The benefit is that it is a much faster and more reliable method than trying to pull the pin out by sheer force, which may or may not work depending on how strong you are. With a soldering-iron the pin just pulls out within a couple of seconds, no force required. See tutorial and video here: http://thebrickblogger.com/2011/01/lego-keychain-removal/

Most of the key chain minifigures are standard minifigs that have a large pin with a ring on top running through the top of their head into their torso.

There are two main ways to deal with it:

Cut it off.
This is straightforward. You can use a large pair of linemen's pliers or something similar to make the cut. You could also use a hacksaw of some kind. The main disadvantage of this method is that the head will still be permanently attached.

Pull it out.
Pulling it out is a little trickier. One method is to put something through the ring (such as a paperclip) and then pull hard to try to remove the pin. The pin is ribbed, so this could be difficult. This can be made easier by heating the pin first (perhaps with a soldering iron as TheBrickBlogger suggests) in order to slightly melt the plastic surrounding it.


text:
How is a LEGO Friends Mini-doll built?
Has anyone taken apart a LEGO Friends mini-doll to see how the arms and legs connect? And are the connection points compatible with any other types of brick?

You can see an exploded view of the mini-doll in this answer, because it comes from a press-pack it doesn't show the arms detached as that's not encouraged ;)

In fact, re-reading that question I'd say this was a duplicate :(


text:
Holonomic robots using Mindstorms
I just got some Rotacaster wheels and want to try building a 3 wheeled Mindstorms omnibot (holonomic robot) and I'm looking for a practical (easy) discussion about writing a driving program.  I've found some theoretical papers but need something a little easier to implement.  Has anyone here built one and what advice can you give?

Here is an article that may be useful:
http://botbench.com/blog/2014/05/11/omniwheel-article-in-dt-practice/

I got also the wheels and found it really interesting... so I wrote an article were I explain all the maths and show you how to build one yourself ( instruction attached ) http://thetechnicgear.com/2014/04/howto-build-3-wheels-holonomic-robot-using-lego/

The code is for EV3 software and I will surely rewrite it for leJOS ( despite there is a class that already does the work ) on the following weeks.

There is an excellent model at Hitechnic, complete with building instructions and example programs. It's for NXT, but shouldn't be very hard to adapt to EV3.


text:
What is the best way to make a staircase?
I have built a Bat Cave from some bookcases and lego base plates. ( http://alice-yarns.co.uk/blog/2013/11/17/the-batcave-part-i/ ) I want to add staircases for the characters to move between each of the three shelves. But what is the best way of doing this?
I wondered about making it purely from lego bricks but I can't see how this could be stable.

Seeing the size of your project you'd certainly need lots of bricks if you wanted it to be built entirely out of LEGO.
Check out the 3rd and 4th models in this video: https://www.youtube.com/watch?v=SRP8HcEaRpQ
Or if you'd prefer to have spiral staircases and have lots of turnplates you could try building one according to this video: https://www.youtube.com/watch?v=U4sA9abH8so or this answer: What is the best-practice for circular lego staircase construction?
But I think Batman would rather have a lift than a staircase :)

Fab! I love the spiral staircase. I hadn't thought of making a lift. And I think that would be perfect. :-) thank you!

Building a staircase out of bricks is easy enough, but uses a lot of brick pieces, as zovits already answered. If you want to achieve something faster, with fewer pieces, you could look into the spiral-staircase-piece

or the regular staircase piece.

The spiral staircase piece combines with some plate+pin pieces (bottom, top) and some posts. You can connect as many posts together as you want using a pin.
The advantage of using the spiral staircase is mainly the simplicity of it; it's not that versatile a piece, but it works for its purpose and does have a nice round edge. Plus the stairs can be rotated, which allows for a "hidden staircase" feature.
The advantage of using the regular staircase piece is that it is very sturdy and it takes up very little space. You can build a similar staircase using the inverted slope and some 1x4 plates but it isn't as strong (and it's slightly taller).


text:
Which Lego Police set or sets do I have?
We were given a big bag of Lego pieces.  When sorting through them my son found a bunch of police pieces but we can't figure out which set or sets they belong to.  I've tried looking up a few individual pieces but that hasn't helped and I can't seem to find the right set or sets by looking at googled images.  Any help would be greatly appreciated.

Most of the parts are of set 7288.
I see at least the following:

Window / door with the gates
Big wall parts with stickers.
Cop minifig & white shirt criminal
Computerdesk and front of the truck
Red front of the small car

I also see parts of 7279:

Gray shirted criminal
Part of the ATM terminal
Parts of the little car (lights and front with sticker)
Maybe the dog, it's hard to see the print of the head on the photo.

Then remains the stick of dynamite, the minifig in front of the red car parts, the second dog and bigger white bricks, that are not of these 2 police sets.
Maybe you can take a look for yourself on Brickset.com. The remaining set(s) are probably from around 2011, as these 2 are. Maybe look for a kind of plane / helicopter, because of the slope pieces.

At least  the mobile police post 7288; the label  on the piece identifies it.
Look for pieced used as license plates; license plates on Lego cars often contain the set number.  In fact, any number printed or stickered on a piece is likely to be the set number.
The dog doesn't have to be from a police set; he also appears in at least one firefighter set.

The white two-legged assembly with the blue light that's just above the left dog looks to be part of the robot dog from Space Police set 8399.
Additionally, the minifig near the red car front appears to be from the World Racers theme and the one just under it that's missing its head looks like Johnny Thunder from the Adventurers theme.


text:
My Blocks with return parameter
I have the retail EV3 kit and have created a function with in and out numeric parameters.
While using the [in] params seem quite straight forward, it seems that I can only set the [out] param once. Dragging a second wire from a constant or variable will not connect when I place them.
Can I only set an [out] param once?
Does setting the [out] param act like the "return" keyword?
I have had a look around, but there is very little help on the EV3 My Blocks at present.
Bad, but simple example:
Please note that this is a simplification of the problem, and in this case I could set x to -1 or have another case in the sensor switch to set x to -1. I am trying to explorer the limitations of EV3 My Blocks out parameters.

Can you post a screenshot of the function?

Can I only set an [out] param once?

Yes. You cannot tell it to be 2 different values at the same time. This applies to any block, not just the output block.

Does setting the [out] param act like the "return" keyword?

Not really. The return keyword in most (if not all) programming languages causes the function to exit, which is not the case here. It just allows you to assign the output value (or values - you can have more than one output parameter).

I think this is as close as you'll get (other than the constant being set to 99 instead of -1).  You end up with 2 output parameters instead of one.  If you really want only one output, you'll need some logic to determine which to output.

I don't think I showed a great example. Using David Lechner's advice I changed the code to be more like the below:
I use x to store my return value, and when loop 02 is finished, x is copied to the output param.


text:
Will they ever make LEGO The Amazing Spider-man 2 sets?
I realized that they released an exclusive minifigure of The Amazing Spider-Man 2 in the San Diego Comic Con but I am still wondering if they will ever make LEGO set(s) based on the movie.

It depends on licensing as well. Note that they have made sets for Ultimate Spiderman. The X-Men designs all follow their comic counterparts. Loki, Thor etc follow their Movie style counterparts.
This suggests that they have the license for the comic and animated styles, but Fox and Sony retain the rights for the movie looks of the characters.

This is correct. Lego does not have a licensing agreement with Sony who owns the movie rights to Spider-Man. They currently Spider-Man sets based only on Marvel IP. (Note that the "Amazing Spider-Man 2" designation for the Comic-Con exclusive from 2013 does not actually name that film anywhere on the package.)

That depends. First of all, the movie needs to leave theaters. Seeing how LEGO has not made an Amazing Spider Man 1 set, it is fairly un-likely they will do sets for the sequel.

The movie doesn't need to leave theatres before Lego makes sets for it. Lego had a license for the first two Spider-Man movies in the early 2000s and their sets were released before the movie, as are most movie tie-in sets.

Actually yes the will Because in 2014 October Sony has SIGNED lego tasm to Lego They made a electro Polybag that was given out But thats all i know but yeah They will make some because they have Rights to

This is just speculation.  Do you have any sources to back this up?  Also, please try cleaning up your grammar and spelling.


text:
Pneumatic pistons getting sticky
My sons "9641 Pneumatics Add on Set" now suffers from stiction.
How can this be fixed? Can it be cleaned? Is there a recommended lubricant?

In this discussion at LUGNET the conclusion seems to be that you could use dry graphite if you are comfortable with graphite powder everywhere. Else you should try lithium grease or canola oil.
There is also a serious warning about using hydrocarbon oils that could damage the rubber seals inside pistons and the rubber air tubes.
One poster also noted that stiff pneumatic cylinders can be unstuck by moving them by hand for a while. This definitely does worth a shot before trying to add any kind of "foreign" material such as oil.

Thanks for the suggestions. Dry graphite is unlikely to work as the pistons had  got a little damp due to my son blowing into them!

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
How can I tell if minifigures are custom-made or LEGO Originals?
I see that on Amazon you can find a lot of minifigures but I can't tell if they are cheap knock-offs or not.

China is making tons of the knockoffs. They have created the Marvel minifigures (Ironman, etc), also made the Knights series. They are even copying items from 3rd party custom accessories companies like Modern Brick Warfare that sell custom molded parts for lego minifigures. Amazon and eBay are flooded with these cheap off brands. Don't support them!

If you can't hold them in your hand and inspect them closely for the usual LEGO production marks, as it would be the case with buying from Amazon, your best bet would be asking the seller and checking whether the individual parts exist as official LEGO pieces. A custom piece that doesn't appear in any official sets or catalogues clearly indicates a third-party make. Note however that the inverse is not true, if all parts of the figure can be found in official sets, they still could be custom-made. At this point it all comes down to the honesty (well-informedness?) of the seller and your trust in her/him.

Also, I would suspect that Amazon has a "buyer protection" that protects you in case you "get taken" by a fake or sub-par quality figure. If the product description says, "Lego..." then I'm sure you're protected in the event that the product that reaches your house isn't "Lego".


text:
What's a good age to start getting into Mindstorms with my child?
What is a good age to start getting a child into LEGO Mindstorms? Also, how would you recommend introducing her?
I can't wait to start building robots with my daughter. She loves LEGO and the idea of robots, and I know she will have a blast. I know I will need to (and actually really want to) help her do everything.
I think I already know the answer (aka, now as she's almost 5), but I'm looking to see what suggestions others might have from their own experiences. Thanks!

My kid is 3. I think I'm... er he's at the right age.

I started at age 9 and it was just right for me. Since Mindstorms now comes with a modified version of LabVIEW, I'd maybe wait until they can learn how to use the software.

I say there's no hard and fast number, just "when she's ready", and I have faith that you will know that better than anyone else, Chris.

I think there is a lot of variability in terms of what can be considered an appropriate age for a child to begin Mindstorm.  For any given age, it is important that you scale the difficulty of any given activity to the child's knowledge, skills, and attention.  Indeed, part of the learning process is providing a challenge, but with children essential they feel successful.  As adults, we tend to focus on outcomes -- that is, the build in the final form. With children, give most of your attention to the process.  That is how you will ultimately rope them in to become master builders.  Good luck!

In order to have fun with Mindstorms you need to have a decent knowledge of maths and some physics ... but it is also a great incentive to learn these... I would say 9-11 does best. But it really depends of your child.


text:
Mindstorms, black orphaned data wires
I've just copied a loop element, which had a data wire going into it.
The internal wires (from the old external data wire) are now black, and I cannot delete them, or re-link them to a new external data wire.
They just don't seem to be selectable any more.
Can anybody give me an clues how I can do anything with them?

It looks like you have discovered a bug. You should report it using Help > Give Feedback.
For working around the problem, the only thing I know to do is to cut the blocks with the black wires and then paste them back in. This seems to get rid of the black wires.

Thanks @David, yes, I also discovered the cut/paste of the blocks removes the black wires.  Will let them know.

I also discovered the cut/ paste works, but sometimes if you disconnect the block from the loop and then put it back in that works too.


text:
Scan objects while moving?
I'm using leJOS with an NXT robot. I want to scan the distances of objects from my robot. While rotating the Ultrasonic sensor from right to left, I would like to find out which object is closest to me.
Motor.A.isRotating() seemed to me as a good idea, but later I found out that leJOS hasn't implemented it yet. They are suggesting using isMoving() instead. So I tried this:
 while(!Button.ESCAPE.isDown())
   {
    Motor.A.rotateTo( 40);
    while(Motor.A.isMoving())
    {
     value = sonic.getDistance();
     LCD.clear();
     LCD.drawString("Distance: ", 0, 2);
     LCD.drawInt(value, 0, 3);
     LCD.refresh();
     Thread.sleep(100);
    }
    Thread.sleep(100);

    Motor.A.rotateTo( -40);
    while(Motor.A.isMoving())
     {
      value = sonic.getDistance();
      LCD.clear();
      LCD.drawString("Distance: ", 0, 2);
      LCD.drawInt(value, 0, 3);
      LCD.refresh();
      Thread.sleep(100);
     }
      Thread.sleep(100);
   }

I'm open to suggestions and tips! Thank you!

I'm not a leJOS expert, but from looking at the docs, I don't think that the rotateTo method works the way that you are expecting:

public void rotateTo(int limitAngle)
Rotate to the target angle. Do not return until the move is complete.

So here's what your code is actually doing:
Motor.A.rotateTo(40); // Rotate to 40 and return when rotation is finished
while(Motor.A.isMoving()) { // The motor won't be moving
    // Execution never gets here
}

The rotateTo method takes an optional immediateReturn parameter that allows it to return without waiting for movement to complete:

immediateReturn - if true do not wait for the move to complete

Replace your calls to rotateTo(angle) with rotateTo(angle, true), and you should be on the right track. Something like this should be more effective:
Motor.A.rotateTo(40, true); // Begin rotating to 40 and return immediately
while(Motor.A.isMoving()) { // The motor will be rotating for a time
    // Execution should loop here until the motor stops
}

Thank you very much, makes sense! I will test it tomorrow in the lab!

When I look here http://www.lejos.org/p_technologies/nxt/nxj/api/lejos/nxt/Motor.html rotateTo() also has boolean immediate return. Will try both versions in few minutes.

So Motor.A.rotateTo(40 , true); works but I couldn't find it without you, thanks!

I'm glad this worked for you! I've updated the answer to include the info from your comments in case someone else runs into this problem.


text:
Why do official LEGO PDF instruction books have such poor quality?
More often than not, my boys are working from PDF instructions downloaded at the LEGO site. The quality of those PDFs is poor. I'm sure you've experienced the jagged, pixelated lines and the bricks so dark you have to figure out the size through a process of deduction.
I'm familiar with the sites that offer user submitted scans, and occasionally we find what we need at one of them, but why is it even necessary? Is it a case of LEGO wanting to leave some motivation to pick up the actual sets with the actual instruction booklet? Is it something far less calculated than that, maybe just a legacy process for generating the PDFs that needs to be updated?
I'd be grateful for any insight!

I'm going to guess a combination of poor-quality inputs (a common complaint about printed booklets is black/dark grey/light grey confusion), and a poor process for turning print artwork into PDFs (I suspect they use the default settings instead of forcing PNG/GIF instead of JPEG). Really they should use cbr format direct from CAD instead since that's actually designed for pages of line art.

Indeed, but more people probably have a PDF reader installed than a CBR reader - and typically a .CBR file is significantly larger than the equivalent comic in PDF form ;)

Mσᶎ' comment has dealt with the technical reasons quite eloquently, and I'd guess Mσᶎ' analysis is likely correct.
However, I suggest that we can dig a little deeper to guess why the process hasn't been fixed.
Disclaimer: the following is pure speculation. I don't work for TLG (I wish!) and have no special knowledge or insight into the company or its policies.
A Revealing Question
In my mind, the important question is why the instructions are published as PDFs at all? Whilst LEGO is a passion for the fans, it is also a business. The PDF instructions are provided as a free service to TLG customers: they receive no direct financial benefit from the publication of their instruction books.
So, why do they bother? Presumably for indirect business benefits. Things like:

The hope that customers will buy bricks / sets to make up sets they don't own
Easier to deal with customer enquiries regarding lost instructions
Customer good will

Costs and Benefits
Assuming this is the case, we can speculate that TLG have not invested in better PDF instructions because they don't consider the additional benefits will be covered by the cost of improving the quality.

Do many people really purchase bricks based on these instructions? I doubt it.
The poor quality PDF instructions are probably good enough for customer enquiry purposes, or at least TLG may perceive that it is.
TLG may perceive that customers in general don't care about the instructions quality - the few of us who do may not provide sufficient incentive to improve things.

The bottom line is that these instructions are provided on a goodwill basis. Unless TLG receive incentive to improve them, they probably won't.
A Call to Action
So, if you really care about the instructions, what can you do?
I suggest that it might be worth contacting TLG's customer services. If they get enough complaints, they may consider making improvements. Alternatively, they may consider it worthwhile providing a paid service for obtaining better quality copies of instructions.

Another cost consideration: Better quality PDFs (or other formats) would require more storage and bandwidth  - which would also impact customer download times, etc.


text:
Can anyone explain the transformation information within a Lego Digital Designer LXF file?
I've been taking a look at the structure of the LDD files recently to see if it's feasible to create a plugin for 3D studio max that allows you to directly open LXF files for higher quality rendering...
It seems possible, but to get some preliminary tests happening I just need to understand exactly how the transformation string works:
transformation="0,0,1,0,1,0,-1,0,0,0.40000009536743164,0,-0.40000009536743164"
It seems pretty obvious from playing around that the last 3 relate to the position of the piece, and the first 9 somehow relate it's rotation (and perhaps 1 or 2 other things I'm not aware of yet). If anyone knows I'd love a detailed explanation as it would save me a LOT of messing around =)
Also are there any good resources of info on lxf files? I have only come across fairly basic stuff so far, would love to find a good resource...

There's a fairly in-depth discussion on the Eurobricks Digital Designer Forum in the post Understanding LDDs LFXML Schema, where the transformation element is defined as:

Transformation contains 12 comma separated double precision floating point values that represent the first three columns of a 3d transformation matrix and are thus able to handle any linear transformation. It's something that you'll need to learn for yourself but the first 9 entries handle rotation, the last 3 are translation. It's worth noting that the origin of most bricks is at the bottom with the y-axis heading up through the center of a stud, this makes rotations around the axis of the stud slightly easier. Brick width is 0.8, brick height is 0.96 and plate height 0.32. This probably ties in with real world dimensions in some form, but I don't have the details to hand. The double precision floating point format can't necessary cope with precise decimal values as we might expect to see them, therefore you'll see slight deviations from the values given above, eg. -0.79999935626983643 instead of -0.8. Those 0.707 values are 45 degree rotations, they correspond to the sin or cosine of 45 degrees (or PI/4 in radians) and are part of the transformation. Transformations are in world coordinates.

As Philo points out in the comments, the values that The_Cook queries as "probably ties in with real world dimensions" are indeed the sizes of bricks in centimetres, which means you should be able to transform between systems nicely.
In response to your final goal (building a plugin for 3ds Max) what you're really going to need is a complete set of high-quality meshes - the LDD format works with part models rather than vertices/faces/edges/etc. that 3ds uses. Therefore what you'll probably want to take a look at is a tool to convert from LDD to something like LDraw (you could just use the "Export" function in the LDD file menu), and then use the LDraw model library as your basis for importing into 3ds, or use the features in LDView to export to .3ds (the older, text based file type 3d Studio used before it became "Max").

"Brick width is 0.8, brick height is 0.96 and plate height 0.32.": These are dimensions of bricks in centimeters...

Good catch, indeed we've covered those nicely on What are the dimensions of a LEGO brick, but it's nice to see that internally LDD is using real world units as well - makes converting easier ;)

Thanks for the info and link, just what I was after =) I've been building a max part library for a while by doing exactly that - importing parts in .3ds and completely rebuilding them for best use in max... hopefully have something fun for others to play with one of these days

The 3 last values in the transformation attribute are the position of the brick in 3D space XYZ. Simple.
The interesting part is the first 9 values in the transformation attribute
<Rigid refID="0" transformation="0,0,1,0,0.99999910593032837,0,-0.99999988079071045,0,0,-0.39999967813491821,0.40000063180923462,1.2000013589859009" boneRefs="0"/>

They are read as a 3x3 rotation matrix (in-depth explanation: Wikipedia Rotation Matrix)
[a1 a2 a3]       [ 0  0  1]
[a3 a4 a5]  ==>  [ 0  1  0]
[a6 a7 a8]       [-1  0  0]

In this case, this is a single rotation around the Y axis, as the axes directions are:

So if you describe the rotation of the brick as yaw, pitch, roll you can say that this matrix describes a 90 degrees yaw clockwise. A 90 degrees yaw counter clockwise is considered a turn of -90 degrees. (clockwise and counter clockwise are probably not the right terms to use here. I am using to make the description easier to understand)
as long as the brick does a single 90 degrees yaw, pitch or roll, it is simple to detect the rotation axis, because there is a single row in the matrix that remains the same, see section Basic Rotations. In the case of rotating around Y axis, the middle row [0, 1, 0] doesn't change.
Rotating around X axis, keeps the 1st row unchanged [1, 0, 0]
Rotating around Z axis, keeps the 3rd row unchanged [0, 0, 1]
So, rotating 90 degrees around the Y axis is (2nd row is 0, 1, 0 as described above)
[Cos90   0   Sin90]
[0       1   0    ]
[-Sin90  0   Cos90]

If the transformation is a combination of rotating around 2 or 3 axes, the matrix is not trivial to read and is a matrix multiplication of 2 or 3 of the above matrices with the respective degree of rotation around each axis.
Turning the brick to 90, 180, 270 degrees in each direction, results in values of 0, 1 or -1 for each cell in the matrix. These are the results for the Sin and Cos functions for 0, 90, 180, 270 degrees.
last point to consider:
If you get values that are not 0, 1, -1 there are two options:

LDD has a slight miscalculation (This is not a confirmed fact, only my opinion). You can see in the attribute at the top of the post that one of the values is 0.99999... which is basically 1, so it's a 90 degrees turn.
You turned a LEGO object in an angle which is not a multiplication of 90 (e.g. hat on top of a head turned 30 degrees clockwise)


text:
NXT or EV3 gyro sensor
Do NXTs or EV3s have gyro sensors or built-in gyro sensors? How can I know the direction of the robot?

You might want to take a look at the answer to What are all the different accessories for an NXT for "1st party" options, or What are all the 3rd party accessories for an NXT. As you can see in the this answer LEGO now sell an official Gyro Sensor for the EV3, but I believe you'll need to use the Educational version of the software to access this sensor.

LEGO doesn't make a gyro sensor for NXT, but Hitechnic sells a gyro third party product and Mindsensors has a combo gyro/accelerometer/compass (IMU). Both can be used with EV3, and LEGO also has a gyro sensor, included in the Education kit

Do you still need to use the Education version of the software to use the Gyro Sensor? I see it's now available stand-alone from the LEGO Shop.

For a while, blocs needed to use gyro or US distance sensors on home edition are a available for download. Gyro: http://www.lego.com/en-us/mindstorms/downloads/ev3-blocks/gyro/ and US-sensor: http://www.lego.com/en-us/mindstorms/downloads/ev3-blocks/ultrasonic/

Cheers, good to know :)


text:
What element is this a piece of, and how can I repair it?
Yesterday, as I was putting away some Lego, I saw the following obviously broken piece.

I couldn't figure out what element this was a piece of, so I was all ready to ask it here, when I came across the other part.
So instead of a genuine question, I'll post it as a challenge. First one to find the element this is a part of, gets a bonus (which I'll set and award as soon as possible).

That leaves me with the question how to repair this, if possible.

We've covered some repair techniques already here which should work for light use - but you may find that no repair will give you the full torque allowance the part had previously.

Also, you could use the two pin holes to attach a gear to the wheel, and use that to support the axle.

It's difficult to tell exactly what part this fragment came from, but it looks like it is part of a broken Technic gear or pulley. It looks like it probably came from 3736:

Your fragment looks like it was probably once one half of the center axle hole of that part.
In terms of repair, I suppose you could try to glue this back together, but given that the part was likely bent as well as broken, this is unlikely to work well. Luckily, this part is common, abundant, and cheap, so it's trivial to replace via Bricklink if you are so inclined.
If this part broke under relatively normal conditions, you could also request a replacement via LEGO customer service. I've done this in the past for parts that have broken while building, and TLG has been happy to ship me replacements at no cost.

This Technic part was one of the easiest to break, due to the structural weak point that was intended to facilitate insertion of a cross axle. I broke at least a couple as a kid.


text:
Authentic or Not?
I browse periodically on eBay and see a lot of superhero lego minfigs. Are these real or Chinese knockoffs? It says that they're from China. I just search "lego minifigures".
http://www.ebay.com/itm/8-Sets-Super-Heroes-Building-Toys-Flash-Cyclops-Catwoman-Minifigures-Blocks-Toy-/141294442500?pt=Building_Toys_US&hash=item20e5ce1804

I don't see the word "LEGO" anywhere in the write-up...?

Possible duplicate of http://bricks.stackexchange.com/questions/3182/how-do-can-i-tell-if-minifigures-are-custom-made-or-lego-originals

They are fakes. From China. Some people do buy these as they are significantly cheaper than LEGO's version, however there are also problems. The quality varies greatly with some figures almost as good as LEGO, while others won't even fit together properly (see the close-up pictures in the auction). Also, the print rubs off of them quite easily. If you are just planning to buy them for a child who doesn't care about quality they are good alternatives. However they are not suitable for collectors. Also, consider the implications of ripping off both LEGO and Marvel/DC Comic licenses.

I agree. Too bad these knockoffs are polluting eBay.

They are knockoffs, I have ordered superhero minifigs, as well as bulk minifigs, from Ebay and they are definitely fake. That is not to say they were terrible quality(although some were) but you can tell by the way they fit together they knockoffs. The paint, ease of attachment, and sometimes the overall design is a dead giveaway.

If the brand is not mentioned and the country of origin is China, you can be 99.9% certain that it's not LEGO but Lepin, Duo Le Pin, Kazi, XingBao or one of the many other Chinese brands.

Definitely look like knock-offs to me.  The plastic just doesn't look quite right, even down to the reflections.  I'd be concerned about buying knock-off LEGOs for a child - you have no way of knowing whether the materials used in the construction is safe, and also high risk of bits snapping off.  (although that's probably true for LEGO in general).


text:
LEGO Mindstorms NXT projects
I have a LEGO Mindstorms NXT set and since I bought it I almost never used it. Sometimes I think I could do something interesting with it, but I usually either feel like just copying a previous made project or stuck with no ideas of what to do. The obvious answer probably is

"If you try some project of other people at some point you start
  connecting the dots and come up with your own ideas"

I would like to know if other people had this feeling in the past what they ended up doing.
As for background information: I have no experience with Technic sets, but have experience with computer science and math.

I think your "obvious" answer is right.  Given that you have a background in computer science and math, I'm certain you will be pleasantly surprised how fast you can go beyond connecting dots and come up with unique and innovative designs.  I admit being in the same position, but with an EV3.  It sat for almost six months before I really started working with it.  Based on my experience, I encourage you to commit to doing a few small projects to understand the potential.  Start small for some immediate gratification.  Log some experience, and you will start seeing ways to hack this little device.  This is a necessary step to doing something cool and innovative.  You gotta commit to building!

If you just start trying to make a robot that does a perfect square path you will be surprised how hard stuff gets and how many things you can do... beyond all the imaginative design...
I have already written three posts on the subject and each time I have to kill new ideas so I can concentrate in what I have to do.
The first one is this http://thetechnicgear.com/2014/05/tutorial-using-motors-draw-square-mindstorms-ev3-lejos/ and as you can see it is a pretty basic robot.


text:
How to restore minifig faces?
Vintage minifig heads (from the 80s, 90s with the classic smiley) often lose their eyes and mouths after years of play. The paint wears off.
How do you best restore the heads?

If you have a steady hand you can use hobby paint or a Sharpie, let it dry, then put on a clear-coat for protection. But those heads with the classic smiley faces are so cheap on BrickLink, you could just replace them. Here are the Catalog listings for the original Classic Smiley on BrickLink along with the dates of production:
Hollow stud original from 1978-2013: http://www.bricklink.com/catalogItem.asp?P=3626bp01
Solid stud from 1991: http://www.bricklink.com/catalogItem.asp?P=3626ap01
Stud recessed from 2009-2014: http://www.bricklink.com/catalogItem.asp?P=3626cp01


text:
What elements do I need to create a smooth multi cheese slope ramp?
I love cheese slopes, but I am having issues when I try to produce a smooth gradient using several in succession. I end up with a gentle saw tooth effect at each junction. What combination of elements do I require to get the smooth appearance I'm trying to achieve?

Do you have a picture of what you have so far?

I can add one tomorrow. Right now it's past my bedtime. :)

I think I can see the problem, I'll add a temporary render for now ;)

From that pic it seems like not even a half-plate resolution will be perfect, but better. A quarter-plate offset might do the trick.

To create a smooth surface with cheese slopes they must be offset by one-half plate in height. There are several techniques to do this. Here is one using the common "headlight" brick. It has the advantage of being extendable to nearly any length.

Ahah! I knew Erling bricks were involved, but didn't have the time to dig deep enough ;)

This would be a way but other techniques may suit you as well.

Looks good, but how long of a slope could you make like this?


text:
How to install NXT Firmware 1.28?
Lego is giving 1.31 from their website but I need 1.28, how can I install it?

Why do you need v1.28?

@DavidLechner I borrowed a brick with 1.28 on and I have to give it back with the same version.

Heh, found it on my computer, click to download from Google Drive.

2022: I’ll update the link soon, stay tuned

I believe the Enhanced Firmware included with BricxCC is based on v1.28. You can find a download for the firmware there and download it using NXT-G or you can install BricxCC and install it via the IDE.

I dont want any enhancements only plain normal 1.28?


text:
In LEGO mindstorms NXT programming: is it possible to download a file from a robot onto the computer?
I've lost the file for a project, but the robot still has it, and I'm wondering if it is possible to transfer the file onto my computer from the robot, and continue to work on it. How would you do this?

Yes, you can download it back in computer. But you can't work on it anymore - it is already compiled (has .rxe extension). However you can download it on another NXT and continue to use there. You can edit and work only with .rbt files.

My LEGO MINDSTORMS NXT program doesn't work anymore for already two months... Some problems with flash player. So I can't provide any screenshots.

authors: יונתן אהרונוב


text:
What can I do with this steering wheel?
I found this steering wheel + "dashboard" combination among some parts I bought.

What is it, in what kind of models is it used, and can I do anything else with the "dashboard" (for lack of a better word)? It seems like a rather large and specific part, just to hold a steering wheel.

This steering wheel is from 4613-1: Turbo Chopper, as this is the only one with an orange version of this element.

Is that the only purpose of this part?

As far as LEGO is concerned? I think it's safe to say "yes". Unofficially? Well, imagination is a dangerous thing.

@SQB I guess you could use it anywhere you need a steering wheel and have a 4x4 space to fill instead of the usual 2x2 space.

The other Turbo Chopper were in there, too. What an ugly model!


text:
What is this weird and specific technical part?
I found this part among some parts I bought. It looks like it serves a specific purpose.

What is it?

This is an Technic Steering Arm and was used is the steering mechanism of all kind of technic car like 1972-1: Go-Kart
With the introduction of studless building it was replaced by Beam 3 M. W/4 Snaps.


text:
What is this cylinder like part?
I found a pair of these among some parts I bought.  It looks like some sort of cylinder, which could hold an axle for a piston.
Is that correct, and how would I use it then?

Dude, that's the piece of resistance!

This is one half of a "hydraulic" cylinder used like in the bucket of 7685-1: Dozer.
This element is Fric. Element, Cylinder and used often used in combination with Stick 6M W/Flange

This, at least as far as my experience goes, is used simply to create extra friction in joints; to make something poseable yet stiff and able to hold its position. Sorry no pic, but a good example is the 8996 Scorpio XV1, a walking machine that uses these to keep the legs stationary unless you actually want to move them.


text:
How to unplug black friction pin connectors
Black friction pin without slots connectors are common in older Technic sets. Note that these were quickly replaced by the current version with slots that is much easier to remove.
 vs
Especially in older sets, it is not uncommon for these connectors to get completely stuck (as if glued) in bricks with holes. I have to resort to pincers and brute force. This typically results in the connector being damaged.
The orange brick separator is often not tough enough to do the job.
So, how can you separate these things?

It depends in what type of beams the pin are mounted.

For studless Nicael's methode is the easiest. Otherwise you can use method 3
For studded beams you can use variation on this methode. take a axle of 6 or 8 long, 5 or 7 other beams and some plates. Stack the beam side by side and lock them together with the plates. Place the beam with the pin on top pin sticking out. Place the axle in the hole under which the pin is located. The axle will stick out 1 stud. Puch this on a hard surface that is allowed to be scratch / dented. This will remove also pins that are deformed.
If the pins are in other parts you often can move them to a studded beam by pushing the other end in a studded beam and putting in a minifig tool, like a broom, shovel or light saber blade.

Loose parts:

Half assembled:

Axle placed:

Pushing pin out on table:

Switching to a beam:

My preferred method is the last one, but instead of using a Technic brick, I use a half width beam. The stick blocks the pin as it does with the full width brick, but once the stick is removed, the pin is very easy to pull out from the beam.

Take your cross axle:

And push it into the hole where your pin connector had stuck

Thanks, it's a method I've tried. I've found it usually works better if you don't push the cross axle perpendicularly (into the empty centre of the connector) as in the image. Rather aim for the black connector's outer edge from an angle (about 20 degrees). I agree that using cross axles is better than the orange brick separator.

@Gruber Looks like you are right! So it suits you or not?

This method is good, but it doesn't solve the hardest cases. One thing I'm going to try is to see if heating up the plastic in hot water is going to make things easier. Once separated, perhaps washing these black connectors can remove residues or filth that increase friction?

Indeed, LEGO used to recommend building a tool with two axles, an angle element and two bushes for just this event.

Here is an alternative 'pin-pusher' that I put together using as few pieces as I could (except for a few tiles to make it a bit more intersting).

The blue pin near the centre pushes pins out half way, just enough to remove the pins by hand and not to far for it to pop up out in the air.

The two tan axles help to align the Technic beam you are using, I find they are most useful when you are trying to remove a long row of pins on a single beam.

It is also quite good at removing double pins with axle holes.
You could use some blue-tac to keep in in place but I don't think it's necessary.

I originally wanted to build a motorised version that would pins out of the holes almost like a drill press but I settled for something simpler and more functional.

I have resorted to brute force in the past. By which I mean destructive removal of the pins. I use a Dremel tool with a 2mm drill bit or 3mm router bit to carve away at the pin until it disintegrates.
The new style pins sell for about 0.3c each on Bricklink, so if you're assembling a model it makes sense to just buy a pile of new pins and and use those instead. I use the pins as "stuff" for my construction models to work with, so I bought 10,000 pins in one hit for about $50 including delivery. It's just not worth putting the old pins into newly assembled models when it's so cheap to avoid the problem.
To actually remove the pins when they are stuck I use the approaches other people have given. When they fail I use olive oil as a lubricant (soak Lego in oil, wait). That's much easier if you can keep the end you're going to be pulling on out of the oil. Then use the "jam a bar into the end" technique to lock the pin into another Lego beam and pull it out. Usually twisting is required.
But I have to admit that I don't bother any more. I pull models apart, and pins that I can't get out with my fingers I just drill out. If I really have to I'll buy more old-style pins on Bricklink, but I have enough friends who buy second hand Lego and hate those pins that my supply is adequate. And I'm happy to give away the new style pins in exchange. Again, they cost me 0.5c/pin...
The old pins are brilliant if you're exhibiting a model and it has parts that tend to fall apart. Use the "stuck forever" pins and things don't fall off nearly as easily. It's legal, so you can still put the "Model is 100% unmodified Lego" sign on it whereas if you use glue you can't do that.

Do you have a link to the page on Bricklink where these new-style pins are sold? Thanks.

@Gruber I edited it into your question but the edit hasn't been approved yet. Sorry I didn't realise that: http://www.bricklink.com/catalogItem.asp?P=2780  and click "lots for sale"

I used to use the longest Technic axle I could find. The axle would be uncomfortable to use for dismantling large LEGO sets with hundreds of Technic pins as it would always dig into my palm when I forced the pins out.

If you push one or more 2x2 Round Bricks into one end with a 2x2 Round Plate (with or without a rounded bottom) you have a nice handle which is a bit more comfortable to use.

When you place it down on a table it will never roll off onto the floor.
You can also change the colour of the handle to make it easier to find.

Everyone has come up with a solution, but I do not understand whether I am missing something or if I actually know something others do not.
There is a LEGO piece made precisely for this. It is the Technic separator.

Never seen this screwdriver-like thing before. I could only find it for sale on Amazon.co.uk. Does it even work?

Yeah I have one myself and J have taken apart that green tractor 2jn1 technic from the early 2010s faster than you can imagine.

I've used tweezers since I don't have an axle rod in hand.

Did they leave scuff marks on the pin?


text:
Is there a microphone that works with Mindstorms EV3?
I'm planning to program my EV3 robot to do voice chat over VOIP using ev3dev and a Debian program. Is this possible? Are there microphones known to work with EV3, and has anyone had experience using them?

Sadly, there isn't much info yet.
Current options for audio are:

USB Sound Card
BlueZ 4/Pulseaudio 4 (BlueZ 5/Pulseaudio 5 supports
A2DP only)

The number of devices that have been tested and documented is extremely limited, but at least one has been confirmed to work. The non-bluetooth solutions that have been tested successfully are the following.
Tested and confirmed adapter chipsets:

C-Media Electronics chipsets (Example)

Tested and confirmed microphones:

Logitech C170 webcam built-in microphone

More info in this github issue for ev3dev

There is a (new?) LEGO brand sound sensor (9845) for $35 on the LEGO store. I don't know if it's suitable for your particular application but sounds plausible.

Using the NXT Brick (sold separately), the Sound Sensor allows your LEGO® MINDSTORMS® NXT robot to hear! The Sound Sensor is able to measure noise levels in both dB (decibels) and dBA (frequencies around 3–6 kHz where the human ear is most sensitive).

Includes 1 Sound Sensor.
Does not include connector cable.
This is the individual component, and does not include the NXT Intelligent Brick, software or any accessories. It requires the complete LEGO MINDSTORMS NXT set (#8527 or #8547) for use.

That sensor is likely designed to measure the magnitude of noise, like clapping, but not provide access to an audio stream as desired above.

ok, understood. but maybe it can be adapted. it would come down to the details of the interface & driver etc.

note, the web site/ link now says this product is discontinued with no further info :(

Copied from Github:
I haven't heard of anyone using a microphone yet, but you have a couple of options. 1) a USB sound card/microphone or 2) Bluetooth headset/hands-free device.
The built-in speaker uses an alsa sound driver, so theoretically, it should work with any linux program.
If you are looking at purchasing something USB, make sure it does not require USB 2.0. The USB port on the EV3 is USB 1.1 only.


text:
Export LEGO MINDSTORMS EV3 Lab Code
I was wondering if it was possible in any way to see the actual code that is generated by the Lego Mindstorms IDE.
I know there isn't a direct 'export to code' option within the tool but I wondered if there was a third party tool by any chance.
On a related note, it seems the files that are saved (.ev3) are just raw data. Is there any specification for the file format?
Any info would be greatly appreciated!

Update:
I have written a tool to disassemble EV3 programs. The EV3 software compiles the .ev3 file to a .rbf file and sends that to the EV3 brick. The disassembler can convert the .rbf file into a .lms file, which is a sort of assembly language that can be used to create programs for the EV3.
Here is a simple example using a trivial .ev3 project.

To create the .rbf file, we have to download the program to an EV3 brick. Then we can upload the .rbf file from the brick using the Memory Browser.

Running the disassembler on the .rbf file will result in this:
    // Disassembly of C:\Users\david\Desktop\Program.rbf
    //
    // Byte code version: 0.57

    DATA8 GLOBAL0
    DATA8 GLOBAL1
    DATA8 GLOBAL2
    DATA8 GLOBAL3
    DATA8 GLOBAL4
    DATA8 GLOBAL5
    DATA8 GLOBAL6
    DATA8 GLOBAL7
    DATA8 GLOBAL8
    DATA8 GLOBAL9
    DATA8 GLOBAL10
    DATA8 GLOBAL11
    DATA8 GLOBAL12
    DATA8 GLOBAL13
    DATA8 GLOBAL14
    DATA8 GLOBAL15
    DATA8 GLOBAL16
    DATA8 GLOBAL17
    DATA8 GLOBAL18
    DATA8 GLOBAL19
    DATA8 GLOBAL20

    vmthread OBJECT1
    {
            DATA8 LOCAL0
            DATA8 LOCAL1
            DATA8 LOCAL2
            DATA8 LOCAL3
            DATA8 LOCAL4

    OFFSET1_0:
            OUTPUT_RESET(0,15)
    OFFSET1_3:
            INPUT_DEVICE(CLR_ALL,-1)
    OFFSET1_6:
            MOVE32_32(0,LOCAL0)
    OFFSET1_9:
            ADD32(GLOBAL12,1,GLOBAL12)
    OFFSET1_13:
            MOVE8_8(GLOBAL20,LOCAL4)
    OFFSET1_16:
            ADD32(GLOBAL8,1,GLOBAL8)
    OFFSET1_20:
            JR_FALSE(LOCAL4,OFFSET1_29)
    OFFSET1_23:
            ADD32(LOCAL0,1,LOCAL0)
    OFFSET1_27:
            JR(OFFSET1_9)
    OFFSET1_29:
            ADD32(GLOBAL4,1,GLOBAL4)
    OFFSET1_33:
            CALL(OBJECT2,1123418112,0,1117126656,1065353216,0,1)
    OFFSET1_58:
            ADD32(GLOBAL0,1,GLOBAL0)
    }

    subcall OBJECT2
    {
            IN_F LOCAL0
            IN_F LOCAL4
            IN_F LOCAL8
            IN_F LOCAL12
            IN_32 LOCAL16
            IN_8 LOCAL20

            DATA8 LOCAL21
            DATA8 LOCAL22
            DATA8 LOCAL23
            DATA8 LOCAL24
            DATA8 LOCAL25
            DATA8 LOCAL26
            DATA8 LOCAL27
            DATA8 LOCAL28
            DATA8 LOCAL29
            DATA8 LOCAL30
            DATA8 LOCAL31
            DATA8 LOCAL32
            DATA8 LOCAL33
            DATA8 LOCAL34
            DATA8 LOCAL35
            DATA8 LOCAL36
            DATA8 LOCAL37
            DATA8 LOCAL38
            DATA8 LOCAL39
            DATA8 LOCAL40
            DATA8 LOCAL41
            DATA8 LOCAL42
            DATA8 LOCAL43
            DATA8 LOCAL44
            DATA8 LOCAL45
            DATA8 LOCAL46
            DATA8 LOCAL47
            DATA8 LOCAL48
            DATA8 LOCAL49
            DATA8 LOCAL50
            DATA8 LOCAL51
            DATA8 LOCAL52
            DATA8 LOCAL53
            DATA8 LOCAL54
            DATA8 LOCAL55
            DATA8 LOCAL56
            DATA8 LOCAL57
            DATA8 LOCAL58
            DATA8 LOCAL59
            DATA8 LOCAL60
            DATA8 LOCAL61
            DATA8 LOCAL62
            DATA8 LOCAL63
            DATA8 LOCAL64
            DATA8 LOCAL65
            DATA8 LOCAL66

    OFFSET2_7:
            CP_EQF(LOCAL12,0,LOCAL66)
    OFFSET2_12:
            MOVE32_32(GLOBAL16,LOCAL36)
    OFFSET2_16:
            AND32(LOCAL16,LOCAL36,LOCAL48)
    OFFSET2_22:
            CP_GT32(LOCAL48,0,LOCAL65)
    OFFSET2_28:
            OR8(LOCAL66,LOCAL65,LOCAL64)
    OFFSET2_35:
            JR_EQ8(LOCAL64,1,OFFSET2_45)
    OFFSET2_40:
            JR_EQ8(LOCAL64,0,OFFSET2_48)
    OFFSET2_45:
            JR(OFFSET2_139)
    OFFSET2_48:
            MULF(LOCAL12,360.0F,LOCAL24)
    OFFSET2_56:
            CALL(OBJECT3,LOCAL0,LOCAL8,LOCAL24,LOCAL4,LOCAL58,LOCAL60,LOCAL20)
    OFFSET2_68:
            MOVE32_32(LOCAL16,LOCAL52)
    OFFSET2_72:
            MOVE8_8(LOCAL60,LOCAL59)
    OFFSET2_77:
            MOVE8_8(LOCAL58,LOCAL57)
    OFFSET2_82:
            MOVE32_32(0,LOCAL44)
    OFFSET2_86:
            MOVE32_32(GLOBAL16,LOCAL40)
    OFFSET2_90:
            AND32(LOCAL52,LOCAL40,LOCAL32)
    OFFSET2_97:
            CP_GT32(LOCAL32,0,LOCAL62)
    OFFSET2_103:
            OUTPUT_TEST(LOCAL57,LOCAL59,LOCAL56)
    OFFSET2_110:
            CP_EQ8(LOCAL56,0,LOCAL61)
    OFFSET2_116:
            OR8(LOCAL61,LOCAL62,LOCAL63)
    OFFSET2_123:
            SLEEP()
    OFFSET2_124:
            JR_TRUE(LOCAL63,OFFSET2_137)
    OFFSET2_128:
            ADD32(LOCAL44,1,LOCAL44)
    OFFSET2_134:
            JR(OFFSET2_86)
    OFFSET2_137:
            JR(OFFSET2_139)
    OFFSET2_139:
    }

    subcall OBJECT3
    {
            IN_F LOCAL0
            IN_F LOCAL4
            IN_F LOCAL8
            IN_F LOCAL12
            OUT_8 LOCAL16
            OUT_8 LOCAL17
            IN_8 LOCAL18

            DATA8 LOCAL19
            DATA8 LOCAL20
            DATA8 LOCAL21
            DATA8 LOCAL22
            DATA8 LOCAL23
            DATA8 LOCAL24
            DATA8 LOCAL25
            DATA8 LOCAL26
            DATA8 LOCAL27
            DATA8 LOCAL28
            DATA8 LOCAL29
            DATA8 LOCAL30
            DATA8 LOCAL31
            DATA8 LOCAL32
            DATA8 LOCAL33
            DATA8 LOCAL34
            DATA8 LOCAL35
            DATA8 LOCAL36
            DATA8 LOCAL37
            DATA8 LOCAL38
            DATA8 LOCAL39
            DATA8 LOCAL40
            DATA8 LOCAL41
            DATA8 LOCAL42
            DATA8 LOCAL43
            DATA8 LOCAL44
            DATA8 LOCAL45
            DATA8 LOCAL46
            DATA8 LOCAL47
            DATA8 LOCAL48
            DATA8 LOCAL49
            DATA8 LOCAL50
            DATA8 LOCAL51
            DATA8 LOCAL52
            DATA8 LOCAL53
            DATA8 LOCAL54
            DATA8 LOCAL55
            DATA8 LOCAL56
            DATA8 LOCAL57
            DATA8 LOCAL58
            DATA8 LOCAL59
            DATA8 LOCAL60
            DATA8 LOCAL61
            DATA8 LOCAL62
            DATA8 LOCAL63
            DATA8 LOCAL64
            DATA8 LOCAL65
            DATA8 LOCAL66
            DATA8 LOCAL67
            DATA8 LOCAL68
            DATA8 LOCAL69
            DATA8 LOCAL70
            DATA8 LOCAL71
            DATA8 LOCAL72
            DATA8 LOCAL73
            DATA8 LOCAL74
            DATA8 LOCAL75
            DATA8 LOCAL76
            DATA8 LOCAL77
            DATA8 LOCAL78
            DATA8 LOCAL79
            DATA8 LOCAL80
            DATA8 LOCAL81
            DATA8 LOCAL82
            DATA8 LOCAL83
            DATA8 LOCAL84
            DATA8 LOCAL85
            DATA8 LOCAL86
            DATA8 LOCAL87
            DATA8 LOCAL88
            DATA8 LOCAL89
            DATA8 LOCAL90
            DATA8 LOCAL91
            DATA8 LOCAL92
            DATA8 LOCAL93
            DATA8 LOCAL94
            DATA8 LOCAL95
            DATA8 LOCAL96
            DATA8 LOCAL97
            DATA8 LOCAL98
            DATA8 LOCAL99
            DATA8 LOCAL100
            DATA8 LOCAL101
            DATA8 LOCAL102
            DATA8 LOCAL103
            DATA8 LOCAL104
            DATA8 LOCAL105

    OFFSET3_8:
            CP_LTF(LOCAL8,0,LOCAL100)
    OFFSET3_13:
            JR_EQ8(LOCAL100,1,OFFSET3_24)
    OFFSET3_18:
            MOVEF_F(LOCAL4,LOCAL56)
    OFFSET3_22:
            JR(OFFSET3_40)
    OFFSET3_24:
            SUBF(0.0F,LOCAL4,LOCAL72)
    OFFSET3_33:
            MOVEF_F(LOCAL72,LOCAL56)
    OFFSET3_38:
            JR(OFFSET3_40)
    OFFSET3_40:
            MOVEF_8(LOCAL56,LOCAL97)
    OFFSET3_45:
            CP_NEQF(LOCAL56,0,LOCAL101)
    OFFSET3_51:
            MATH(ABS,LOCAL8,LOCAL68)
    OFFSET3_56:
            MOVEF_32(LOCAL68,LOCAL88)
    OFFSET3_61:
            MOVEF_F(2.0F,LOCAL32)
    OFFSET3_69:
            MOVEF_32(LOCAL0,LOCAL84)
    OFFSET3_73:
            PORT_CNV_OUTPUT(LOCAL84,LOCAL99,LOCAL98,LOCAL104)
    OFFSET3_82:
            MOVE8_8(LOCAL98,LOCAL17)
    OFFSET3_86:
            MOVE8_8(LOCAL99,LOCAL16)
    OFFSET3_90:
            AND8(LOCAL101,LOCAL18,LOCAL103)
    OFFSET3_96:
            MOVE16_16(0,LOCAL92)
    OFFSET3_100:
            JR_FALSE(LOCAL103,OFFSET3_108)
    OFFSET3_104:
            MOVE16_16(1,LOCAL92)
    OFFSET3_108:
            MOVE16_8(LOCAL92,LOCAL96)
    OFFSET3_113:
            MOVEF_F(LOCAL12,LOCAL40)
    OFFSET3_117:
            MOVEF_F(-100.0F,LOCAL36)
    OFFSET3_125:
            MOVEF_F(LOCAL40,LOCAL44)
    OFFSET3_130:
            MOVEF_F(100.0F,LOCAL52)
    OFFSET3_138:
            CP_GTF(LOCAL44,LOCAL52,LOCAL102)
    OFFSET3_145:
            MOVEF_F(LOCAL44,LOCAL48)
    OFFSET3_150:
            JR_FALSE(LOCAL102,OFFSET3_159)
    OFFSET3_154:
            MOVEF_F(LOCAL52,LOCAL48)
    OFFSET3_159:
            CP_LTF(LOCAL48,LOCAL36,LOCAL105)
    OFFSET3_166:
            MOVEF_F(LOCAL48,LOCAL24)
    OFFSET3_170:
            JR_FALSE(LOCAL105,OFFSET3_178)
    OFFSET3_174:
            MOVEF_F(LOCAL36,LOCAL24)
    OFFSET3_178:
            MOVEF_F(LOCAL24,LOCAL20)
    OFFSET3_181:
            MULF(LOCAL20,LOCAL32,LOCAL28)
    OFFSET3_186:
            JR_EQ8(LOCAL104,1,OFFSET3_197)
    OFFSET3_191:
            MOVEF_F(LOCAL28,LOCAL60)
    OFFSET3_195:
            JR(OFFSET3_218)
    OFFSET3_197:
            MOVEF_F(0.0F,LOCAL76)
    OFFSET3_205:
            SUBF(LOCAL76,LOCAL28,LOCAL64)
    OFFSET3_211:
            MOVEF_F(LOCAL64,LOCAL60)
    OFFSET3_216:
            JR(OFFSET3_218)
    OFFSET3_218:
            MOVEF_16(LOCAL60,LOCAL94)
    OFFSET3_223:
            OUTPUT_STEP_SYNC(LOCAL99,LOCAL98,LOCAL97,LOCAL94,LOCAL88,LOCAL96)
    OFFSET3_236:
    }

Being a disassembly, this can be a bit hard to interpret since there are not any helpful variable names. You can find information on EV3 assembly language here.

Original answer:
The .ev3 file is actually just a zip file. You can use any zip utility to browse the contents or unzip it. It will look something like this:
├── Activity.x3a
├── ActivityAssets.laz
├── Program.ev3p
├── Project.lvprojx
├── ___CopyrightYear
└── ___ProjectTitle

The ___* files are just plain text files, ActivityAssets.laz is another zip file and the rest are xml files.

Heh, I didn't know.

Awesome, thanks! This should at least get me started.

Recently in the scope of a pet project I have put effort into finding a way for systematic decoding of the rbf file to EV3G compatible high level blocks buildin upon David Lechner's disassembly work.
Currently the project has over 95% coverage (all common blocks recognized) called EV3BrickMagic
You can try the result online - http://ev3treevis.azurewebsites.net
There is a windows exe for offline use as well - https://afarago.github.io/EV3TreeVisualizerPages/#EV3BrickMagic

This is great! Thanks for sharing, and welcome to Bricks.SE!


text:
Duplo Activity table to Lego System Table
We purchased a table with Duplo baseplates on top (activity table) for my son when he was 1 year old. He's now turning six and we would like to convert the Duplo top to the regular LEGO System top. is there a baseplate that has Duplo studs on the bottom (so it sticks and essentially covers the Duplo spaces) and regular LEGO System studs on the top (so that the table can be used with the regular LEGO System pieces. It seems like a shame to chuck the table.

Don't forget to accept the answer if it works for you!

To answer your question, no there is no such plate with DUPLO tubes on the bottom and LEGO studs on top. HOWEVER regular LEGO and DUPLO are completely compatible - as long as the regular LEGO bricks are at least 2x2 studs. Just cover the DUPLO table with regular LEGO bricks and you are done...(c;
You could actually use regular LEGO plates too, however the connection won't be as secure as with regular LEGO bricks as plates are much thinner so won't go all the way down to cover the LEGO studs. But they do fit, and their benefit is that they cover a much larger area so you would need less.
Here is an article and some visual examples of how LEGO and DUPLO fits together very nicely: http://thebrickblogger.com/2010/12/lego-duplo/

you are awesome!!!! I'm going to try that now...now just have to scrounge enough flat duplo plates 2x4 to fill the top :) thanks! The reason for this is that that top has solid rounds and not the originall duplo round to connect to the system so your idea worked when I placed the flat duplo on top first and then use the regular system bricks :) so I am figuring if I get a could of duplo base plates and put them on top first, the table would be good to go I think :)

Marisabel, that sounds like a plan! You can get some quite large DUPLO plates on BrickLink so you don't have to work with a lot of smaller ones (4x8, 6x12, 8x8 and 8x16). It is just something to consider investing in in the future. You can find them here:  http://www.bricklink.com/catalogList.asp?v=2&pg=1&catString=487&catType=P

You can use the large bricks such as the 12x24 to build the surface of the table. This will give it better stability and should bind correctly to the underlying duplo, plus it saves time in assembly.

Some additional notes: Marisabel is right that the duplo table has solid studs (not compatible with normal legos) when every other duplo brick has hollow studs, so you need a layer of duplo and then a layer of standard. I just ordered bricks to convert a duplo table to standard legos, it needed 12 standard 8x16 plates (tall enough to fit the duplo studs) and 12 duplo 4x8 plates.

Unfortunatly this is problematic.
Duplo baseplates generally have flat-topped studs, these studs are incompatible with lego. Furthermore thin lego plates don't have enough depth to take up a duplo stud.
So you are looking at at least two layers for the conversion each at least one full leog brick thic. The lower layer would be duplo plates (one lego brick high) followed by a layer of regular lego bricks. You can get oversized lego bricks which would probablly help in making it less likely for your conversion layers to come apart.


text:
Can't send multiple commands to EV3 using Python
I want to use Python to send commands to an EV3 brick. In C++ things work as expected - for instance, this starts the motor on port A and then stops it after a while:
#include <unistd.h>
#include <fcntl.h>

int main()
{

    // command to start motor on port A at speed 20
    char start_motor[] = "\x0C\x00\x00\x00\x80\x00\x00\xA4\x00\x01\x14\xA6\x00\x01";

    // command to stop motor on port A
    char stop_motor[] = "\x09\x00\x01\x00\x80\x00\x00\xA3\x00\x01\x00";

    // send commands to EV3 via bluetooth
    int bt = open("/dev/tty.EV3-SerialPort", O_RDWR);
    write(bt, start_motor, 14);
    usleep(500000);
    write(bt, stop_motor, 11);
    close(bt);
}

When I try the same thing in Python, however, only the first command is executed (the motor starts but it doesn't stop):
import time

# command to start motor on port A at speed 20
start_motor = '\x0C\x00\x00\x00\x80\x00\x00\xA4\x00\x01\x14\xA6\x00\x01' + '\n'

# command to stop motor on port A
stop_motor = '\x09\x00\x01\x00\x80\x00\x00\xA3\x00\x01\x00' + '\n'

# send commands to EV3 via bluetooth
with open('dev/tty.EV3-SerialPort', mode = 'w') as bt:
    bt.write(start_motor)
    time.sleep(5)
    bt.write(stop_motor)

I have also tried: suppressing the \n; using os.open('dev/tty.EV3-SerialPort', os.O_RDWR); using bt.flush(); using os.fsync(bt); using bt = open(... (instead of with); and changing the mode and buffering arguments of the open method. Nothing worked.
Well, it does work if I close the tty and open it again, but this sounds inefficient:
# ...
with open('dev/tty.EV3-SerialPort', mode = 'w') as bt:
    bt.write(start_motor)
time.sleep(5)
with open('dev/tty.EV3-SerialPort', mode = 'w') as bt:
    bt.write(stop_motor)

So, what am I missing here?
(OS X 10.9.3, Python 2.7.6, EV3 [31313])

Works for me if you set buffering to 0 and get rid of the newlines.
import time

# command to start motor on port A at speed 20
start_motor = '\x0C\x00\x00\x00\x80\x00\x00\xA4\x00\x01\x14\xA6\x00\x01'

# command to stop motor on port A
stop_motor = '\x09\x00\x01\x00\x80\x00\x00\xA3\x00\x01\x00'

# send commands to EV3 via bluetooth
with open('/dev/tty.EV3-SerialPort', 'w', 0) as bt:
    bt.write(start_motor)
    time.sleep(5)
    bt.write(stop_motor)

It worked! I could swear I had tried buffering=0, but clearly I was wrong.


text:
Pick A Brick delivery times
I am about to order some bricks using the online Pick A Brick service. Unfortunately, its delivery time information is confusing. In the right column of the checkout page, it says:

Your item will be delivered in up to 5 business days.

However, in the left column, it says:

Please allow up to 15 business days (Monday through Friday excluding
  holidays) for delivery time.

So, which one is correct? What's your experience?

From the UK, about two weeks.  I have used the service maybe seven times and it hasn't been less than a week.

Pick-A-Brick orders are shipped from Denmark so they take longer, and they also need more processing time. In my experience they take 2 weeks to arrive. I'm in the USA. Hope this helps.

i found it to be more like 3 weeks around the holidays

Yes, around the holidays pretty much all orders get delayed.

The LEGO catalog says that orders in stock will deliver within 3-8 business days and "LEGO® Pick a Brick, please allow an additional 10 business days for processing time." So if you do the math, its really somewhere between 13-18 business days excluding holidays


text:
What exactly is this Lego train motor?
I bought this in the early 90s as a spare, since the type of Lego train was being phased out. Presumably the old 12V system.  The original train was given away but I still have this.  I want to sell it but need to know what it is.  It has the numbers 49 5 on the bottom.

It appears to be Electric, Train Motor 12V Modern.


text:
Where can I purchase replacement stickers for a current set?
My stickers for set 60035 are damaged and need to be replaced. Where can I obtain replacements?

If the set is a recent release you can call LEGO's customer service and they will send you a replacement. If it is an older, discontinued set, you can find replacement stickers on BrickLink. Here are all the stickers listed: http://www.bricklink.com/catalogList.asp?catType=P&catString=160


text:
Minifigures creator?
Does a website to create custom minifigs exist?
For exemple, you choose your head (between all official LEGO releases), torso, legs, and hair, and then you can purchase it for the same price as you would if you were buying each of the pieces from a Bricklink seller.
I'm looking for a simple way to create yourself and your friend's avatars in LEGO.

Minifig Generator might work for you.
Or maybe the SigFig Creator.
Flash based, but also fun: Mini-Mizer.
Even better, suggested by rioforce: LEGO Universe Minifig Wizard
I'm sure there are more...
6 hours later...  OH!  you mean like an actual bit of molded plastic.
For that, probably your best bet is using one of the above to find some approximation and then hit up something like Bricklink to buy the proper parts.

The last one seems to be the best one.

If you're going to list fan-made digital minifig creators, you may as well mention the LUN Minifig Wizard: http://legouniversenews.forummotion.com/h2-lun-minifig-wizard
The Mini-Mizer uses a ton of custom parts, so if you're looking to design a minifig that you might want to buy, it's not best for you.

It looks like the SigFig Creator is down.  I was really hoping for something that was complete like bricklink, but had a nice interface like https://minifigs.me/ .  Thanks for showing some options that google has buried.

If you are close to an official LEGO store they have stations to make your own minifigures. LEGO also has an online Pick-A-Brick store where you can buy parts individually. They have a decent selection of legs, heads and headgear, but the toros selection is quite limited. You can check it out here: http://shop.lego.com/en-US/Pick-A-Brick-11998. Other that that, BrickLink is your best option. Just make sure you create a Wanted List, so you can minimize the number of sellers you need to shop from.

Yeah, but it's hard to see pieces. Thanks anyway

What do you mean hard to see pieces? If you explain your question better I could probably help.


text:
Dimensions of Mindstorms NXT pieces
I don't have access to my NXT boxes at the moment (they're stuck behind a wardrobe that won't get moved for a week or so) and I'm working on this project where I need to know the dimensions of the NXT, motors and sensors in mm. I did a search but couldn't find anything on the net and was wondering if anybody knew what the dimensions (height, width, depth) of the NXT brick, motors, US sensor, color sensor (the one in NXT 2.0 that works as a lamp and light sensor also) and touch sensor?  Thanks

Do you just mean "in studs/bricks" or are you after the actual dimensions in mm?

@Zhaph-BenDuguid sorry I should've specified that.  I'm after the dimensions in mm.

Just measured them myself. Some of the dimensions might be just a little bit off, but I hope this suffices:
NXT:
Length: 111 mm
Width: ~71.7 mm
Height: 40 mm (extra 8 mm if you have a rechargeable battery installed)
Motor:
Length: ~105 mm
Width: 40 mm
Height: ~45 mm
Ultra-sonic Sensor:
Length: 44 mm
Width: 44 mm
Height: 30 mm
Generic Sensor:
Length: 44 mm
Width: 22 mm
Height: 30 mm
If it's a touch sensor and the button is not pressed, then it's 47 mm long.
Again, some of these may be a bit off since some dimensions were difficult to properly measure with the ruler I was using due to the geometry of some of the pieces. If you want a more accurate and precise measurement, someone else might be better equipped to answer your question.