This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Need help to decide on which ARM board to go for?

How do I decide which ARM board to go for if I am aiming to use it as a micro-controller to run sensors, actuators, motors, and solar panels? And I wish to power up the board via Li-ion battery pack.

Parents
  • That you mention CubeSat gives us a really good picture of what's needed.

    It sounds like this PDF-document is for you: ARM Microcontrollers for Space Applications.

    I can imagine that Alban would know something about the newest and most suitable microcontrollers for this.

    So the solar panels are not large, the motors would also be small (and not very strong).

    Since the motors are small, you would not need a driver capable of driving a lot of current, but rather something probably less than 2A.

    I've been able to make a silly driver using standard transistors like BC547/BC557, which is equivalent to 1N3904 and 1N3906.

    My own driver could drive a miniature stepper motor. Such stepper motors are not heavy, and you can find a bunch of those on eBay.

    -It might be a good idea to use a couple of gears on those stepper-motors, because then you would not need to keep it "on", in order to brake it.

    It could be you want to consider a hybrid Cortex-M4/M0+ microcontroller, where the Cortex-M0+ would run an event-scheduler, and when necessary, it could turn on the Cortex-M4 for a short time, which would then do demanding jobs, and when the Cortex-M4 finishes, it would turn itself off. Thus the device would use as little power as possible.

    Again, NXP makes the LPC541xx, which has both a Cortex-M0+ and a Cortex-M4F (floating point extensions). It also has a few neat features, such as the SCT and a Micro-Tick timer (which would be good for saving power). I do not know, however, if the LPC541xx exist in a space-grade version.

    On the other hand, it does not sound like the job is too demanding. If you're not going to interface with a camera, in order to get some pictures, maybe you only need a Cortex-M0+. Small stepper-motors can be controlled by almost any Cortex-M0, as long as there are enough pins.

    A single SPI can be connected to multiple devices. A GPIO-pin is usually used as a CS (Chip Select) pin, thus if your MCU has 10 free GPIO pins and a single MISO+MOSI+SCK, you can address up to 10 devices easily. The SD-card could be one of them; the GPS could be another one (unless it's using a UART).

    I2C allows you to connect multiple devices to the same two pins. The sun-tracker / sensor could be a simple photo resistor (or IR receiver without filter), Such devices would probably find an on-chip ADC to be a good friend. If you have only a single ADC channel available, you can use a GPIO pin to supply the voltage for a photo-resistor, the other end of the photo-resistor connects to the ADC pin. Now you add a second photo-resistorr, which you connect to a second GPIO pin and the same ADC pin as the other photo-resistor. You then turn on only one GPIO pin at a time, do the measuring and turn it off. That means you will be able to supply power to the two sensors only when necessary, and thus you would save power again.

    Note: Some GPS modules are ARM based. The ARM chip on such modules often interface to a PL2303 via UART. If you could find a GPS module, which was no longer working, try taking it apart and see if you can rescue the GPS functionality or the ARM MCU itself. You can also buy GPS modules for soldering onto a PCB from eBay, for instance these or these, depending on your needs.

    Note: I may have mentioned eBay, but you should be aware that no devices or components bought on eBay are suitable for production or stable products.

    This is mainly due to that eBay sellers and eBay packers (they're normally not the same people) do not know what ESD is and how to handle electronic components.

    I've mentioned the eBay items only in order to keep your prototyping costs down.

    When you're ready to build the "real thing", I recommend buying from Farnell, RS, Digikey, Mouser or the like.

    Components from these distributors are handled correctly, thus they're not damaged by ESD. It is also important that you are educated in ESD and how to handle the components yourself (this includes all steps from unpacking the components to soldering to placing the PCB in enclosure and packaging the device.

    It would really be a shame, if you send up a device, which breaks 5 seconds after launch!

    ESD "introduction":

    (Note: it is not correct that you need to connect the 'ESD mat' to the nearest metal part on your table.

    The mat needs to be connected to an EARTH GROUNDING via a 1 MΩ resistor.

    The EARTH GROUNDING is found normally in your wall-outlet, but it needs to be checked before you start using it)

    More serious teaching (from the 80's, but highly releavant):

    The Shocking Truth, part 1:

    The Shocking Truth, part 2:

    The Shocking Truth, part 3:

    The Shocking Truth, part 4:

Reply
  • That you mention CubeSat gives us a really good picture of what's needed.

    It sounds like this PDF-document is for you: ARM Microcontrollers for Space Applications.

    I can imagine that Alban would know something about the newest and most suitable microcontrollers for this.

    So the solar panels are not large, the motors would also be small (and not very strong).

    Since the motors are small, you would not need a driver capable of driving a lot of current, but rather something probably less than 2A.

    I've been able to make a silly driver using standard transistors like BC547/BC557, which is equivalent to 1N3904 and 1N3906.

    My own driver could drive a miniature stepper motor. Such stepper motors are not heavy, and you can find a bunch of those on eBay.

    -It might be a good idea to use a couple of gears on those stepper-motors, because then you would not need to keep it "on", in order to brake it.

    It could be you want to consider a hybrid Cortex-M4/M0+ microcontroller, where the Cortex-M0+ would run an event-scheduler, and when necessary, it could turn on the Cortex-M4 for a short time, which would then do demanding jobs, and when the Cortex-M4 finishes, it would turn itself off. Thus the device would use as little power as possible.

    Again, NXP makes the LPC541xx, which has both a Cortex-M0+ and a Cortex-M4F (floating point extensions). It also has a few neat features, such as the SCT and a Micro-Tick timer (which would be good for saving power). I do not know, however, if the LPC541xx exist in a space-grade version.

    On the other hand, it does not sound like the job is too demanding. If you're not going to interface with a camera, in order to get some pictures, maybe you only need a Cortex-M0+. Small stepper-motors can be controlled by almost any Cortex-M0, as long as there are enough pins.

    A single SPI can be connected to multiple devices. A GPIO-pin is usually used as a CS (Chip Select) pin, thus if your MCU has 10 free GPIO pins and a single MISO+MOSI+SCK, you can address up to 10 devices easily. The SD-card could be one of them; the GPS could be another one (unless it's using a UART).

    I2C allows you to connect multiple devices to the same two pins. The sun-tracker / sensor could be a simple photo resistor (or IR receiver without filter), Such devices would probably find an on-chip ADC to be a good friend. If you have only a single ADC channel available, you can use a GPIO pin to supply the voltage for a photo-resistor, the other end of the photo-resistor connects to the ADC pin. Now you add a second photo-resistorr, which you connect to a second GPIO pin and the same ADC pin as the other photo-resistor. You then turn on only one GPIO pin at a time, do the measuring and turn it off. That means you will be able to supply power to the two sensors only when necessary, and thus you would save power again.

    Note: Some GPS modules are ARM based. The ARM chip on such modules often interface to a PL2303 via UART. If you could find a GPS module, which was no longer working, try taking it apart and see if you can rescue the GPS functionality or the ARM MCU itself. You can also buy GPS modules for soldering onto a PCB from eBay, for instance these or these, depending on your needs.

    Note: I may have mentioned eBay, but you should be aware that no devices or components bought on eBay are suitable for production or stable products.

    This is mainly due to that eBay sellers and eBay packers (they're normally not the same people) do not know what ESD is and how to handle electronic components.

    I've mentioned the eBay items only in order to keep your prototyping costs down.

    When you're ready to build the "real thing", I recommend buying from Farnell, RS, Digikey, Mouser or the like.

    Components from these distributors are handled correctly, thus they're not damaged by ESD. It is also important that you are educated in ESD and how to handle the components yourself (this includes all steps from unpacking the components to soldering to placing the PCB in enclosure and packaging the device.

    It would really be a shame, if you send up a device, which breaks 5 seconds after launch!

    ESD "introduction":

    (Note: it is not correct that you need to connect the 'ESD mat' to the nearest metal part on your table.

    The mat needs to be connected to an EARTH GROUNDING via a 1 MΩ resistor.

    The EARTH GROUNDING is found normally in your wall-outlet, but it needs to be checked before you start using it)

    More serious teaching (from the 80's, but highly releavant):

    The Shocking Truth, part 1:

    The Shocking Truth, part 2:

    The Shocking Truth, part 3:

    The Shocking Truth, part 4:

Children
  • Interesting discussion, thanks for bringing it to my attention!

    This will also interest carlosdelfino, as we had a previous discussion about rad-hard (radiation hardened) microcontrollers.

    You can find ARM Cortex-M processors qualified for harsh environments. This is very specialist though... so rare and most likely not too cheap.

    It might be more viable for you to use alternative methods like more redundancy, clever error corrections, different principles to achieve the same thing but in a different way (so if a device hangs or an algorithm is disturbed, you have another way to get the information). After all, once it's up you won't be able to plug your JTAG/debugger and reprogram it!!!

    Want to read more?

    I'm interested to hear about your progress on the subject!

  • Great input, Alban!

    I'd like to add that it's possible to make a backup-system, eg. in case you're using a standard ARM MCU and the MCU is killed by radiation or a micrometeroid, it could be a good idea to have a backup microcontroller that would kick in, if the primary MCU's "alive" clock goes dead for more than - say - an hour.

    This is of course an advanced topic, and a lot can go wrong if not designed and programmed correctly.

    -But it might be worth the effort, as it's not cheap to send a device into space.

    Another thing you might have in mind, is that if you intend to send a standard device into orbit, it could be a good idea to use one, where the silicon density isn't too high. Eg. I believe a 100nm technology would last longer than a 1nm technology, although it might be a lot slower.

    -Also, if you consider using an external crystal or resonator (a resonator is able to handle stronger shocks; a crystal might break if falling from 1m onto a hard floor) - it might be a good idea also to be able to switch to the internal oscillator.

    STM's devices, for instance will start up on the internal oscillator, and if the external osciallator does not start up, they can continue running on the internal oscillator.

    If using UART and a non-crystal oscillator, I recommend using a low baud-rate, because that allows a wider frequency deviation (tolerance).

    -Oh, and yes ... remember to post status updates, please. -This is a very interesting project.