Difference between revisions of "AdaFruit Ecosystem"

From Colettapedia
Jump to navigation Jump to search
 
(6 intermediate revisions by the same user not shown)
Line 23: Line 23:
 
# Tap reset button twice to enter UF2 (USB Flasher version 2) bootloader. A new drive shows up on your computer called boardnameBOOT, e.g., TRINKETBOOT
 
# Tap reset button twice to enter UF2 (USB Flasher version 2) bootloader. A new drive shows up on your computer called boardnameBOOT, e.g., TRINKETBOOT
 
# Drag uf2 file into there and this will trigger board to reboot
 
# Drag uf2 file into there and this will trigger board to reboot
 +
 +
=== CircuitPython Essentials tutorial ===
 +
 +
==== Analog Out ====
 +
* [https://learn.adafruit.com/circuitpython-essentials/circuitpython-analog-out link]
 +
 +
"""CircuitPython Analog Out example"""
 +
import board
 +
from analogio import AnalogOut
 +
 +
analog_out = AnalogOut(board.A0)
 +
 +
while True:
 +
    # Count up from 0 to 65535, with 64 increment
 +
    # which ends up corresponding to the DAC's 10-bit range
 +
    for i in range(0, 65535, 64):
 +
        analog_out.value = i
  
 
==Adafruit CircuitPython Library==
 
==Adafruit CircuitPython Library==
Line 36: Line 53:
 
** Create a lib folder on your CIRCUITPY drive and copy the files into there manually.
 
** Create a lib folder on your CIRCUITPY drive and copy the files into there manually.
  
== Adafruit CircuitPython Hardware ==
+
== MicroPython/CircuitPython 3rd party libraries ==
=== LED Backpacks & FeatherWings ===
+
=== ulab ===
 
+
* ulab is a numpy-like array manipulation library for micropython and CircuitPython
* [https://circuitpython.readthedocs.io/projects/ht16k33/en/latest/ documentation]
+
* [https://github.com/v923z/micropython-ulab ulab github]
* 0.54" 14-segment LED HT16K33 Backpack
+
* [https://micropython-ulab.readthedocs.io/ ulab docs]
* Default I2C address of the display is 0x70
 
 
 
<nowiki>import board
 
import busio as io
 
i2c = io.I2C( board.SCL, board.SDA )
 
import adafruit_ht16k33.segments
 
display = adafruit_ht16k33.segments.Seg14x4( i2c )#, address=0x74)
 
display.fill(0)
 
display.print('CPY!')
 
display.show()</nowiki>
 
 
 
===Velleman VMA412===
 
* [https://www.velleman.eu/products/view/?id=435582 VMA42 website] with downloads
 
* 2.8" touch screen, 240x320 RGB, ILI9341 display driver
 
* [https://github.com/adafruit/Adafruit_CircuitPython_ILI9341 CircuitPython display driver for ILI9341]
 
* [https://github.com/adafruit/Adafruit_CircuitPython_Touchscreen CircuitPython touch screen library]
 
* Most examples use four-wire SPI bus, plus calls into displayio objects/methods
 
 
 
 
 
 
 
===Libraries===
 
* [https://learn.adafruit.com/micropython-hardware-led-backpacks-and-featherwings/circuitpython Adafruit_CircuitPython_HT16K33 How-To]
 
  
 
==Adafruit IO==
 
==Adafruit IO==
Line 86: Line 81:
  
 
==Metro M4 Express==
 
==Metro M4 Express==
 +
* Cortex M4 core running at 120 MHz
 +
* Floating point support with Cortex M4 DSP instructions
 +
* 512 KB flash, 192 KB RAM
 +
* 32-bit, 3.3V logic and power
 +
* Dual 1 MSPS DAC (A0 and A1)
 +
* Dual 1 MSPS ADC (8 analog pins)
 +
* 6 x hardware SERCOM (I2C, SPI or UART)
 +
* 22 x PWM outputs
 +
* Stereo I2S input/output with MCK pin
 +
* 10-bit Parallel capture controller (for camera/video in)
 +
* Built in crypto engines with AES (256 bit), true RNG, Pubkey controller
 +
* 64 QFN (Quad-flat no-leads)
 +
 
===Available UART Combos===
 
===Available UART Combos===
 
* [https://learn.adafruit.com/circuitpython-essentials/circuitpython-uart-serial Where's my UART code]
 
* [https://learn.adafruit.com/circuitpython-essentials/circuitpython-uart-serial Where's my UART code]
 
<pre>
 
RX pin: microcontroller.pin.A1  TX pin: microcontroller.pin.A3
 
RX pin: microcontroller.pin.A2  TX pin: microcontroller.pin.A3
 
RX pin: microcontroller.pin.A5  TX pin: microcontroller.pin.A4
 
RX pin: microcontroller.pin.D4  TX pin: microcontroller.pin.A4
 
RX pin: microcontroller.pin.D5  TX pin: microcontroller.pin.A4
 
RX pin: microcontroller.pin.D6  TX pin: microcontroller.pin.A4
 
RX pin: microcontroller.pin.MISO        TX pin: microcontroller.pin.A4
 
RX pin: microcontroller.pin.MOSI        TX pin: microcontroller.pin.A4
 
RX pin: microcontroller.pin.D1  TX pin: microcontroller.pin.D0
 
RX pin: microcontroller.pin.D2  TX pin: microcontroller.pin.D0
 
RX pin: microcontroller.pin.D8  TX pin: microcontroller.pin.D0
 
RX pin: microcontroller.pin.D9  TX pin: microcontroller.pin.D0
 
RX pin: microcontroller.pin.SCL          TX pin: microcontroller.pin.D0
 
RX pin: microcontroller.pin.D0  TX pin: microcontroller.pin.D1
 
RX pin: microcontroller.pin.D10          TX pin: microcontroller.pin.D1
 
RX pin: microcontroller.pin.D11          TX pin: microcontroller.pin.D1
 
RX pin: microcontroller.pin.D13          TX pin: microcontroller.pin.D1
 
RX pin: microcontroller.pin.D8  TX pin: microcontroller.pin.D1
 
RX pin: microcontroller.pin.D9  TX pin: microcontroller.pin.D1
 
RX pin: microcontroller.pin.D0  TX pin: microcontroller.pin.D12
 
RX pin: microcontroller.pin.D10          TX pin: microcontroller.pin.D12
 
RX pin: microcontroller.pin.D11          TX pin: microcontroller.pin.D12
 
RX pin: microcontroller.pin.D13          TX pin: microcontroller.pin.D12
 
RX pin: microcontroller.pin.D8  TX pin: microcontroller.pin.D12
 
RX pin: microcontroller.pin.D9  TX pin: microcontroller.pin.D12
 
RX pin: microcontroller.pin.D10          TX pin: microcontroller.pin.D13
 
RX pin: microcontroller.pin.D11          TX pin: microcontroller.pin.D13
 
RX pin: microcontroller.pin.D12          TX pin: microcontroller.pin.D13
 
RX pin: microcontroller.pin.D1  TX pin: microcontroller.pin.D3
 
RX pin: microcontroller.pin.D2  TX pin: microcontroller.pin.D3
 
RX pin: microcontroller.pin.D8  TX pin: microcontroller.pin.D3
 
RX pin: microcontroller.pin.D9  TX pin: microcontroller.pin.D3
 
RX pin: microcontroller.pin.SCL          TX pin: microcontroller.pin.D3
 
RX pin: microcontroller.pin.A5  TX pin: microcontroller.pin.D7
 
RX pin: microcontroller.pin.D4  TX pin: microcontroller.pin.D7
 
RX pin: microcontroller.pin.D5  TX pin: microcontroller.pin.D7
 
RX pin: microcontroller.pin.D6  TX pin: microcontroller.pin.D7
 
RX pin: microcontroller.pin.MISO        TX pin: microcontroller.pin.D7
 
RX pin: microcontroller.pin.MOSI        TX pin: microcontroller.pin.D7
 
RX pin: microcontroller.pin.MISO        TX pin: microcontroller.pin.MOSI
 
RX pin: microcontroller.pin.SCK          TX pin: microcontroller.pin.MOSI
 
RX pin: microcontroller.pin.A5  TX pin: microcontroller.pin.SCK
 
RX pin: microcontroller.pin.D4  TX pin: microcontroller.pin.SCK
 
RX pin: microcontroller.pin.D5  TX pin: microcontroller.pin.SCK
 
RX pin: microcontroller.pin.D6  TX pin: microcontroller.pin.SCK
 
RX pin: microcontroller.pin.MISO        TX pin: microcontroller.pin.SCK
 
RX pin: microcontroller.pin.MOSI        TX pin: microcontroller.pin.SCK
 
RX pin: microcontroller.pin.D1  TX pin: microcontroller.pin.SDA
 
RX pin: microcontroller.pin.D2  TX pin: microcontroller.pin.SDA
 
RX pin: microcontroller.pin.D8  TX pin: microcontroller.pin.SDA
 
RX pin: microcontroller.pin.D9  TX pin: microcontroller.pin.SDA
 
RX pin: microcontroller.pin.SCL          TX pin: microcontroller.pin.SDA
 
</pre>
 

Latest revision as of 04:42, 11 February 2021

CircuitPython

Docs/Learning Resources

General

  • ls /dev/tty.*
  • screen /dev/tty.blahblah
  • /lib is in sys.path by default
  • help( "modules" )
  • array.array - single types specified by typecode character at runtime
  • collections.namedTuple - a fixed sized dict without the
  • gc.mem_alloc() shows RAM used, gc.mem_free() shows memory available
  • boot.py runs BEFORE USB is setup, outputs to boot_out.txt
  • globals() to show what modules are loaded - can't unload modules

Installation

  1. Download latest version of circuitpython for the given board
  2. Tap reset button twice to enter UF2 (USB Flasher version 2) bootloader. A new drive shows up on your computer called boardnameBOOT, e.g., TRINKETBOOT
  3. Drag uf2 file into there and this will trigger board to reboot

CircuitPython Essentials tutorial

Analog Out

"""CircuitPython Analog Out example"""
import board
from analogio import AnalogOut

analog_out = AnalogOut(board.A0)

while True:
   # Count up from 0 to 65535, with 64 increment
   # which ends up corresponding to the DAC's 10-bit range
   for i in range(0, 65535, 64):
       analog_out.value = i

Adafruit CircuitPython Library

Bundle

  • A bundle of useful CircuitPython libraries ready to use from the filesystem ONLY for use on boards that have extra flash storage.
  • Github repo - download the latest. Contains precompiled .mpy files that your copy over to /lib
  • Documentation - Includes SD card usage utility, etc

Individual Library Installation

  • For smaller boards you must copy the libraries manually
    • See CircuitPython Libraries for more info.
    • Create a lib folder on your CIRCUITPY drive and copy the files into there manually.

MicroPython/CircuitPython 3rd party libraries

ulab

  • ulab is a numpy-like array manipulation library for micropython and CircuitPython
  • ulab github
  • ulab docs

Adafruit IO

  • A data logging service that you can hit from you IoT device

Trinket M0

Specs

  • microchip - SAMD21 32-bit Cortex M0+
  • CPU speed - 48MHz
  • Program memory size - 256KB flash
  • RAM - 32KB
  • Builtin Green ON LED
  • Builtin red LED on pin #13
  • Builtin RGB DotStar LED
  • 5 GPIO pins

Reference

Downloads

Metro M4 Express

  • Cortex M4 core running at 120 MHz
  • Floating point support with Cortex M4 DSP instructions
  • 512 KB flash, 192 KB RAM
  • 32-bit, 3.3V logic and power
  • Dual 1 MSPS DAC (A0 and A1)
  • Dual 1 MSPS ADC (8 analog pins)
  • 6 x hardware SERCOM (I2C, SPI or UART)
  • 22 x PWM outputs
  • Stereo I2S input/output with MCK pin
  • 10-bit Parallel capture controller (for camera/video in)
  • Built in crypto engines with AES (256 bit), true RNG, Pubkey controller
  • 64 QFN (Quad-flat no-leads)

Available UART Combos