Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Hardware Hacking Networking Programming Build Hardware

MiniOn ARM Microcontroller Programming System 75

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."
This discussion has been archived. No new comments can be posted.

MiniOn ARM Microcontroller Programming System

Comments Filter:
  • Gumstix (Score:4, Interesting)

    by JohnFluxx ( 413620 ) on Saturday May 03, 2008 @04:04PM (#23286062)
    How is this different from the Gumstix, which are small 600Mhz xscale chips (using ARM also) but also come with ethernet, bluetooth, touchscreen TFT screens, general I/O, flash memory, etc
    • Re: (Score:3, Insightful)

      by nog_lorp ( 896553 ) *
      If I understand correctly, Gumstix is a closed source (hardware and software) platform that costs in the low hundreds-of-dollars range, while MiniOn is open source (hardware and software) system that you are intended to build yourself.

      Your comment seems alot like replying to the "Slackware 12.1 Released" topic saying "How is this different from Windows Vista, which has..."
      • Re:Gumstix (Score:5, Informative)

        by belphegore ( 66832 ) on Saturday May 03, 2008 @04:24PM (#23286168)
        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.
  • by kickmyassman ( 1199237 ) on Saturday May 03, 2008 @04:29PM (#23286186) Homepage
    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.
    • by Yvan256 ( 722131 )
      Especially if you want people on all platforms to use the thing. There's no LPT or COM ports on Macs, for example. And a lot of new motherboards have also dumped the legacy ports, so it's not a Mac-only problem.

       
    • Re: (Score:2, Informative)

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

      www.futurlec.com
    • I would have to disagree. USB to Serial adaptors are fairly cheap and readily available on the market now. The voltages themselves aren't a problem since the vast majority of the level shifters available run on 5V or less and boost the voltage internally. I've also seen many Semiconductor companies providing USB and Ethernet solutions for their development kits. I have a development kit from Freescale that cost me about $100 and plugs directly into the USB port. I'd say my biggest barrier to developing
      • So, what does a via do, what is ground bounce, and how do you measure it? :)
        • Re: (Score:3, Informative)

          by Matt_Bennett ( 79107 )
          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 ther
          • Re: (Score:2, Insightful)

            Ground bounce is also a problem in lower frequency designs with large asynchronous buses and mixed-signal systems. I've had a few experiences designing amplifiers (for driving motors) and with buses operating below 100MHz. I guess the point of sig is that it's a significant consideration in any hardware design, that is by contrast unknown, or taken for granted by those outside the field. At the moment my main aggravation with vias is real-estate. It's amazing how much space those little buggers take up.
          • 20MHz TTL level signals don't require anything special as I have built projects on breadboards with connections spanning the legnth of multiple boards carying 20Mhz clock signals and 10MHz clocked delta sigma modulated bitstream. I would aggree though that I would probobly use a PCB for anything faster than that.
            • Re: (Score:3, Insightful)

              by Matt_Bennett ( 79107 )
              Please don't take this as insulting (or trying to insult you- I truly, honestly want to help people make good circuits), but this is exactly the sort of ignorance that gets me frustrated! A blanket statement like that can get you in real trouble- while your signal may just be "20MHz", since you're talking about a clock signal, you've got harmonics and lots of them. It is those harmonics that get you into trouble- you can take that bitstream and look at it with a 20MHz scope and it will look *great*, but c
      • Indeed, but that doesn't address the problem of most embedded development being Windows-centric, the Arduino being an exception. I've been goofing around with Basic Stamps, largely because there is a really nice piece of software for programming it from the Mac through USB, made by Murat Konar. The MiniOn system looks like a welcome addition with the ability to program through a web browser and using inexpensive microcontrollers.
        • Indeed, but that doesn't address the problem of most embedded development being Windows-centric, the Arduino being an exception.

          I find that most curious. I found that Linux distros (Fedora in my case) makes serial connection absurdly easy with udev in comparison to Windows. I assume the other UNIX-like systems (like Mac) have something similar?

          I've been goofing around with Basic Stamps, largely because there is a really nice piece of software for programming it from the Mac through USB, made by Murat Konar.

          I've had good experiences (brief though) with working with the AVR micro-controllers from Atmel.

      • Re: (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 s
        • I can't develop without an oscilloscope because I design HARDWARE for embedded systems, not SOFTWARE for tiny PC like things. The microchip is just an interface for me.
          • Yes, I understand that you're developing for hardware, as I do as well (albeit as a hobbyist, not professionally). I guess I haven't developed a circuit that I haven't been able to debug without the use of a multimeter, blinking LEDs, and the occasional use of a Serial connection on a PIC to report back to a computer what the heck is being transmitted where.

            Though I guess that's a lot more time and effort to debug than it would be with an oscilloscope, but if you're not developing something really huge t
        • by Alioth ( 221270 )
          If you're developing software, yes, you don't need a scope.

          But if you're developing hardware (i.e. not taking someone else's pre-made modules, but making your own PCBs, designing your own circuits etc.) an oscilloscope is an essential piece of hardware.
          • I understand that this is for people who are developing their own hardware (I don't quite like how you insinuate that I don't know what developing hardware means, I'm not an idiot), but I still think that it's really only useful, not always necessary. The kind of circuits people will be building at entry levels are going to be circuits that can be debugged with blinking LEDs and serial connections. Yeah, it takes more effort, but if you're motivated, you can do it.
    • > 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).

      Thankfully a major barrier to becoming an embedded programmer is people who dont realize USB RS232 adapters are $8.
    • The Arduino http://www.arduino.cc/ [arduino.cc] is great for that.
      Plug USB in and start programming in dead simple C.
    • by Alioth ( 221270 )
      Atmel's AVR micro is very easy to program. I used an old printer lead, cut the end off, and four 1K resistors to make my AVR programmer - essentially free. It would be very easy to make an AVR programmer using a USB chip such as the FTDI FT245R.
  • Oscilloscope (Score:3, Informative)

    by evanbd ( 210358 ) on Saturday May 03, 2008 @04:40PM (#23286246)

    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.

    • Re: (Score:3, Informative)

      by Doctor Memory ( 6336 )

      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).
      • by evanbd ( 210358 )

        I got my 561A for free, and I love it dearly. I don't mean to disparage it; lots of its features were state of the art at the time. Unless I'm mistaken, it introduced the ceramic strip construction techniques, producing much lower noise than its predecessors. The dual-trace alternating mode (3A72 amplifier) was certainly a selling point. But the features I mentioned -- properly compensated input, gain-selectable input amp, modest bandwidth -- were hardly new, unless I'm mistaken. The amplifier I have is

        • 561A...introduced the ceramic strip construction techniques

          Hmmm, I was under the impression that all of the early Tek scopes used ceramic strip construction (the 310 used PCBs, but Tek returned to ceramic strips for the A revision). The 561 is a pretty early scope, though, so it wouldn't surprise me if it was indeed the first.

          But the features I mentioned -- properly compensated input, gain-selectable input amp, modest bandwidth -- were hardly new, unless I'm mistaken

          Those features weren't new, but scopes that properly implemented them were rare. Tek was far and away the premier scope maker for many years. Their contemporaries (Dumont, et. al.) provided scopes that gave a picture of what was happening

    • I second your comments about scope I ended up buying a 35year old analog one instead of a new digitial one because the analog one had 1mV/Div twin channels. 4 coupling modes and lots of different trigers. I also ended up spending about the same in two probes as for the actual scope which is something people often mistakenly skimp on.
      • by evanbd ( 210358 )
        What model? So far, for the majority of the work I do, 1mV/div is one of the few features I'd pay for. More bandwidth would also be nice, but I've been continually amazed at how much I can do on 650kHz. Of course, when you actually need the more bandwidth, you simply can't fake it -- but there are ways to deal with not enough sensitivity.
        • Philips PM3232 not to sound like some outdate product venodr of some kind but the trace is ultra stable and sharp aswell.
  • Seriously, that's some pretty awesome stuff. :D
  • Wow ... Great ... But this sort of thing has been available for ages from several vendors! And at reasonable prices as well!
    See http://www.olimex.com/dev/index.html [olimex.com] for a list of various processors supported!
    I have used Olimex boards in the past. Not a bad way (and cheap!) to jump start a project!

    A quick Google search will find many other vendors of cheap prototyping kits from many different companies. (Although ... many are reselling the OLIMEX stuff.)

    Mind you, the source is from a country that m
  • I've been looking for something I could teach my kids with. I want them to have a real understanding of computers, but don't want to shell out 1000 bucks.

    It would be nice to have a tv our or lcd out... perhaps that would be a good side-project?

    Thanks!!
    • I think that controlling a simple LCD display like the HD44780-based LCDs would be very simple from MiniOnBasic. More complicated displays are also doable, but the transfer of data might be a bit slow bit-banging from MiniOnBasic and therefore might be better suited to adding extra Basic commands in C. One reason I used WinARM is to make it so that the tools are readily available to do this. One motivation for using the web interface is that the web interface itself can somewhat replace the need for an L
  • LPC2000? (Score:4, Interesting)

    by serviscope_minor ( 664417 ) on Saturday May 03, 2008 @11:10PM (#23288478) Journal
    I've never used the LPC2000, but I have used the LPC3180, and it is a fantastic chip. Clocked at 200MHz, it just outpaces the 415MHz XScale and uses 1/8 of the power. Oh, and it can do hardware floating point, and for that it outpaces the XScale by a factor of about 8.

    • The LPC2000 series is an ARM7TDMI-based processor with some on-board memory (8k to 64k), many parts with a low pin count, and many on-board peripherals include D/A, A/D, PWM, etc. The LPC3180 is a much meatier processor with ARM9, an external memory interface, and also lots of peripherals. The development kits of this seem to be quite a bit more expensive, and probably more than the average hobbyist needs. Even the ARM7TDMI seems to be a bit overkill given the prevalence of the PIC, but the ARM7TDMI proc
  • by profdc9 ( 1283662 ) on Saturday May 03, 2008 @11:28PM (#23288582)
    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.
    • by ahfoo ( 223186 )
      Hey thanks for posting on the prices. I tried to ask about that yesterday and this machine died but here's the answer anyway. Thanks. That's cheap enough for the chip, but by comparing it to the Arduino then board specs become a big deal because that's one nice thing about that project is they have a lot of board info and that QFP packaging is kind of a drag. In some ways a BGA would be more friendly but either way it's a relatively large obstacle for a hobbyist. The nice thing about AVRs is you can get a D
      • Regrettably, one big disadvantage of the ARM processors for hobbyists is that they are not available in a convenient DIP package. Though they are inexpensive, they are obviously oriented toward consumer electronics and not hobbyists. This said, NXP seems to offer excellent documentation making it relative easy for someone like me to figure out how to use it, especially when one reads over old posts on the Yahoo LPC2000 newsgroup.

        Certainly Microchip and Atmel/AVR are very hobbyist friendly and it shows be

      • by ncc74656 ( 45571 ) *

        QFP packaging is kind of a drag. In some ways a BGA would be more friendly

        How do you figure that's the case? With a sufficiently small soldering iron and some flux, a QFP isn't that difficult to hand-solder. To work with BGAs, you have to either send them (and your boards) out to someone with a reflow oven or try to rig a reflow oven of your own (supposedly you can convert a toaster oven for this purpose, but its performance can be hit-or-miss). To rework a board with QFPs, you can get by with some Ch

        • by ahfoo ( 223186 )
          Yeah well neither one is anything close to a through-hole dip in terms of hobby level use. The thing with the BGA is that while it's a pain in the butt to set up an oven, once you do that you have a a lot better chance of getting clear success or failure and if you get a failure you can try again. With spider legs it's like who knows which one of those dudes is the culprit when something goes wrong. If you're good at it then be all means stick with what works but with BGA you get the magic of surface tensio
  • I would not have chosen the ENC29J60 for this project, rather the Wiznet W5100 (or perhaps the W5300). The W5100 provides a built in TCP/IP offload engine (although you aren't forced to use it, it allows access at the MAC level) as well as the choice of SPI or a parallel bus (so if you need performance you can use the parallel bus rather than SPI). It also has a pretty decent amount of buffer memory (and you don't have to use up space in your microcontroller's flash memory for a TCP/IP stack).

    http://www.wiz [wiznet.co.kr]
    • For a processor like the LPC2000 handling an IP stack (especially uIP which is very tiny) is no problem and is not much of a consideration when choosing a MAC/PHY chip for this purpose. The SPI interface can transfer up to 20 megabits/sec, which is sufficient for 10base-T ethernet. If I was building a router or a network attached server, I would certainly not choose an ENC28J60 or a Wiznet. But for low speed applications the ENC28J60 is fine. In the future, processors such as the LPC2388 and the Lumina
  • I know nothing about embedded systems. Would it be possible to interface this with a 1-wire bus to monitor environment sensors?
    • Currently I do not have commands in the MiniOnBasic language to implement the one wire protocol, though you might be able to bit-bang this if speed is not an issue. In the future, I would like to get I2C working as well as the match/capture features of the chip. And of course, the source code is available for WinARM is you would like to take a go at it yourself.
      • by ncc74656 ( 45571 ) *

        Currently I do not have commands in the MiniOnBasic language to implement the one wire protocol, though you might be able to bit-bang this if speed is not an issue.

        Bit-banging 1-Wire works for me on an Apple II, and the code [alfter.us] (a mix of C and 6502 assembly) doesn't take up much space. If bit-banging works on a 1-MHz 6502, it ought to work on nearly anything.

  • I really hate to say it, but basic on micro controllers has been done way way way too much. I think it would be far more appealing if you could write a small JVM for it (pretty easy), or have the user write their programs in C where the firmware serves as kind of a network bootloader, and you release the tcp stack and web server stuff as a library.
  • The nice thing about the arduino environment is that once I come up with a design for some device, the core system only costs about $4 to replicate, plus any additional application-specific hardware. Plus, all the tools (even the vendor-supplied developer environment) are free. As far as barriers to entry are concerned, it doesn't get much lower.

    Obviously more complexity means more expensive, but how does this system compare, as far as what you get for what you pay, to the best of what's already out there

E = MC ** 2 +- 3db

Working...