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?
- Open any program in the Arduino IDE
- Select Tools > Board > P1AM-200
- Go to Tools > Port and select the COM Port for your P1AM-200
- Upload the program to the P1AM-200. The P1AM-200 will reenumerate on a new COM port and will be running the program you uploaded
How do I switch from Arduino to CircuitPython?
- Quickly double tap the reset button to enter the bootloader
- The P1AM-200 will show up as a USB drive named P1AM200BOOT
- Drag and drop the CircuitPython UF2 file onto the P1AM200BOOT drive
- The P1AM-200 will reboot and show up as a USB drive named CIRCUITPY
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.
- Go to the release page here and download the most recent "portable_install" .zip release
- Move the .zip file to the target PC or to a USB drive
- Extract the .zip file to your desired location
- in the extracted folder navigate to drivers\P1AM-drivers
- Run P1AM-100_install.bat and follow the prompts to install the driver
- Run arduino.exe to open the Arduino IDE
- Select Tools > Board > P1AM-100
- Go to Tools > Portand select the COM Port for your P1AM-100