Serpente R2 Microchip SAMD21 Board Features a Male USB Type-C Port

Development boards with a USB Type-C port for power and programming are becoming more common, most in most cases with a female USB-C port.

Designed by arturo182, Serpente R2 CircuitPython prototyping board based on Microchip SAMD21 Arm Cortex-M0+ microcontroller offers three USB power & programming option with USB type-A male, USB type-C female, or USB type-C male, with the latter option allowing you to plug into directly into your host computer.

Serpente R2 USB Board
Click to Enlarge

Serpente R2 board specifications:

  • MCU – Microchip ATSAMD21E18A 32-bit Cortex-M0+ running at 48MHz, with 256KB flash, and 32KB RAM
  • Storage – 4MB SPI Flash for storing files and CircuitPython code
  • Expansion – 10x I/Os with castellated holes including 6x customizable GPIOs, and 4x power signals (3V, GND, VUSB, and VIN)
  • USB
    • R2 – Female USB Type-C port
    • R2 Plug – Male USB Type-A port
    • R2 Plug C – Male USB Type-C port
  • Misc – User RGB LED, reset button
  • Power Supply – 5V via USB port or VIN;  250mA LDO; 3.3V logic and power
  • Dimensions
    • R2 – 24.75 x 22mm
    • R2 Plug – 29.55 x 22mm
    • R2 Plug C – 25.35 x 22mm

Serpente R2 Pinout DiagramThe board is open source hardware (See KiCAD files on Github) and is meant to run Adafruit CircuitPython, and you’ll find pretty-looking documentation here.

Serpente R2 board is sold on Tindie for $15, but you can get a 25% discount with “@arturo182” code.

Male USB-C Development Board

Support CNX Software - Donate via PayPal or become a Patron on Patreon
Subscribe
Notify of
guest
15 Comments
oldest
newest most voted
ben
ben
7 months ago

Amazing how many low-cost SAMD21 breakout/eval boards.. however, they all capable of compatible to run CircuitPython ? Or is there some pinout/layout of the Serpente R2 that makes it better?

David Willmore
David Willmore
7 months ago

How do they compare to blue pills, though? Those are pretty darn cheap as well and are well supported by Arduino IDE at least.

zoobab
7 months ago

You can get 10 bluepills for 1 Serpente 🙂

iridiumsat
iridiumsat
7 months ago

New 2 bluepills come with STM32F4 series, and max out to 512KB flash, 128KB ram, 36 I/O, integrated FPU.

Price point just around $4.

https://www.aliexpress.com/item/4000103610226.html

jqpabc123
jqpabc123
7 months ago

I doubt there is any *magic* involved but the I/O layout/configuration may have been hard coded into the language interpreter. I think the interpreter is open source so this could be changed with enough effort.

I’m no expert on CircuitPython but from what I’ve gathered from the web, code is stored right on the device in text format. This makes things simple and easy but is highly inefficient for a real world app— not to mention highly insecure as well. It should take minimal know how to extract code or reprogram the device.

dgp
dgp
7 months ago

>I’m no expert on CircuitPython but from what I’ve gathered from the web, >code is stored right on the device in text format. MicroPython (and therefore CircuitPython) support pre-compiled/processed byte code. This is how the built in modules are shipped in most cases. >This makes things simple and easy but is highly inefficient for a real world app It really depends. Python code is no good for bit banging or doing any sort of data processing but if you have that stuff in prepackaged modules written in C then you can very much make a “real world app” by plumbing… Read more »

jqpabc123
jqpabc123
7 months ago

*Anything* can be reverse engineered — it’s all a question of the time, effort and skill required.

On a scale of 1 to 10, plugging a device into a USB port to access the source code in text format has to rank about 0.

dgp
dgp
7 months ago

If I can plug it in and get your python code and the built in modulles etc I would need to reverse engineer it I can also go in and get your thumb code. You said plain text is a security issue.

jqpabc123
jqpabc123
7 months ago

Most microprocessors provide fuse locks to make it hard to just read the binary code.

Once you get past these and obtain the code, you still have to reverse engineer it which typically provides assembly code without much syntax.

All of which can be done — but requires significantly more time, effort and know how than a simple USB plug operation. — which is essentially no security at all.

dgp
dgp
7 months ago

>Most microprocessors provide fuse locks >to make it hard to just read the binary code. If your python scripts are in the internal flash it’s just as well protected as the thumb code and your data that’s also in the flash. The format the code is in makes no difference to the security of the data. MCUs designed for secure applications usually provide a way to disable flash readout along side OTP keys to encrypt external storage. >Once you get past these and obtain the code, >you still have to reverse engineer it which typically >provides assembly code without much… Read more »

David Willmore
David Willmore
7 months ago

Are there really that few GPIO on that chips such that they have to share them with the LED? That makes them almost useless as inputs.

arturo182
7 months ago

That was my mistake when doing a copy-paste, the LED uses separate GPIOs.

David Willmore
David Willmore
7 months ago

Thanks for the clarification!

Advertisements