Jump to content

Arduino: Difference between revisions

From Smithnet Wiki
No edit summary
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
== General ==
== General ==


The [https://github.com/Optiboot/optiboot Optiboot] or other bootloader runs after a reset and looks for a new program to download via RS232. If none is present, the existing one is run. See [https://rheingoldheavy.com/arduino-from-scratch-part-11-atmega328p-dtr-and-reset/ here] for description of the use of DTR.
=== Startup & Programming ===
 
On reset or powerup, ehe [https://github.com/Optiboot/optiboot Optiboot] or other bootloader code is run. If an external reset was the cause, listening mode is entered, and the LED is flashed. Programming commands in STK500 protocol are listened for, of the serial line at 115200 speed. If none are received in a small timeout window (~ 1s), the normal code is executed.
 
The DTR line if used to trigger a reset pulse in software IDE (see [https://rheingoldheavy.com/arduino-from-scratch-part-11-atmega328p-dtr-and-reset/ here]).


* [https://docs.arduino.cc/retired/boards/arduino-duemilanove/ Duemilanove]
* [https://docs.arduino.cc/retired/boards/arduino-duemilanove/ Duemilanove]
=== millis() ===
* Useful for timing without using a blocking delay()
* Returns ms in an unsigned long
* Test for 1s (subtraction correctly handles truncation/rollover):
** millis() - lastCounter > 1000
* https://arduino.stackexchange.com/questions/12587/how-can-i-handle-the-millis-rollover/12588#12588


== Documentation ==
== Documentation ==
Line 12: Line 24:


* [https://www.arduino.cc/en/Reference/Libraries Standard Libraries]
* [https://www.arduino.cc/en/Reference/Libraries Standard Libraries]
* [https://github.com/mathertel/LiquidCrystal_PCF8574 LiquidCrystal_PCF8574] derived from [https://www.arduino.cc/en/Reference/LiquidCrystal Liquid Crystal]
 
* [https://fastled.io/ FastLED] for WS2812B programmable LED strips
* [https://fastled.io/ FastLED] for WS2812B programmable LED strips
** [https://fastled.io/docs/examples.html Code Examples]
** [https://fastled.io/docs/examples.html Code Examples]
** [https://github.com/FastLED/FastLED/wiki/Pixel-reference Colour Reference]
** [https://github.com/FastLED/FastLED/wiki/Pixel-reference Colour Reference]
* [https://github.com/feilipu/Arduino_FreeRTOS_Library FreeRTOS]
* [https://github.com/embeddedartistry/arduino-printf LibPrintf]
* [https://github.com/mathertel/LiquidCrystal_PCF8574 LiquidCrystal_PCF8574] derived from [https://www.arduino.cc/en/Reference/LiquidCrystal Liquid Crystal]
* [https://github.com/mathertel/OneButton OneButton]
* [https://github.com/NicoHood/PinChangeInterrupt Pin Change Interrupt]
* [https://github.com/NicoHood/PinChangeInterrupt Pin Change Interrupt]
* [https://github.com/mathertel/OneButton OneButton]
* [https://github.com/neosarchizo/TinyGPS TinyGPS]
* [https://github.com/neosarchizo/TinyGPS TinyGPS]



Latest revision as of 15:23, 22 August 2025

General

Startup & Programming

On reset or powerup, ehe Optiboot or other bootloader code is run. If an external reset was the cause, listening mode is entered, and the LED is flashed. Programming commands in STK500 protocol are listened for, of the serial line at 115200 speed. If none are received in a small timeout window (~ 1s), the normal code is executed.

The DTR line if used to trigger a reset pulse in software IDE (see here).

millis()

Documentation

Useful Libraries

Other

Development Environment

  • SHIFT-ALT-F to format document

Platformio.ini

  • monitor_speed = 115200