- Posts: 2
- Thank you received: 6
Driver+Firmware+PCB for Pi RP2040 PIO (i.e. an easy-to-configure FPGA-like card)
- edamametech
- Topic Author
- Offline
- New Member
-
Less
More
4 years 2 months ago - 4 years 2 months ago #250732
by edamametech
Driver+Firmware+PCB for Pi RP2040 PIO (i.e. an easy-to-configure FPGA-like card) was created by edamametech
All –
We’ve developed a driver + firmware + carrier board/front-end for the Pi Pico RP2040 for some internal projects. The end use is similarly to FPGA-based cards (like the 7i76e), but it is much more configurable, the firmware is in easy-to-modify C and supply is not an issue. More details on why this is an interesting IC below.I’m posting here to see if there is interest in the community in opening sourcing this work (it will take some effort – so want to make sure others will find useful!).
Why the Pi Pico (RP2040)?
The Pi Pico is a newish chip developed inhouse by the Raspberry Pi foundation. It’s not an SBC, but instead an embedded microcontroller with an overlooked but very interesting peripheral: 8 programmable input output state machines (PIO). These PIOs allow the writing of clock-tick accurate "micro-programs" for reading and writing of the GPIOs – perfect for tasks like generating PWM signals, reading encoders, etc. These "micro programs" are run-time configurable and loadable.
We found a number of advantages to this approach:
- The firmware is relatively simple and easy to add custom features to – it’s in C.
- The RP2040 is readily available in volume.
- We can easily configure and re-configure what each PIO does (stepgen, pwm, encoder)
Carrier Board
We’ve also developed a reconfigurable board for the PICO that ruggedizes/industrializes the I/O (like the FPGA-based cards do). But, given the flexible nature of the Pico PIO, we’ve made pluggable modules that provide different types of front-ends (i.e. differential buffered outputs for stepper drivers, protected inputs and output modules for general IO, relay board, etc.). Thus, the same board can be “configured” to different types of realtime I/O - you can have it drive 8 servos, drive 2 servos and read 8 encoders, and so on (plus standard GPIO).Currently we are connected to the host LinuxCNC computer over SPI, but are looking at ethernet (if we can get the chips).
As mentioned, we’ve developed this for internal robotics/custom CNC manufacturing machines. However, it occurred to me that there might be broader interest. Would appreciate feedback.
Thanks!
JP
We’ve developed a driver + firmware + carrier board/front-end for the Pi Pico RP2040 for some internal projects. The end use is similarly to FPGA-based cards (like the 7i76e), but it is much more configurable, the firmware is in easy-to-modify C and supply is not an issue. More details on why this is an interesting IC below.I’m posting here to see if there is interest in the community in opening sourcing this work (it will take some effort – so want to make sure others will find useful!).
Why the Pi Pico (RP2040)?
The Pi Pico is a newish chip developed inhouse by the Raspberry Pi foundation. It’s not an SBC, but instead an embedded microcontroller with an overlooked but very interesting peripheral: 8 programmable input output state machines (PIO). These PIOs allow the writing of clock-tick accurate "micro-programs" for reading and writing of the GPIOs – perfect for tasks like generating PWM signals, reading encoders, etc. These "micro programs" are run-time configurable and loadable.
We found a number of advantages to this approach:
- The firmware is relatively simple and easy to add custom features to – it’s in C.
- The RP2040 is readily available in volume.
- We can easily configure and re-configure what each PIO does (stepgen, pwm, encoder)
Carrier Board
We’ve also developed a reconfigurable board for the PICO that ruggedizes/industrializes the I/O (like the FPGA-based cards do). But, given the flexible nature of the Pico PIO, we’ve made pluggable modules that provide different types of front-ends (i.e. differential buffered outputs for stepper drivers, protected inputs and output modules for general IO, relay board, etc.). Thus, the same board can be “configured” to different types of realtime I/O - you can have it drive 8 servos, drive 2 servos and read 8 encoders, and so on (plus standard GPIO).Currently we are connected to the host LinuxCNC computer over SPI, but are looking at ethernet (if we can get the chips).
As mentioned, we’ve developed this for internal robotics/custom CNC manufacturing machines. However, it occurred to me that there might be broader interest. Would appreciate feedback.
Thanks!
JP
Last edit: 4 years 2 months ago by edamametech. Reason: Formatting
Please Log in or Create an account to join the conversation.
- tommylight
-
- Away
- Moderator
-
4 years 2 months ago #250734
by tommylight
Replied by tommylight on topic Driver+Firmware+PCB for Pi RP2040 PIO (i.e. an easy-to-configure FPGA-like card)
First, thank you, i never bothered to check the 2040 as i saw it just as another micro controller and the videos on youtube did not explain much.
Now i know why it is good.
I also like the flexibility of the board ...
Wait, no pictures?
Now i know why it is good.
I also like the flexibility of the board ...
Wait, no pictures?
Please Log in or Create an account to join the conversation.
- edamametech
- Topic Author
- Offline
- New Member
-
Less
More
- Posts: 2
- Thank you received: 6
4 years 2 months ago #250738
by edamametech
Replied by edamametech on topic Driver+Firmware+PCB for Pi RP2040 PIO (i.e. an easy-to-configure FPGA-like card)
Yeah - I've been surprised how little attention this feature has gotten on the Pico. The other ICs that have this type of features (like from TI) generally require far more complex firmware.
And, no, I'm not posting pictures of my ugly V1 hand-soldered boards to the internet
. Will look into some renderings.
And, no, I'm not posting pictures of my ugly V1 hand-soldered boards to the internet
Please Log in or Create an account to join the conversation.
4 years 2 months ago #250762
by scotta
Replied by scotta on topic Driver+Firmware+PCB for Pi RP2040 PIO (i.e. an easy-to-configure FPGA-like card)
Interesting. I've got a couple of RP2040 3D Printer controller boards that I was looking to port Remora firmware to. You may have saved the effort! Looking forward to more details and some open source firmware.
Please Log in or Create an account to join the conversation.
- tommylight
-
- Away
- Moderator
-
4 years 2 months ago #250766
by tommylight
Also maybe give us a reason to laugh or be amazed ...
Replied by tommylight on topic Driver+Firmware+PCB for Pi RP2040 PIO (i.e. an easy-to-configure FPGA-like card)
Why not? It shows the effort and "blood and sweat" that went into making it.
And, no, I'm not posting pictures of my ugly V1 hand-soldered boards to the internet.
Also maybe give us a reason to laugh or be amazed ...
Please Log in or Create an account to join the conversation.
4 years 2 months ago #250778
by elovalvo
Replied by elovalvo on topic Driver+Firmware+PCB for Pi RP2040 PIO (i.e. an easy-to-configure FPGA-like card)
Already some time ago I thought that this microcontroller could be used as a support for Linuxcnc
forum.linuxcnc.org/18-computer/42276-rem...spi?start=550#240728
forum.linuxcnc.org/18-computer/42276-rem...spi?start=550#240728
The following user(s) said Thank You: tommylight
Please Log in or Create an account to join the conversation.
Time to create page: 0.064 seconds