Anita machine ( Ah neet ah macheen) is not happy. I told her she would be an all powerful Raspberry Pi computer with a custom hat to run her CNC legs and 3D Print arms. She would be using the brains supplied by opensuse leap 15.1 ported to arm64 and she would be self contained and complete.
Stage 1: Design the Base for all the electronics (power supply, ventilation, RPI-3B+, Protoneer hat, DRV8825 drivers, Front panel with [10" HDMI display, power on/standby, tool power, lighting power, External USB, Secondary SD card slot, Joystick, and bubble level]).
This stage seemed to go real well. Re-purposing an old ATX power supply provides 35A at 5V, 15A at 3.3v, and 12A at 12v would have loved to swap the current specs of 5v and 12v but re-users can’t be choosers. Cabinet base 26" wide, 7" high and 33" deep.
It has leveling feet in case the table it rests on is not level. (reason for bubble level).
Stage 2: Design the X-YA-Z axis system and Table bed. Here I gave Anita polished Aluminum frame 25" x 26.5"x 3". Using OpenBuilds CNC and 3D Print material. The table is a fixed position type 17" x 17" with moving Y-axis gantry with dual motors. Working height is 12" and total height is 38". So far so good. Using CBeam for the rails, Vslot for the frame and gantry she is real sturdy.
Stage 3: Design Tools holders for Dremel, Laser cutter, Etchant Resist Pen, and 3DPrint head. Added plans for vacuum attachment for the Dremel, 120v Gantry power for tools that need it, Mounting for Filament reels and pathing for wires to be hidden out of harms way. The 3D Print head unplugs at the Gantry and automatically disables the 3D power at the driver when unplugged. Really looking good.
Stage 4: Find and download opensuse for arm64 (Raspberry Pi) , got it but don’t know if it will work because now we enter the problems phase.
Problem 1: Micro SD Card not recognized by opensuse (think the card is defective)
Problem 2: Download / Install Etcher to format SD CARD says no card to be found.
Problem 3: Protoneer for Pi 3B+ blocks GPIO pins needed for joystick, SDCard, Temp Sense, No problem just make PCB to move pins sideways.
Problem 4: Protoneer can not run 4 motors independently. You can run XYZ with 4th not present or you can run XYZ with 4th being a clone of 1 axis. So no 3D Print possible with this board. It is CNC only.
Create custom Driver board for Pi (5 axis: XYAZH, A=Y, H=3DPrint head), 5 DRV8825 drivers, 2 ILQ4 & 1 ILQ2 opto-isolators for the signals EN-CNC, EN-3DPrint, STEPx-ya-z-h, DIR x-ya-z-h, MCP3008 ADCx8 (joystickU/D, JoystickL/R, Joy-button, Temp-head, Temp-Bed, Proximity Sense,2 unused), xlimit, ylimit, zlimt, +3.3v, +5v, +12v, GND
Reality check: LinuxCNC, Octipi, and all other variants found to date are low speed serial c**p. Even Adunino realized it was not living up to expectations at 9600 Baud and switched from rediculously slow to just generally slow at 115200bps. I2C runs at 100kbps, 400kbps,1200kbps,and 3200kbps and SPI runs at 4800kbps. So when they talk of latency problems with system and security routines delaying data transfer, it isn’t the whole story. The tiny dual buffers of the Arduino UNO can’t hold much and has to parse 64 bytes to 128 bytes which take time to fetch at 115kbps (1.1ms). The RPI runs at 700MHz to 1.4GHz and can update any GPIO as fast as 0.00142us per instance.
So moving ahead what I think would be a an excellent plan is to convert Arduino Gcode processor to RPI Gcode processor, only instead of sending to Arduino pins, send to GPIO pins, Instead of getting Gcode from USB attached computer, get it from fake USB port and store local into buffers. But and there is always a but, I need to figure out how to take normal output from OctoPrint or LinuxCNC and redirect the to an imitation USB that reports to Octoprint etc what an Arduino would normally say. and instead just store and process the Gcode itself to GPIO.
Regards to all from Rick