Posts

Upgrading from Prusa SL1 to SL1S

Image
 A while ago I bought a Prusa SL1 resin printer with a washing and curing unit called CW1, both from Prusa Research. They came as a bundle and while the price was significantly higher than existing cheap SLA printers from China, I bit the bullet and went ahead with a more expensive set that I thought it will be worth it.  The printer I bought was a kit to be assembled and from the very beginning, I could see there were a lot of quality components and advanced features. All in all, I have used the printer only a fraction of what I use my FDM printers. The main reason being the messy process associated with resin, even if you have a cleaning and curing unit (that helps on that front). The smell of the resin is yet another detail I do not like, though it is not much worse than printing ABS. But recently I had the opportunity to install an upgrade to my SL1 printer. I have heard of different manufacturers replacing color LCD screens with monochrome ones, that while maybe more expensive, di

Garbled OLED display

I was testing the SD1306 MicroPython library for a small OLED display I just received. It uses the I2C bus and it is 128x64 pixels monochrome. I have used a smaller one before with that library and it seemed a no-brainer.   Unfortunately, I was not sure the unit was operational as it was brand-new and could be defective. I could only see the text I sent to the display for an instant and then only a fixed garbled background that was impossible to remove. I searched away until I found a Reddit post that summarized my problem exactly: It turned out very similar displays are sold, often without the seller specifying what model is being sold. So the OLED display SH1106 was the one I received and, if you use the SD1306 library with it, you get a garbled display.  Once I reverted to the right library, everything worked as expected. As usual, I would love not to make these mistakes, but this is a reminder about the importance of making sure what part you are buying EXACTLY!! 

Thonny with the ESP32

Image
 When I presented to my students the use and features of rshell so they can use it for MicroPython development they were not impressed at all. So I started to look for a Python GUI  that could work well with a ESP32 using MicroPython. I needed a multiplatform solution and then I saw an add on Udemy about an online course by Peter Dalmaris. I saw a sample video about Thonny software where I learned there is  a set of different platforms supported by that tool, as it can be used not only for Python programming on your PC but also on several MicroPython targets, such as the ESP32, which is supported out of the box. Easy to install and set up, I was sold from minute one, as it makes it easy to have access to the ESP32 filesystem. It can even upload MicroPython to the ESP32 so students do not need to fiddle with command-line esptool.py software.  I recommend you giving Thonny a go if you are using MicroPython on an ESP32. It even includes a serial plotter function similar to the one found

Microptyhon on the ESP32: file management

Image
 While some boards using MicroPython have processors with built-in USB supports, the ESP32 is not one of those. That basically means the ESP32 needs an auxiliary chip to connect to a USB port. But it also means the preferred connection is to emulate a serial connection. Chips like the FTDI's USB to serial, or CP1202, or the CH340G, all are seen as a COM port on the PC side. And here is where the difference matters, as a serial communication matches well the REPL interpreter, but it also prevents the device to appear as any other device to your system (no mouse, no keyboard, no mass storage device). And that is a problem as MicroPython usually relies on the host system to have access to the local storage on the MicroPython device so different files and libraries can be edited a replaced during the development phase. What does no change, however, is that MicroPython still can have access to the local file system. Just try:  import os os.listdir() So, one way of dealing with this limi

Extra memory for your F411 blackpill using Micropython

Image
 Like many of you, I bought a sample blackpill just for testing purposes with no special need to address. Later on, I learned that several flavors of Python were available for these boards and I gave them a try, both MicroPython and CircuitPython worked ok. But I read on the comments on a Hackaday entry about the board that the 8-pin chip that was not soldered in the bottom was a provision for an SPI flash memory. Again, I had no particular need for more memory, as the current 32KB flash drive that MicroPython exposed was ok, but you never know when you might need more memory. And sooner than later you find that need for extra memory. So I ordered a W25Q128F chip for around $1 and I soldered it to the board when it arrived.  However, none of the Python binaries I had changed the size of the exposed flash drive when I connected the USB to my computer. So I went on a quest to learn how to make it work . I failed to find meaningful references online until I visited the WeAct github repo: 

Coding 3D parts in Python using FreeCAD

Image
For quite a long time I have been a happy user of OpenSCAD software, mostly for designing 3D printed parts. For a recent project, I needed to create a complex geometry, and my starting point was a data file, so it made a lot of sense to that with a program.  Having been using OpenSCAD for a long time, I got the job done with it but creating the STL file took more than 10 hours. I could live with that, but I was not looking for an STL file as an output but a STEP or BREP file instead. So I started reviewing what I could do in Python using FreeCAD. It turned out that I could do a lot, but it was not as easy as using OpenSCAD. And it was not very fast either, but I could get it working in the end. The code below is what I used to create the model of the image of the cube, but for reasons unknown, all the shapes are hidden (not visible) when I open the file with FreeSCAD. It is very simple but, although there is a lot of documentation out there, I did not find all of it when I was looking

Processing 3.5 on the RPi4 (with OpenCV and Kinect support)

Image
Ten years ago I created with my friend Rubén Tortosa an art installation that would use a Kinect to capture the silhouette of a person standing in front of it. At the time, it was a PC running Ubuntu 10.10 and using Microsoft's Kinect camera. Microsoft wanted all of us to only use that camera with the Xbox game system. Thanks to the libfreenect library many of us did exactly the opposite.  That piece has gone through several exhibits and it is now starting to cough up every now and then. So I wanted to check if the new Raspberry Pi 4 was a possible candidate for replacing the PC.  I installed the 32-bit Jesse distro on a 16GB SD card and placed into my RPi4. I was able to install Processing on the Pi with this command-line:  curl https://processing.org/download/install-arm.sh | sudo sh The next step was to be able to use it, but as I was running a headless system, I could not rely on the local display. I am using Xvnc instead, so now I have a "virtual" screen I can acce