Frequently Asked Questions


What are the differences between the P1AM-100 and P1AM-200?

Feature P1AM-100 P1AM-200
Microprocessor SAMD21G18 SAMD51P20
Clock Speed 48MHz 120MHz
RAM 32KB 256KB
EEPROM None 2kbit
RGB Status LED No Yes
Toggle Switch Yes Yes
MicroSD Card Slot Yes Yes
Arduino-Compatible Yes Yes
CircuitPython-Compatible No Yes
Number of P1000 I/O Modules 15 15
RTC Internal External + Supercap backed
Ethernet MAC Address None Yes
ATECC608A Crypto Chip None Yes

Can I read the program from a P1AM CPU?

If you are using CircuitPython, you can read the program from the P1AM-200 since all files needed for the application are stored on the device. If you are using Arduino, you cannot read the program from the P1AM CPU since the program is compiled to a binary and cannot be reversed into the original source.


Can I use the P1AM-200 with the Arduino IDE?

Yes, the P1AM-200 is compatible with the Arduino IDE. You can download the Arduino IDE here.


Can I program the P1AM-200 with CircuitPython and Arduino at the same time?

No, you can only program the P1AM-200 with one or the other. You can switch between the two at any time, but you cannot program with both at the same time.


What is the P1AM-200 RGB Status LED used for?

In Arduino and CircuitPython the RGB Status LED is user configurable and can be used for any purpose. In CircuitPython only, the LED will additionally indicate certain program conditions described here


How do I configure my modules?

Not every module supports configuration. If your module does, you can find a tool to generate configuration code on the module's own page, or go here for the configuration tool page.


How do I find Arduino libraries?

The P1AM-100 and P1AM-200 are compatible with most libraries that work with the SAMD architecture. You can find libraries in the Arduino Library Manager or by searching the internet. If a library states that it is only for "AVR" or "UNO" then it is possible it may not function with your CPU.


What is CircuitPython?

CircuitPython is an open-source implementation of Python maintained by Adafruit. It is a high-level programming language great for beginners and skilled programmers alike. For more information check out Adafruit's introduction.


What is the difference between CircuitPython and Arduino?

CircuitPython is a higher level language than Arduino. CircuitPython is based on Python 3, while Arduino is based on C/C++. CircuitPython programs are typically easier to write than Arduino programs, but they will run slower.


How do I switch from CircuitPython to Arduino?


How do I switch from Arduino to CircuitPython?


Do I lose my files when switching between Arduino and CircuitPython?

No, the files for CircuitPython are stored on an external flash memory device. When you program with Arduino, only the internal flash on the SAMD51 is used. When you switch back to CircuitPython, the files will be there like they were before.


How many files can I store on the P1AM-200 CircuitPython Drive?

The P1AM-200 has 16MB of flash memory with about 15.4MB available for files.


Will my Arduino programs work with CircuitPython?

No, you will need to rewrite your programs in CircuitPython. The P1AM-200 is compatible with both Arduino and CircuitPython, but the two languages are not compatible with each other. A C-Style API is available for CircuitPython to make it easier to port Arduino programs to CircuitPython.


Will normal Python programs work with CircuitPython?

Many Python programs will work with CircuitPython, but not all. CircuitPython is based on Python 3, so Python 2 programs will not work. Additionally, CircuitPython does not have all of the standard Python libraries, so some programs may not work.


How do I find CircuitPython libraries?

The P1AM-200 is compatible with most CircuitPython libraries. You can find libraries in the CircuitPython Library Bundle or by searching the internet.


Will my CircuitPython program run forever?

Unlike Arduino, CircuitPython programs will not run forever by default. If you want your program to run forever, you can add a while True: loop to your program. Additionally, you should add try/except blocks to your program to catch any errors that may occur as uncaught errors will cause your program to stop running.


P1AM-100 Arduino Offline or Portable Installation

If the PC you would like to use Arduino with cannot be connected to the internet or has other restrictions that conflict with the standard install, you can run the Arduino IDE offline or on a USB Drive. This will only work with Windows PCs.

It is important to note that this method will not prompt you for updates. IDE Performance on USB drives will be slower than when installed on PC.