- Hardware & Machines
- Driver Boards
- Driver+Firmware+PCB for Pi RP2040 PIO (i.e. an easy-to-configure FPGA-like card)
Driver+Firmware+PCB for Pi RP2040 PIO (i.e. an easy-to-configure FPGA-like card)
- edamametech
- Topic Author
- Offline
- New Member
Less
More
- Posts: 2
- Thank you received: 6
29 Aug 2022 20:51 - 29 Aug 2022 21:55 #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: 29 Aug 2022 21:55 by edamametech. Reason: Formatting
Please Log in or Create an account to join the conversation.
- tommylight
- Away
- Moderator
Less
More
- Posts: 19188
- Thank you received: 6432
29 Aug 2022 21:32 #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
29 Aug 2022 22:00 #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 . Will look into some renderings.
Please Log in or Create an account to join the conversation.
30 Aug 2022 08:06 #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
Less
More
- Posts: 19188
- Thank you received: 6432
30 Aug 2022 09:56 #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.
30 Aug 2022 13:33 #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.
06 Sep 2022 21:33 #251356
by andypugh
Replied by andypugh on topic Driver+Firmware+PCB for Pi RP2040 PIO (i.e. an easy-to-configure FPGA-like card)
I keep meaning to buy some and work on getting SmartSerial working on the PIOs. Then it would be trival to make special-purpose peripherals and no new driver would be needed at the LinuxCNC end.
The following user(s) said Thank You: Bari, tommylight
Please Log in or Create an account to join the conversation.
25 Oct 2022 16:10 #255043
by koboldgn
Replied by koboldgn on topic Driver+Firmware+PCB for Pi RP2040 PIO (i.e. an easy-to-configure FPGA-like card)
Hi
I'm very interested in this project. Anyone already using it?
I would be happy to help
I'm very interested in this project. Anyone already using it?
I would be happy to help
Please Log in or Create an account to join the conversation.
25 Oct 2022 17:12 #255047
by HansU
Replied by HansU on topic Driver+Firmware+PCB for Pi RP2040 PIO (i.e. an easy-to-configure FPGA-like card)
It would be really great if you make this project open source!
Or what if we connect it via a serial port to the PC? Haven't calculated but I can imagine that it can achieve a reasonable update rate if setting the baud rate high enough.
Or have it as a low cost or space saving solution: Connect it to a RPi 4 or similar via SPI. For 3D printers and similar.
I keep meaning to buy some and work on getting SmartSerial working on the PIOs. Then it would be trival to make special-purpose peripherals and no new driver would be needed at the LinuxCNC end.
Or what if we connect it via a serial port to the PC? Haven't calculated but I can imagine that it can achieve a reasonable update rate if setting the baud rate high enough.
Or have it as a low cost or space saving solution: Connect it to a RPi 4 or similar via SPI. For 3D printers and similar.
Please Log in or Create an account to join the conversation.
24 Jan 2023 02:14 #262789
by Bari
Replied by Bari on topic Driver+Firmware+PCB for Pi RP2040 PIO (i.e. an easy-to-configure FPGA-like card)
Any news, updates or open source git repo, etc. etc. for this project?
It's a great idea but of far less interest if it is just a closed source project.
It's a great idea but of far less interest if it is just a closed source project.
Please Log in or Create an account to join the conversation.
- Hardware & Machines
- Driver Boards
- Driver+Firmware+PCB for Pi RP2040 PIO (i.e. an easy-to-configure FPGA-like card)
Time to create page: 0.113 seconds