That's an impressive demonstration, but it did take 70 hours to print, used a whole reel of filament, and still needs 8 servos, a Raspberry Pi, a camera, and additional hardware, etc.. I also watched another video from a College Student using an Arduino, who admitted his final hardware cost was 277 Pounds and I believe 4 months of development time . Of course the "Speed World Record" has reached silly levels (much less than 1 second to fully solve physically) and needs a "special" cube (to tolerate the mechanical forces), but what about a "minimalistic" design using a PICaxe? There is also merit in being able to actually follow (in real time) the solution process..... plenty of sites to get models from, print them, apply picaxe and off you go. examples:
Fully 3D-Printed Rubik's Cube Solving Robot by otvinta3d - Thingiverse
that spiderbot is one hell of a project, highly impressed.I shoehorn Picaxes in robot toys all the time. Good fun!
I think one issue is that a larger address range can be included only by extending the "Opcode" (token) data widths, which would reduce the overall maximum program size and speed of ALL chips, certainly not an Editor/Compiler option. An extra binary digit is included in the X2 v M2 chips, which is compensated by running the chips at a higher clock speed. And considerable PICaxe (re)development work would be required for the benefit of relatively few users.The simulator can't handle #Slots, ......so I gave up. I did try running the code so far on a real Picaxe ( 28X2 @32MHz ) and it was plenty fast enough to solve a cube in seconds, much faster than the Lego hardware could handle.
There have been lots of 'what we'd like to see in Picaxe', and one of mine would be an option to use the memory space as one big Slot, or stay with multiple little ones as we have now.
DoMove:
epointer = MoveNum
Do
Read epointer, RotNum
; If RotNum > 0 then ; ** Not required
On RotNum Gosub x0_XX, x1_Rc, x2_Ra, x3_Fc, x4_Fa, x5_Uc, x6_Ua,_
x7_Lc, x8_La, x9_Bc, x10_Ba, x11_Dc, x12_Da
; Endif
Inc epointer
Loop Until RotNum = 0 ; Conditional part may be unnecessary
x0_XX: ; Or at an "Exception" trap/exit
Return
x3_Fc: ' Front face clockwise (and 5 others)
Moved = 1
Get 12, TempByte1
Get 11, Tempbyte2
Get 10, V : Put 12 , V
Get 13, V : Put 11 , V
Get 16, V : Put 10 , V
Get 17, V : Put 13 , V
Get 18, V : Put 16 , V
Get 15, V : Put 17 , V
Put 18, TempByte1
Put 15, TempByte2
' Edges
Get 27, TempByte1
Get 26, TempByte2
Get 25, TempByte3
Get 39, V : Put 27 , V
Get 42, V : Put 26 , V
Get 45, V : Put 25 , V
Get 46, V : Put 39 , V
Get 47, V : Put 42 , V
Get 48, V : Put 45 , V
Get 34, V : Put 46 , V
Get 31, V : Put 47 , V
Get 28, V : Put 48 , V
Put 34, TempByte1
Put 31, TempByte2
Put 28, TempByte3
Return
Symbol TempByte1 = 201 ; Or as available
Symbol TempByte2 = 202
Symbol TempByte3 = 203
Symbol X3FC = 0 ; Or start address of table
Table X3FC , (12,201 , 11,202 , 10,12 , 13,11 , 16,10 , 17,13 , 18,16 , 15,17 , 201,18 , 202,15) ; Source,Dest pairs
' then Edges
Table (27,201 , 26,202 , 25,203 , 39,27 , 42,26 , 45,25 , 46,39 , 47,42 , 48,45 , 34,46 , 31,47 , 28,48 , 201,34 , 202,31 , 203,28 , 0)
x3_Fc:
w1 = X3FC
RotateFace: ; Basic Subroutine
Moved = 1
Do
ReadTable w1, b4 , b5
If b4 = 0 then exit ; or Return
Get b4 , V : Put b5 , V
w1 = w1 + 2
Loop
Return
Table X3FC , (12,10,16,18, 201 ,15,11,13,17, 201 , 28,25,45,48, 201 ,31,26,42,47, 201 ,34,27,39,46, 201, 0)
x3_Fc:
ptr = 201 ; Temporary register
Do
ReadTable w1, b4
Get b4 , @ptr
Inc w1
ptr = b4
Loop Until b4 = 0
100% agree.There have been lots of 'what we'd like to see in Picaxe', and one of mine would be an option to use the memory space as one big Slot, or stay with multiple little ones as we have now.
Why do you think PicAxe is old hardware? Could it be the lack of USB and/or WiFi/BT hardware on the chip? You can use co-processors for USB, WiFi and BT actually, so I don't really think this is a limitation.IMO Picaxe's biggest limitation has become its old hardware. Not .Basic code format.
The issue there is, the more memory one has, the more bits are required to encode 'jump' instructions internally. That means code generated for larger memory takes up more space than code generated for smaller memories. You get more memory but your code uses more memory. It is probably a 'win' overall, but often not as great as one might expect.A little off topic.. But I wonder why RevEd didn't just go with 16K in one slot on the X2? And 4K on the M2's.
Thank you for the explanation. And its great to see you back.It is quite tricky finding an ideal balance. I recall that's also why PICAXE have slots rather than one larger monolithic program space. Plus, having fixed 2K slots, means any code which fits in a slot on one PICAXE will fit into another slot on another PICAXE.
Without going too deep into things. The PIC18 is lacking for its package size. By present silicon standardsWhy do you think PicAxe is old hardware? Could it be the lack of USB and/or WiFi/BT hardware on the chip? You can use co-processors for USB, WiFi and BT actually, so I don't really think this is a limitation.
I do get your meaning.This is because the arduino community is building, testing, trying and showing the results in forums and videos. We don't do that. We build things mainly for our own usage. We support the community by answering questions but only a handful of member are actually documenting their projects or even get into the trouble to make a video.
Can we change that?
I do it most every week, and yes sometimes it feels like I'm the only one. Picaxe is my only tool:Yes, there are thousands of libraries to interface e.g. arduino to various sensors, devices. This is because the arduino community is building, testing, trying and showing the results in forums and videos. We don't do that.
Can we change that?
Functional - exactly. Robots and moving toys get attention. Industrial/commercial workhorses do not, such as an 08 using a DS18B20 to know when to turn the fan in an A/V cabinet on/off. Nothing pretty, fancy or "Gee Whiz!" but it's been running 15 years - and it's about time to replace the fan - again ;-)@matchbox I believe most people in this forum are aiming for functional circuits with Picaxe and not just toys/gimmicks. They build circuits that will help them get jobs done.
@erco It does seem you are the only one who creates content on youtube for Picaxe at the moment. I use my personal site to upload content, but not all projects end up there and not all projects are completed
I'm not so sure. If published as an 'absolute beginner guide', showing how easy it is to code for such a simple but useful project, it might just encourage someone to have a go themselves.I don't think a video of the LED flashing each time the 08 does a READTEMP and the fan spinning or not spinning would get many views :-(
I suppose that's human nature. We all expect a thing jammed full of chips and costing a fortune to be able to do a lot and expect it to be jammed full of chips and cost a lot because that's what needed to do what it does. At the other end there are the things which are pretty much nothing at all which seem to be punching above their weight and it intrigues us, makes us wonder how, what the magic is which isn't immediately obvious.When I have a table full of robots at a Maker Faire, the show stealer is always the stupid $5 line following robots I have orbiting the table. Because the chassis is a PCB with all 12 components visible, people constantly stop to see how they work.