![Learn to Program MCUs with uLISP Learn to Program MCUs with uLISP](https://cdn.magzter.com/1480705098/1726991432/articles/zdE-js3pU1727351795613/LEARN-TO-PROGRAM-MCUS-WITH-ULISP.jpg)
Lisp is a Turing-complete programming language, based on Alonso Church's lambda calculus. It was designed by John McCarthy and published in his 1960 paper, "Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I" [1]. Of its many dialects, Common Lisp and Scheme are the best known, along with the newer Racket and Clojure.
Lisp pioneered many programming language ideas now commonly in use [2], such as higher order functions, recursion, lexical closures, dynamic typing, tree data structures, automatic garbage collection, and the read-eval-print loop (REPL). I've been programming in Common Lisp and Scheme as a hobby for many years. Recently, I discovered uLisp, a version designed to run on microcontrollers (MCUs) [3]. As a fan of Lisp and embedded systems, for the past few years, I've been willing to try the uLisp platform and write about it.
In this article I begin by discussing very simple uLisp examples that showcase basic syntax and programming concepts. Then, I discuss some extensions to the language that deal specifically with MCU-related functionalities, such as general-purpose input/ output and I2C serial data communications. I present some hardware examples using Seeed Studio's Wio Terminal development board and the Sensirion SGP30 gas sensor. Nevertheless, uLisp support as well a few other MCU platforms.
To follow the topics discussed here, you just need a basic knowledge of microcontrollers and the Arduino platform.
ULISP CRASH COURSE
uLisp is available for many MCU boards in five versions [4]. The version of uLisp that you wish to use can be downloaded free from uLisp.com:
1) AVR: for Arduino Mega 2560, ATmega 1284, and AVR DA/DB series.
2) AVR-Nano: for Arduino UNO, Arduino Nano, and Arduino Every.
3) ARM: for Arduino Zero and MKTZero, Adafruit MO, M4, PyBadge/PyGamer, nrf52840 and Clue, BBC Micro Bit, Teensy 40/4.1, RP2040-based boards, and others.
This story is from the {{IssueName}} edition of {{MagazineName}}.
Start your 7-day Magzter GOLD free trial to access thousands of curated premium stories, and 9,000+ magazines and newspapers.
Already a subscriber ? Sign In
This story is from the {{IssueName}} edition of {{MagazineName}}.
Start your 7-day Magzter GOLD free trial to access thousands of curated premium stories, and 9,000+ magazines and newspapers.
Already a subscriber? Sign In
![Morse Micro Launches Highly Anticipated Second-Generation MM8108 SoC Morse Micro Launches Highly Anticipated Second-Generation MM8108 SoC](https://reseuro.magzter.com/100x125/articles/14556/1974643/alvofsn4L1737963744933/MORSE-MICRO-LAUNCHES-HIGHLY-ANTICIPATED-SECONDGENERATION-MM8108-SOC.jpg)
Morse Micro Launches Highly Anticipated Second-Generation MM8108 SoC
Enabling improved spectrum efficiency to minimize interference in high-density environments, the MM8108 delivers class-leading data rates of up to 43.33Mbps using world-first sub-GHz 256-QAM modulation at an 8MHz bandwidth, making it ideal for a range of applications in agricultural, mining, industrial, home, and city environments.
![NXP MCX MCUs and IDEs Cut Development Time NXP MCX MCUs and IDEs Cut Development Time](https://reseuro.magzter.com/100x125/articles/14556/1974643/NWG7fm9C01737963831021/NXP-MCX-MCUS-AND-IDES-CUT-DEVELOPMENT-TIME.jpg)
NXP MCX MCUs and IDEs Cut Development Time
Development boards, such as NXP's FRDM platform for MCX A series MCUs, are revolutionizing embedded systems by integrating components for prototyping and innovation in the IoT landscape. These technologies streamline development, enhance flexibility, and reduce costs, enabling greater focus on software development while addressing complex challenges.
![Asynchronous Programming in Flutter - Shallow Dive into Google's Mobile App Framework Asynchronous Programming in Flutter - Shallow Dive into Google's Mobile App Framework](https://reseuro.magzter.com/100x125/articles/14556/1974643/OuzkUiE8m1737963284510/ASYNCHRONOUS-PROGRAMMING-IN-FLUTTER-SHALLOW-DIVE-INTO-GOOGLES-MOBILE-APP-FRAMEWORK.jpg)
Asynchronous Programming in Flutter - Shallow Dive into Google's Mobile App Framework
This month, Bob continues his look at mobile app programming from the perspective of an embedded system designer. He begins a shallow dive into Flutter, the mobile app framework from Google, by describing his transition from React Native to asynchronous programming in Flutter.
![Basic Pulse Circuits - Part 3: Metastability, Setting, or Resetting Basic Pulse Circuits - Part 3: Metastability, Setting, or Resetting](https://reseuro.magzter.com/100x125/articles/14556/1974643/oV4ROsWjB1737959012922/BASIC-PULSE-CIRCUITS-PART-3-METASTABILITY-SETTING-OR-RESETTING.jpg)
Basic Pulse Circuits - Part 3: Metastability, Setting, or Resetting
In digital design, signal processing is crucial when dealing with asynchronous signals from sensors and level translators. In Part 1 of a three-part series, Wolfgang described how pulse circuits help digital circuits deal with pulse trains. In Part 2, he wrote about flip-flops, timing parameters and synchronization. In Part 3, he looks at how to mitigate metastability and ensure internal clock synchronization.
![Infineon and Flex Showcase Zone Controller Design Platform for Software-Defined Vehicles Infineon and Flex Showcase Zone Controller Design Platform for Software-Defined Vehicles](https://reseuro.magzter.com/100x125/articles/14556/1974643/92KQhSnpt1737963671928/INFINEON-AND-FLEX-SHOWCASE-ZONE-CONTROLLER-DESIGN-PLATFORM-FOR-SOFTWAREDEFINED-VEHICLES.jpg)
Infineon and Flex Showcase Zone Controller Design Platform for Software-Defined Vehicles
Infineon Technologies AG and Flex, a diversified global manufacturer and new preferred automotive design partner for Infineon, are showcasing the new Flex Modular Zone Controller design platform for software-defined vehicles at CES 2025.
![Switching Regulator Efficiency - Minimize Power Consumption in Battery-Operated Systems Switching Regulator Efficiency - Minimize Power Consumption in Battery-Operated Systems](https://reseuro.magzter.com/100x125/articles/14556/1974643/wKKnLV_D41737962499902/SWITCHING-REGULATOR-EFFICIENCY-MINIMIZE-POWER-CONSUMPTION-IN-BATTERYOPERATED-SYSTEMS.jpg)
Switching Regulator Efficiency - Minimize Power Consumption in Battery-Operated Systems
A switching voltage regulator converts input DC voltage into a desired output DC voltage. This month, Stuart delves into the factors that influence the efficiency of switching regulators, and why they are crucial for embedded applications. From understanding the role of inductors and transistors to exploring practical examples, this article offers valuable knowledge for anyone interested in optimizing power supply designs.
![Learn Lisp Programming Using MCUs - Part 2: Extending µLisp with Custom Functions Learn Lisp Programming Using MCUs - Part 2: Extending µLisp with Custom Functions](https://reseuro.magzter.com/100x125/articles/14556/1974643/xqGCgTWdE1737956785325/LEARN-LISP-PROGRAMMING-USING-MCUS-PART-2-EXTENDING-LISP-WITH-CUSTOM-FUNCTIONS.jpg)
Learn Lisp Programming Using MCUs - Part 2: Extending µLisp with Custom Functions
In the second installment of this series, Raul delves into the world of µLisp and shows how to extend capabilities by adding custom functions such as \"pulsein\" and \"servo-create\", enabling developers to interface with ultrasonic sensors and control servomotors. In Part 1, Raul presented µLisp concepts and syntax, and extensions specific to MCUs.
![Introducing Bluetooth LE Audio - Part 1: Sound of a Revolution Introducing Bluetooth LE Audio - Part 1: Sound of a Revolution](https://reseuro.magzter.com/100x125/articles/14556/1974643/zFLJ4cEaq1737955773077/INTRODUCING-BLUETOOTH-LE-AUDIO-PART-1-SOUND-OF-A-REVOLUTION.jpg)
Introducing Bluetooth LE Audio - Part 1: Sound of a Revolution
Following the Bluetooth Core 5.2 release, Bluetooth Low Energy Audio introduces capabilities that will revolutionize audio applications through isochronous channels and new audio middleware. Nick writes about a framework supporting bidirectional audio and shared listening in Part 1 of a two-part article.
![CMake the Most of Software Development - Modern Build Systems Support Scalability CMake the Most of Software Development - Modern Build Systems Support Scalability](https://reseuro.magzter.com/100x125/articles/14556/1974643/aji251nfm1737961003495/CMAKE-THE-MOST-OF-SOFTWARE-DEVELOPMENT-MODERN-BUILD-SYSTEMS-SUPPORT-SCALABILITY.jpg)
CMake the Most of Software Development - Modern Build Systems Support Scalability
Discover how modernizing your build system with CMake can revolutionize embedded software development, offering unparalleled flexibility and efficiency. Dive into this article to explore the transformative benefits of CMake's cross-platform capabilities and how it integrates seamlessly with contemporary development practices.
![Engineering Healthcare - Cutting-Edge Technologies to Enhance Patient Care Engineering Healthcare - Cutting-Edge Technologies to Enhance Patient Care](https://reseuro.magzter.com/100x125/articles/14556/1974643/85sDiAXsx1737959786619/ENGINEERING-HEALTHCARE-CUTTINGEDGE-TECHNOLOGIES-TO-ENHANCE-PATIENT-CARE.jpg)
Engineering Healthcare - Cutting-Edge Technologies to Enhance Patient Care
Explore the groundbreaking advancements in Pulsed Field Ablation technology, where engineering meets cardiac care to revolutionize atrial fibrillation treatment. This article delves into the intricate design and functionality of cutting-edge devices that enhance precision and safety in medical procedures, showcasing the vital role electronics play in shaping the future of healthcare.