probatio / probatio-3dprinting

Probatio's models for 3D printing
Other
2 stars 1 forks source link

Work in progress: FLOSS-based version without base structures #18

Open DocSunset opened 3 years ago

DocSunset commented 3 years ago

Hi all.

I have been working on a re-implementation / re-invention of the blocks using FLOSS software packages (mainly OpenSCAD), partially as an opportunity to better explore the pros and cons of alternative software packages (probatio/probatio#12), and as a way to propose possible enhancements to the system (e.g. probatio/probatio#4, probatio/probatio#5 probatio/probatio#6, probatio/probatio#8).

You can `git pull -u origin open_baseless' to see my work in progress. I have written a script in OpenSCAD that can generate blocks with arbitrary number of block units in the x and y axes, which are designed in such a way that with an appropriate PCB (or PCBs) put inside, the blocks will be able to connect directly to one another without using a base structure, as proposed in probatio/probatio#5.

We should probably not merge this to master until it has been more fully discussed.

filipecalegario commented 3 years ago

Hi @DocSunset, nice that you’re experimenting with OpenSCAD for Probatio! I think it can be an excellent open-source alternative for the parametric features of Fusion 360.

Concretizing ideas into prototypes or, in this case, 3D models, is a fantastic way of discussing possibilities. Therefore, I think the baseless blocks can be a good branch for experimenting with new alternatives.

About the current model, I have some questions:

DocSunset commented 3 years ago
  • Is the idea to make the baseless blocks compatible with the current version of Probatio? If so, how would it work?

This is not something I am attempting. I don't believe backwards compatibility is possible while also allowing blocks to arbitrarily connect directly to one another.

  • How does a baseless block attach to another baseless block? I saw you placed some slots for magnets, but they seem too small to provide enough force. Would you consider increasing the size of the magnets? Are there alternative ways of attaching the blocks together?

At the moment I am thinking that the blocks attach via magnets, as you observed. The chosen magnets are indeed smaller than those currently in use (4mm diameter rather than 12.5mm diameter), but there are also twice as many magnets used. The layout is chosen such that two attached blocks can be rotated any multiple of 90 degrees about the axis normal to their mated faces without messing up the magnet polarity (not sure if the existing design allows this e.g. when rotating around the axis normal to the face mated to the base?). Although it may be possible to use larger diameter magnets, my hope is that the larger quantity of magnets will be enough to make a strong enough connection, at least for initial idea exploration.

Furthermore, I am also thinking that the blocks could be fastened together with hardware passing through external connector plates. How this works should become clearer as I further actualize the design through modelling and prototypes. The ideal is that the magnetic bond should be good enough for testing ideas roughly, and then when you want to settle on a particular configuration for a longer term you can get out the fasteners and make it really robustly rigidly attached.

  • One of the central objectives of Probatio is to allow the exploration of ways of playing and holding the instrument beyond the tabletop. Do you think the baseless blocks would allow this kind of approach?

Yes, especially with the external fastener plates as just described.

  • I really like the idea of using screws to fix internal PCBs. I’m assuming the top and the bottom will fit together by the four screws through the PCB. Is that right?

That's right.

  • Are you planning to have 5 PCBs per block? Will it have a main or central board in which there will be a microcontroller?

Yes, exactly. Ideally I want to design one PCB that can be used for all sides that have connectors, and which also serves to break out the microcontroller. A 6th PCB could then be attached for the sensors on top if desired (e.g. if assembling many copies of a sensor block), or the currently standard point-to-point wiring could be used for experimenting.

  • I saw you’re using 6 holes that I’m assuming is for 6 connection pins. What kind of connection/protocol are you planning to use?

Yes, there are 6 connection pins. Four for I2C, plus two reserved for future extensions. One in particular that would be useful is to use one or both of these additional pins for measuring the topology of the block-assembly, i.e. learning the physical position of individual blocks within the network (probatio/probatio#6)