Argon R1 Mainboard - First Test

With all the packages showing up at my office lately its been difficult to keep up, but one of those packages contained my Argon R1 starter kit and pH & Temperature Module so as always my Hello World program and comments for the Argon R1. The Argon R1 is a 4.2 Gadgeteer mainboard which has a Cortex-M3 processor, combined with 32MB of SDRAM and 128MB of NAND Flash which is like having a built in SD card. There are 14 sockets and it is about the same size as a Hydra board. Everything you need to get going with the Argon R1 and modules can be found here:

http://argonr1.com/Downloads

Note I’m running a beta version of the 4.2.0.1 firmware, but the release version should be available today on the Argon R1 site. If your using a Argon R1, do yourself a favor and download and install it. I’ve had some conversations with James regarding this board and firmware and found him to be very helpful.

One of the things I like about the Love Electronics button module is that it has both a red and green led, so its easy to indicate if the button is on/off with green/red led. The LED Array module is 7 leds, 2 green, 3 orange and 2 red in sequence and all my sample program does is light them up/down and then I found it was like a reaction game, can you stop it with none or all the leds lit?


using Gadgeteer.Modules.LoveElectronics;
using Microsoft.SPOT;
using GT = Gadgeteer;

namespace ArgonTest1
{
    public partial class Program
    {
        private int _lights = 0;
        private bool _direction = true;
        private GT.Timer _timer;
 
        void ProgramStarted()
        {
            Debug.Print("Program Started");
            Debug.Print(Mainboard.MainboardName);
            Debug.Print(Mainboard.MainboardVersion);

            button.ButtonPressed += new Button.ButtonEventHandler(button_ButtonPressed);

            _timer = new GT.Timer(100);
            _timer.Tick += new GT.Timer.TickEventHandler(_timer_Tick);

            button.Led1Status = true;  //red led
            button.Led2Status = false; //green led
        }

        void _timer_Tick(GT.Timer timer)
        {
            if (_direction)
            {
                if (++_lights > 7)
                {
                    _direction = false;
                    _lights = _lights - 2;
                }
            }
            else
            {
                if (--_lights < 0)
                {
                    _direction = true;
                    _lights = 1;
                }
            }

            ledArray.LightLeds(_lights);
        }

        void button_ButtonPressed(Button sender, Button.ButtonState state)
        {
            if (sender.Led2Status)
            {
                _timer.Stop();
            }
            else
            {
                _timer.Start();
            }
            sender.Led2Status = !sender.Led2Status;
            sender.Led1Status = !sender.Led2Status;
        }
    }
}

In short the Argon R1 is a worthy addition to the Gadgeteer family and I look forward to using some of its unique abilities in future projects.

1 Like

@ Duke Nukem - Thanks for the review!

I’ve been tempted to pick up one or two of the LED array modules…looks cool. :slight_smile:

Ive had my Argon for about a week now and i have to agree. It’s a great addition to the Gadgeteer family and James is incredibly helpful

The power module is linear regulated instead of switching. Interesting.

Exepcting mine any moment now. :wink:

Can you put that into non-EE terms?

As soon as I have some spare cash I want one!

Switching regulators tend to have higher efficiency when compared to linear. Linear typically burns off the excess power as heat, switching regs don’t heat up anywhere near as much. So the upshot is, if you need 500mA of power then a linear reg will require larger input to provide the same output; it might only be a few percent at certain voltages, but it could also be 10+% in other combinations.

3 Likes

Thanks for the info!

I’ve learned 2 things (in electronics) today!

I should mention that the power module has a unique feature in that it can raise an event if the source of power changes, for example:

power.PowerSourceChanged += new USBDCPower.PowerSourceEventHandler(power_PowerSourceChanged);
        void power_PowerSourceChanged(USBDCPower sender, USBDCPower.Source powerSource)
        {
            if (powerSource == USBDCPower.Source.DC)
            {
                //turn something on
            }

            if (powerSource == USBDCPower.Source.USB)
            {
                //turn something off
            }
        }

Which is interesting and could be rather useful in some situations.

1 Like

Pretty slick! Thanks for pointing that out. :slight_smile:

The other interesting difference is that switching regulators are notorious for outputting NOISY power (and sometimes even audible noise!), which can wreak havoc with sensitive electronic systems. Great care must be taken to adequately filter and protect other systems. Linear regulators do not generally have this problem. While they are certainly less efficient, your GPS module is much more likely to work (GPS modules are notorious for being sensitive to noisy power).

Put a scope on that switching regulator you’ve got there sometime, and see if the output is a nice flat line.

1 Like