ResourciBoard Part 5

This is a continuation of a long story. Go to the beginning, or go back to the previous page.

Protip: when you want a specific image to appear in linkedin, stick it as the first image and make sure it’s low resolution of about 1024×768 or so.

Assembly Line

Deconstructed ResourciBoard, a custom battery powered dual ATTiny85 and ESP8266 PCB
Deconstructed ResourciBoard

With all the parts ordered and finally a nice enough PCB to spend them on it was time for a mass assembly. This would allow me to test the small QOL changes on the board along with giving me enough devices to test how they would work alongside eachother. I initially wanted to only make 2, incase the board wasn’t good. That quickly changed to four. I set up the soldering station and got to it.

Testing the double sided tape method. It’s going to be a long day.

I then thought I might have enough parts to do a fifth, and that would make for a great photo. Lets get another one in.

Preparing the different coloured headers

Day turned to night and I wanted to complete them so as to not use up a whole weekend, so I got up to the part that I dreaded.

At the home stretch, now it’s just the horrible parts.

The return of the soldering issue

I discovered an issue back with the neon style sign project specifically the 16 channel MOSFET switch where soldering the legs of these large 3 pin components is a bit iffy. The issue being that the solder will cool too quickly and end up doing unpredictable things like joining tracks. And due to the solder cooling quickly, its very difficult to fix. Unfortunately 3 of these boards had the issue.

Three resourciboards with the solder issue 🙁
TO-220 Soldering Issue on a P30N06L, Solder cools down too fast
TO-220 Soldering Issue on a LM317T, Solder cools down too fast
TO-220 Soldering Issue on a LM317T, Solder cools down too fast

I decided to call it a night and think about it. I tried solder wick but it doesn’t heat up enough of course, and a solder sucker is on its way. I read a trick earler about how to clear solder from holes which was to use a safety pin as the solder doesn’t stick to them. So my plan was to heat up the solder as much as I could and flick it away with the safety pin. It worked! With that sorted, I could complete all the boards after a marathon run spanning two days.

I have since discovered that the trick might be to do the following:

  • Let the iron get hot for a few seconds
  • Put a blob of solder on the iron
  • Stick the tip as vertical as possible pushed up against the leg, and pressed against the hole
  • Watch for solder to appear or go shiny on the pad/hole, and at that time slowly add some either to the leg or to the iron whichever works.

This seems to work but I’ll try it next time. Also the middle leg seems to be the one that sucks the most heat out.

The order of assembly

I have been refining this process over the 3 versions, but due to the solder issue above I think I might need to do that step first to see if a board is going to be faulty first. However here’s the steps I took:

A complete set!

Five complete ResourciBoards
Five complete ResourciBoards!

With the boards all made, it was time to give them something to test. So I put together the sub boards that I ordered at the same time.

ESP32-Cam, NEO-6M GPS, Buzzer/Pager, OLED
Sub boards clockwise from top left: ESP32-Cam, GPS, Pager, and OLED

A these will need a bit of testing, the only one that I am certain works is the OLED. But the changes for the Camera and GPS to get them to fit in the enclosure better seem to have worked.

The Pager board I need to fiddle with resistors and capacitors and voltages to see if it’s any good. I’ve had 4 lights flicking away on my desk for over a month now testing the theory and it seems ok.

So that’s it, over to testing that the components on these are all good, then it’s on to firmware to see what I can get going reliably.

Firmware Updates

I have been feverishly testing and managed to get the ESP32Cam and GPS boards going fairly stable, but still having issues with the Pager board and Oled with odd resets.

GPS and ESP32-cam controlled by a custom PCB containing dual ATTiny85 chips and an ESP12F.
GPS and ESP32-Cam boards are so far successful as they just push data, not receive.

The issue seems to be when trying to capture the results of a page load and looping through it which both these boards require. It resets the APP chip instantly yet the bios continues. This is also an issue regarding the replacement of the giant alphanumeric display board which is what I’m attempting to do currently (ha!).

The point that the APP chip resets at consistently

I’m thinking this might be power related as there’s a lot going on at this point and I may have narrowed it down. In order to get the BIOS to work in 8k of space I removed power saving months ago, so it stays at full power. It also receives all the serial data and interprets it. So I have two ATTiny85’s both filtering through serial data at the same time. This along with the ESP12F all sucking down power might be too much of a blip causing a reset.

I have added back in the sleep command so now the bios sleeps for 125ms at a time, at the cost of a bios data validation check as the bios seems pretty stable. This will wake up whenever serial is received of course which doesn’t help with the issue. I have also added a BIOS+SHH command to tell it to stop listening to serial for 10 seconds. This should allow full power to go to the APP chip.

It’s a difficult one to debug but I hope it works.

Update: BIOS+SHH didn’t help, neither did the proper sleeping of the bios chip. I have also tried getting the chip to sleep as soon as it receives content but that failed. I don’t think it’s a power drain issue otherwise the BIOS would reset at the same time, as would the ESP12F. Is it a compiler issue?

Update 2: Tried a lot of code changes, it seems to be if I sift through the data that is directly returned from the website. If i look for data that the ESP12F returns as part of its AT set then it’s good. It’s once it gets in to the returned web headers or content. Something is different there, is too much is sent at once causing an overflow?

ATTiny resetting.  It's not a power issue, it's not the compiler, it's not a brownout detector, it's the watchdog.
Showing correct receipt of a standard AT response. It fails as soon as it’s within the +IPD area.

Update 3: IT WAS THE WATCHDOG!!!! What a relief, but also what a painful discovery that it had been the watchdog causing the odd resets for nearly a year. It seems to be if there’s a delay or a bunch of interrupts (caused by a lot of software serial data) it would make the ATTiny85 think it’s stalled, and trigger a reset. So if anyone is in a similar issue – it’s not a power issue, it’s not the compiler, it’s not a brownout detector, it’s the watchdog. Success finally, but on to the next issue!

The watchdog issue has solved most of the issues that were appearing, there’s still the odd occurrance but seems like it’s coming good. It’s over to seeing how many different applications I can get to happen with this now.

ResourciBoard with dual ATTiny85's and ESP12F/ESP32 on Battery, with OLED, showing the latest headline, in a low wifi signal area!
ResourciBoard on Battery, with OLED, showing the latest headline, in a low wifi signal area!

Practical Uses

Since the board seems to be 99% good just requiring a few small adjustments, I am on to the firmware and sub-boards and I have decided to go all in. The OLED and ESP32-Cam boards seem ok and I have spare modules for those, so I have made all the boards ready.

Many ESP32Cam and OLED sub boards for the ResourciBoard ready and waiting.
Many ESP32Cam and OLED sub boards for the ResourciBoard ready and waiting.

And one of the main aims of this board was to be flexible enough to replace the giant alphanumeric display controller – which has been powered with one of the original non-bios ATTiny85 boards for about 8 months solidly now.

ATTiny85 MOSFET board with power regulator, ESP8266 / ESP12F, and Shift1 trick
Original ResourciBoard in position
ATTiny85 MOSFET board with power regulator, ESP8266 / ESP12F, and Shift1 trick
Original ResourciBoard out of position

A fair bit of diagnostics with faulty boards and extreme voltages destroying one of the digits, it’s now complete and working with just 5 digits!

Giant Alphanumeric display powered by an ATTiny85, showing scrolling text with christmas lights
Finally!

Just need to keep an eye on it to see if it succeeds, and then on to getting the pager working correctly.

Update: I repaired the sixth digit for the giant alphanumeric display – the issue was I powered the shift registers with 12v unknowingly for about an hour. So I tested all the led segments to make sure they were still ok as they’re all 5v, and luckily they were. I then created a new board out of the veroboard I had remaining, with two new shift registers and hoped for the best. It seemed to test ok so this was all put back together and linked up and it’s all good.

Dual 74ch595 shift register veroboard
The new scary veroboard contraption, I didn’t have any wide enough.
Giant Alphanumeric Digit - Disassembled
Always test outside of the case.

Paging Dr. Luke

The last remaining puzzle is trying to get this pager system to work, where the device will read a list of ids from the internet and if it matches its own id in that list it will trigger an alert. I put together some breadboard samples, worked a lot on the firmware as I kept finding odd issues but in the end I had success! Two meal pagers!

Two electronic meal pager devices.
Two pagers, one of them finding its id in a list

This finally proves all aspects of this board – sending data, receiving data, acting upon that data, SPI interface, shift interface, battery power, etc. I have a working GPS board along with ESP32-Cam, and OLED. I need to do a few modifications and design an updated pager board along with a shift register board. Then I will have a nice array of products.

Update: I have refined the pager board to contain all the leds, a beeper, and a motor in a deconstructed state and it works nicely. This just needs to be put on a PCB next.

Deconstructed Pager / Beeper with leds, a beeper module, and a vibrating motor.
Deconstructed Pager / Beeper with leds, a beeper module, and a vibrating motor.

ESP32Cam changes

This is just because I could only find one note on the internet about this. The original ESP32Cam and sensor would take photos in the correct orientation when lying on the longer side (with the led on it). The new ESP32Cam and sensor takes photos correctly when sitting on the short wifi side.

The two different ESP32Cam sensors (ov2640).  Original sensor on the left (with a smaller lens opening, straight pattern on the ribbon cable), newer sensor on the right (larger lens opening, hatch pattern on the ribbon cable).  These are sitting the correct way to get a properly oriented picture according to the sensors.
The two different ESP32Cam sensors (ov2640). Original sensor on the left (with a smaller lens opening, straight pattern on the ribbon cable), newer sensor on the right (larger lens opening, hatch pattern on the ribbon cable). These are sitting the correct way to get a properly oriented picture according to the sensors.

There doesn’t seem to be a way to rotate from within the camera itself that I have found yet – so the easy answer is to rotate once it’s uploaded or orient it according to the sensor.

I haven’t discovered any other obvious image quality differences between the sensors.

Hope this helps someone.

Almost there

I have refined the ResourciBoard a little by fixing up mainly labelling issues along with moving some pins very slightly to make soldering easier again. I decided it would be worth getting a few other boards done so I now have these boards:

  • Main ResourciBoard – This is what everything plugs in to providing the power, settings, cpu, and wifi/bluetooth
  • ESP32-Cam – Houses a camera that pulls its settings from the main board.
  • GPS – Pushes the GPS data over two serial lines for the CPU to parse and push to the internet.
  • OLED – Displays the content that the CPU chip pushes to it via I2C
  • Pager – Beeps, Vibrates, and Flashes 4 leds on the CPU’s command
  • Shift – A stackable board that should be able to either power 8+ outputs, or sink 8+ inputs. This should be able to duplicate the functionality in the giant alphanumeric display and the neon style led sign.
  • IO – Can read temperature, light, and magnet / tilt, or switch on 3 different leds depending on the configuration. The tilt/magnet can also tell the board to turn on.

This is a fairly comprehensive list to show what this system is capable of. The boards are all on their way now, and I have been busy purchasing bulk parts to make about 10 of the main boards and anywhere between 3 to 20 of the others. This required a spreadsheet to keep track of how much of each component, where to find it, the cost, and to automatically work out how many of each board I can make based on stock and incoming.

This might be going a little too far?

With that all ordered I also decided to try the sealed enclosure with usb DC jack power by carefully measuring and placing a hole. This turned out exactly as planned way back in the beginning.

A fully enclosed ResourciBoard powered by a USB DC jack, showing the news about Novak Djokovic having his visa cancelled again.
A fully enclosed ResourciBoard powered by a USB DC jack, showing the news about Novak Djokovic having his visa cancelled again.

So with 3 boards being tested over the last couple of weeks with different powered methods I think it’s pretty good. It’s now over to drilling a few more holes to get some more of these enclosed, and waiting for the new boards and all the parts to arrive.