Recording mode: Wrist rotation?

Hi folks…
I’ve been looking through the uArm code and testing some stuff out and I don’t know if I’m just being dumb, but it doesn’t seem that there is any code to support recording the wrist rotation during learning mode in any of the various builds.
Out of the 1024 available bytes for recorded motion, 335 are used for the left servo, 335 for the right servo, 335 for the base and 14 bytes allocated to save the gripper status every three samples (14 bytes * 8 = 112 bits = 336/3) and a few leftover bytes for calibration.
I’m sure I’ve seen videos where the motion being played back includes wrist rotation, for example, Simone’s (Simsalapim) breakfast machine. At the end of the sequence, it appears to rotate the spoon towards her mouth.

Can anyone please clear this up?


I am not at all familiar with this code, but having taken a quick look, it appears to me that each data ‘snapshot’ consists of five bytes:
Hand Rotation
Gripper Status

You can see these captured UF_uArm::record and then passed to writeExternalEeprom

Now, what exactly is happening in writeExternalEeprom would take more time, but it does appear that all 5 values are written in some way. :smiley:

Hi DCorboy,

Yep, having looked again, it seems that this code is in the newer non-Alpha uArm Metal version, though I thought that was very new? As in I don’t recall seeing it a few weeks back when I started this :confused:
Also the uArm shield v1.1 documented on this site, which I had presumed to be the latest version has no external EEPROM so that kind of backed up my “theory”.
A few days ago, when the site was updated, I saw the new(?) uArm with a new shield that has a hole in the middle and what appears to be a 128k EEPROM, but again, I had assumed that that version was brand new!

All other versions previously did not have code for the hand rotation storage!

Either way, I rolled my own implementation of it, although now I may revisit that and adjust it to be more in keeping with the “new” code :slight_smile:

Thanks again

I am glad that you are on a good path. :slight_smile:

FWIW, the GitHub - uArm-Developer/UF_uArm_Metal: Arduino Libraries library is fairly old, over a year since and real updates.

The new library where we have been doing the latest development is GitHub - uArm-Developer/UArmForArduino: Arduino uArm Metal Library (uArm Metal only)

Alas. that does not have a record mode, but if more of a firmware solution on top of which one could build a record/playback solution.


I shall check that out, thanks.
As a quick follow up, any chance you could tell me the exact EEPROM device the new uArm shield has on it please? After further inspection, I think it may be a 512kbit (64k x8) but I can’t find any info on which model / manufacturer. Not sure if the Atmel / Microchip / ST / On Semi ones would all be software compatible.


No idea, sorry. There are certainly some characteristics of it (e.g., size) that can be determined from code, but I suspect you need more than that…

No worries, I ordered a whole bunch of different variations yesterday evening and they actually turned up today! The first one I tried seems to work very nicely (Microchip 24FC512-I/SM). It’s a 1MHz variant, but I’m pretty sure the LC version (400kHz) will work equally well.
I actually have everything working beautifully now. I will post my code soon!
Thanks for your help, I really appreciate it.