# Tag Info

23

Kicad is free and open source, and it is a relatively well-integrated package of schematics and layout editor. gEDA is free and open source. It is older than Kicad, has more tools which produce nicer output, but is less well integrated. Since they are open-source packages there are no arbitrary restrictions on the free version (like e.g. board size in ...

20

Typically ASIC design is a team endeavor due to the complexity and quantity of work. I'll give a rough order of steps, though some steps can be completed in parallel or out of order. I will list tools that I have used for each task, but it will not be encyclopedic. Build a cell library. (Alternatively, most processes have gate libraries that are ...

20

I assume you are not alluding to a deeper philosophical discussion about information, power and entropy, but you are just interested in the practical aspects. Very simply put, digital circuits need to measure input, digitize it, run it through some kind of processing and then transform the output into an electrical signal again. Digital circuits cannot ...

18

Code density refers loosely to how many microprocessor instructions it takes to perform a requested action, and how much space each instruction takes up. Generally speaking, the less space an instruction takes and the more work per instruction that a microprocessor can do, the more dense its code is. I notice that you've tagged your question with the 'arm' ...

18

There are a few Arduino Simulator projects out there. Perhaps one of the more mature ones is the Virtronics Simulator for Arduino, YouTube video here. The Virtronics page linked above also lists a few other Arduino simulators, both free and paid. Given the interest the Arduino evokes, there are likely to be many more such simulators out there, so no ...

16

I don't think you can brick it without hooking up some extra hardware. Shorting power to ground will do it. Trying to source or drain too much power through a single pin might do it, but would be more likely to just burn out that one pin. What you do in software shouldn't be able to actually brick the Arduino itself. Repeated EEPROM reads/writes could ...

16

Use a chip that has more than twice the amount of Flash memory you will need for your code. This way you can get the new firmware to this memory while still leaving the old one in case anything goes wrong. After you decrypt and verify the checksums on the new firmware a bootloader can copy it to it's final location, replacing the old one. If anything goes ...

15

I'll just comment on the design: Replace C5 with a 100nF ceramic capacitor and place it close to the power supply pin of the MCP6022. Put the designators on the PCB-Design, not values. Make it far easier to understand the layout. Avoid 90° trace bends, they can cause problems when etching the board. They're also bad for high-speed stuff (at least that's ...

14

I often use the falstad simulator: http://www.falstad.com/circuit It's a Java applet, so will work on pretty much any operating system. The interface does take a bit of getting used to, and there are problems saving in Linux (it gives you a link to copy and paste, and copy and paste in Java doesn't work too well in Linux). Other than that it ticks all ...

14

You can use CodeBlocks for arduino. CodeBlocks already works with quite a few microcontrollers, so I'm guessing that the arduino dev environment will be quite robust. There is also an Eclipse plugin for Arduino.

13

We usually call that simulation, not emulation. If we were to emulate the board, that means having another device perform similarly. There are plenty of circuit simulators, most famous of which is Spice (ltspice is one popular version). Qucs, ktechlab, klogic (limited to digital), and gnucap are a few others; for those without a graphical interface, there ...

13

Generally, you need software that can export STL files. Solidworks: $$4000 +$$1300/year ProEngineer: $$5000? + something per year? Autocad Inventor:$$5200? + something per year? Google Sketchup: Free or $\$\$500, but can't export STL directly. I've seen mention of a plugin that can convert Sketchup files to STL, but I haven't used it myself. ...

13

This may not count as a PCB design software, but it takes a new, creative approach to circuit and PCB design, and lets you prototype around with a breadboard view. It's called Fritzing and there are versions for Windows, Linux and Mac. View screenshots of the main feature modes: Breadboard view (see below) Schematic view PCB view

13

CircuitLab is a beautiful in-browser circuit simulator that was launched a few days ago by a pair of MIT students. I think electronics.SE is going to love it! It does full mixed-signal analysis and appears quite capable. I look forward to seeing where it goes! Here's a screenshot: You can share circuits via convenient short URL's. For instance, here ...

12

Use a bootloader and a few KB of extra flash. An upgrade is performed by the bootloader, by sending some special command over UART, USB, I2C, or another protocol. Only the main code is ever updated - bootloader code is never touched except via an external programmer (i.e. JTAG/PICkit for PICs etc.) If the update fails (power failure, someone tripped over a ...

12

Atmel Studio is the development environment Atmel provides for the microcontrollers behind the Arduino line. Atmel Studio 6 is based on Microsoft's Visual Studio which is a very complete C++ development tool. You can customize Atmel Studio 6 to work with the Arduino libraries and compiler, as documented here.

11

LTspice is free and works well for switching power supply designs. I also use Paul Falstad's Circuit Sim for concepts. When it comes down to designing power supplies (which is pretty much the only thing I use circuit simulators for) I usually rely on application notes and already designed supplies. If they use LT parts, I might try and optimise the design. ...

11

This Python procedure will evaluate a formula in your format (first argument) against a list of single-letter variables (second argument): def table( x, v , w = "" ): if( v == "" ): print( "%s : %d " % ( w, eval( x.replace( "v", " or " ).replace( "~", " ! " ).replace( "+", " and " )))) else: table( x.replace( v[ 0 ], "0" ), v[ 1 : ], w + ...

9

I use gEDA/PCB. The file formats are open and ASCII. The open file formats make a wide variety of EDA automation tasks possible. The ASCII format makes them easy. I have switched from Eagle to gEDA/PCB. I have found gEDA to be a more productive tool. The schematic capture is better but the PCB layout seems more difficult. The scriptability is what has made ...

9

To successfully accomplish this, you probably want the following: Localization Sensors - If you are on a smooth surface, wheel odometry should be enough. The rougher the area that you are operating in, the more sensors you would need. Other common sensors for localization: Digital Compass, IMU, GPS, Vision Tracking (Fiducial Recognition), Stargazer ...

9

Here are some suggestions for projects which would not be hard to get into for a software developer. They might all appear rather hard, but I'm a big fan of attempting projects that are way outside my skill set. If they're fun, compelling projects, they will drag you joyfully through the learning process. And remember, we're all here to help. LED Matrix ...

9

The C18 compiler supports the number-to-ascii family of standard C functions in stdlib.h: itoa(), ltoa(), ultoa() et cetera. Depending on which compiler / stdlib.h you have, the relevant function prototype would be: extern char * itoa(char * buf, int val, int base); // signed int extern char * utoa(char * buf, unsigned val, int base); // unsigned int ...

9

In short: analogRead(0) and analogRead(A0) are equivalent. In short-ish: analogRead(5) and digitalRead(5) will both use the same pin: Digital pin #5 on the board. I looked into the code for analogRead and it doesn't work that way. If you feed it the "actual" pin number it will convert it to the corresponding analog pin number. Eg: A1 or 15 becomes 1, A2 or ...

8

I personally prefer using Diptrace http://www.diptrace.com/ It is available for non-commercial use in a limited form (250 pins) for free and then hasd a scale of different costs depending on use and scope. I have tried Eagle and find diptrace easier to use with a fairly extensive library and more importantly an easy to use parts designer. I have used ...

8

From your latest comment, I would suggest oversampling the input. Record several consecutive samples, and then your output should be whatever the majority of the recorded samples are. For instance, say you record 10 samples. If you get a noise spike, only one or two of the samples will be corrupted, while the majority of them are the correct value. If ...

8

There are Real Time extensions to UML that were popularized by a company whose name escapes me at the moment. I remember doing a paper on it several years ago. Bruce Powell Douglass wrote a few books on the subject of modeling embedded systems using UML, but his company is not the one I'm thinking of. That said, to echo Wouter, there is nothing special ...

7

As @LoneTech said, there are plenty of circuit simulators. My two cents: Proteus - You can simulate some microcontrollers, but isn't free. http://www.falstad.com/circuit/ - java applet that allows you to simulate your circuits http://logic.ly/ - An online tool limited to digital

Only top voted, non community-wiki answers of a minimum length are eligible