Category Archives: 3D printing

3D printed Synchrotron Magnet replica


The Cern Proton-Synchrotron (PS) is a fascinating machine. While there are many synchrotrons around the world, this one started its operation in 1959. The PS, which is nowadays part of the acceleration chain of the Large Hadron Collider (LHC), measures 628 meters of circumference. It was the first strong-focusing synchrotron (or alternating-gradient focusing), at a time when synchrotrons look like the BLN Cosmotron.

The PS main magnet units combine dipole and quadrupole magnetic functions, weight more than 30 tons and are around 4.2 meters long.

There are a 100 of these magnets along the PS ring. Some coils have been replaced, but they are still the same and the yokes are untouched.

For more details about the PS and its history, there is a complete and nicely written report available on the Cern website:

In 1959 John Adams (leader of the construction team at that time) announced the successful acceleration of protons up to 24GeV.

If you pay attention, on the picture you can spot a small scale model on the desk.

That is the target of this blog post.

2-0290.jpgThere is plenty of documentations and archives at Cern, and it was impressive to find the original mechanical drawings of the magnets. So I started Fusion360 and played with the drawings. Of course, there are yet 3D models files, but they are extremely detailed and it would shortcut the fun.

Let start with the yokes:

The magnet blocks stand:

Coils, supports and feet:

And let’s print it :

The scale is 1:20 and pictures bellow show the difference with the real thing:



The STL files are in this repository :

Thanks for reading !

Creative Commons License

Images from Cern are free of charge for educational and informational use. The Cern term of use for audiovisual media can be find here : . This project was realized as a hobby, outside Cern.


Quick & basic equatorial mount motorisation


Several years ago I had a challenging combo in mind. Giving a try to astro-photography while not ruining myself.

orion mini EqI didn’t start with nothing as I would like to use my camera, a full-frame DSLR with a variety of lens. I don’t have any experience in astro-photography, then I bought the Orion Mini-Eq, a beginner tabletop equatorial mount for camera, plus a small DC motor. But I didn’t manage to get decent shots, and the mount start to be dusty.

I recently focus a bit more on this subject and I tried to improve myself on two key ingredients. The orientation and the motorisation.

The main axis of the mount should be precisely set parallel to the Earth rotating axis, in order to compensate this rotation with the motor. This will enable taking long exposure picture without start trails.


In the north hemisphere a good approximation is to target the polar star (Polaris) to align the main axis. But it implies, in my case, to set the second axis precisely to 0 and have the star in view. The markings on this mount are not really helpful and Polaris is visible only on one side of the house. So I printed a plate with a cylinder that fits in the bottom tube of the main axis. It is precisely at 46.28 degrees, the latitude of my place.

orion mini Eq print plate

On this plate I can put a bull’s eye bubble level and a compass (or a phone). It is not perfect I imagine, but it helps me learn.


The main axis rotation speed should be one turn per day, the same as the Earth.

motor gearboxI found on eBay some stepper motors with a gearbox. The gear around the Eq-mount divides the rotation by 100 already, so adding a 1:100 gearbox on the stepper side divides it, in total, by 10’000. There is 86’400 seconds in a day, so the stepper motor speed should be 8.64 seconds per turn. This gearbox has a compact planetary gears arrangement.


silentstepstick-tmc2130-stepper-motor-driverI choose the famous TMC2130 stepper motor controller, mainly because the silent StealthChop mode promises a smooth rotation. In particular the Silent-Step-Stick board of Watterott/pololu, that simplifies the wiring.

An article in hackaday describes in detail how these controllers work. This time I would like to have something  useful rapidly, I then took an ESP32 with the arduino framework. I could just plug libraries for the TMC2130 and for a small LCD character screen.


The ESP32 has to send pulses to the stepper motor controller, corresponding to the steps we want to generate. The motor has 200 steps per revolution, and the controller supports 256 micro-steps. It means we have to generate 51’200 pulses per motor revolution. We saw that the motor has to spin at 8.64 seconds per turn, so it gives 5925.9 pulses per seconds.

Coming from tiny 8bit micro-controllers, I first used a timer of the ESP32 to generate the pulses at a precise time interval. The ESP32 has timers that can be set down to the 80Mhz clock and the counter it on 64bits, which is quite remarkable. I set the prescaler at 80 to count micro-seconds, and the counter to 1687 in order to generate interrupts 5925 times per seconds. On the interrupt routine, we just flip high and low the step pin.

However I didn’t expect that the generated pulses don’t have a stable period. I naively forgot the ESP32 arduino framework probably relies on RTOS, thus some interrupts has greater priority than my timer. The period time in average is correct of course, but the period varies pulse to pulse.

After some googling, it was obvious to use the PWM instead. Everything is there with the ledc() function, and can be set with a 0.4 Hz resolution. I measured the pulse period difference between timer and PWM method :


Enough confident after this success, I just add three buttons to change the digit values of the output frequency, and the rotation direction. Also an option to stop the motor, it should not spin when the power is cut.

Next step is to make a basic case to put everything inside, my awful wiring don’t deserve public views.

And finally, I attached the motor on the Eq mount.

With everything attached, the system looks like that:


The two following pictures are single frames, quickly processed from the raw camera files. Bellow is the Orion nebula, the tracking speed is not perfect as the stars still make trails. The theoretical value of 5925Hz micro-step frequency is certainly off due to the ESP32 oscillator real value. The exposure time is 60 seconds.


Bellow the Andromeda galaxy, 60 seconds as well but with corrected frequency, hence a better tracking.



I have now no excuse for waiting a clear night and start learning picture stacking with advanced astro-photo softwares !

You can find the arduino code and the 3D files here on github:

Creative Commons License

The quest of a beacon for cats (part 1)

IMG_6409Mio is a tiny female cat, with a rather independent and proud way of life. She spends quite a lot of time outside doing… well… important cat stuff, among proving her duchess status to the other neighbor cats. However, she never misses us, each evening after work, when we come back home. She can enter the warm house in order to get the well deserved food and attention.

Until one day. And the day after.

It affected me far more than I could expect, but fortunately the worst things I started to imagine were false. Mio came back home. We conclude she might be being locked by mistake in a barn from the neighborhood. That’s where started the idea of a small RF beacon for Mio. It should to be very small, at least a month of battery life, and can enable a kind of search with a receiver.

What exists

I usually enjoy to think about and make solutions by myself, but what exists yet on the market ?


There are some expensive modules that combine GPS and GSM. Usually they come with a subscription (monthly fees) and you get the beacon location from a website. The few days of battery life is problematic, and they cannot be realistically attached to a small cat due to their size.

Some bluetooth tag seems to have some success. They are small and have a long battery life. These tags have however only a 10th of meter range, and some relies on the proximity of a smartphone, with the special app’ installed and running…

balise500pxFinally, over internet I found a very interesting article of someone having the same concern. ( in french). I’m less confident with analog RF electronics. In addition, the size of the antenna wire is not very confortable. However this solution should be kept.

Exploring RF modules

I discarded the modules working at wifi frequencies (2.4GHz) for two reason. Maybe I should come back here later, but with a coin-cell battery budget, these frequencies are absorbed easily by walls.


I made some tests with three different RF modules. From left to right:

1 – A basic 315Mhz transmitter

These modules seems to meet the low power requirements. I can even use a TV usb dongle as SDR to receive and find the beacon. The difficulty comes from the antenna. A 1/4 wave antenna for 315MHz is 23cm long. If I spool the wire inside a small case, it makes a coil and degrades dramatically the antenna impedance/efficiency. So the range goes down to something like 10 meters.

2 – Lora module based on SX1278 at 433MHz

These LoRa modules are amazing. They have a really huge range, more than 500 meters. But the problem is still the antenna at 433Mhz. If I use a simple wire, wrapped in the case, I must increase the output power to the maximum (~+17dBm). Then the battery dies after a day. Mainly because the peak current is up to 100mA, thus not suitable with coin-cells.

3 – ST electronics module base on SPIRIT1 at 868Mhz

The ST SPSGRF module integrates the antenna, in a very small board. The power consumption is very interesting as well, so let’s go a bit further with them.

For each module, made a draft case. I choose a small PIC12F1822 in SOIC package to drive them.


ST SPIRIT1 tests

The PIC code basically setup the module and send a message every minute. Fortunately, in addition of the numerous application notes, ST provides a little application (STSW-CONNECT9) to generate dthe setup C code of the Spirit1. It is very convenient as the registers are quite numerous. The message sent is just composed of the battery voltage and the battery voltage drop during the RF broadcast.

The 3D drawing is done with Fusion360. To make the case waterproof, I used neoprene glue on the outside join between the cap and the body. With the screwdriver tool that fits the pattern on the cap, there is enough torque to tear the glue appart to unscrew it. I had to pay attention to not cover the antenna with the coin-cell battery. Event shifted like that, I’m sure it reduces the transmission efficiency.



Receiver and integration

On the receiver side, one interesting feature of the Spirit1 is the RSSI value – in received signal strength. It not gives an absolute distance between the two modules, as it is greatly dependent of the obstacles, but it rather gives an idea.

IMG_6413I used the ESP32 on this side for two reasons. First because there are nice libraries for the RF module and different screens, and because I would like the wifi connectivity. With wifi, I can connect it to my logging station and observe the evolution of the signals. I had a PCD8544 LCD, pretty much enough to display few values and a small history chart. The screen on the receiver let me take it outside and try to locate the signal. It displays RSSI, voltages, and a countdown in order to knows roughly when the beacon will emit.

The PIC code, the ESP32 codes and 3D models are on this github repository:



From the tests I made, the range is around 100 meters. I had the receiver outside in the village, while the cat is (sleeping) in the house (which has half a meter thick walls).

I have now additional logged data channels, I can observe the trends of RSSI and battery voltage on logging station.



Conclusion for now

I need to wait more to conclude on the battery lifetime. Over the last 10 days, the voltage seems constant at 3V. I could increase the transmission rate if possible.

I’m not sure about the reception range, is it enough to locate the beacon by walking around in the village? That’s why I should continue to study the other solutions. For example, I just saw it exists 433MHz ceramic antenna as well. Maybe it enables the use of the LoRa module at low power. They are still interesting as their modulation scheme makes the reception very sensitive.

Thanks for reading and take care of your cat.

Creative Commons License

Destination moon

Recently inspired by some 3D printed rockets lamp, I thought maybe it’s a good occasion to start the exercice myself from scratch.


As a child, reading the Tintin ‘Destination moon‘ adventures really expand my dreams and I still enjoy reading this comic. The iconic red and white rocket has not too complicated shapes, but still interesting. Of course the rocket it is yet modeled, and plenty of 3D files can be found over internet. However the most accurate in my opinion is the work of Gregory V.

So I started Fusion360 with some contraints in mind.

  • As accurate as possible shape from the comic
  • A size up to 50 cm tall
  • Assembling without extra parts

I used the same solution as Gregory for the alternating red and white parts, but the structure rods are printed with the two central pars.


And the assembly looks like the following :


Lets start the lovely Prusa i3 and be patient. The rocket is printed in three times. For a total of approximately 45 hours and 480 grams of PLA.


To generate a dynamic plume of smoke effect, this time I used 3D Studio Max and its ‘meta-particle’ system :


Few white LEDs connected to the USB port of the computer gives a result which I’m quite satisfied!


Thanks for reading and if you’d like to go further, this repository might interest you.

Creative Commons License