25 pieces ready for testing

Well, it took some time and a lot of effort, but we finally finished making the first 25 pieces. In this post, we’ll share a few production notes as well as plenty of pictures to document it. We ordered the soldering at AllPCB as we had a good previous experience and they are probably more flexible in ordering parts than is for example JLCPCB…

Open-Cubes… and robot with O-C sensors: laser ToF lidar rangefinder, ultrasonic rangefinder, RGB optical reflective sensor and touch sensor.

Error in parts list – AllPCB provided this photo showing that we made an error in the parts order list. There are four such ICs on the PCB.. So we decided to cancel its soldering so as not to wait another week or two for the correct part to arrive. Hand soldering took some time here as the tin had to be removed before the component could be placed.
PCBs just arrived from China (AllPCB.com). There was a China national holiday starting the day following the expected day of delivery… so the delivery was like a week delayed…
The PCBs were nicely packed…
We ordered only SMD single-side component assembly in order to keep the price down… So we had to solder all the through-hole components ourselves.
AllPCB’s SMD assembly quality is excellent. The circuit board is clean with no solder residue.
Soldering 225 pieces of LEGO connectors (Adafruit – 4434) is quite a challenge. Next time we need to make the holes for the plastic connector pins a little wider….
There is a possibility to fix the battery holder with two screws. Not used for now… fixed by soldering and tight placement in the box.
Almost finished units. A piece of kapton tape was added over the SMD thermistor which senses the 18650 accu temperature during charging.
Open-Cubes in their boxes. 3D printed from PLA. Prototypes printed on PRUSA Mk3, 25 pieces printed using BambuLab – it prints much faster!

In the end, everything was assembled, but approximately nine of the 25 pieces of the series exhibited strange behavior. It was possible to load the MicroPython program, but the unit did not restart after a reboot. After playing a bit with the FLASH communication parameters (drive strength and slew rate for the communication pins) we tested a hack found on the web – we used a “PICO_XOSC_STARTUP_DELAY_MULTIPLIER” increased to 100 (instead of one) and all the units worked very well at once…

NOR FLASH signal lines (undersampled, just to show overall communication timing )