Fifteen Project Demos with Analog Devices MAX32666FTHR Development Board

Unknown
Unknown

View table of contents ...  

RoadTest: Enroll to Review the ADI Bluetooth®︎ 5 MCU Board with a 6-axis accel/gyro

Author: Unknown

Creation date:

Evaluation Type: Development Boards & Tools

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: ADI MAX32665, ADI MAX32667, ADI MAX32668,TI, Renesas, Microchip, Arduino,ST, NXP,Infineon

What were the biggest problems encountered?: None

Detailed Review:

Note : This is repost of the review performed by me, for this product and posted dated 19 May 2024.

Thanks for choosing me to review and evaluate the Analog Devices MAX32666FTHR, which I had received on 26th March 2024.

What this evaluation Kit is or what Analog Devices MAX32666FTHR is ?

The MAX32666FTHR is an evaluation boards and kits by Analog Devices (ADI) for the development of rapid and fast prototypes. There is also another similar kind evaluation board with suffix 'EVKIT' and thus, ADI offers MAX32666 in two variants - FTHR and EVKIT, with respectively sold as MAX32666FTHR and MAX32666EVKIT And to add little confusion, ADI has MAX32666GWP+ but it is only a microcontroller not an evaluation board.

With this entry level development board of Analog Devices MAX32666FTHR, one can develop prototypes related to

  • Connected Home
  • Gaming Devices
  • Hearables
  • Industrial Sensors
  • Payment/Fitness/Medical Wearables
  • Telemedicine

As RTOS can be implemented, one can develop even prototypes which can incorportatd in airplanes/helicopters/choppers/warfare/military or even the prototypes which can be implemented ICU or patient related devices.

The Analog Devices MAX32666FTHR has IC MAX1555 on its PCB board, which charges a single-cell Li+ battery from a USB source, so it can be used as battery charger in

  • Cell Phones
  • Digital Cameras
  • PDAs
  • Wireless Appliances

 The Analog Devices MAX32666FTHR has MicroSD card, which can be used for storage of data by sensors and can be used as data acquisition. The Analog Devices MAX32666FTHR has inbuilt accelerometer and gyrometer BMI160. This ADI MAX32666FTHR has also inbuilt bluetooth antenna which helps in developing medical IoT devices and the inbuilt suport of libraries can be used to get heart rate, steps, acceleration etc, though this will need more coding (which might not be easy for all) but ADI has developed libraries which looks like  80% work accomplished but to make it fully work and data transfer using Rx/Tx or SPI or I2C is not an easy task (unless the fundamentals of ADI microcontroller are  clear). The inbuilt features of bluetooth, RTOS and lithium battery charger are specially impressive as with the support of libraries, it was easy to put add on in projects but to achieve more proper outcome, coding is not straightforward.

In the following demonstrations, I am not showing circuit as it is very elementary and the interfacing is similar to any microcontroller, which can be searched on internet; though I have shown the experimental setup. 

Table of Contents

  1. Unboxing
  2. Understanding Evaluation Boards
    • 2.1 MAX32666FTHR
      1. MAX32666FTHR Board
      2. MAX32666FTHR Schematic
      3. MAX32666FTHR Gerber
      4. MAX32666FTHR Board Voltages
      5. MAX32666FTHR Lithium Ion Battery charger
    • 2.2 MAX32625PICO
      1. MAX32625PICO Board Pinout
      2. MAX32625PICO Pin Descriptions
      3. MAX32625PICO Schematic
      4. MAX32625PICO Footprints
      5. MAX32625PICO Board Voltages
  3. Installation SDK
    • 3.1 Downloading Software
    • 3.2 Installation of the Software on Ubuntu
    • 3.3 Opening The Eclipse MaximSDK
  4. Preparation of Board for Projects and Basic Test
  5. Project 1 : Welcome Message with LED toggling to RBG ON and OFF after 20 seconds with count
  6. Project 2 : Warning Flashing LED ALARM on ADI MAX32666FTHR
  7. Project 3 : Big O Computation Timing Analysis of Algorithm
  8. Project 4 : Implementing Real-Time Operating System on Analog Devices MAX32666FTHR
  9. Project 5 : Testing Semaphore on ADI MAX32666FTHR
  10. Project 6 : Implementing 16-bit and 32-bit Cyclic Redundancy Check 
  11. Project 7 : Testing Codes for Temperature Sensor TMP36 with ADI MAX32666FTHR
  12. Project 8 : Testing Codes On Inbuilt Bluetooth Surface Mount Antenna of ADI MAX32666FTHR (Successfully Paired with Android Mobile)
  13. Project 9 : Different Buzzer Sounds using ADI MAX32666FTHR 
  14. Project 10 : Testing Bootloader to update application code provided by host microcontroller ADI MAX32666FTHR
  15. Project 11 : 16x2 LCD on Analog Devices MAX32666
  16. Project 12 : Testing Inbuilt SD Card of ADI MAX32666FTHR
  17. Project 13 : Voltmeter with ADI MAX32666FTHR vs DMM Voltmeter
  18. Project 14 : Soil Moisture Percentage and Level in Four Soil Samples Using ADI MAX32666FTHR
  19. Project 15 :  Interfacing HC-SR04 with ADI MAX32666FTHR
  20. Conclusion

Note : None of the videos have any audio except those which use buzzer.


1. Unboxing

{gallery}Unboxing ADI MAX32666FTHR

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

Following contents and items are given in the kit

1. MAX32666FTHR Board (this is evaluation board) with pin-outs description in small visiting card size 

2. MAX32625PICO (this is a debugger) with pin-outs description in small visiting card size 

3. Two header pins - 12 pin and 16 pin

4. Two cables USB cables of different sizes but both are USB-A to Micro-B cable

5. One cable, 10- pin 2x5, 1.27mm IDC (insulation-displacement contact), this is a Flat Ribbon Cable



2. Understanding Evaluation Boards

There are two boards in the box, one is MAX32666FTHR and the other is MAX32625PICO. The  MAX32625PICO board will be connected with ribbon cable as it is needed to program the evaluation board MAX32666FTHR.

Note : MAX32666FTHR has no on-board programmer.

2.1 MAX32666FTHR

1) MAX32666FTHR Board

{gallery}max32666fth

MAX32666FTHR Top Side Components 

Source: MAX32666FTHR Application Platform (319-100525; Rev 0; 3/20)

MAX32666FTHR Pinout Diagram

MAX32666FTHR Bottom Side Components

2) MAX32666FTHR Schematic

{gallery}MAX32666FTHR Schematic

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

3) MAX32666FTHR Gerber

{gallery}MAX32666FTHRGerber

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

4) MAX32666FTHR Board Voltages

5) MAX32666FTHR Lithium Ion Battery charger

2.2 MAX32625PICO

1) MAX32625PICO Board Pinout

Source : MAX32625PICO Application Platform

2) MAX32625PICO Pin Descriptions

Following tables are all from datasheet

{gallery}MAX32625PICO Application Platform

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

3) MAX32625PICO Schematic

{gallery}MAX32625PICO Schematic

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

4) MAX32625PICO Footprints

{gallery}MAX32625PICO Footprints

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

5) MAX32625PICO Board Voltages


3. Installation SDK

3.1 Downloading the Software

To download software, pls click and go here, and then scroll to 'Tools & Simulations', and choose correct sofware 'Maxim Micros SDK (Windows), 1.0.1', according to operating system 

          • Maxim Micros SDK (Windows), 1.0.1 EXE  -- for Windows
          • Maxim Micros SDK (Mac), 1.0.1 DMG  --  for MAC
          • Maxim Micros SDK (Linux), 1.0.1 RUN  -- for Linux/Ubuntu

It will ask login/registration as in the image gallery

{gallery}ADI sw Installation

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

3.2 Installation of the Software on Ubuntu

{gallery} Installation of the Software on Ubuntu

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

3.3 Opening The Eclipse MaximSDK

sudo chmod a+x eclipse.sh

sudo ./eclipse.sh 

This, I have upgraded to

3.4 I have updated Linux Kernel from 6.2(generic) to 6.5 (Low latency)


4. Preparation of Board for Projects and Basic Test

Lets start playing and see the output of the simple plug and play connections

1) Firstly, the headers pins are soldered on MAX32666FTHR. Both the header pins 12 pin and 16 pin are soldered on MAX32666FTHR as below

 

2) The two cables USB-A to Micro-B has one side flat and one side round, the flat side is to be above

{gallery}USBa

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

3) Connect the ribbon cable, The is 10- pin 2x5, 1.27mm IDC (insulation-displacement contact), also known as insulation-piercing contact (IPC) Socket-Socket flat ribbon cable. 

Note : The cable has more pins than needed by board. Also insert it properly with the cable hood into socket hole as in the image gallery.

{gallery}ribbon

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

4) Now, insert SD card in  MAX32666FTHR

{gallery}sd

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

5) Now connect the USB cable from MAX32666FTHR to Ubuntu.It shows blue light blinking but the USB do not gets detected !

6) Now connect the ribbon IDC cable from MAX32666FTHR to MAX32625PICO and the USB cable from MAX32625PICO to Ubuntu.

7) Also, when MAX32625PICO is connected with USB to PC or laptop, whether standalone or with MAX32666FTHR, it gets detected and following is the content from 'DETAILS.TXT'

Here, I have masked Unique ID, HIC ID and Git SHA

# DAPLink Firmware - see https://mbed.com/daplink
Unique ID: 0409XXXXXXXXXXXXXXa000000000000000000000000XXXXX
HIC ID: 97969906
Auto Reset: 1
Automation allowed: 1
Overflow detection: 1
Page erasing: 1
Daplink Mode: Interface
Interface Version: 0256
Git SHA: aab4d91774dc53be80xxxxxxxxx38b247ecec
Local Mods: 0
USB Interfaces: MSD, CDC, HID, WebUSB
Interface CRC: 0x773b8887
Remount count: 0
URL: https://mbed.org/device/?code=@U?version=@V?target_id=@T

8) This MAX32625PICO, also gets detected by PC or laptop as below in the gallery

{gallery}maxoico

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

9) Lets also see the output of bluetooth

WIth just plug in of USB cable, bluetooth gets detected on Android Mobile but it does not get paired unless programmed or the board is open in IDE

{gallery}blue

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

The pairing and file transfer demo is shown in Project No. 8.

10) The Analog Devices MAX32666FTHR has MicroSD card, which can be used for storage of data. With just plug in of USB cable and MicroSD inserted in the socket, you cannot access the card unless programmed which is shown in Project No. 12.


5.  Project 1

Project Title :  Welcome Message with LED toggling to RBG ON and OFF after 20 seconds with count

Description:   Welcome Message and the LED on MAX32666 switches ON after 20 seconds to RED and a messages is displayed on console, then this RED LED switches OFF after 20 seconds and second message is displayed on console, then after 20 seconds BLUE LED switches ON and a messages is displayed on console, then this BLUE LED switches OFF after 20 seconds and fourth message is displayed on console,  then after 20 seconds GREEN LED switches ON and a messages is displayed on console, then this GREEN LED switches OFF after 20 seconds and sixth message gets displayed on console,

Experimental Set Up:  

Snippet :

//Author : Mr. Abhishek Bansal
//Company: New Era Consultancy Services

1000023c:   movs    r0, #1
1000023e:   bl      0x100003d0 <LED_On>
10000242:   ldr     r0, [pc, #116]  ; (0x100002b8 <main+188>)
10000244:   bl      0x1000177c <puts>
10000248:   mov     r0, r4
1000024a:   bl      0x100009d4 <MXC_Delay>
1000024e:   movs    r1, #2
10000250:   mov     r0, r5
10000252:   bl      0x100016b8 <printf>
10000256:   movs    r0, #1
10000258:   bl      0x10000414 <LED_Off>
1000025c:   ldr     r0, [pc, #92]   ; (0x100002bc <main+192>)
1000025e:   bl      0x1000177c <puts>
10000262:   mov     r0, r4
10000264:   bl      0x100009d4 <MXC_Delay>
10000268:   movs    r1, #3
1000026a:   mov     r0, r5
1000026c:   bl      0x100016b8 <printf>
10000270:   movs    r0, #2
10000272:   bl      0x100003d0 <LED_On>
10000276:   ldr     r0, [pc, #72]   ; (0x100002c0 <main+196>)
10000278:   bl      0x1000177c <puts>
1000027c:   mov     r0, r4
1000027e:   bl      0x100009d4 <MXC_Delay>
10000282:   movs    r1, #4
10000284:   mov     r0, r5
10000286:   bl      0x100016b8 <printf>
1000028a:   movs    r0, #2
1000028c:   bl      0x10000414 <LED_Off>
10000290:   ldr     r0, [pc, #48]   ; (0x100002c4 <main+200>)
10000292:   bl      0x1000177c <puts>
10000296:   mov     r0, r4
10000298:   bl      0x100009d4 <MXC_Delay>
1000029c:   movs    r1, #5
1000029e:   mov     r0, r5
100002a0:   bl      0x100016b8 <printf>
100002a4:   movs    r0, #0
100002a6:   pop     {r3, r4, r5, pc}
100002a8:   cmp     r5, #0
100002aa:   lsls    r1, r6, #4
100002ac:   strh    r0, [r5, #38]   ; 0x26
100002ae:   asrs    r0, r0, #32
100002b0:   strh    r0, [r7, #38]   ; 0x26
100002b2:   asrs    r0, r0, #32
100002b4:   strh    r4, [r0, #40]   ; 0x28
100002b6:   asrs    r0, r0, #32
100002b8:   strh    r0, [r7, #40]   ; 0x28
100002ba:   asrs    r0, r0, #32
100002bc:   strh    r0, [r3, #42]   ; 0x2a
100002be:   asrs    r0, r0, #32
100002c0:   strh    r4, [r5, #42]   ; 0x2a
100002c2:   asrs    r0, r0, #32
100002c4:   strh    r4, [r3, #44]   ; 0x2c
100002c6:   asrs    r0, r0, #32

Output on MAX32666FTHR : 

  • At 0:27 seconds, RED light ON
  • At 0:47 seconds, RED light OFF
  • At 1:07 seconds, BLUE light ON
  • At 1:27 seconds, BLUE light OFF
  • At 1:47 seconds, GREEN light ON
  • At 2:07 seconds, GREEN light OFF

Output on Console, GTK Terminal : 


6. Project 2

Project Title :  Warning Flashing LED ALARM on ADI MAX32666FTHR

Description:  The on-board LED is used as LED alarm which flashes at two frequencies and three colors- red, blue, purple(psychadelic purple). The time at which the button is pressed gets displayed on the console. If button is pressed twice, time resets to ZERO and if a button is presssed once, time continues; both these times are also displayed on the console.

Experimental Set Up :  

Output on MAX32666FTHR Board: 

  • At 0;07, RED LED, then BLUE, then purple
  • At 0:08, LED changing to purple
  • At 0:28, LED changes to BLUE, then purple
  • At 0:48, BLUE LED, then purple
  • At 1:08, RED LED, then purple
  • At 1:28, RED LED, then purple
  • At 1:52, RED LED, then purple
  • At 1:55, RESET, TIME also changes to ZERO, 00:00
  • At 1:56, RED LED
  • At 1:57, BLUE LED
  • At 1:58, purple
  • At 2:18, BLUE LED, then purple
  • At 2:38, RED LED, then purple
  • At 2:45, RED LED, then purple
  • At 3:07, BLUE LED, then purple
  • At 3:27, RED LED, then purple
  • At 3:47, RED LED, then purple
  • At 4:07, BLUE LED, then purple

Output on Console, GTK Terminal : 

On the console ,it can be seen times

  • 00:00 is 0 minute 0 second
  • 00:39.50 is 0 min 39.50 seconds
  • 01:19.75 is 1 minute and 19.75 seconds
  • then as button was pressed twice, time resets to 00:00
  • As now again the button was pressed twice, instead of increasing time, it again resets to 00:00
  • 00:02.25 is 0 minute and 2.25 seconds. This time does not get addeed to 1 minute and 19.75 seconds as it was reset to 00:00
  • Now, again the button was pressed twice, instead of increasing time, it again resets to 00:00
  • 00:15.25 is 0 minute and 15.25 seconds


7. Project 3

Project Title :  Big O Computation Timing Analysis of Algorithm

Description:  Testing of computation time of algorithm on Analog Devices MAX32666FTHR - (a)  Testing (Big O, T(n)) of Bansal ß DC-DC Algorithm  (b) Testing (Big O, T(n)) of Bansal ß Clinical Heart and Lungs Treatment Algorithm

Experimental Set Up:  

Output on Console, GTK Terminal : 

1) Dummy Algorithm 1 : Testing of Bansal ß DC-DC Algorithm

Time Elapsed: 199.24396 Seconds = 3 minutes 3207326667 seconds

Video : 00:00 - 03:21

2) Dummy Algorithm 2 :Testing of Bansal ß Clinical Heart and Lungs Treatment Algorithm

Time Elapsed:  761.779872 Seconds = 12 minutes 6963312 Seconds

Video :  03:22- 16:12


8. Project 4

Project Title :  Implementing Real-Time Operating System on Analog Devices MAX32666FTHR

Description:  This project implements FreeRTOS (https://www.freertos.org/) on Analog Devices MAX32666

Experimental Set Up: 

Snippet :

//Author : Mr. Abhishek Bansal
//Company: New Era Consultancy Services


#include "FreeRTOS.h"
#include "FreeRTOSConfig.h"

void vRegisterCLICommands(void); 
SemaphoreHandle_t xGPIOmutex; 
TaskHandle_t cmd_task_id; 
unsigned int disable_tickless = 1;


mxc_gpio_cfg_t uart_cts = { MXC_GPIO0, MXC_GPIO_PIN_8, MXC_GPIO_FUNC_IN, MXC_GPIO_PAD_WEAK_PULL_UP,
                            MXC_GPIO_VSSEL_VDDIOH };
mxc_gpio_cfg_t uart_rts = { MXC_GPIO0, MXC_GPIO_PIN_11, MXC_GPIO_FUNC_OUT, MXC_GPIO_PAD_NONE,
                            MXC_GPIO_VSSEL_VDDIOH };
                            
void vAssertCalled(const char *const pcFileName, uint32_t ulLine)                            

void vTask0(void *pvParameters)
{
    TickType_t xLastWakeTime;
    unsigned int x = LED_OFF; 
    xLastWakeTime = xTaskGetTickCount();

    while (1) {
       
        if (xSemaphoreTake(xGPIOmutex, portMAX_DELAY) == pdTRUE) {
            if (x == LED_OFF) {
                x = LED_ON;
            } else {
                x = LED_OFF;
            }
             xSemaphoreGive(xGPIOmutex);
        }
         vTaskDelayUntil(&xLastWakeTime, configTICK_RATE_HZ);
    }
}

 async_read_req.uart = ConsoleUART;
    async_read_req.rxData = &tmp;
    async_read_req.rxLen = 1;
    async_read_req.txData = NULL;
    async_read_req.txLen = 0;
    async_read_req.callback = vCmdLineTask_cb;
    
    void WUT_IRQHandler(void)
{
    MXC_WUT_IntClear();
    NVIC_ClearPendingIRQ(WUT_IRQn);
}


volatile int i;
    for (i = 0; i < 0xFFFFFF; i++) {}

     MXC_GPIO_Config(&uart_cts);
    MXC_GPIO_Config(&uart_rts);

     MXC_GPIO_OutClr(uart_rts.port, uart_rts.mask);

 
    turnOffUnused();

     MXC_WUT_Init(MXC_WUT_PRES_1);
    mxc_wut_cfg_t wut_cfg;
    wut_cfg.mode = MXC_WUT_MODE_COMPARE;
    wut_cfg.cmp_cnt = 0xFFFFFFFF;
    
    
        MXC_GPIO_OutSet(uart_rts.port, uart_rts.mask);

     MXC_WUT_Edge();
    pre_capture = MXC_WUT_GetCount();
    MXC_WUT_SetCompare(pre_capture + wut_ticks);
    MXC_WUT_Edge();

    LED_Off(SLEEP_LED);

    deepSleep();

    LED_On(SLEEP_LED);

    post_capture = MXC_WUT_GetCount();
    actual_ticks = post_capture - pre_capture;

    LED_On(1);
    
    portENTER_CRITICAL();
    vTaskStepTick((actual_ticks / WUT_RATIO));

Output on MAX32666FTHR Board : 

Output on Console, GTK Terminal : 


9. Project 5

Project Title and Description :  Testing Semaphore on ADI MAX32666FTHR

Output on Console, GTK Terminal : 


10. Project 6

Project Title :  Implementing 16-bit and 32-bit Cyclic Redundancy Check 

Snippet :

for (i = 0; i < len; ++i) {
        temp = (data[i] & 0xFF);
        for (j = 0; j < 8; ++j) {
            if ((temp ^ crcval) & 1) {
                crcval >>= 1;
                crcval ^= polynomial;
            } else { crcval >>= 1; }
            temp >>= 1;}}

Output on Console, GTK Terminal : 


11. Project 7

Project Title : Testing Codes for Temperature Sensor TMP36 with ADI MAX32666FTHR

Description:  The temperature sensor TMP36 is interfaced with Analog Devices MAX32666FTHR at analog input of 10-bit ADC. 

  1. Code 1 : Simple Interfacing, testing with extermal thermometer with the temperature displayed on GTK Terminal
  2. Code 2 : Repeating the same code and experimental setup as in (1) but now candle is used to increase temperature. Moreover, the development board MAX32666FTHR has RTOS (FREERTOS) implemented. So, this basicaly a RTOS based temperature measurement 

Experimental Set Up:  

Comparison by Thermometer and MAX32666 ADC Console, GTK Terminal : 

1) Output of Code 1

A)

B) 

2) Output of Code 2

A)

B)


12. Project 8

Project Title : Testing Codes On Inbuilt Bluetooth Surface Mount Antenna of ADI MAX32666FTHR

Description:  Testing different codes available on Internet (from Analog Devices) and seeing the output.

Experimental Set Up:  

Output on Console, GTK Terminal : 

1) Output of Code 1

2) Output of Code 2

3) Output of Code 3, after Implementation of RTOS

4) Output of Code 4

Here the Bluetooth name is not MAX32666FTHR but DAT, which can be seen in the screenshot - Adv local name

Detected but FAILED and not paired on Mobile Android

{gallery}BLUMAX32666

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

5) Output of Code 5

{gallery}blue5out

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

6) Output of Code 6

{gallery}b6ma

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

7) Output of Code 7 

Here the Bluetooth name is not MAX32666FTHR but Fit, which can be seen in the screenshot - Adv local name

{gallery}B7BLU

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

 

SUCCESSFULLY PAIRED WITH ANDROID

Here the Bluetooth name is not MAX32666FTHR but Fit

{gallery}Bluetoothfit

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

8) Output of Code 8

Here the Bluetooth name is not MAX32666FTHR but MCS, which can be seen in the screenshot - Adv local name

Code Snippet

#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U
#define DEFAULT_TX_POWER 0  
#define BTN_SHORT_MS 200
#define BTN_MED_MS 500
#define BTN_LONG_MS 1000
#define BTN_1_TMR MXC_TMR2
#define BTN_2_TMR MXC_TMR3
enum {    MCS_APP_GATT_SC_CCC_IDX, 
    MCS_APP_BT_CCC_IDX, 
    MCS_APP_NUM_CCC_IDX};
    typedef union {
    wsfMsgHdr_t hdr;
    dmEvt_t dm;
    attsCccEvt_t ccc;
    attEvt_t att;
} mcsMsg_t;
static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 8 } };
static void mainWsfInit(void)
{const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]);
    uint16_t memUsed;
    WsfCsEnter();
    memUsed = WsfBufInit(numPools, mainPoolDesc);
    WsfHeapAlloc(memUsed);
    WsfCsExit();
    WsfOsInit();
    WsfTimerInit();}
    
    

{gallery}MCS

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

SUCCESSFULLY PAIRED WITH ANDROID

Here the Bluetooth name is not MAX32666FTHR but MCS

{gallery}mcsconncted

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

9) Output of Code 9 

Here the Bluetooth name is not MAX32666FTHR but Periph, which can be seen in the screenshot - Adv local name

{gallery}peirph2

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

Detected but FAILED and not paired on Mobile Android

{gallery}perih2

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION


13. Project 9

Project Title : Different Buzzer Sounds using ADI MAX32666FTHR

Experimental Set Up:  

Output on Console, GTK Terminal : 

1) Output of Code 1

The sound can be heard at 0:06, 0:09 and 0:15.

2) Output of Code 2

3) Output of Code 3

4) Output of Code 4

5) Output of Code 5

6) Output of Code 6

7) Output of Code 7

 

8) Output of Code 8

9) Output of Code 9

10) Output of Code 10

11) Output of Code 11

12) Output of Code 12

13) Output of Code 13

14) Output of Code 14

15) Output of Code 15 

16) Output of Code 16


14. Project 10

Project Title :  Testing Bootloader to update application code provided by host microcontroller ADI MAX32666FTHR

Description:  Testing Bootloader code available on Internet (from Analog Devices) and seeing the output. As there is no hardware connected using I2C or SPI, and as there is no firmware update, it shows FAILURE, and thats why I have even printed on screen FAKE.

Output on Console, GTK Terminal : 


15. Project 11

Project Title : 16x2 LCD on Analog Devices MAX32666

Experimental Set Up: 

16x2 LCD setup on Analog Devices MAX32666

Output on Console, GTK Terminal : 

1) Output of Code 1

2) Output of Code 2


16. Project 12

Project Title :  Testing Inbuilt SD Card of ADI MAX32666FTHR

Description:  Testing code available on Internet (from Analog Devices) and seeing the output. 


Output 

1) Output 1

2) Output  2

3) Output  3


17. Project 13

Project Title : Voltmeter with ADI MAX32666FTHR vs DMM Voltmeter

Experimental Set Up:  

Output on Console, GTK Terminal : 

Voltage using DMM(Digital Multimeter)

The error of 0. 93 Volts is due to voltage divider.


18. Project 14

Project Title : Soil Moisture Percentage and Level in Four Soil Samples Using ADI MAX32666FTHR

Experimental Set Up:  

{gallery}soilexp

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

IMAGE TITLE: THEN IMAGE DESCRIPTION

Output on Console, GTK Terminal : 


19. Project 15

Project Title : Interfacing HC-SR04 with ADI MAX32666FTHR

Experimental Set Up:  

Output on Console, GTK Terminal : 

1) Output  1

2) Output  2

The distances are not correct !


20. Conclusion

The Analog Devices (ADI) has brought up a development board which can be even used for critical applications at an economical price. Even though this board MAX32666FTHR is said as entry level board but this board features bluetooth, Micro SD card and a single-cell lithium-ion (Li+) charger; these features generally entry level boards do not have. The board is as good as any other board of other competitor/vendor but the real competition of this board is with different chipsets from ADI only.

There is one Con, the programming is not similar as in other microcontrollers but I enjoyed it as it helped me in going through 'C' coding on which I was lazy to brush but the errors made me get back on the track. And probably after 1-4 months, I would be at advanced/expert level in it. But otherwise, there is as such no Con.

The beginners will find some difficulty in understanding as it is little complicated in understanding how to use.  For instance, MAX32666FTHR do not get detected when the USB cable is plugged as plug/play with USB. It needs MAX32625PICO to get programmed and this MAX32625PICO gets detected. This MAX32625PICO is like any other programmer but due to very small size can be mistaken as board. But once this basic confusion (which happens due to very small size) gets cleared, its same as any other programmer and board.

Those who are experienced in microcontrollers, and who know basic coding will find this development board a fun and as I have demonstrated above.

Those who are very beginners and don't know any programming and those who do only copy and paste codes, wont be able to handle this particular board, as except very basic examples, rest codes are not copy paste and need modification, where even modification may not be easy for some! but this board helps in learning, and then its lot to learn.

I am able to achieve 100% success in not so basic projects or complex project (for some it may be elementary) where I have used combination of interrupt lines, cache controllers, power controller, FREERTOS,RTC, ADC, I2C,SPI,bluetooth etc in achieving the same which is usually achieved without the use of interrupt, DMA etc.

I have demonstrated successful implementation of FREERTOS and development of same simple projects but using FREERTOS. I have demonstrated successful connection and pairing of inbuilt bluetooth antenna which is surface mounted to Android Mobile, thus, data of heart rate, battery level, electricity meter, accelormeter or, Thus, the Analog Devices MAX32666FTHR has proved a rapid prototype development board.

This product is best comparable to its successor/predecessor chips -ADI MAX32665, ADI MAX32667,ADI MAX32668 as all these have nearly the same block-diagram.

In the future, I can develop sophisticated applications using the same board but I need 2-6 months for it as involved in other works, and this would be part-time development.

Anonymous