Skip navigation
> RoadTest Reviews

Arduino A000067 Mega2560 Rev3 Development Board - Review

Scoring

Product Performed to Expectations: 10
Specifications were sufficient to design with: 10
Demo Software was of good quality: 10
Product was easy to use: 10
Support materials were available: 10
The price to performance ratio was good: 10
TotalScore: 60 / 60
  • RoadTest: Arduino A000067 Mega2560 Rev3 Development Board
  • Buy Now
  • Evaluation Type: Independent Products
  • Was everything in the box required?: No - It would have been nice to have a programming lead included
  • What were the biggest problems encountered?: Getting the radios to work reliably. These were not supplied as part of the road test.

  • Detailed Review:

    Arduino
    Mega 2560 review.

     

    The first thing I noted when I received the package was the size of the box.

    It was pretty small!

    Opening the box revealed the following items

    Unboxing.jpg
    Of note was
    the lack of a programming cable to connect the Arduino to a computer. However
    as I have already been doing the development on the remote controller, I do
    have cables so no problem.

    Build quality was right up there and included was a nice Perspex mounting shield for
    the bottom of the board.

     

    Onto the project……

    I was given a pair of old commercially made timing displays that the owner had lost the
    remote control for, the manufacturer can no longer supply the correct remote
    for these older lights and the newer remotes do not work on the old displays

     

    So.. I decided to build a new controls system from scratch and whilst doing so, update
    some of the internals within the displays. Items to be removed from the
    displays included the 433Mhz receiver and loop antenna (gave poor range
    anyhow), the PIC microprocessor and related crystal oscillator.

    removal.JPG

    Then onto the reverse engineering of how the displays were controlled.

    Typically the existing micro receives the timing & control string and drives these into digital outputs for driving
    the traffic light signals, the sounder and the digit and AB/CD round selector.

    The digit drive is via a common BCD to seven segment decoder (4511) and the AB/CD is also driven by a 4511 but has the
    segment outputs wired in a most unusual configuration to achieve the change
    between A&B being displayed and C&D being displayed with only ONE
    digital input to the 4511 BCD decoder! That took a little while of trawling
    through the truth tables to figure out what they had done.

    The 3 digits were also driven in an unusual
    manner with the 100’s of seconds display and the seconds display enable signals
    being driven from a single output from the PIC. When the output was high the
    100’s digit was enabled, and when it was low the seconds digit was enabled,
    with a second digital output from the PIC to control the 10’s digit. This
    caused problems further down the track.

     

    Ok now that I knew how the original PIC was
    interfaced to the hardware I could start to design my own interface using the
    Arduino Mega 2560 and assign outputs to drive the relevant areas of the
    display.

     

    So I deconstruct the display board and start to
    install wiring that will go to the Arduino

    first steps.jpg

    In the picture above some may recognize the radio
    as an NRF24 unit with the Low Noise Amplifier for the receiver and Power
    Amplifier for the transmitter.

    Under ideal conditions with the correct antenna
    these are claimed to achieve a 1100mtr range – more than adequate for the
    50mtrs I require.

    completed.jpg

    The completed display is shown above. The
    Arduino has all the terminations soldered directly to the back of the board and
    adhesive standoff are used to locate it onto the display PCB. The small PCB
    (yellow pin connectors) to the left of the Arduino is a dedicated 3.3Vdc
    regulator for the radio module as the Arduino on board regulators struggle with
    the high pulse currents when the transmitter is fired up.

     

    The displays each have an Arduino in them and
    the remote is based upon and Arduino as well.

    As I started the exercise some months ago,
    seeing if I could write the remote control code, I had a fairly good idea of
    how I wanted this to operate. My biggest hurdle was getting the radios to
    operate correctly. I tried several libraries and eventually got the radios to
    work intermittently on the examples shown in the library (big thumbs up to
    those who take the time to make libraries as these are critical to less
    experienced programmers and are a great resource).

    Once I had achieved this step I then needed to
    implement the radios into my existing remote code and figure a means of
    transmitting the data in a format I could decode at the other end. I eventually
    settled on using the Arduino STRUCT (data structure) command to assemble random
    bytes of data into a string of values and ended up with a transmit string that
    was approx. 10 bytes in length. With the radio link set to 1Mb/s it should
    easily cope.

    The moment of truth had arrived! I loaded the
    latest versions of code into all Arduinos and turned the devices on.

    Can you recall I mentioned earlier about the
    unusual digit selection?

    I cannot see how the original design would have
    ever worked – but it must have.

    Consider this, you have set a digit into the
    4511 via the 4 BCD lines and it is latched into the segment drivers, then you
    enable the digit you want it to display on, but wait!!!! Remember we had 2
    digital lines to control 3 digits with the 100’s and the seconds digits just
    been inverted? This means that for either a digital out LOW or HIGH there is one
    digit already enabled. So what happens when I want to drive the 10’s digit? I
    enable to digital out high to turn on the 10’s digit and either the 100’s is on
    or the seconds is one, resulting in “digit bleed” between the digits. Sort of a
    ghosting effect.

    Ok back to the hardware design and determine a
    good place to separate the digit drive transistors and run all 3 digit drives
    independently from the Arduino. NICE CLEAN DIGITS.

    With a few more tweaks I had two functional
    displays. Time to field test them.

    I had
    them working nicely for about 30 minutes and then one display seemed to go to
    sleep and loose track of the counter, given the displays just take a data
    stream from the remote and convert it to displayed digits, it seemed the radio
    link was going to sleep. Further investigation found that the 3.3Vdc supply
    module was delivering 2.5Vdc and was defective. I have swapped out the module
    and added 1000uF filter capacitors right at the radio module and it seems to
    have cured the issue.

     

    I would like to thank all the Arduino
    developers out on the web without whom this project would never have got off
    the ground let alone been completed. Kudos to thise that write libraries and
    sample code, I ‘borrowed’ code from several examples for driving the Keypad,
    LCD display and radios on the remote. Whilst I do take some credit for the
    originality of the completed code, I cannot take full credit without
    acknowledging others efforts.

     

    Summary

    Does the Arduino Mega 2560 do what it was
    designed to do. Simple answer is YES and a lot more!

    Are they good value. How could you answer NO to
    that question, with the dearth of add-ons and code examples on the internet,
    someone usually has thought of bits of your project already. For the amount you
    would pay for an Arduino (and it varies as the hardware is open source) I think
    they represent excellent value for money.

    The Arduino IDE programming environment can be
    a bit daunting if you are an absolute beginner to C based coding (I was). But
    once you get your head around the format and syntax it is a nice IDE to work
    with.

    There is so much support for these inexpensive,
    powerful and versatile controller boards, along with some pretty neat shields
    for expansion, I personally don’t think I would look to any other platform for
    future projects.


Comments

Also Enrolling
Enrollment Closes: Dec 19 
Enroll
Enrollment Closes: Dec 8 
Enroll
Enrollment Closes: Dec 8 
Enroll
Enrollment Closes: Dec 12 
Enroll
Enrollment Closes: Dec 18 
Enroll
Enrollment Closes: Nov 30 
Enroll