Major site overhaul: resources hub, content migration, new blog posts, forms

- Redesign /resources as sectioned hub with category pages
- Migrate 645 Squarespace CDN images to local /images/content/
- Create 9 new news/blog posts with event photos
- Fix blog post slugs (rename gibberish filenames)
- Rename Design Blog to Design Blogs across site
- Remove education page, replace with Platform in nav
- Redesign rover repair request form with dynamic rover entries
- Add school search combobox to contact, store, and repair forms
- Extract shared KNOWN_SCHOOLS data
- Make /rover-expansion-3d-printing dynamically pull from MDX
- Add related resources sections to product pages
- Fix homepage broken /quote links to /store
- Store page: sample kit cards, inline quote builder, mailing list opt-in
This commit is contained in:
Tim Hadwen
2026-03-01 17:14:05 +10:00
parent 707c49dd3f
commit ae3ae18585
1212 changed files with 2477 additions and 6948 deletions

View File

@@ -1,7 +1,7 @@
---
title: "How to Use UART "
date: "2024-12-12"
categories: ["Guides"]
categories: ["Advanced Guides"]
tags: ["Advanced", "Python"]
excerpt: "UART (universal asynchronous receiver transmitter) is a hardware communication protocol between two devices. The Micromelon Rover features an expansion header that can be used to connect external devices, such as an Arduino or an IR sensor. This guid"
featuredImage: "/images/resources/getting-started-the-micromelon-rover-uart.png"
@@ -11,7 +11,7 @@ UART (universal asynchronous receiver transmitter) is a hardware communication p
This guide will outline how the UART protocol works, how it is implemented in the Rover and how to connect a device to the Rover using UART.
![](https://images.squarespace-cdn.com/content/v1/60a43bf842d7b601064a8828/64756649-f15b-40bb-87a6-cb112972f4df/expansion.jpg)
![](/images/content/2d6b14-expansion.jpg)
## What is UART?
@@ -31,11 +31,11 @@ Since there is no clock, the transmitter and receiver must agree on a predetermi
0 to 1 partiy bits
1 to 2 stop bits
The **start bit** is held high until data is ready to be sent and then set low. This then tells the receiving UART to begin reading the transmission line. The **data frame** contains the actual data and can be anywhere from 5 to 9 bits longer, depending on whether the parity bit is used. The **parity bit** is used to verify the data. It does so by counting the number of bits with a 1 and setting the parity bit to a 0 if the total is odd or 1 if it is even. This ensures that no bits have been changed in the data transfer. The **stop bit** signals the end of a package by pulling the data transmutation line to a high voltage. The receiver then stops reading the transmission line.
The **start bit** is held high until data is ready to be sent and then set low. This then tells the receiving UART to begin reading the transmission line. The ** data frame** contains the actual data and can be anywhere from 5 to 9 bits longer, depending on whether the parity bit is used. The ** parity bit** is used to verify the data. It does so by counting the number of bits with a 1 and setting the parity bit to a 0 if the total is odd or 1 if it is even. This ensures that no bits have been changed in the data transfer. The ** stop bit** signals the end of a package by pulling the data transmutation line to a high voltage. The receiver then stops reading the transmission line.
## Hardware Setup
![](https://images.squarespace-cdn.com/content/v1/60a43bf842d7b601064a8828/9ee48996-0046-4e82-8d3d-eadb88f57007/Image+from+iOS.jpg)
![](/images/content/56892c-image-from-ios.jpg)
Connecting two devices through the UART protocol requires two wires. This allows data to both be received and transmitted by both devices. Each device's RX (receive) pin must be connected to the other's TX (transmit) pin. Additionally, a shared ground is needed between both devices.
@@ -61,7 +61,7 @@ The Micromelon Rover follows a particular format for the UART data. This format
The number of bytes of data
Data related to the command
The **start byte** is always 0x05, which tells the Rover's UART to begin reading the transmission line. The **operation byte** (either 0x00 or 0x01) is the set based on whether the external device is going to be reading data (0x00) from the Rover or sending commands (0x01) by writing data. The **register byte **is a value that corresponds to the command that is being sent to the Rover. The information associated with this command is stored in the **data byte**, with the number of bytes in the data stored in the **data length byte**.
The **start byte** is always 0x05, which tells the Rover's UART to begin reading the transmission line. The ** operation byte**(either 0x00 or 0x01) is the set based on whether the external device is going to be reading data (0x00) from the Rover or sending commands (0x01) by writing data. The** register byte ** is a value that corresponds to the command that is being sent to the Rover. The information associated with this command is stored in the** data byte**, with the number of bytes in the data stored in the** data length byte**.
## Software Interfacing
@@ -71,10 +71,6 @@ For a Python implementation, refer to the Open MV UART guide.
For a C++ and Arduinio implementation, refer to the Arduinio UART guide.
[
Getting Started with Open MV and the Micromelon Rover
](getting-started-with-open-mv-and-the-micromelon-rover)
[Getting Started with Open MV and the Micromelon Rover](getting-started-with-open-mv-and-the-micromelon-rover)
[
Getting Started with Arduino and the Micromelon Rover
](xb3xasp6iz9s5gwqqo5anvcd0lwd1l)
[Getting Started with Arduino and the Micromelon Rover](/resources/getting-started-with-arduino)