
Smart Plant
JGAguado/Smart_Plant
The Smart Plant is a board that can be plugged directly on the soil, close to the plant, that allows the measurement of the environment (soil moisture, environment temperature & illuminance), and presents the…

USB to interfaces implementing MicroPython "machine" module functionalities on a computer.
Pico dev is an open-source printed circuit board by execuc, from the execuc/u2if repository on GitHub. It is a 2-layer board of 99.1 × 76.2 mm with 36 parts on 38 nets, routed with 309 tracks and 0 vias.
It is built around the SS14. Its parts include 18 connectors, 4 resistors, 3 capacitors, 3 switches and 2 ICs. It belongs with the interfaces and adapters boards and the RP2040 boards of this library.
u2if(USB to interfaces) is an attempt to implement some of the MicroPython "machine" module functionalities on a computer. The goal is to be able to communicate with breakout boards (sensors, lcd...) simply from a python program on x86 machine. It uses a Raspberry PICO (or other RP2040 based board) to make the interface between the computer (USB) and peripherals/protocols.

Python led swith on/off:
import time
from machine import u2if, Pin
# Initialize GPIO to output and set the value HIGH
led = Pin(u2if.GP3, Pin.OUT, value=Pin.HIGH)
time.sleep(1)
# Switch off the led
led.value(Pin.LOW)It is in experimental state and not everything has been tested. Use with caution. It is supposed to work on windows, linux and Mac. To work in Linux in non-root, an udev rules has to be added (See Firmware readme).
When I want to retrieve values from a sensor or even to play with a led or a button from the PC, I make an arduino program that communicate to the PC via the serial port. That umplies to define a serial "protocol" between the PC and the arduino and it is not necessarily reusable because it is specific. I find it interesting to implement a majority of the functionalities of the MicroPython machine module and add other protocols.
Solutions already exist, for example Adafruit Blinka from Adafruit via the FT2232H in CircuitPython or pyftdi in Python with the same IC. Note: now, firmware part can be also used with Adafruit Blinka !
The following features are coded:
This repository is presented as the sources of a python project (License). But it also contains the following projects:
See Firmware README
Install python package from release file (u2if-..tar.gz) with python3 -m pip install dist/u2if-..tar.gz
To build package if wanted :
There is no documentation but examples can help to use this library :
For simplicity, the pins of the SPI, I2C and UART devices have been fixed. If a peripheral is not used, its pins can be used as a classic I/O. Here are the compatibles boards.

Implemented interfaces:
Implemented interfaces:
Implemented interfaces:
Implemented interfaces:
Implemented interfaces:
The ustruct module is belongs by micropython. There is a micropython-cpython-ustruct compatibility module, but it doesn't seem to work for me. If necessary modify:
import ustructto:
import struct as ustructInstall micropython-cpython-utime and micropython-cpython-micropython.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | MountingHole | MountingHole:MountingHole_3.2mm_M3 | H1, H2, H3, H4 |
| 3 | 10k | Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder | R1, R2, R3 |
| 3 | CP | Capacitor_THT:CP_Radial_D6.3mm_P2.50mm | C1, C2, C3 |
| 3 | I2C0 | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J5, J6, J7 |
| 2 | +3.3V | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J13, J17 |
| 2 | GND | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J15, J16 |
| 2 | SPI0 | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J9, J10 |
| 1 | +5V | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J14 |
| 1 | 470 | Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder | R4 |
| 1 | AN0_GP26 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J3 |
| 1 | AN1_GP27 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J4 |
| 1 | GPIO | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical | J11 |
| 1 | GPIO | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J18 |
| 1 | LED | LED_THT:LED_D5.0mm | D2 |
| 1 | MODE | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J1 |
| 1 | Pico | MCU_RaspberryPi_and_Boards:RPi_Pico_SMD_TH | U1 |
| 1 | SPI1/GPIO | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J12 |
| 1 | SS14 | Diode_SMD:D_SMA | D1 |
| 1 | SSD1306_I2C | oled_ssd1306:ssd1306_I2c | U2 |
| 1 | SWD | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J2 |
| 1 | SW_GP8 | Button_Switch_THT:SW_PUSH_6mm_H4.3mm | SW3 |
| 1 | SW_GP9 | Button_Switch_THT:SW_PUSH_6mm_H4.3mm | SW2 |
| 1 | SW_RST | Button_Switch_THT:SW_PUSH_6mm_H4.3mm | SW1 |
| 1 | UART0 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J8 |
It measures 99.1 × 76.2 mm and has 2 copper layers, 1.6 mm thick.
36 parts, built around the SS14. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the execuc/u2if repository on GitHub, at the commit this page was made from: the board is board/pico-dev/pico-dev.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask execuc before reusing the design.

JGAguado/Smart_Plant
The Smart Plant is a board that can be plugged directly on the soil, close to the plant, that allows the measurement of the environment (soil moisture, environment temperature & illuminance), and presents the…

ugcs/ddc
Drone Show Software is software designed for drone shows, allowing flight path planning as well as control of dozens of drones simultaneously in a synchronized manner.

eddyem/stm32samples
Code samples and ready projects based on bare-metal STM32



ZeroPhone/ZeroPhone-PCBs
PCB files for ZeroPhone - for gerbers and schematics, go to "Releases" tab!


NVIDIA-AI-IOT/my-jetson-nano-baseboard
An open source Jetson Nano baseboard and tools to design your own.