Slashdot Mirror


MiniOn ARM Microcontroller Programming System

profdc9 writes "For the past six months or so I have been working on the MiniOn, a network enabled microcontroller programming system, similar in idea to the Basic Stamp and Arduino hobbyists are fond of, but it is programmable and accessible through a Web browser and TELNET, requiring no installed development software. It uses the cheap, readily available LPC2000 ARM7TDMI micrcontrollers, and the easy to interface Microchip ENC28J60 for ethernet. The MiniOn firmware is written using only the free WinARM development tools (Linux tools work also) for those who wish to improve the MiniOn. I have already implemented an MP3 streaming server and a web-based graphical oscilloscope in MiniOnBasic. The MiniOn should hopefully lower the barriers and costs to getting started learning about embedded systems, and provide a non-proprietary method of data acquisition."

9 of 75 comments (clear)

  1. Re:Gumstix by belphegore · · Score: 4, Informative

    The gumstix is completely open source (though some 3rd party companies sell closed-source software for it for custom applications). Every line of code that ships on the gumstix, and every line of code for every utility used to build gumstix's factory software are completely open, and published. Gumstix even gives users write permission to its source code repository. Almost all of the hardware is fully open-source (all the daughtercards are -- the motherboard's schematic and layouts are closed, but all the interfaces are heavily documented, and gumstix the company is very open about talking about the stuff on the board to assist with any compatibility issues).

    Disclaimer: I used to work at gumstix, and I'm a stock holder.

  2. This sounds like it might help by kickmyassman · · Score: 3, Informative

    One of the major barriers getting into embedded programming is finding a cheap programmer that doesn't require RS232 standard 18 Volt serial ports (or similarly high-voltage parallel ports). If you're making something that helps around that? You're certainly going to help people get into the game.

    1. Re:This sounds like it might help by Scud · · Score: 2, Informative

      Futurlec has several (cheap!) boards that program either through a USB port, or a USB-powered JTAG port.

      www.futurlec.com

      --
      I dream in binary.
    2. Re:This sounds like it might help by kickmyassman · · Score: 2, Informative

      USB to serial adapters don't work (by and large) because although they deliver the voltages required, they have very little amperage and thus quickly fail to provide enough power. I can attest to this being true as I have two different USB to serial adapters and neither of them can power my JDM programmer. And while certainly there are such solutions (http://www.sparkfun.com/commerce/product_info.php?products_id=460) you need to know where to find them, which is hard when you're getting started.

      When I say cheap programmers I mean ones in the $20 range. A $100 programmer that works via USB is a pretty huge investment for someone like myself a year ago (when I got started in embedded programming work) and had no idea if I was going to be successful. What will measure the success of MiniOn is to provide a cross-platform, cheap ($75 or under) solution to the problem.

      And yes, oscilloscopes are wonderful, and I'd really love to have one, but if you can't develop without one you're probably in the wrong field.

    3. Re:This sounds like it might help by Matt_Bennett · · Score: 2, Informative

      A via is a connection from one side of the board to another. They add a complex resistance (or, in other words, impedance) to the trace, and in general, that slows down the edges of traces. It is mostly capacitance, but a via can also add inductance. Poor design causes excess ground bounce, which is a real problem for high speed/ (which ends up being) high current design. Ground bounce happens because anytime you have current flowing across a resistance (impedance), you get a voltage (Ohm's law).

      If there is a resistance on your ground pin, that causes a voltage on the trace leading to the ground- if the resistance/impedance there is large enough, it is like adding a transient voltage in your ground line- which screws up the ground reference for your whole chip.

      In summary, what this means, at high speeds, the traces on a board are no longer 0 ohm, 0 length wires- they are transmission lines, and have to be treated as such. Many people designing with the parts that go at these real high speeds do so in ignorance of high frequency design, and end up with really screwed up circuits and then they probe it with a 20MHz scope and don't see a problem- and then blame the parts that they put down, when it is their own really poor design and ignorant use of their own tools... ok, maybe I'm putting out some of my own frustrations, but design with high MIPS parts is definitely not trivial, and when you get a 'low cost' product, you can often get what you pay for- and quality is often seen in electronics by the lack of problems- and people don't laud the high quality of a product nearly as loud as they complain about the lack of quality.

  3. Oscilloscope by evanbd · · Score: 2, Informative

    Have you actually implemented an oscilloscope in any meaningful sense, or is this just a low-performance data acquisition system? Nothing wrong with the latter (I'm in the process of designing and building a high-quality, modest performance data acquisition board myself), but it's not the same as a scope.

    A scope needs, at a minimum, a decent sample rate (though for many purposes I'd settle for something as low as a 10MHz sample rate with 1MHz bandwidth, or even a bit less). It needs a properly compensated input (ie 1MOhm / 20pF or similar, and importantly specs on what that is). It needs an input amplifier with selectable gain, so that I can see down to at least 10mV/division (~100mV peak to peak full scale). It needs both an AC coupled and DC coupled mode. If it's implemented digitally, it needs 8 bits of noise-free resolution (10 would be nice, but often isn't required). If it's digital, it needs to specify timing jitter error (ideally specified as "negligible" though worse is fine as long as it's characterized). Ideally it should have multiple channels and some controls about triggers and such, but those aren't particularly required. Accuracy requirements are surprisingly loose: 2% is fine, 5% is usually acceptable for all or almost all parameters.

    What you have looks like a handy first pass at a very simple data acquisition system. I don't mean to disparage that; it's a very useful tool. But, as an occasional analog engineer who would love to be able to recommend an inexpensive oscilloscope, this doesn't look like an oscilloscope at all, much less one worth recommending as such. The part that makes an oscilloscope hard to build is not the microcontroller code, but the analog front end. The 1960s vintage Tektronix tube scope I have does what I describe above, and most of that wasn't even state of the art at the time. The available tools have gotten better, but the fundamental requirements haven't changed. A data acquisition system is nice, but it's not really a tool for circuit analysis like a scope is.

    Anyway, I'm done with my cranky analog engineer rant now. This looks like a very cool toy! I'll probably stick with my PICs out of habit, but I'll definitely take a look at this.

    1. Re:Oscilloscope by Doctor+Memory · · Score: 2, Informative

      The 1960s vintage Tektronix tube scope I have does what I describe above, and most of that wasn't even state of the art at the time. You obviously don't have a proper 1960s vintage Tektronix tube scope. I've got a 310A that's pretty low on the performance range, but my 547 was definitely black-lab-grade at the time. Available for under $50 at your more esoteric garage sales (I paid $25 for mine, with a half-dozen or so plug-ins).
      --
      Just junk food for thought...
  4. Re:Hmm by RattFink · · Score: 4, Informative

    It is quite similar to a PIC. The metric of it being a processor or a micro is the level of integration of memory and peripherals on the device. I can't think of a single ARM7 on the market that doesn't have some program accessible memory and at least a few serial ports and GPIO pins.

    --
    "I don't necessarily agree with everything I say." - Marshall McLuhan
  5. The intention of the MiniOn by profdc9 · · Score: 4, Informative

    The MiniOn is not intended to replace your oscilloscope or Gumstix. It is intended to basically turn an ARM7TDMI system on chip micrcontroller into a Basic-programmable webserver. There is only 32K of RAM on an LPC2148, which is not even enough to load GRUB, much less the Linux kernel. In this space I have used open-source libraries to place a functional TCP/IP stack, FAT filesystem for SD cards, a full-screen text editor, and a Basic language with a decent number of features. The LPC2148 is typically less than $10 and the ENC28J60 less than $4. Therefore the MiniOn can provide quite a bit of functionality with very few resources and with little money. And no, it was not solely my intention to plug Olimex or Futurlec boards, but they happen to be some of the cheaper alternatives out there that can run the MiniOn firmware. I hope to have my own board made at some point. The advantage of the MiniOn is that it allows you prototype your project easily, log data to a flash memory card, and control it remotely through the web.