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
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.