element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Smart Security and Surveillance
  • Challenges & Projects
  • Design Challenges
  • Smart Security and Surveillance
  • More
  • Cancel
Smart Security and Surveillance
Forum Programming the MAX32630FTHR with the Arduino IDE (Don't Forget to Set)
  • News
  • Projects
  • Forum
  • DC
  • Leaderboard
  • Files
  • Members
  • More
  • Cancel
  • New
Join Smart Security and Surveillance to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 3 replies
  • Subscribers 46 subscribers
  • Views 201 views
  • Users 0 members are here
Related

Programming the MAX32630FTHR with the Arduino IDE (Don't Forget to Set)

Alistair
Alistair 1 month ago

The MAX32630FTHR is a great little board, but it is very focused on working with the mbed platform, and that platform is coming to the end of life later this year. As a result I want to use the Arduino IDE instead. Fortunately Analog Devices already have an Arduino core ready. There are a few hurdles to get through and this is a summary of my notes to help anyone else wanting to do the same thing.

Software Setup

The first thing to do is to install the Arduino IDE. The machine I am using has version 1.8 installed from the Windows Store, but I generally recommend downloading it from the Arduino web site [https://www.arduino.cc/download] if you can.

Next we need to install the Arduino core for the MAX326XX boards. To quickly get going just to the the Arduino preferences screen (File, Preferences) add https://raw.githubusercontent.com/analogdevicesinc/arduino-max326xx/master/package_maxim_index.json to the list of “Additional Boards Manager URLs”. Next select Tools, Board, Boards Manager, search for MAX32630FTHR, and click the Install button. After that you can select the board by clicking Tools, Board, Maxim ARM (32-bit) Boards, and then MAX32630FTHR.

imageimage

We are almost ready to flash the board, but if you are a Windows user and do not already have the mbed serial drivers installed, then you will need to download and install them from os.mbed.com/.../Windows-serial-configuration .

Hardware Setup

Now we need to plug things in. The MAX32630FTHR kit should come with a MAX32625PICO already set up as a DAPLink programmer. This needs to be plugged into the machine via USB and the MAX32630FTHR via the tiny ribbon cable, and the MAX32630FTHR needs to be powered via its USB socket. Even if you plug the MAX32630FTHR into the computer and a serial port shows up, you can not programme it directly. You will always need to use the MAX32625PICO.

image

Now from the Tools menu we select the Port of the MAX32625PICO, set Programmer to “DAPLink”, and we are ready to go. Try flashing the good old Blink example and it should just work.

Fun fact, the binary is transferred by copying a file to the virtual drive. When this happens the drive vanishes, and then reappears, and your computer will do whatever it does when a flash drive is inserted. If it fails then just try a second time and it will often then work.

Random Notes

The Arduino Core is well rounded and most things work as they would with any other device. UART1 that can be used for debugging is accessed via Serial1, but that is also mapped to Serial for compatibility. The Bluetooth module is on UART0, but there is a little more work required to get that set up that I will document in the near future.

If you want a silly little sketch to make the LEDs flash then this is what you need. Slight smile

void setup() {
pinMode(P2_4, OUTPUT);
pinMode(P2_5, OUTPUT);
pinMode(P2_6, OUTPUT);
}

void loop() {
digitalWrite(P2_4, random(10)>5);
digitalWrite(P2_5, random(10)>5);
digitalWrite(P2_6, random(10)>5);
delay(250);
}

If you need to get advanced then much of the Maxim Microcontrollers SDK is included in the Arduino Core. I will be covering a bit about this when I document communicating with the Bluetooth module. Doing this is less Arduino development and more high end C++ development inside the Arduino IDE though. If you need to do a lot of that then another tool chanin may be more appropriate for your project.

Finally here are some useful things that I have been using while figuring this out…

  • Arduino Core
  • Serial driver
  • Schematic
  • Users Guide
  • Maxim/Mouser Datasheet
  • Sign in to reply
  • Cancel

Top Replies

  • vmate
    vmate 1 month ago +1
    A quick note regarding the random boolean generation you used: This won't actually be 50-50%. 0-5 (so 6 possible values) will be evaluated to false, and 6-9 will be evaluated to true (so 4 possible values…
  • vmate
    vmate 1 month ago

    A quick note regarding the random boolean generation you used:

    This won't actually be 50-50%. 0-5 (so 6 possible values) will be evaluated to false, and 6-9 will be evaluated to true (so 4 possible values). That means there's a 60% chance for false, and only 40% for true.

    You can simply do random(2), which will generate values between 0-1, and C/C++ interprets nonzero values as true when converting to boolean, while interpreting 0 as false.

    Obviously it's completely irrelevant in your test code, just wanted to leave this here, maybe someone finds it useful.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • skruglewicz
    skruglewicz 1 month ago

    Thanks Alistair This is great... I'll give it a try soon.. I'm still evaluating the best development environment for me, since the Mbed environment is end of life soon.  

    Steve K

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Alistair
    Alistair 1 month ago in reply to vmate

    Good spot. In fact the code was a quick hack as when it was 50/50 the results were not as visually appealing. If I had thought about it more I would probably used random(100) so it was a percentage and more understandable, but I overthink things enough and need to draw the line somewhere.

    As for the random(2) suggestion, this is perfectly valid C/C++ and I have likely used it myself in the past, but it is not so readable to those getting going with programming. My hope is that this is an accessible project to those getting going and the key reason I am going down the Arduino IDE route. As you say, worth leaving here just in case it is useful to someone. 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube