Tag: wireless charging

Making of an ESP8266 Vibrator Development Board – traps and pitfalls

About a year ago I made a ESP8266 based design for a vibrator development board including IMU, motor driver and battery charging. The design was based on the Adafruit ESP Huzaah, but I used components of Seeedstudio Open Parts Library. This is a library of parts (IC, connector, resistors) which are stocked at Seeedstudio especially for their PCBA (printed circuit board assembly) service. PCBA is really great. Instead of tinkering and soldering on your own you can send the design to Seeedstudio, they make the printed circuit board and assemble all parts. Unfortunately the main part – the ESP8266 microcontroller – was missing in the Open Part Library . So I turned to use the affordable ready-made WeMos ESP8266 boards (see here).

In June 2017 I took a closer look at the PCBA service. At that time the OPL offered two variants of the ESP8266. But even better: You could order almost any part. The difference between using OPL parts and other parts was the time for the assembly as it takes more time to order parts which are not on stock.

So I ordered two boards. The boards are round with a diameter of 5 cm (that’s the size of a wireless charging coil). As I had a coupon the two boards were only about 50US$. Including delivery! And even better: Seeedstudio delivers from a logistic company in Germany. So I had not to pay any taxes. Great. But… unfortunately … I made beginner’s mistakes…during design.

  1. Problem: As the board should be programmable by USB connection you need a USB to serial bridge eg. one of the FTDI ICs. This bridge has two important connections TX (transfer) and RX (receive). And the ESP8266 has the same TX and RX. But don’t connect them. Instead you have to connect RX to TX and vice versa. (Well I should have know, when I soldered null modems maybe 20 years ago or more…)

    Taken from Sparkfun

  2. Problem: When using the serial monitor of the Arduino IDE you need another connection: RTS (ready to send). Unfortunately the used serial bridge – the FTDI FX230XS IC – had no RTS. (There is a circuit which works without RTS, but I didn’t know.)
  3. Problem: I used GPIO0 for driving the motor, that’s why auto reset doesn’t work. So I had to short-cut GPIO0 and GROUND for uploading a script.

So I tried to fix the problem. At first I had to cut the wrong connections. On the bottom side of the board the RX and TX wires are quit good accessible. So I could cut them using a dremel.

In the next step I had to connect the RX and TX headers of the FTDI chip with the ESP 8266…

The green clamps were used to shortcut another wrong connection.

Finally upload with the Arduino IDE was possible, but no debugging using the serial monitor. Battery charging seemed to work, too, although this needs more time for testing. WiFi worked. Essentially I could upload a script which made one LED blinking. And I could start the WiFi manager.

Debugging such a complex thing like a ESP8266 without serial connection is almost impossible. But then I found RealTerm. This is the only terminal program for Windows where you have all options to use or not use serial sync mechanisms like DTR, RTS etc. It is made to make a serial connection work even if you have only TX, RX and GROUND.

Here you can decide to ignore RTS and/or DTR by pressing “Clear”. (Read more about this here.)

.

And finally it worked. The ESP8266 sends debug text to the serial monitor. The transmission maybe scrambled, but it is still readable. Realterm – a really great tool for debugging serial connections.

Readings of the MPU9250 (accelerometer, gyro)

Probably it is more reasonable to use a bread board for the development of a design. But customizing an open source design on the PC and then get it assembled for a reasonable price – for me it’s like a dream come true. But as you see – all your efforts can be worthless.

But I will do it again…

 

 

Basic Node for the Internet of Sex Toys – part 2: 3d printed form, assembly, molding

In this series of posts we describe how-to make a vibrating sex toy which is part of the Internet of Things.

part 1: Basic Node for the Internet of Sex Toys

part 2: Molding the Basic Node

part 3: Software for the Basic Node

In part 2 we describe how-to make a mold form for the basic node. We need three forms:

  • the mold form which consists of two parts
  • the inlay which protects the electronics of the basic node
  • a “hanging” for the inlay

 

 

 

We used Tinkercad to construct the parts. The molding form is based on Tinkercad’s banana form. You can edit and share them from your browser:

Inlay: https://tinkercad.com/things/h5fFOBqlmjw

Hanging: https://tinkercad.com/things/jUxc2oAamww

Form: https://tinkercad.com/things/6HS3XScOsCM

Instructions

Print out all forms. The STL files are available at Thingiverse. You might want to use XTC or similar for smoothing the inner part of the mold form.

Assembling the Inlay

We use the inlay to protect the electronics.

Simply put the electronics inside so that the upper body of the switch is on the same level as the upper inlay. We use hot glue to fix the basic node.

Then fix the receiver coil of the wireless charging module on top of the inlay. The next step is to fix the hanging at the inlay.

Now fix the LiPo battery on the bottom side of the inlay using hot glue or similar. Fix the wires. Finally you might fix the wires of the vibration motor next to the middle of the LiPo battery.

Use tinkering wire to fix both parts of the molding form.

Put the inlay in the form. Fix the hanging with a tape or similar. The motors shouldn’t touch the inner part of the form.

Now prepare the silicone. We use Shore A 45 silicone (approx. 250 ml) from Silikonfabrik.de. It is hard but still a bit flexible. You may add color, too. You have about 10 minutes to stir the silicone and poor it in the form.

After some hours you can remove the form. As you can see there is overhang which make removing the form very hard. The form could break when removing. Better preparation of the form (eg rasping) could improve the results.

If the blue LED of the Wemos board is still active you were successful.

Now you need a charging station. The construction is shown here. It is also possible to connect the sender (or transmitter) module with a 5V power source (eg. from the USB port). Just put the bottom of the molded basic node on the sender coil.

 

In the next part we introduce an updated version of the software including over the air update and WiFi management.

Basic Node for the Internet of Sex Toys (part 1)

Wemos mini modules: ESP8266, motor driver and battery charging (in the middle); Wireless charging module (right side); wireless charging coil (top side); encapsulated vibration motors (left side)

In previous posts we showed how to build a vibrating sex toy in principle as part of the Internet of Things (IOT). In addition we have selected a hardware platform – the popular ESP8266 – for controlling a vibrator motor, gathering motion data and connecting to the internet. Now we want to build the toy itself.

part 1: Basic Node for the Internet of Sex Toys

part 2: Molding the Basic Node

part 3: Software for the Basic Node

Brief Review of development boards

There are a lot of development boards which are equipped with the ESP8266. The popular NodeMCU was already introduced here. Here is a quick overview and comparison:

NodeMCU

  • plus: very popular, cheap, USB connector for programming
  • minus: quite large (for being part of a sex toy), no support for battery charging

Adafruit Feather Huzaah ESP

  • plus: USB connector for programming and battery charging, smart form factor (only 23 mm wide), very good support (libraries, tutorials)
  • minus: quite expensive

WeMos D1 mini (pro)

  • plus: very cheap, USB connector for programming, additional stackable modules (eg. battery charging, TFT screens, motor driver), good form factor
  • minus: no real support (but there is a forum, problems with modules reported

ESP8285 (variant of the ESP8266)

  • plus: really small (!!!) and smart form factor, USB programming and battery charging, optional sensors on board (but no motion sensors)
  • minus: quite expensive, only 1MB memory (nevertheless enough for a lot of application)

For our project we selected the WeMos mini cause we get almost everything we need:

  • USB connector for programming
  • module for battery charging
  • module for a motor driver
  • good form factor (eg. to be put in a vibrator handle or in the base of a dildo)
  • cheap, fast delivery

But there is no shield for motion detection (accelerometer,gyroscope). So we have to use an additional board eg equipped with the MPU9250.

But there is a problem with the WeMos motor shield: After a few seconds it stopped working. And in addition the MPU9250 stopped working, too. Hours and hours we tried different configurations, changed the libraries … The problem was the motor driver shield itself. Fortunately there is an easy work around. Read here.

Another issue is the battery shield. It has an extra USB connector for charging the battery. So you have two USB connectors (one for battery charging and one for uploading). Two USB connectors are not handy. Fortunately we can do without the USB connector for uploading as it is possible to update the software over the air (OTA) using WiFi.

Material

As the body interaction philosophy uses motion for controlling the device we have to add the MPU. Again we use the MPU9250 which has an accelerometer, gyroscope and magnetometer.

Another insight was that you need at least a switch for rebooting. As we want to mold everything the switch must meet the IP67 requirements, which means it is water- (and silicone) proof. If you don’t want to mold the electronics you can use the RESET button on the WeMos mini board.

A perfect basic node has a wireless charging option, too.

Material list for the basic node:

  • Wemos mini board
  • Wemos motor driver shield
  • Wemos battery shield
  • Wemos prototyping board
  • Wemos set of pins
  • LiPo battery (eg. 3,7V 650mAh, 2C, JST plug, available at ebay)
  • MPU 9250 board (for motion control)
  • 1 or 2 encapsulated vibration motors, 3V, available at Alibabaexpress
  • Optional: Switch IP 67 protected (eg. Cherry Switches DC1C-K8AA IP67) – for molding
  • Optional: Wireless charging receiver 5V eg from Seeed Studio

Material: battery shield, Wemos mini ESP8266, motor shield, MCU9250 (first row), LiPo battery, switch, vibration motor (second row)

 

Soldering the basic node

We use one connector (part of the Wemos set of pins) to connect the Wemos mini with the battery shield and the motor shield. This is done to save space. If your application has enough space you would use one connector for every shield.

Battery shield, Wemos mini ESP 8266, motor shield (from top to bottom)

Now have a look at the bottom side where the motor shield should be. We can connect up to 2 motors. Solder motor 1 to A1 and A2. Motor 2 has to be soldered to B1 and B2. In addition we need input power for the motor. We just use the 5V provided by the Wemos mini battery shield. Connect 5V to VM and GND (from the pins) and GND. But you could use other (more powerful) power sources, too.

Wemos offers a prototyping board. We use it for mounting the switch and for the MPU9250. Connect the MPU9250 to the bottom side of the prototyping board. Therefore 4 pins have to be soldered

Solder pin (1 row, 4 pins)  on the top side next to TX, RX, D1, D2

 

Now look at the bottom side of the prototyping board. Put the MPU 9250 so that VCC, GND, SDA, SCL are connected to the pins.

Next, solder the MPU 9250.

Then add more pins to the prototyping board at both sides. The picture shows the bottom side of the prototyping board.

Now wire the prototyping board. The picture shows the top side.

Now you can add the switch. Place it in the middle of the board on the top side. Connect GND and RST to the switch. Now you have a switch for rebooting which can be molded.

Now we have both parts ready and can stack them together.

Stack them together!

Now add the LiPo battery, which should have a JST header. Now your basic node is ready.

Wireless charging option

Especially for sex toys a wireless charging option is reasonable as this is a requirement for silicone molding of the toy.  And when the toy is molded it is safe and washable.

The wireless charging module consists of a sender (or transmitter module) and a receiver module. You have to solder the receiver module to the battery shield. Don’t mix the modules.

unfortunately there is only  a USB connector. If you don’t want to remove the USB connector you can solder the red (+) wire to the R330 resistor as shown on the pictures. The black (-) wire can be soldered to any pin labeled (GND).

Now put the receiver module on top of the battery module.

Now stack the protoytping board on top of the battery shield.  And connect the battery.To charge the battery connect the sender (or transmitter) module to 5V. To power the sender module you may use a USB port power source which has about 500mAh or more. Place sender and receiver coil about each other.  For a more professional charging solution you need a charging station. The making of a charging station using 3d printing is described here.

Learn how to construct the mold form in part 2:

part 2: Molding the basic node

part 3: Software for the basic node

USB powered charging station for the silicone molded vibrator

charging-station-in-action-with-body-interaction-vibrator-so-much-balls-smallWe made a DIY silicone molded vibrator (see here, here and here) using the Arduino compatible body interaction vibrator development board and a wireless charging module. Now we need a charging station where you can put your vibrator for battery charging.

We need a simple box for the wireless charging sender (transmitter) module and the coil. In addition we need a USB cable which we will cut though and connect to the charging module.

It is important to keep the distance between sender and receiver coil as small as possible. The larger the distance is the less power will be transmitted. Therefore the plate where you put the vibrator must be very thin. There are different modules available.

 

What do you need?

  • A USB cable
  • Wireless charging sender (transmitter) eg. from Seeed Studio, 5V input. The sender (transmitter) will be placed in the charging station. The receiver module will be part of the vibrator. There are different modules available. Look for a 5V input module.seeedwirelesscharging

Instructions:

A. Print out part A and B. Download STL files (zip file)

charging_station_02_final

 

B. Cut a USB cable. Plug the cable through the hole of form B.

C. Now connect the USB wires with the sender module. Solder the red wire to the (+) pad on the wireless charging sender. Solder the black wire to the (-) pad.

charging-cable-through-and-USB-cable-soldering-to-board

D. Glue the sender board on the bottom of the red form. Put some glue on the cable to fix it. We used hot glue.

charging-board-and-cable-glued

E. Now glue the black form and the sender coil together. We used simple “UHU”-like glue. If the distance between coil and form is too large the charging could be rather slow. So don’t use too much glue.

charging-coil-glued

F. Now put together both parts. Again we used a simple glue.

charging-station-complet-with-USB-cable

G. Insert the USB connector to your PC or any other source. Now the vibrator should be charged which is indicated by an orange LED.

charging-station-in-action-with-body-interaction-vibrator-so-much-ballsReady! Have fun with your collection of wireless DIY Arduino-compatible vibrators.

 

Download STL files (zip file)

All files at Thingiverse: http://www.thingiverse.com/thing:1488428

Tinker and share with Tinkercad:

Part A https://tinkercad.com/things/ijyPmLD1B9e

Part B https://tinkercad.com/things/emWnXUkiH1J

Silicone overmolded vibrator – balls revisited

molded-quermolded-with-ueberh-querBuilding your own silicone molded vibrator becomes now easier. We already have presented 3d printed forms for building your personal vibrator (massage wand, wireless charged vibrator). The vibrator uses the body interaction vibrator development board. The body interaction board has a Arduino compatible microcontroller, vibration strength control by motion, a vibration motor and a rechargeable battery.

 

balls_revisited_3_inlay_part_bWhat is new? The electronics including battery are in the base of the vibrator. We developed a 3d printed enclosure for the electronics. This has several benefits: The assembling of the electronics and the molding itself is easier as everything is fixed within the enclosure. And it is more safe as the enclosure shields the electronics from the environment (and vice versa). In addition we used a different charging module from Seeed Studio. The input voltage is only 5V. Now you can connect the charging module with a USB connector and don’t need another power supply. (Look here for an explanation of wireless charging sender and receiver.)

overmolded-vibration-motor

Another improvement is the placing of the vibration motor. The vibration motor can now be placed in the center of the vibrator and it different heights. Just were you need the power.

balls_revisited_3_inlay_part_aFinally the mounting is improved. The mounting holds the enclosure when it is inserted into the form.

balls_revisited_3_finalThe mounting (together with the enclosure with the electronics) is inserted into the form. The form consists of two parts which must be fastened together by tinker wire. It is a variation of the ball theme.

We present a step by step procedure for tinkering the vibrator. You need:

  • 3d printed form (molding form, 2 parts)
  • 3d printed enclosure
  • 3d printed mounting
  • body interaction vibrator development board
  • silicone with a high shore A value (eg. shore A 45 which is quiet hard but still flexible), approx. 100 ml
  • wireless charging module eg. from Seeed studio
  • soldering station, (hot) glue

Step by step procedure:

A. Print out all forms. You can download the forms from Thingiverse.

wireless-charging-sender-and-receiver-line-pf

B. Connect the wireless charging module to the body interaction vibrator development board.

B.1 You have to solder a wire connecting (-) on the wireless charging module and GND on the body interaction board.

B.2 Now comes the tricky part. You have to connect (+) from the charging module with the body interaction board. Solder a wire at (+) of the charging module. But where do you solder the wire on the body interaction board? Unfortunately the wireless charging option was not taken into consideration during the development of the board. So there is no appropriate connection on the board.

circuitThe best solution is to unsolder the USB connector and connect to + of the USB connection. The easiest way to unsolder the surface mounted USB connector is done with a hot air soldering station.  Alternatively you can solder the wire directly to the MAX1555 module – this solution is presented here. In any case: Be careful not to break the tiny pads connecting pcb and USB connector.

B.3 Connect the sender module with a 5V power supply. You can use a USB cable, dismantle the cable and connect the black and red wires.

inlay-with-coil

C. Place the receiver charging coil on top of the enclosure. The diameter of the top side is a bit larger than the diameter of the bottom side. Use some glue to fix the coil. Don’t fix the mounting now. It is easier to do it later (step E).

enclosure

D. Put the electronics into the enclosure: Begin with the body interaction board. The RFM12b is quite large so place it at an outer position. Then insert carefully the LiPo battery. Don’t force it! The plugs for the battery and the motor could break. If you have done so insert the tiny wireless charging receiver board. At the end fix the wires of the vibration motor in the middle of the enclosure.

E. Connect the mounting with the enclosure. There are 2 holes provided where the mounting fits into the enclosure. Use some glue to stick together both parts. (see picture above step C).

 

form-unfilled-with-inlay

F. Put together both parts of the molding form. Use tinkering wire to attach both parts tight together. Then insert the enclosure into the form. Check the wireless charging function. The yellow LED must be on when you place the charging coil over the receiver coil.

molded-form

G. Now poor silicone into the molding. We use Shore A 45 silicone which is rather hard. The silicone has to dry for some hours or days. Read the instructions of your silicone provider.

opening-form

H. When the silicone is hard, you can remove the tinkering wire. Then carefully remove the form.

form-removedform-molded-top-down

I. Remove the overhang.

wireless-chargin-test

J. Test the wireless charging. The orange LED must be on when both coils are near together.

molded-bottom IMG_20160303_184830

K. Remove the mounting.

 

Design your own forms using Tinkercad. Start now and share!

Old versions of the enclosure:Enclosure & mounting togther, Enclosure , Mounting

Download the STL files for 3d printing from Thingiverse.

Update 2016/03/12: Added image of circuits showing where to solder the wireless charging module.

Update 2016/04/05 redesign of mounting and enclosure due to different versions of the wireless charging receiver coil

%d bloggers like this: